I use oracle java stored procedure to read data from MS SQL Server and Advantage Database Server
via JDBC driver.
There are net.sourceforge.jtds.jdbc.Driver for MS SQL and com.extendedsystems.jdbc.advantage.ADSDriver for ADS.
Java code to create connection
public static Connection getConnection(String JDBC_Driver, String JDBC_URL,
String userName, String password, Connection pompa) throws ClassNotFoundException, SQLException, java.util.ServiceConfigurationError, UnsupportedEncodingException {
Class.forName(JDBC_Driver);
try {
String connectionURL = JDBC_URL;
Connection conn = DriverManager.getConnection(connectionURL, userName,
return conn;
}
catch (Exception e) {
return null;
}
}
It worked fine with Oracle 12 and 19. I created connection, got resultset from database and return it in json format to oracle database.
But under Oracle 21 it works unstable, for 50-60% connections I got an error.
For MS SQL:
java.sql.SQLException: Operation timed out
at net.sourceforge.jtds.jdbc.TdsUtil.getSQLException(TdsUtil.java:181)
at net.sourceforge.jtds.jdbc.TdsUtil.getSQLException(TdsUtil.java:160)
at net.sourceforge.jtds.jdbc.TdsConnection.<init>(TdsConnection.java:182)
at net.sourceforge.jtds.jdbc.TdsConnectionJDBC3.<init>(TdsConnectionJDBC3.java:53)
at net.sourceforge.jtds.jdbc.Driver.getConnection(Driver.java:102)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:85)
at java.sql.DriverManager.getConnection(DriverManager.java:721)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at org.wgsoftpro.ads.ADSConnect.getConnection(ADSConnect.java:264)
at org.wgsoftpro.ads.ADSConnect.getConnection2Source(ADSConnect.java:398)
at org.wgsoftpro.ads.ADSConnect.getConnection2Source(ADSConnect.java:334)
at org.wgsoftpro.ads.ADSConnect.readResultSet(ADSConnect.java:172)
at org.wgsoftpro.ads.ADSConnect.readResultSet(ADSConnect.java:252)
at org.wgsoftpro.ads.ADSConnect.getResultSet(ADSConnect.java:91)
at org.wgsoftpro.ads.ADSConnect.getResultSetbyStringID(ADSConnect.java:76)
Caused by: java.net.SocketTimeoutException: Operation timed out
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:91)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:360)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:216)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:198)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:255)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:405)
at java.net.Socket.connect(Socket.java:617)
at java.net.Socket.connect(Socket.java:566)
at java.net.Socket.<init>(Socket.java:462)
at java.net.Socket.<init>(Socket.java:239)
at net.sourceforge.jtds.jdbc.TdsSocket.<init>(TdsSocket.java:182)
at net.sourceforge.jtds.jdbc.TdsConnection.<init>(TdsConnection.java:178)
For ADS:
com.extendedsystems.jdbc.advantage.ADSException: [iAnywhere Solutions][Advantage JDBC]Operation timed out
at com.extendedsystems.jdbc.advantage.n.<init>(Unknown Source)
at com.extendedsystems.jdbc.advantage.ADSConnection.<init>(Unknown Source)
at com.extendedsystems.jdbc.advantage.ADSDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:721)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at org.wgsoftpro.ads.ADSConnect.getConnection(ADSConnect.java:264)
at org.wgsoftpro.ads.ADSConnect.getConnection2Source(ADSConnect.java:398)
at org.wgsoftpro.ads.ADSConnect.getConnection2Source(ADSConnect.java:334)
at org.wgsoftpro.ads.ADSConnect.readResultSet(ADSConnect.java:172)
at org.wgsoftpro.ads.ADSConnect.readResultSet(ADSConnect.java:252)
at org.wgsoftpro.ads.ADSConnect.getResultSet(ADSConnect.java:91)
at org.wgsoftpro.ads.ADSConnect.getResultSetbyStringID(ADSConnect.java:76)
So the reason is the same ‘Operation timed out’ and time to time it works.
When I try to do the same by the simple java application from the Oracle server machine, it works without any problem. Tried to change java version in Oracle database, but it did not help