Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

MDB Listener fails with error, then listener stops

SA-5385

Summary



MDB Listener is configured on WebSphere Application Server 8.5 to listen to Pega MQ queue. When the listener reads the first message from the queue, it fails with an error.


Error Messages



[1/6/15 21:15:51:679 EST] 00000091 SystemOut O 2015-01-06 21:15:51,678 [AResourceAdapter : 0] [ STANDARD] [ ] [ your_node:01.01.01] (O_HLP_Work_PriceRequest.Action) INFO JMS|PricingRequestPackage|your_package|your_service|A9659FE0564E7835965CE69E062A941F0 - The Response sent
[1/6/15 21:15:52:040 EST] 0000135f RegisteredRes E WTRN0063E: An illegal attempt to commit a one phase capable resource with existing two phase capable resources has occurred.
[1/6/15 21:15:52:041 EST] 0000135f RegisteredRes E WTRN0086I: XAException encountered during prepare phase for transaction 0000014ABEBE3C5000000001795889244F3BA9983EF15D3C67ADCD1F2A2A0E2A7A264D190000014ABEBE3C5000000001795889244F3BA9983EF15D3C67ADCD1F2A2A0E2A7A264D1900000001. Local resources follow.
[1/6/15 21:15:52:042 EST] 0000135f JTAResourceBa I WTRN0089I: [email protected]:cd4a2b21 localTransaction:[email protected] enlisted:trueHas Tran Rolled Back = false registeredForSynctruemcWrapper.hashcode()647405836: Vote: none.
[1/6/15 21:15:52:044 EST] 0000135f JTAResourceBa I WTRN0089I: [email protected]: Vote: commit.
[1/6/15 21:15:52:045 EST] 0000135f JTAResourceBa I WTRN0089I: [email protected] e01f2ee9 XAResource: [email protected] enlisted: trueHas Tran Rolled Back = false mcWrapper.hashCode()1705646098: Vote: commit.
[1/6/15 21:15:52:726 EST] 00000091 SystemOut O 2015-01-06 21:15:52,725 [AResourceAdapter : 1] [ STANDARD] [ ] [
your_node:01.01.01] (your_activity.Action) INFO JMS|PricingRequestPackage|DEMO-HLP-Work-PriceRequest|PricingRequestService|A9659FE0564E7835965CE69E062A941F0 - The Response sent
[1/6/15 21:15:52:172 EST] 0000135f FFDCJanitor I com.ibm.ws.ffdc.impl.FFDCJanitor doCleanupIfNeeded FFDC0004I: FFDC log file management removed 2 of 2 files that have reached their configured maximum age
[1/6/15 21:15:52:212 EST] 0000135f DMAdapter I com.ibm.ws.ffdc.impl.DMAdapter getAnalysisEngine FFDC1009I: Analysis Engine using data base: /app/WebSphere/your_server/properties/logbr/ffdc/adv/ffdcdb.xml
[1/6/15 21:15:52:641 EST] 0000135f FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /var/WebSphere/Logs/ffdc/PEGAFSIFSITC1aud4184lS01_4e84c80_15.01.06_21.15.52.1748331668416978344645.txt com.ibm.tx.jta.impl.TransactionImpl.prepareResources 1505
[1/6/15 21:15:52:798 EST] 00001365 RegisteredRes E WTRN0063E: An illegal attempt to commit a one phase capable resource with existing two phase capable resources has occurred.
[1/6/15 21:15:52:800 EST] 00001365 RegisteredRes E WTRN0086I: XAException encountered during prepare phase for transaction 0000014ABEBE567300000001795889644F3BA9983EF15D3C67ADCD1F2A2A0E2A7A264D190000014ABEBE567300000001795889644F3BA9983EF15D3C67ADCD1F2A2A0E2A7A264D1900000001. Local resources follow.
[1/6/15 21:15:52:800 EST] 00001365 JTAResourceBa I WTRN0089I: [email protected]:2ea2957e localTransaction:[email protected] enlisted:trueHas Tran Rolled Back = false registeredForSynctruemcWrapper.hashcode()-385484711: Vote: none.
[1/6/15 21:15:52:800 EST] 00001365 JTAResourceBa I WTRN0089I: [email protected]: Vote: commit.
[1/6/15 21:15:52:801 EST] 00001365 JTAResourceBa I WTRN0089I: [email protected] 7a5f0fd XAResource: [email protected] enlisted: trueHas Tran Rolled Back = false mcWrapper.hashCode()407138843: Vote: commit.
[1/6/15 21:15:52:829 EST] 00001365 FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /var/WebSphere/Logs/ffdc/PEGAFSIFSITC1aud4184lS01_bf503480_15.01.06_21.15.52.8087119009157545383476.txt com.ibm.ejs.csi.TranStrategy.commit 294
[1/6/15 21:15:53:105 EST] 00001365 FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /var/WebSphere/Logs/ffdc/PEGAFSIFSITC1aud4184lS01_bf503480_15.01.06_21.15.52.8433944287192948694629.txt com.ibm.ejs.container.EJSContainer.postInvoke 2326
[1/6/15 21:15:53:127 EST] 00001365 FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /var/WebSphere/Logs/ffdc/PEGAFSIFSITC1aud4184lS01_bf503480_15.01.06_21.15.53.1227337966453151468554.txt com.ibm.ws.ejbcontainer.mdb.MessageEndpointHandler.afterDelivery 1280
[1/6/15 21:15:53:150 EST] 00001365 SibMessage W [:] CWSJY0003W: MQJCA4018: MessageEndpoint afterDelivery() call failed with: 'afterDelivery failure'.

