In the last project I was able to use direct:vm component, which is in my opinion the best component to resolve my task. Unfortunately now I can't use it because I'm limited to ServiceMix's Camel version, which is 2.6.0-fuse-00-00, so I've found Normalized Message Router (NMR). I've found information that NMR is asynchronous on default, but can be set as a synchronous by parameter synchronous. Is it still good sollution to use it instead of direct:vm component? I'm using it with enrich component and I didn't found any problems with that.
Asked
Active
Viewed 339 times
1 Answers
3
In an OSGi environment, each bundle is kept fairly separate from the others. The NMR
component allows a bundle to expose a Camel route as a resource to other bundles in the container using this facility in ServiceMix. The direct-vm
component wasn't introduced until Camel 2.10, so for your version the NMR
component is the best fit. It is still considered lightweight, but more feature-rich than directly exposing the routes. It's still better than using the JBI
technology, which should be considered legacy.

Adam Hawkes
- 7,218
- 30
- 57
-
that's right, but what with transactions? I read that NMR is not supporting them even if they are supporting synchronous communication? – Marcin Erbel Jun 12 '15 at 05:47
-
1Yes and no... it's hard to explain, so I'll refer to the documentation: https://cwiki.apache.org/confluence/display/SMX4NMR/6.+Transactions+and+clustering – Adam Hawkes Jun 12 '15 at 15:14
-
There is not so may information on that page. I've found a nice presentation : http://download.progress.com/5331/open/adobe/psc/iona/112608_fuse_transactions_and_clustering/index.htm but you've got right. It's a complex issue. – Marcin Erbel Jun 15 '15 at 07:49