Seconded.  Forced disconnects/reconnects might clear up a lockup
problem I've been having from time to time with my ISP's POP3 server,
and I'm polling every 15 seconds.

close.after.poll=true?

Don

On Mon, Jul 11, 2011 at 9:59 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> Hi
>
> I think we got logic in place which asks if the connection/mailbox is
> opened before polling. But maybe we can improve the logic there?
>
> We may also consider adding a disconnect option, so you can explicit
> configure it to disconnect after the poll. So if you only poll the
> mailbox every 5th minute or so, it may be nice to disconnect after
> polling.
>
> If you got the time then maybe you can take a look where the code can
> be improved and help with a patch? You can read about contributing
> here (posting it here just in case other people wonder about how to
> contribute)
> http://camel.apache.org/contributing.html
>
> And you are welcome to create a JIRA tickets for this improvement. And
> possible also for the disconnect option if you think it could add
> value.
>
>
> On Sun, Jul 10, 2011 at 11:57 PM, dcheckoway <dchecko...@gmail.com> wrote:
>> I'm using camel-mail to consume mail message via imaps from Google mail.  The
>> route & processor is set up basically like this:
>>
>> class MyProcessor implements Processor {
>>    @Autowired
>>    private CamelContext camelContext;
>>
>>    @PostConstruct
>>    public void initialize() throws Exception {
>>        camelContext.addRoutes(new RouteBuilder() {
>>                @Override
>>                public void configure() {
>>
>> from("imaps://imap.googlemail.com?username=supp...@mycompany.com&password=...&delete=false&unseen=true&consumer.delay=5000&ignoreUnsupportedCharset=true")
>>                      .process(MyProcessor.this);
>>                }
>>            });
>>    }
>>
>>    public void process(Exchange exchange) throws Exception {
>>        // ...this works fine
>>    }
>> }
>>
>> Generally speaking, this works perfectly.  But...on occasion, I see this
>> type of exception pop up:
>>
>> WARNING; 10-Jul-2011 21:16:38; tid:9; DefaultPollingConsumerPollStra
>> tegy rollback; Consumer
>> Consumer[imaps://imap.googlemail.com?consumer.delay=5000&delete=false&ignoreUnsupportedCharset=true&password=...&unseen=true&username=support%40mycompany.com]
>> could not poll endpoint:
>> imaps://imap.googlemail.com?consumer.delay=5000&delete=false&ignoreUnsupportedCharset=true&password=...&unseen=true&username=support%40mycompany.com
>> caused by: A663 NO System error (Failure)
>> javax.mail.MessagingException: A742 NO System error (Failure);
>>  nested exception is:
>>       com.sun.mail.iap.CommandFailedException: A663 NO System error
>> (Failure)
>>       at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:1004)
>>       at
>> org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:106)
>>       at
>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>       at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>       at
>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>       at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>       at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
>>       at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
>>       at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>       at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>       at java.lang.Thread.run(Thread.java:662)
>> Caused by: com.sun.mail.iap.CommandFailedException: A742 NO System error
>> (Failure)
>>       at com.sun.mail.iap.Protocol.handleResult(Protocol.java:341)
>>       at
>> com.sun.mail.imap.protocol.IMAPProtocol.select(IMAPProtocol.java:655)
>>       at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:928)
>>       ... 11 more
>>
>> At times, this will keep happening iteration after iteration...but the
>> "A742" code (whatever that is) increments itself...by two at a time, it
>> seems.  i.e. the next time it happens it'll be A744, then A746, and so on.
>> I'm not 100% sure what's happening, but Google mail may be rate limiting me
>> or something.  Any insight into that particular error would be much
>> appreciated.
>>
>> But what I'm really after is...everything I've read on the web suggests that
>> once you see that error from Google, it's best to close the connection and
>> reconnect.  That, as far as I know, is something I can't easily do using
>> camel-mail.
>>
>> I suspect you'll suggest writing an exception handler that stops the route,
>> then restarts the route.  But is there anything camel-mail itself can do in
>> a more self-maintaining way, short of that sort of a route stop/start?  i.e.
>> a "reconnectOnException=true|false" property?  Or even a
>> "reconnectAfterIterations=nnn" or "maxConnectionLifeSeconds=nnn" property
>> that would force the connection to be closed and reestablished after some
>> number of iterations or seconds.
>>
>> What do you think?
>>
>>
>> -----
>> Dan Checkoway
>> dcheckoway -at- gmail
>> --
>> View this message in context: 
>> http://camel.465427.n5.nabble.com/camel-mail-need-to-force-a-close-reconnect-tp4572997p4572997.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cib...@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>

Reply via email to