actually, I copied Mina component and modifying only the code to share receivehandler and connection between producer and consumer. I need to be able to load balance on failure. procuder loadbalances using loadbalancer component on exception.Consumer just listens for message. I just had a question regrading loss of unprocessed messages in case of IO/connection failure,suppose I got 3 messages from remote server and I am in the middle of processing number 2 onmessage event and connection failure happend and reestablish connection with new IP would I loose message number 2 or 3.
Thanks, Anand Ashwin Karpe wrote: > > Hi, > > You might want to look at the Mina component source code for gathering > details on how to write a mina like component yourself. But I suspect you > have done this already ;) > > Cheers, > > Ashwin... > > > > anandsk wrote: >> >> since there is a bug with async route with Mina in camel 2.2.0, >> I am thinking of writing a custom component to achieve following as per >> huntc suggestion. I am assuming that I can use load balancer component in >> case of connection failure to rotate IP addresses in combination with >> custom component.I will deploy this as a war app and I am using spring. >> I have to use single TCP connection and need to send and receive >> messages asynchronously. can someone help me with high level steps to >> achieve this?. I am assuming I don't need to worry about thread >> synchronization and thread safety as I have to use single connection >> object. >> >> I am thinking all I need to do is >> 1. extend defaultcomponent and override createendpoint method to return >> the same object everytime(declare a singleton spring minaconnector bean >> and use annotation to inject into this component). >> >> 2. extend defaultproducer and override process method to send message on >> using singleton spring object. >> >> 3. extend defaultconsumer and override dostart(establishconnection and >> register IOhandler for message receive events) and dostop(disconnect) >> >> 4. implement messagereceived of IOhandleradapter >> I am not sure what goes in here, how to pass the message to next >> processor/endpoint for futher processing?. >> >> 5. extend defaultendpoint and >> override createproducer and return number 2 class above. >> overrise createconsumer and return number 3 class above. >> >> 6. ofcourse I need to define this component in spring, so that it is >> visible to camel. >> >> can someone validate above items and let me know, if I need to do >> anything else. >> >> I am thing my sample route would like this. >> >> from("file:///test/test/response") >> .convertBodyTo(String.class) >> .to("mycomponent://localhost:6202"); >> >> from("mycomponent://localhost:6202") >> .to("log:+++ reply++++"); >> >> >> >> >> >> >> >> >> >> >> >> > > -- View this message in context: http://old.nabble.com/custom-component-using-Mina-tp27879624p27905906.html Sent from the Camel - Users mailing list archive at Nabble.com.