Consultor Eletrônico



Kbase 21730: SonicMQ: Disconnect of SonicMQ Broker and Oracle Database
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   4/4/2002
SUMMARY:

This Solution applies to SonicMQ Version 4.0 while it is used with an ORACLE Database.

EXPLANATION:

If SonicMQ Broker is configured to be used with an ORACLE Database, while the SonicMQ Broker is running, it requires that the External Database is also running.

By default, the SonicMQ Broker checks every minute whether the related External Database is accessible or not. If the check determines that the Database is not accessible, SonicMQ Broker shuts down and throws exceptions.

The value of the Check can be changed in adding the properties DB_CHECK_INTERVAL in the SonicMQ broker.ini. See the SonicMQ V4 Configuration and Administration Guide, page 84 for more details.

When using an ORACLE Database with SonicMQ, while the SonicMQ Broker is running, the ORACLE Instance and Listener have to be running too.

-- If the ORACLE Instance is not started, SonicMQ Broker will throw the following exceptions:

java.sql.SQLException: Connection reset by peer
at java.lang.Throwable.<init>(Throwable.java:74)
at java.lang.Exception.<init>(Exception.java:38)
at java.sql.SQLException.<init>(SQLException.java:36)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:407)
at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:1395)
atoracle.jdbc.driver.OraclePreparedStatement.close(OraclePreparedStatement.java:1543)aprogress.message.broker.BrokerDatabase.Jo_(BrokerDatabase.java:1483)


-- If the ORACLE Listener is not started, SonicMQ Broker will throw the following exceptions:

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
va)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)
at java.sql.DriverManager.getConnection(DriverManager.java:523)
at java.sql.DriverManager.getConnection(DriverManager.java:152)
at progress.message.db.Database.vR_(:1577)
at progress.message.db.Database.<init>(:233)
at progress.message.db.Database.<init>(:77)
at progress.message.broker.BrokerDatabase.<init>(:373)
at progress.message.broker.AgentRegistrar.<init>(:366)
at progress.message.broker.Broker.<init>(:347)
at progress.message.broker.Broker.main(:243)

SQLException(SQLState=null, errorCode=17002): Io exception: The Network Adapter could not establish the connection
[146] progress.message.broker.EStartupFailure: Problem with database: [2002] progress.message.db.EDatabaseException: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection

SOLUTION:

Start the ORACLE Instance and the ORACLE Listener before re-starting the SonicMQ Broker.


References to Written Documentation:

Sonic Knowledge Base Solution 19440, "SonicMQ: Certified and Supported Platforms and Products"

SonicMQ V4 Configuration and Administration Guide