cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
6706
Views
28
Helpful
12
Replies

Cisco CVP 11.6 Upgrade, DB (JDBC) integration issue

engremongaber
Level 1
Level 1

I have upgraded our lab CVP to 11.6 and also our SQL server 2014 to SP2 however my JDBC driver stopped working and the error was around SSL connection , I have done some research around that and one of the solutions is to upgrade to JDBC 4.2 but that needs JRE1.8 which I guess not supported with CVP ?

  1. 10.20.105.205.1502839934350.3.faults,08/16/2017 09:32:14.356, The error was: A built-in element encountered an exception of type com.audium.server.AudiumException. Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:f5cd885d-cbb0-42e1-b090-d0b01dc49e43".) The root cause was: java.sql.SQLException: Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:f5cd885d-cbb0-42e1-b090-d0b01dc49e43".)
  2. com.audium.server.AudiumException: A built-in element encountered an exception of type com.audium.server.AudiumException.

at com.audium.server.voiceElement.ActionElementBase.service(ActionElementBase.java:416)

at com.audium.server.controller.Controller.goToAction(Controller.java:4386)

at com.audium.server.controller.Controller.goToElement(Controller.java:4022)

at com.audium.server.controller.Controller.continueCall(Controller.java:3702)

at com.audium.server.controller.Controller.goToElement(Controller.java:4118)

at com.audium.server.controller.Controller.enterVoiceApplication(Controller.java:1896)

at com.audium.server.controller.Controller.newCall(Controller.java:1769)

at com.audium.server.controller.Controller.doPost(Controller.java:943)

at com.audium.server.controller.Controller.doGet(Controller.java:543)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

Caused by: com.audium.server.AudiumException: Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:f5cd885d-cbb0-42e1-b090-d0b01dc49e43".)

at com.audium.server.action.database.DatabaseAction.doAction(DatabaseAction.java:367)

at com.audium.server.voiceElement.ActionElementBase.service(ActionElementBase.java:390)

... 30 more

Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:f5cd885d-cbb0-42e1-b090-d0b01dc49e43".)

at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2293)

at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038)

at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532)

at com.audium.server.action.database.DatabaseAction.doAction(DatabaseAction.java:313)

... 31 more

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:f5cd885d-cbb0-42e1-b090-d0b01dc49e43".

at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2397)

at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1762)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1977)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)

at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)

at org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)

at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:255)

at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2303)

at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2289)

... 34 more

Caused by: java.io.IOException: SQL Server did not return a response. The connection has been closed. ClientConnectionId:f5cd885d-cbb0-42e1-b090-d0b01dc49e43

at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:711)

at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:768)

at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:760)

at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:955)

at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:943)

at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)

at sun.security.ssl.InputRecord.read(InputRecord.java:480)

at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946)

at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)

at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1688)

... 43 more

Thanks Remon

1 Accepted Solution

Accepted Solutions

goujain
Cisco Employee
Cisco Employee

I believe customer is using a custom code which is trying to establish a SSL connection with JDBC which is failing, one of the possible cause could be TLS version, the newer JDBC may not be compatible with older TLS version 1.0/1.1, the Java 1.7 by default support TLS 1.0, creating a SSLContext with TLS 1.2 in the java code can fix the issue.

View solution in original post

12 Replies 12

keglass
Level 7
Level 7

I recommend you also post this to the Cisco Support Community for additional information and feedback from technical experts.

https://supportforums.cisco.com/

I hope this helps.

Kelli Glass

Moderator for Cisco Customer Communities

goujain
Cisco Employee
Cisco Employee

I believe customer is using a custom code which is trying to establish a SSL connection with JDBC which is failing, one of the possible cause could be TLS version, the newer JDBC may not be compatible with older TLS version 1.0/1.1, the Java 1.7 by default support TLS 1.0, creating a SSLContext with TLS 1.2 in the java code can fix the issue.

We are getting the same SSL related error, but there is no custom Java code used.  We have CVP 11.5, UCCE 11.5, sqljdbc4.jar, edited context file as suggested.  Preferrably, we would like to disable SSL altogether.

Hi Jason,

running into the same issue here. Were you able to disable SSL - and if so, could you please share how you did that?

Kind regards,

Juan

I could not fix it so I had to downgrade my sql version to 2014 instead of 2014 sp2

tya main problem is the new version of the jre that supports ssl is not supported with cvp 11.6

Thx, appreciated!

Jre1.7 : did you try this before you downgraded sql, as that is supported by cvp (at least cvp 10.5) and might support the correct ssl version?

I had to upgrade sql to 2014sp2 when upgrading icm from 11.5 to 11.6 (lab where I use the icm db for db lookups)

Sent from my iPhone

You may be hitting CSCvf97245.

Add this to the VXML Service registry -Djdk.tls.client.protocols=TLSv1.2, this should make the service compatbile with TLS 1.2, which may solve your problem.

How do I go about adding this (-Djdk.tls.client.protocols=TLSv1.2) to the registry. I am having the same issue and trying to look for a solution.

 

Caused by: com.audium.server.AudiumException: Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:79d9d48a-6410-4475-a64a-9b60be3cc916".) at com.audium.server.action.database.DatabaseAction.doAction(DatabaseAction.java:367) at com.audium.server.voiceElement.ActionElementBase.service(ActionElementBase.java:390) ... 26 more Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:79d9d48a-6410-4475-a64a-9b60be3cc916".) at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2293) at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038) at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532) at com.audium.server.action.database.DatabaseAction.doAction(DatabaseAction.java:313) ... 27 more Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:79d9d48a-6410-4475-a64a-9b60be3cc916". at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2397) at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1762) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1977) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168) at org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:255) at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2303) at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2289) ... 30 more Caused by: java.io.IOException: SQL Server did not return a response. The connection has been closed. ClientConnectionId:79d9d48a-6410-4475-a64a-9b60be3cc916 at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:711) at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:768) at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:760) at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:955) at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:943) at sun.security.ssl.InputRecord.readFully(InputRecord.java:442) at sun.security.ssl.InputRecord.read(InputRecord.java:480) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355) at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1688) ... 39 more

Bodbol Lyon, I have made this  document, that describes the steps.

Let me know, if it help you, solve your problem.

Question for you Slavr, Once you write an application for DB COnnection, how can I extract the specific data from the XML document received back? If you look below, the only information I need is "Cisco_Voice" and I am unsure how to extract it from the Database Element Result.

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Results><Row><EnterpriseName>Cisco_Voice</EnterpriseName></Row></Results>. <?xml version="1.0" encoding="UTF-8" standalone="no"?><Results><Row><EnterpriseName>Cisco_Voice</EnterpriseName></Row></Results>

We resolved the issue with the following:

We switched to using jtds-1.3.1.jar for the sql driver, and the contents of the context.xml shown below:

<Context>

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<Manager pathname="" />

<Resource name="jdbc/ICM"

auth="Container"

type="javax.sql.DataSource"

driverClassName="net.sourceforge.jtds.jdbc.Driver"

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

url="jdbc:jtds:Sqlserver://[IP Address]:1433/atp_baA;user=cvp;password=whatever;"

/>

</Context>

The actual bug id for this is CSCvg20831

The fix is to go into the CVP server(s) and edit the registry to as follows and RESTART the VXML Server service:

Under "HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node -> Apache Software Foundation -> Procrun 2.0 -> VXMLServer -> Parameters -> Java -> Options"

 

Add "-Djdk.tls.client.protocols=TLSv1.2" to the very end of that data string under options