2 Replies Latest reply on Jul 17, 2009 1:49 PM by jawed khan

    FUSE ESB 4.x NMR questions

    jawed khan Newbie

      1. Does NMR have its own queue for message flow?

      2. Can we change the NMR flow to use SEDA or JMS? If yes how?

      3. Does NMR use its own thread after message is put on the NMR to notify the consumer of the message?

      4. Does NMR copy message properties and headers from one exchange to another?

      5. How do we define transaction between a set of producers and consumers?




        • 1. Re: FUSE ESB 4.x NMR questions
          Dave Stanley Novice

          Hi Jawed,


          1. So in terms of servicemix 4, not really. The nmr is using a thread pool and an executor queue. Each channel gets its own executor (so this is just a straightThroughFlow). There is support for a pluggable flow but we don't have any other implementations yet.


          2. I had a look in the code and there is a Flow interface, but we only provide a StraightThroughFlow implementation right now.


          3. Yes, it uses a thread pool and for sendsync, waits on the thread for the provider to come back with the answer.


          4. The NMR is not dealing with copying message properties, it just passes the message. The components/endpoints will deal with that.


          5. So, assuming XA you would register a transaction manager in the osgi registry (install the transaction feature). Then you would configure the endpoints to be transactional in a similar manner to servicemix 3, but you would look up the transaction manager via Spring DM from the osgi registry rather than jndi. The transaction is conveyed from one endpoint to the next via the nmr (i.e. it essentially will just pass along the transactional context without touching it).