Hi SI users,
I've observed a strange behavior of imap-idle-channel-adapter. After running let's say 1 or 2 days it stops re-establishing connection with MS Exchange server.
Sample log file:
As you can see it tries to re-establish the connection every 5 minutes and when it receives an e-mail at 11:01 it hangs. It seems that it remains in the blocked state and the only way to reconnect to MS Exchange is by restarting the adapter (via control bus) or restarting app server itself.Code:2011-10-05 10:52:36,448 [task-scheduler-10] WARN o.s.i.mail.ImapIdleChannelAdapter - error occurred in idle task javax.mail.FolderClosedException: * BYE JavaMail Exception: java.net.SocketTimeoutException: Read timed out at com.sun.mail.imap.IMAPFolder.throwClosedException(IMAPFolder.java:2451) ~[mail.jar:1.4.1] at com.sun.mail.imap.IMAPFolder.idle(IMAPFolder.java:2243) ~[mail.jar:1.4.1] at org.springframework.integration.mail.ImapMailReceiver.waitForNewMessages(ImapMailReceiver.java:100) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:166) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$1$1.run(ImapIdleChannelAdapter.java:113) [spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_22] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [na:1.6.0_22] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_22] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_22] 2011-10-05 10:52:36,449 [task-scheduler-10] WARN o.s.i.mail.ImapIdleChannelAdapter - Failed to execute IDLE task. Will atempt to resubmit in 10000 milliseconds java.lang.IllegalStateException: Failure in 'idle' task. Will resubmit at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:192) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$1$1.run(ImapIdleChannelAdapter.java:113) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_22] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [na:1.6.0_22] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_22] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_22] Caused by: javax.mail.FolderClosedException: * BYE JavaMail Exception: java.net.SocketTimeoutException: Read timed out at com.sun.mail.imap.IMAPFolder.throwClosedException(IMAPFolder.java:2451) ~[mail.jar:1.4.1] at com.sun.mail.imap.IMAPFolder.idle(IMAPFolder.java:2243) ~[mail.jar:1.4.1] at org.springframework.integration.mail.ImapMailReceiver.waitForNewMessages(ImapMailReceiver.java:100) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:166) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] ... 10 common frames omitted 2011-10-05 10:57:46,497 [task-scheduler-9] WARN o.s.i.mail.ImapIdleChannelAdapter - error occurred in idle task javax.mail.FolderClosedException: * BYE JavaMail Exception: java.net.SocketTimeoutException: Read timed out at com.sun.mail.imap.IMAPFolder.throwClosedException(IMAPFolder.java:2451) ~[mail.jar:1.4.1] at com.sun.mail.imap.IMAPFolder.idle(IMAPFolder.java:2243) ~[mail.jar:1.4.1] at org.springframework.integration.mail.ImapMailReceiver.waitForNewMessages(ImapMailReceiver.java:100) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:166) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$1$1.run(ImapIdleChannelAdapter.java:113) [spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_22] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [na:1.6.0_22] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_22] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_22] 2011-10-05 10:57:46,498 [task-scheduler-9] WARN o.s.i.mail.ImapIdleChannelAdapter - Failed to execute IDLE task. Will atempt to resubmit in 10000 milliseconds java.lang.IllegalStateException: Failure in 'idle' task. Will resubmit at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:192) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$1$1.run(ImapIdleChannelAdapter.java:113) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_22] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [na:1.6.0_22] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_22] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_22] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_22] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_22] Caused by: javax.mail.FolderClosedException: * BYE JavaMail Exception: java.net.SocketTimeoutException: Read timed out at com.sun.mail.imap.IMAPFolder.throwClosedException(IMAPFolder.java:2451) ~[mail.jar:1.4.1] at com.sun.mail.imap.IMAPFolder.idle(IMAPFolder.java:2243) ~[mail.jar:1.4.1] at org.springframework.integration.mail.ImapMailReceiver.waitForNewMessages(ImapMailReceiver.java:100) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:166) ~[spring-integration-mail-2.0.5.RELEASE.jar:na] ... 10 common frames omitted 2011-10-05 11:01:32,937 [task-scheduler-4] INFO o.s.i.mail.ImapMailReceiver - attempting to receive mail from folder [INBOX] 2011-10-05 11:01:33,194 [SimpleAsyncTaskExecutor-2] WARN c.r.p.i.SubjectBasedMessageSelector - Subject does not match: xxxxxx 2011-10-05 13:30:39,209 [ajp-10.112.196.9-8009-10] INFO o.s.ldap.core.LdapTemplate - The returnObjFlag of supplied SearchControls is not set but a ContextMapper is used - setting flag to true
I would like to add that I set up the mail.imap.timeout parameter to 300000 milisec in order to give adapter a chance to reconnect after 5 minutes.
Has anybody faced similar issues with imap-idle-channel-adapter?
Help is needed since described issue happens on production environment
Regards,
Krzysztof



Reply With Quote
