Thanks for the reply Claus! Your help is very much appreciated. Perhaps I will extend the camel code to allow for redelivery functionality using try/catch semantics. Cheers!
Jeff Claus Ibsen-2 wrote: > > On Wed, May 13, 2009 at 2:59 PM, Claus Ibsen <claus.ib...@gmail.com> > wrote: >> On Tue, May 12, 2009 at 10:34 PM, turp1twin <jeff.tur...@ecloser.net> >> wrote: >>> >>> Hi Claus, >>> >>> One last question... Is it possible to define retry/redelivery semantics >>> when using try/catch DSL functionality? >> Good question. As doCatch is basically also a OnException model it >> should be in the DSL. But I have to check in the code as the try .. >> catch .. finally is a bit special over regular routing. >> >> But I have been super busy with the new onCompletion DSL feature in >> Camel 2.0 and Customer support. >> So remind me later if I have not replied. > I had a quick look. > > You cannot do that. > >> >>> >>> >>> Jeff >>> >>> >>> Claus Ibsen-2 wrote: >>>> >>>> On Tue, May 12, 2009 at 6:31 AM, turp1twin <jeff.tur...@ecloser.net> >>>> wrote: >>>>> >>>>> Hi Claus, >>>>> >>>>> Thanks so much for the quick response! This helps me very much! Yes, >>>>> basically, if the sending the email fails, I just want to log the >>>>> error >>>>> and >>>>> end the route. I want the File consumer to complete and move/delete >>>>> the >>>>> file, since a new file will be created and processed at a later time >>>>> with >>>>> the same data since the FTP failed. Anyways, the info you provided >>>>> below >>>>> will be very helpful. I have created a Processor to handle the errors >>>>> this >>>>> evening, and that seems to work, however, I think the try catch >>>>> semantics >>>>> of >>>>> the Java DSL will be cleaner. Should I pull down the 2.0-M2 snapshot? >>>> 2.0m2 has not been released yet. >>>> >>>> You can try the SNAPSHOT instead as its released every day :) >>>> http://camel.apache.org/download.html >>>> >>>> 2.0m2 is however scheduled to be released any time soon. Just the >>>> person doing the release is very busy and Camel 1.6.1 has higher prio >>>> to be released first. >>>> >>>> >>>>> Cheers! >>>>> >>>>> >>>>> Jeff >>>>> >>>>> >>>>> Claus Ibsen-2 wrote: >>>>>> >>>>>> Hi >>>>>> >>>>>> Error handling is hard, especially for non transactional transports >>>>>> such as File / FTP and the likes. >>>>>> >>>>>> From what I understand from your description is that you want to poll >>>>>> files and upload them to SFTP. >>>>>> And in case this fails an email should be sent. And if this email >>>>>> fails then it should ???? >>>>>> >>>>>> If you where doing this with regular Java you would probably use the >>>>>> try .. catch .. finally. >>>>>> And they also exists in Camel DSL >>>>>> >>>>>> .doTry() >>>>>> // send file to SFTP >>>>>> .doCatch(Exception) >>>>>> .doTry() >>>>>> // send an email >>>>>> .doCatch() >>>>>> // log failed to send email >>>>>> .end() >>>>>> .end() >>>>>> >>>>>> And they support handled(true) as well. >>>>>> See more here >>>>>> http://davsclaus.blogspot.com/2009/04/on-road-to-camel-20-try-catch-finally.html >>>>>> >>>>>> And here: >>>>>> http://camel.apache.org/try-catch-finally.html >>>>>> >>>>>> However try .. catch .. finally have been overhauled in Camel 2.0m2 >>>>>> so >>>>>> you have to wait for this release or use SNAPSHOT if you want. >>>>>> >>>>>> >>>>>> Also the general error handling in Camel 2.0 have had a major >>>>>> overhaul >>>>>> as well. In fact I do believe that the problem with error handling, >>>>>> when doing error handling has been fixed in 2.0m2 (SNAPSHOT) as well. >>>>>> >>>>>> So in your case if the SMTP failed then it would not "catch this" but >>>>>> it should be fixed in 2.0m2. >>>>>> >>>>>> >>>>>> >>>>>> If you want to avoid consuming the same file again then use the >>>>>> Idempotent Consumer EIP >>>>>> http://camel.apache.org/idempotent-consumer.html >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Tue, May 12, 2009 at 1:30 AM, turp1twin <jeff.tur...@ecloser.net> >>>>>> wrote: >>>>>>> >>>>>>> I am new to Camel and am having a tough time getting my route to >>>>>>> work >>>>>>> properly. That being said, it is entirely possible that I am being a >>>>>>> moron >>>>>>> and have missed something simple.... However, I have searched the >>>>>>> mailing >>>>>>> list and have not found the answer I am looking for. Any help would >>>>>>> be >>>>>>> appreciated. I am using Camel 2.0-M1 and I am trying to test my >>>>>>> various >>>>>>> error handling scenarios. I am using a Java DSL with various >>>>>>> endpoints >>>>>>> configured in my Spring camel-context.xml. >>>>>>> >>>>>>> Endpoints: >>>>>>> >>>>>>> <camel:endpoint id="filePollingDir" >>>>>>> uri="file:///Users/xxxxx/temp/polldir/"/> >>>>>>> >>>>>>> <camel:endpoint id="sFtpDestination" >>>>>>> >>>>>>> uri="sftp://r098...@sftp.someserver.com/upload?password=xxxxxx&knownHostsFile=/Users/xxxxx/.ssh/known_hosts"/> >>>>>>> >>>>>>> <camel:endpoint id="failedTransferSmtp" >>>>>>> uri="smtp://smtp.someserver.net?to=u...@mymail.net&from=ad...@mymail.net"/> >>>>>>> >>>>>>> Route definition: >>>>>>> >>>>>>> from(getEndpoint("filePollingDir")).onException(Exception.class).maximumRedeliveries(0).handled(true).end() >>>>>>> .to(getEndpoint("sFtpDestination")).onException(Exception.class).maximumRedeliveries(2).handled(true) >>>>>>> .to(getEndpoint("failedTransferSmtp")).onException(Exception.class).maximumRedeliveries(0).handled(true).end(); >>>>>>> >>>>>>> >>>>>>> Basically what I am trying to achieve is that if the SFTP producer >>>>>>> fails >>>>>>> I >>>>>>> want to send an email notifying a user that the transfer failed. I >>>>>>> also >>>>>>> want >>>>>>> to handle the case where the smtp producer might also fail. I am >>>>>>> getting >>>>>>> to >>>>>>> the SMTP endpoint (failedTransferSmtp) just fine, however, when it >>>>>>> fails >>>>>>> (as >>>>>>> intended for this particular test) it causes the "filePollingDir" >>>>>>> consumer >>>>>>> to rollback and consume the source file again. This continues in a >>>>>>> loop... >>>>>>> Is this behavior intended? If so, can I configure the consumer to >>>>>>> stop >>>>>>> consuming the same file again? Again, I might be missing something >>>>>>> simple, >>>>>>> but any help would be appreciated. Cheers! >>>>>>> >>>>>>> Jeff >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> View this message in context: >>>>>>> http://www.nabble.com/Error-Handling-tp23493625p23493625.html >>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Claus Ibsen >>>>>> Apache Camel Committer >>>>>> >>>>>> Open Source Integration: http://fusesource.com >>>>>> Blog: http://davsclaus.blogspot.com/ >>>>>> Twitter: http://twitter.com/davsclaus >>>>>> Apache Camel Reference Card: >>>>>> http://refcardz.dzone.com/refcardz/enterprise-integration >>>>>> Interview with me: >>>>>> http://architects.dzone.com/articles/interview-claus-ibsen-about?mz=7893-progress >>>>>> >>>>>> >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://www.nabble.com/Error-Handling-tp23493625p23496008.html >>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Claus Ibsen >>>> Apache Camel Committer >>>> >>>> Open Source Integration: http://fusesource.com >>>> Blog: http://davsclaus.blogspot.com/ >>>> Twitter: http://twitter.com/davsclaus >>>> Apache Camel Reference Card: >>>> http://refcardz.dzone.com/refcardz/enterprise-integration >>>> Interview with me: >>>> http://architects.dzone.com/articles/interview-claus-ibsen-about?mz=7893-progress >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Error-Handling-tp23493625p23509898.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> Apache Camel Reference Card: >> http://refcardz.dzone.com/refcardz/enterprise-integration >> Interview with me: >> http://architects.dzone.com/articles/interview-claus-ibsen-about?mz=7893-progress >> > > > > -- > Claus Ibsen > Apache Camel Committer > > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus > Apache Camel Reference Card: > http://refcardz.dzone.com/refcardz/enterprise-integration > Interview with me: > http://architects.dzone.com/articles/interview-claus-ibsen-about?mz=7893-progress > > -- View this message in context: http://www.nabble.com/Error-Handling-tp23493625p23523791.html Sent from the Camel - Users mailing list archive at Nabble.com.