Notifications

12127 views

Description

Symptoms

Issue 1:

06/17/19 11:57:02 (149) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 Worker starting: JDBCProbe source: c9bb7ee2db09ff002cc2105f68961923
06/17/19 11:57:03 (040) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 Waiting for connection semaphore
06/17/19 11:57:03 (040) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 Obtained connection semaphore
06/17/19 11:57:03 (149) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 SEVERE *** ERROR *** java.sql.SQLRecoverableException: IO Error: Connection reset
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:467)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
java.sql.DriverManager.getConnection(DriverManager.java:664)
java.sql.DriverManager.getConnection(DriverManager.java:208)
com.service_now.mid.connections.jdbc.JDBCConnection.establishConnection(JDBCConnection.java:102)
com.service_now.mid.connections.jdbc.JDBCConnection.connect(JDBCConnection.java:74)
com.service_now.mid.connections.jdbc.JDBCConnectionFactory.create(JDBCConnectionFactory.java:65)
com.service_now.mid.connections.ConnectionCachePool.getAvailableConnection(ConnectionCachePool.java:82)
com.service_now.mid.connections.ConnectionCache.get(ConnectionCache.java:94)
com.service_now.mid.probe.JDBCProbe.getJDBCConnection(JDBCProbe.java:769)
com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:117)
com.service_now.mid.probe.AProbe.process(AProbe.java:96)
com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:125)
com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)

06/17/19 11:57:03 (149) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 Detect JDBCConnection interrupted. Retry: 1 of 3
06/17/19 11:57:04 (149) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 Waiting for connection semaphore
06/17/19 11:57:04 (149) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 Obtained connection semaphore
06/17/19 11:57:04 (196) Worker-Standard:JDBCProbe-fb12d7d6db8e37402cc2105f689619d2 SEVERE *** ERROR *** java.sql.SQLRecoverableException: IO Error: Connection reset

Issue 2:


java.sql.SQLException: IO Error: An existing connection was forcibly closed by the remote host. Connection lapse 31 ms. Authentication lapse 0 ms.

Release

This issue was seen on London with Oracle JDBC connection but can happen on other ServiceNow releases with Oracle JDBC as well.

Cause

Issue 1:

This connection reset error was caused by an incompatibility between the Oracle server and the JDBC driver used.

Issue 2:

The connection was forcibly closed because the Connection URL used to connect to the Oracle server via the MID Server was missing required parameters

Resolution

Issue 1:

The JRE installed with the London Mid Server was using the ojdbc6.jar file. The 'connection reset' error no longer happens with the ojdbc8.jar.

Issue 2:

To change the connection URL parameters, go to your datasource record and right click on the header and chose Configure > Form Layout. Add the Connection URL field to your form. While the Connection URL is automatically created from the content of Format, Database Name, and Database Port and Server, you can overwrite this default connection URL with any required connection string that your database administrators provided. For example:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=myOracle)(PORT=9999))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORADATA))) 

instead of

jdbc:oracle:thin:@myOracle:9999:ORADATA

Additional Information

It is most helpful to involve the database administrators to determine which JAR and connection string to use.

Article Information

Last Updated:2020-06-15 01:32:58
Published:2020-06-04