Question


Accenture
SG
Last activity: 30 Aug 2016 2:48 EDT
JMS-MDB Listener Queue Processing
Hi team,
We are using JMS_MDB Listsner with IBM MQ Queues. can some one explain the how the messages in Queue get processed by Service JMS. At atime how many messages get picked from Queue by the listener and processed by Service JMS.
And is there a way to Configure the number of messages processed at a go.
As we had faced an issue when there are huge bunch of messages in the queue. we see some of the messages getting processed at same time (simultaneously) as a result we are facing Integrity constraint issue with DB as Primary key (which is generated in service activity considering time stamp) is generated same when inserting particular message into the DB table (which is done by Service JMS activity).
Please help on this.
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution


Pegasystems Inc.
US
It is true that the max threads for MDB instances are application server specific, but for WAS, if you are using MQ as the message provider, there is a custom property called maxPoolDepth will do the trick. WorkManager is irrelevant here - it is configured by Pega to process all the async requests (batch/agent/async loading etc).
- maxPoolDepth
- The maximum number of server sessions in the server session pool used by a connection consumer. When a server session is created, it starts a conversation with a queue manager. The connection consumer uses a server session to deliver a message to an MDB. A larger pool depth allows more messages to be delivered concurrently in high volume situations, but uses more resources of the application server. If many MDBs are to be deployed, consider making the pool depth smaller in order to maintain the load on the application server at a manageable level. Each connection consumer uses its own server session pool, so that this property does not define the total number of server sessions available to all connection consumers.


PEG
IN
Processing of number of messages depends on Thread Pool Size . Incase of JMS/MQ Listener processing depends on thread pool size. We can set in prconfig or in Dynamic System Settings(D-S-S)
In case of JMS MDB Listener, processing of messages depends on minimum and maximum threads set at application servers.
For ex: In WAS, depends on workManager Pool settings determines the number of messages to be processed.
Hope this helps!


Accenture
SG
What is the name of the DSS ?
and will it solve my problem or is there any other solution too for this type of problems ?


Accenture
SG
Also what is Property or parameter in WAS which defines number of messages to be processed at a go?
Accepted Solution


Pegasystems Inc.
US
It is true that the max threads for MDB instances are application server specific, but for WAS, if you are using MQ as the message provider, there is a custom property called maxPoolDepth will do the trick. WorkManager is irrelevant here - it is configured by Pega to process all the async requests (batch/agent/async loading etc).
- maxPoolDepth
- The maximum number of server sessions in the server session pool used by a connection consumer. When a server session is created, it starts a conversation with a queue manager. The connection consumer uses a server session to deliver a message to an MDB. A larger pool depth allows more messages to be delivered concurrently in high volume situations, but uses more resources of the application server. If many MDBs are to be deployed, consider making the pool depth smaller in order to maintain the load on the application server at a manageable level. Each connection consumer uses its own server session pool, so that this property does not define the total number of server sessions available to all connection consumers.


PEG
IN
Thanks for the clarification Kevin!


PEG
IN
Incase of JMS-MDB configuration,DSS won't be effect. As I mentioned above it shoud be handled at app sever level.


Accenture
SG
Can you tell me what is exactly the Property or Element in the WAS that defines this


Pegasystems Inc.
US
Please refer to this IBM link: https://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q031670_.htm