Steps to Reproduce

  1. Update ejb-jar.xml based on the Deployment Descriptor generated on JMS Listener rule.
  2. Package it into an EAR file and deploy it.
  3. Restart the server. 
The listener is listed on WebSphere Application Server.
The message is pushed into the queue and gets picked up. This is confirmed through Trace Open Rule on Service JMS.
It also prints the log message mentioned on the Service Activity.
For simplicity, the complete logic is commented and only the Response message is tagged in the code.
The error message is displayed and the listener shuts downs.

Root Cause



An issue in the custom application code or rules whereby two resources are participating in the Global Transaction, one being XA-enabled and other LocalTransaction.

Resolution



Perform the following two local-changes.

Resolution 1: Enable Last Participant Support (LPS) so that a single one-phase commit resource is used with any number of two-phase commit resources in the same global transaction. 

To do so, set the ACCEPT_HEURISTIC_HAZARD custom property to true in the Integrated Solutions Console and then restart the application server.
 
To enable server-wide LPS, complete these steps:
 
1. Open the Integrated Solutions Console.
2. Click Servers  > Server Types > WebSphere application servers and the server name. The properties page for the application server opens.
3. Under Container Settings, expand Container Services and click Transaction Service. The properties page for the transaction service opens.
4. Under Additional Properties, click Custom properties.
5. On the Custom Properties page, click New and type ACCEPT_HEURISTIC_HAZARD as the Name and TRUE as the Value.
6. Click Apply and Save directly to the master configuration.
7. Restart your application server.

Resolution 2: Set transaction-type to Bean in ejb-jar.xml
 
<message-driven id="MessageDriven_PricingRequestListener">
                                                <description>Message Driven Bean for JMS Listener PricingRequestListener</description>
                                                <ejb-name>PricingRequestListener</ejb-name>
                                                <ejb-class>com.pega.pegarules.internal.etier.mdb.PRJMSListenerBoot</ejb-class>
                                                <transaction-type>Container</transaction-type>
 
Use <transaction-type>Bean</transaction-type> and set UseCMT to "false".
 
The UseCMT environment entry lets PRPC know which engine to pick up and transaction-type is for the application server.

 

Published January 31, 2016 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

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

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us