A Message Queue Broker Using JDBC Persistence Does Not Function After the Backend Database is Restarted
Last updated on NOVEMBER 05, 2016
Applies to:Oracle GlassFish Server - Version 2.1 to 3.1.2 [Release 2.1 to 3.1]
Sun Java System Message Queue - Version 3.7u2 and later
Information in this document applies to any platform.
***Checked for relevance on 05-Jun-2012***
***Checked for relevance on 30-Jan-2013***
The Message Queue (MQ) Broker can use a database as its message persistence store instead of its default file based store. In such a configuration, the broker uses JDBC to interact with the database.
The MQ broker uses a default JDBC configuration depending on which vendor's database software is being used. In the case of Oracle and MySQL databases, the default JDBC DataSource chosen is the JDBC driver's ConnectionPoolDataSource implementation.
Unfortunately, when using connections obtained from a ConnectionPoolDataSource, any restart of the database, or a failure of the connection for other reasons, can render the MQ Broker unresponsive.
Therefore, if you find that:
- The MQ Broker is not processing messages, or
- The MQ broker logs (log.txt) contains SQLExceptions or reports errors in performing database updates.
Then, potentially, you may have encountered this problem.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms