Oracle "oracle.net.ns.NetException: SO Exception was generated" in EAP/AMQ
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.