Support Article

File listeners are not working properly

SA-37307

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 1, 2017 - Updated May 5, 2017

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.