Hi Claus, One last question... Is it possible to define retry/redelivery semantics when using try/catch DSL functionality?
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.