Regarding the need to "repeatingly parse XML again and again", surely this should not be necessary if the message body that is being passed is along the chain is a (reference to a) DOM object?
On Wed, Apr 30, 2014 at 7:18 PM, Jens Breitenstein <[email protected]>wrote: > if you use JMS than your data will be send as ObjectMessage which makes > use of JAVA object serialization thus it's converted to byte stream at some > point in time. > But this serialization only occurs ones when ActiveMQ sends your message > to JMS listeners (regardless if same VM or another one). If you want to > avoid the "heavy" default java object serialization you can try using a > TextMessage and XML/JSON/Protobuffer whatever, but I wonder if performance > is really a problem? An object makes handling of your business logic in all > your camel processors far easier (a map, a business related class) in > contrast to repeatingly parse XML again and again (in case your logic is > spread accross multiple processors). If you create an instance ones and > just send it immediately by JMS simply go for java's default serialization > and you are done without writing any additional code until performance > really matters > > Jens > > > Am 30.04.14 10:06, schrieb Muhammad Ichsan: > > Ah..! >> >> So, in the same JVM, using Java object simply uses an instance >> pointer. But if I'm going to produce into an ActiveMQ endpoint, I >> should make sure the MQ in the same JVM with vm transport or, I should >> marshall into protobuf bytes. The MQ is used for my own system too, >> but different physical location. >> >> >> On Wed, Apr 30, 2014 at 3:49 PM, [email protected] >> <[email protected]> wrote: >> >>> What do you mean by different systems? Different Camel Processors? >>> >>> You can store your data as body/property and this is a pure instance >>> pointer. As long the message is not deep cloned/serialized as bytestream >>> there is no overhead passing this message through the camel routes (in one >>> vm). >>> >>> Can you provide more info maybe I simply did not get it? >>> >>> Jens >>> >>> Von meinem iPhone gesendet >>> >>> Am 30.04.2014 um 08:34 schrieb Muhammad Ichsan <[email protected]>: >>>> >>>> Hi >>>> >>>> I'm thinking about creating a common message which will hold all data >>>> during all business invocations across different system in Camel (of >>>> course with translation for vary systems). >>>> >>>> In my first thought, I'm going to use a simple one like Map. The the >>>> payload is simple to use in processor. I can use >>>> >>>> public Map setFee(Map<String, String> commonMessage) { >>>> // Modif >>>> >>>> return commonMessage; >>>> } >>>> >>>> But sending Map along the way of transaction process means that there >>>> will be conversion of java.util.Map into bytes over and over again. >>>> >>>> My second thought is, using XML or JSON text. But I face more complex >>>> processing in the processor >>>> >>>> public String setFee(String commonMessage) { >>>> Map<String, String> map = helper.toMap(commonMessage); >>>> >>>> // Modif >>>> >>>> return helper.toString(map); >>>> } >>>> >>>> So, which one is the most efficient way? >>>> >>>> -- >>>> ~The best men are men who benefit to others >>>> http://www.michsan.web.id 一緒に勉強しましょう! >>>> >>>> Yang berkualitas memang beda rasanya! >>>> http://rizqi-cookies.com >>>> >>> >> >> >
