Support Article
Listener thread is terminated because of exception
SA-31828
Summary
The user has enabled the listener in 2 nodes and on single thread on each nodes. The listeners are used for picking up and processing the mail. After a short time the listener in one node was terminated.
Error Messages
2016-12-14 10:24:25,394 [Tst07_SU3,maxpri=10]] [ STANDARD] [ericService:01.01.04] ( services.email.EmailListener) ERROR EMAIL.CBOpsEmailListener.CBOpsIngestionServer|from("userid")|sub(LiveMeet_T) - Caught MessagingException while sending email to Admin User.
javax.mail.MessagingException: error fetching POP3 content;
nested exception is:
java.io.IOException: Unexpected response: Connection is closed. 21
at com.sun.mail.pop3.POP3Message.getContentStream(POP3Message.java:211)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1763)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1721)
at com.pega.pegarules.integration.engine.internal.services.email.EmailListener.sendUnprocessedMessage(EmailListener.java:2802)
at com.pega.pegarules.integration.engine.internal.services.email.EmailListener.handleRequest(EmailListener.java:1751)
at com.pega.pegarules.integration.engine.internal.services.email.EmailListener.emailProcess(EmailListener.java:1433)
at com.pega.pegarules.integration.engine.internal.services.email.EmailListener.oneIteration(EmailListener.java:933)
at com.pega.pegarules.integration.engine.internal.services.email.EmailListener.run_(EmailListener.java:892)
at com.pega.pegarules.integration.engine.internal.services.listener.ServiceListenerBaseImpl.run(ServiceListenerBaseImpl.java:442)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.AsyncServant.processAsyncTask(AsyncServant.java:183)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.AsyncServant.invoke(AsyncServant.java:148)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:312)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:263)
at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(EngineBean.java:236)
at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:349)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:390)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingException(PRBootstrap.java:412)
at com.pega.pegarules.internal.etier.ejb.EngineBeanBoot.invokeEngine(EngineBeanBoot.java:168)
at com.pega.pegarules.internal.etier.interfaces.EJSLocalStatelessEngineBMT_f2439d86.invokeEngine(Unknown Source)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRAsync.processRequest(PRAsync.java:151)
at com.pega.pegarules.session.internal.engineinterface.etier.asynchbeans.AsyncTask.run(AsyncTask.java:60)
at com.pega.pegarules.session.internal.engineinterface.etier.asynchbeans.RunnableWrapper.run(RunnableWrapper.java:67)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:269)
at java.security.AccessController.doPrivileged(AccessController.java:309)
at javax.security.auth.Subject.doAs(Subject.java:495)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:131)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:89)
at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:336)
at java.security.AccessController.doPrivileged(AccessController.java:338)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:778)
at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:222)
at com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl.java:159)
at java.lang.Thread.run(Thread.java:767)
Caused by:
java.io.IOException: Unexpected response: Connection is closed. 21
at com.sun.mail.pop3.Protocol.simpleCommand(Protocol.java:374)
at com.sun.mail.pop3.Protocol.multilineCommand(Protocol.java:386)
at com.sun.mail.pop3.Protocol.retr(Protocol.java:276)
at com.sun.mail.pop3.POP3Message.getContentStream(POP3Message.java:145)
... 35 more
Steps to Reproduce
Not applicable
Root Cause
A defect in Pegasystems’ code or rules:
- Locking is not properly handled incase of multiple thread and multiple node scenario.
- Latency value is not consistent.
- Improper mapping ( milliseconds used instead of seconds) of parameter in establishRequestor2Inner() of EmailListener.java which is responsible for requestor deletion.
Resolution
Apply HFix-30737
Published January 4, 2017 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.