Support Article
JMS MDB Listener not consuming messages from Queue
SA-3873
Summary
JMS MDB Listener not consuming messages from Queue; on restarting the server, listener is throwing following error.
Error Messages
2014-11-24 19:02:38,268 [ <ip address>] [ STANDARD] [ ] (riv.management.MBeanManagement) INFO - MBean Management (Web) initialized for WebSphere
2014-11-24 19:02:38,327 [ <ip address>] [ STANDARD] [ ] (ervlet.WebAppLifeCycleListener) INFO - Web Tier initialization is complete.
2014-11-24 19:03:44,960 [stenerThreadPool : 0] [ STANDARD] [ ] (.authentication.Authentication) ERROR - Cannot save Data-Admin-Operator-ID instance to database.com.pega.pegarules.pub.database.DatabaseException: Database-Saver-UpdateInsertfail
From: (A4562202178A4A564C1BED8FC8F266626)
SQL: insert into pr_operators (FILEID , PXCREATEDATETIME , PXCREATEOPERATOR , PXCREATEOPNAME , PXCREATESYSTEMID , PXINSNAME , PXOBJCLASS , PXUPDATEDATETIME , PXUPDATEOPERATOR , PXUPDATEOPNAME , PXUPDATESYSTEMID , PYACCESSGROUP , PYALLOWRULECHECKOUT , PYCALENDAR , PYDEFAULTTIMEZONE , PYEXTENSION , PYLABEL , PYLASTSIGNON , PYLICENSETYPE , PYOPAVAILABLE , PYORGANIZATION , PYORGDIVISION , PYORGUNIT , PYPOSITION , PYREPORTTO , PYRULESETNAME , PYUSERIDENTIFIER , PYUSERNAME , PYWORKGROUP , pzInsKey , pzPVStream) values (? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ?)
SQL Inserts: <<null>>**
Caused by SQL Problems.
Problem #1, SQLState 42000, Error code 2049: java.sql.SQLSyntaxErrorException: ORA-02049: timeout: distributed transaction waiting for lock
com.pega.pegarules.pub.database.DatabaseException: Database-Saver-UpdateInsertfail
From: (A4562202178A4A564C1BED8FC8F266626)
SQL: insert into pr_operators (FILEID , PXCREATEDATETIME , PXCREATEOPERATOR , PXCREATEOPNAME , PXCREATESYSTEMID , PXINSNAME , PXOBJCLASS , PXUPDATEDATETIME , PXUPDATEOPERATOR , PXUPDATEOPNAME , PXUPDATESYSTEMID , PYACCESSGROUP , PYALLOWRULECHECKOUT , PYCALENDAR , PYDEFAULTTIMEZONE , PYEXTENSION , PYLABEL , PYLASTSIGNON , PYLICENSETYPE , PYOPAVAILABLE , PYORGANIZATION , PYORGDIVISION , PYORGUNIT , PYPOSITION , PYREPORTTO , PYRULESETNAME , PYUSERIDENTIFIER , PYUSERNAME , PYWORKGROUP , pzInsKey , pzPVStream) values (? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ?)
SQL Inserts: <<null>> **
Caused by SQL Problems.
Problem #1, SQLState 42000, Error code 2049: java.sql.SQLSyntaxErrorException: ORA-02049: timeout: distributed transaction waiting for lock
at com.pega.pegarules.data.internal.access.ExceptionInformation.createExceptionDueToDBFailure(ExceptionInformation.java:196)
at com.pega.pegarules.data.internal.access.DatabasePreparedStatementImpl.addBatch(DatabasePreparedStatementImpl.java:644)
at com.pega.pegarules.data.internal.access.Saver.saveAltOp(Saver.java:1370)
at com.pega.pegarules.data.internal.access.StatementOperationStore.performAltOps(StatementOperationStore.java:136)
at com.pega.pegarules.data.internal.access.DatabasePreparedStatementImpl.addBatch(DatabasePreparedStatementImpl.java:668)
Steps to Reproduce
configure authenticated jms mdb listener & consume message.
Root Cause
There was lock in the pr_operators table and it was held until the all application servers were restartd; restarting one application server did not resolve the problem. JMS MDB Listeners are authenticated. when there are many JMS messages in the queue, all the listeners try to update the pr_operators at the same time; hence the db table level contention.
Resolution
restarting all the application servers resolved the problem.
Published January 31, 2016 - 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.