Support Article
File listeners are not working properly
Summary
File Listener threads are not dispatched even though there are files to process in the source directory.
Error Messages
Not Applicable
Steps to Reproduce
Configure file listeners with multiple threads per host node.
Root Cause
A defect or configuration issue in the operating environment The maxSession element for PRAsync needs to be adjusted so that the File Listener can be properly dispatched to read the files.
Resolution
Perform the following local-change:
This issue is resolved by making the following change to the operating environment in JBoss config file standalone(-full).xml depending on the one used:
1. AsyncConnectionFactory definition (defaults to 20 if not set)
<pooled-connection-factory name="AsyncConnectionFactory">
<min-pool-size>40</min-pool-size>
<max-pool-size>80</max-pool-size>
<transaction mode="xa"/>
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="java:/jms/PRAsyncTCF"/>
</entries>
</pooled-connection-factory>
2. Pools definitions
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool" max-pool-size="100" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
<strict-max-pool name="mdb-strict-max-pool" max-pool-size="100" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
3. Amend ejb-jar.xml in ear file deployed for PRPC application.
,<JBOSS-HOME>/prbeans/META-INF/ejb-jar.xml
4. Add the maxSession ActivationConfigProperty for the MDB deployment descriptor and provide a value that is equal to or
lower than the MDB pool size. Below is an example.
<message-driven>
<ejb-name>PRAsync</ejb-name>
<ejb-class>com.pega.pegarules.internal.etier.mdb.PRAsyncBoot</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Topic</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>java:/topic/jms/PRAsyncTopic</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-property-name>
<activation-config-property-value>100</activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
This allows more than 15 by default.
Published May 6, 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.