cancel
Showing results for 
Search instead for 
Did you mean: 

MS sqlserver - Connection Reset issue

Former Member
0 Kudos

Hi All, I am setting up Hybris server environment, and getting 'connection reset' exception often in the log. Hybris version - 5.7.0.2. Database is MS Sqlserver. Below is the param in local.properties. DB is in intranet.

 db.url=jdbc:sqlserver://10.14.17.5:1433;databaseName=hybrisqadb;responseBuffering=adaptive;loginTimeout=100;encrypt=false
 db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
 db.username=hybrisqa
 db.password=c1Zc01Cs9

Below is in 'jgroups-tcp.xml'

 <JDBC_PING connection_driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
         connection_password="c1Zc01Cs9"
         connection_username="hybrisqa"                connection_url="jdbc:sqlserver://10.14.17.5:1433;databaseName=hybrisqadb;responseBuffering=adaptive;loginTimeout=100;encrypt=false"/>


Below is the snapshot of the exception. Thanks in advance.



 *INFO   | jvm 1    | main    | 2016/01/05 00:14:42.702 | ERROR [Timer-2,hybris-broadcast,hybrisnode-1] [JDBC_PING] Could not open connection to database
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 | com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset ClientConnectionId:881d280f-19ce-4fc4-9423-144dda44191f
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1884)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1868)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.TDSChannel.write(IOBuffer.java:1855)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.TDSWriter.flush(IOBuffer.java:4215)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(IOBuffer.java:4116)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(IOBuffer.java:3122)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7127)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7113)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:3294)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2511)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:42)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2497)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6703)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1929)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1540)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1204)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1040)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:554)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1019)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at java.sql.DriverManager.getConnection(DriverManager.java:664)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at java.sql.DriverManager.getConnection(DriverManager.java:247)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.JDBC_PING.getConnection(JDBC_PING.java:158)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.JDBC_PING.writeToFile(JDBC_PING.java:240)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.FILE_PING.fetchClusterMembers(FILE_PING.java:73)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.Discovery.sendDiscoveryRequest(Discovery.java:263)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.Discovery.findMembers(Discovery.java:227)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.Discovery.findAllViews(Discovery.java:214)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.Discovery.down(Discovery.java:551)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.FILE_PING.down(FILE_PING.java:101)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.MERGE2$FindSubgroupsTask.findAllViews(MERGE2.java:351)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.MERGE2$FindSubgroupsTask._findAndNotify(MERGE2.java:286)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.MERGE2$FindSubgroupsTask.findAndNotify(MERGE2.java:274)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.protocols.MERGE2$FindSubgroupsTask$1.run(MERGE2.java:247)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.util.TimeScheduler2$RecurringTask.run(TimeScheduler2.java:561)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.util.TimeScheduler2$MyTask.run(TimeScheduler2.java:493)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.util.TimeScheduler2$Entry.execute(TimeScheduler2.java:398)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at org.jgroups.util.TimeScheduler2$1.run(TimeScheduler2.java:258)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 |         at java.lang.Thread.run(Thread.java:745)
 INFO   | jvm 1    | main    | 2016/01/05 00:14:42.703 | ERROR [Timer-2,hybris-broadcast,hybrisnode-1] [JDBC_PING] Failed to store PingData in database
 INFO   | jvm 1    | main    | 2016/01/05 00:14:43.213 |
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.190 | ERROR [Timer-3,hybris-broadcast,hybrisnode-1] [JDBC_PING] Could not open connection to database
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 | com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset ClientConnectionId:27ebcf00-94d8-417b-9596-93183575f75b
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1884)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1868)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.TDSChannel.write(IOBuffer.java:1855)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.TDSWriter.flush(IOBuffer.java:4215)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(IOBuffer.java:4116)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(IOBuffer.java:3122)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7127)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7113)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:3294)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2511)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:42)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2497)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6703)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1929)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1540)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1204)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1040)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:554)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1019)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at java.sql.DriverManager.getConnection(DriverManager.java:664)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at java.sql.DriverManager.getConnection(DriverManager.java:247)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at org.jgroups.protocols.JDBC_PING.getConnection(JDBC_PING.java:158)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at org.jgroups.protocols.JDBC_PING.writeToFile(JDBC_PING.java:240)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at org.jgroups.protocols.FILE_PING$WriterTask.run(FILE_PING.java:257)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at org.jgroups.util.TimeScheduler2$RecurringTask.run(TimeScheduler2.java:561)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at org.jgroups.util.TimeScheduler2$MyTask.run(TimeScheduler2.java:493)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at org.jgroups.util.TimeScheduler2$Entry.execute(TimeScheduler2.java:398)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at org.jgroups.util.TimeScheduler2$1.run(TimeScheduler2.java:258)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 |         at java.lang.Thread.run(Thread.java:745)
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.191 | ERROR [Timer-3,hybris-broadcast,hybrisnode-1] [JDBC_PING] Failed to store PingData in database
 INFO   | jvm 1    | main    | 2016/01/05 00:16:30.696 |*


Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Thank you Simon. How can i disable jdbc_ping ? I didn't include any additional param to enable it. I found that, 5.7.0.2 is using it by default. Any idea ? One more additional info. When I enable verbose for ssl communication using the jvm param ' -Djavax.net.debug=ssl:handshake:verbose' , I get the below info in the log.

 INFO   | jvm 3    | main    | 2016/01/05 17:28:41.295 | ESC[m
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, WRITE: TLSv1 Application Data, length = 352
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, handling exception: java.net.SocketException: Connection reset
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | %% Invalidated:  [Session-206, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA]
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, SEND TLSv1 ALERT:  fatal, description = unexpected_message
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, WRITE: TLSv1 Alert, length = 32
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, Exception sending alert: java.net.SocketException: Broken pipe
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, called closeSocket()
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, called close()
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | hybrisHTTP31, called closeInternal(true)
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.437 | ESC[0;33mWARN  [hybrisHTTP31] [10.16.4.39] [RedirectWhenSystemIsNotInitialize
 dFilter] System is NOT initialized. Redirect processing.
 INFO   | jvm 3    | main    | 2016/01/05 17:29:05.947 | ESC[m
 INFO   | jvm 3    | main    | 2016/01/05 17:29:07.267 | ESC[0;31mERROR [hybrisHTTP10] [Registry] cannot activate tenant <<master>> si
 nce its database connection is currently lost

NiveditaPDixit
Explorer
0 Kudos

Hi, Instead of JDBC_PING , you can use TCP_PING . You need to remove the JDBC_PING in jgroups-tcp.xml and use as below instead of JDBC_PING

xx.xx.xx.x represents the IP address of the cluster member num_initial_members should be the count of members in your cluster

Former Member
0 Kudos

Erm. Why are you using JDBC_PING? I do hope that you have a very very simple server setup, because using a database to mediate what should be simple UDP or TCP packets sent very, very frequently, is going to slow down the whole environment under any kind of load. If you are trying to use it to trigger auditing of some kind, there are far better ways.

As to your specific question, afaik JDBC_PING doesn't like the use of the ; character in a connection string which might be the root of your problem. You may be better to use datasource_jndi_name parameter and set up the connection details in the app server configuration. Or use the OOTB UDP Multicast. Or if you can't use that, use Unicast and specify the IP addresses of the other servers in the network. But really, using the DB for cache invalidations in JGroups is not the way to go.