Problem:
we were forced to update JDBC library for denodo Denodo is a leader in data management due to SSL communication. Unfortunately, tests that were using JDBC connection stops to work.
Test is cycling thru some test data and send requests using JDBC to denodo. This test was OK before we change JDBC driver to newest one.
After some time(no of cycles) test stops - no sign that it’s running in console, log shows just Connection timed out. Most strange thing is that Log viewer just stops showing anything right after the start where script opens connection to Denodo.
What Was tested:
I adapt whole script to be able to run as pure Groovy script and it worked as intended.
Execution from command line fails too.
I suspect:
that there is some collision in libraries that are used by Katalon Studio and new JDBC driver.
I need help:
I need help to focus down which libraries are colliding so i can talk to Denodo/Katalon dev teams to try to fix this issue. Any idea how to log on lower level (or where can i find those logs) is much appreciated.
Windows 7 enterprise
ANY Katalon Studio version (5.9.0-5.10.1)
Katalon Studio logs
Wed Jan 23 13:29:50 CET 2019
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673)
at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1199)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1334)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1309)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:259)
at com.kms.katalon.application.utils.ServerAPICommunicationUtil.sendAndReceiveData(ServerAPICommunicationUtil.java:220)
at com.kms.katalon.application.utils.ServerAPICommunicationUtil.invoke(ServerAPICommunicationUtil.java:115)
at com.kms.katalon.application.utils.ServerAPICommunicationUtil.post(ServerAPICommunicationUtil.java:47)
at com.kms.katalon.tracking.service.TrackingApiService.post(TrackingApiService.java:24)
at com.kms.katalon.tracking.service.TrackingService.sendEventPayload(TrackingService.java:41)
at com.kms.katalon.tracking.service.TrackingService.lambda$0(TrackingService.java:25)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Wed Jan 23 13:29:50 CET 2019
Cannot send request, retry to send.
Connect function is implemented like this:
@Keyword
def connect(String URI, String userName, String userPwd){
System.setProperty("javax.net.ssl.keyStore", "C:/Users/XXXX/src/katalon/YYY/ZZZ/keys/keystore.jks")
System.setProperty("javax.net.ssl.keyStorePassword", "********")
System.setProperty("javax.net.ssl.trustStore", "C:/Users/XXXX/src/katalon/YYYY/ZZZ/keys/keystore.jks")
System.setProperty("javax.net.ssl.trustStorePassword", "********")
try {
Class.forName("com.denodo.vdp.jdbc.Driver")
} catch (ClassNotFoundException e) {
e.printStackTrace()
return
}
try {
connection = DriverManager.getConnection(URI, userName, userPwd)
} catch (Exception e) {
e.printStackTrace()
return
}
if (connection != null) {
} else {
println("Failed to make connection!")
}
return connection
}
script:
CustomKeywords.'com.swre.rmis_denodo_train.connect'(GlobalVariable.denodoJdbcUrl,
GlobalVariable.denodoUsername,
GlobalVariable.denodoPassword)
def r = 1
while (r < 100){
println "********************** cycle: ${r}"
r++
}
CustomKeywords.'com.swre.rmis_denodo_train.close'()
just to add - connection to Denodo is successful, also i can execute queries.