Oracle "oracle.net.ns.NetException: SO Exception was generated" in EAP/AMQ

Solution Verified - Updated -

Issue

  • When using RAC JDBC-connection-url in broker.xml
<jdbc-connection-url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521)))(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xxxx)))</jdbc-connection-url> 

we get error messages and the broker cannot access the database:

2024-03-22 14:33:35,278 ERROR [org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager] Unable to setup a NodeId on the JDBC shared state: java.sql.SQLException: Cannot create PoolableConnectionFactory (IO Error: SO Exception was generated)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:669) [commons-dbcp2-2.7.0.redhat-00001.jar:2.7.0.redhat-00001]
                        :
Caused by: java.sql.SQLRecoverableException: IO Error: SO Exception was generated
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:774) [ojdbc8.jar:12.2.0.1.0]
    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688) [ojdbc8.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39) [ojdbc8.jar:12.2.0.1.0]
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:691) [ojdbc8.jar:12.2.0.1.0]
    at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55) [commons-dbcp2-2.7.0.redhat-00001.jar:2.7.0.redhat-00001]
    at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355) [commons-dbcp2-2.7.0.redhat-00001.jar:2.7.0.redhat-00001]
    at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115) [commons-dbcp2-2.7.0.redhat-00001.jar:2.7.0.redhat-00001]
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) [commons-dbcp2-2.7.0.redhat-00001.jar:2.7.0.redhat-00001]
    ... 18 more
Caused by: oracle.net.ns.NetException: SO Exception was generated
    at oracle.net.resolver.AddrResolution.resolveAddrTree(AddrResolution.java:780) [ojdbc8.jar:12.2.0.1.0]
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:510) [ojdbc8.jar:12.2.0.1.0]
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:660) [ojdbc8.jar:12.2.0.1.0]
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:286) [ojdbc8.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1438) [ojdbc8.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:518) [ojdbc8.jar:12.2.0.1.0]
    ... 25 more

It seems the broker cannot handle this failover JDBC connection string were two database servers are configured. Please can you tell me how to configure database failover in broker.xml to connect to an Oracle database cluster with two database servers?

Environment

  • Red Hat AMQ
    • 7.x
  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 7.x
  • Oracle 12 RAC

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content