Question
Why does a file listener running on multiple nodes keep crashing?
Moderator Note: Taking question from another area and posting as a discussion on behalf of Akshay Kumar.
File Listener is running on multi-nodes crashes quite frequently and requires manual restart.
Polling interval is 900 sec. Folders are having read and write access.
Can anyone help me here to resovling the issue of file listener. It gets down the very next moment we start it. But this is happening only for few file listener only, where we have parent folder and child folder.
Error in logs says {folder name} does not exist
and sometime is say {folder name} exist , but not a valid directory.
Please let me know if anyone has encountered these issues and how to get rid of this.
Below is the error message
( services.file.FileListener) ERROR File.BulkUploadFile Interfaces@demo.com - Unexpected exception caught during processing.
java.lang.Exception: [/transfer/files/inbound] exists, but it is not a directory.
at com.pega.pegarules.integration.engine.internal.services.file.FileListener.initialize(FileListener.java:1829)
at com.pega.pegarules.integration.engine.internal.services.file.FileListener.run_(FileListener.java:1899)
at com.pega.pegarules.integration.engine.internal.services.listener.ServiceListenerBaseImpl.run(ServiceListenerBaseImpl.java:445)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.AsyncServant.processAsyncTask(AsyncServant.java:186)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.AsyncServant.invoke(AsyncServant.java:151)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:315)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:266)
at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(EngineBean.java:239)
at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:619)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:348)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:389)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingException(PRBootstrap.java:411)
at com.pega.pegarules.internal.etier.ejb.EngineBeanBoot.invokeEngine(EngineBeanBoot.java:171)
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:154)
at com.pega.pegarules.session.internal.engineinterface.etier.asynchbeans.AsyncTask.run(AsyncTask.java:63)
at com.pega.pegarules.session.internal.engineinterface.etier.asynchbeans.RunnableWrapper.run(RunnableWrapper.java:70)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:261)
at java.security.AccessController.doPrivileged(AccessController.java:297)
at javax.security.auth.Subject.doAs(Subject.java:495)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:118)
at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:328)
at java.security.AccessController.doPrivileged(AccessController.java:326)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:757)
at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:218)
at com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl.java:158)
at java.lang.Thread.run(Thread.java:813)
is /transfer/files/inbound the correct name for the folder that your app is attempting to use ? Is the app getting intermittent failures claiming it isn't a folder but working other times ? Do you have multiple nodes or threads simultaneously trying to use the folder ?
If so, maybe while one app on one node is writing to the folder, the system has the folder locked, so maybe if your app on another node simultaneously tries to write to the folder, then that is when it gets the error saying it-exists-but-is-not-a-folder ?
You may get more detailed info when the issue occurs if you set the DEBUG level for class com.pega.pegarules.integration.engine.internal.services.file.FileListener .
/Eric