Hello,
I am using SQL Server 2017 and the Java application uses Hibernate (version 4.3.11) to query the database. The application has a job and multiple jobs can start in parallel which perform some queries on the database tables/views. When I run 10 jobs simultaneously, the jobs take a long time to finish. The SQL Server Management Studio blocking transaction report shows a particular query in the report. When I take a thread dump of JVM, it shows several threads in the same state as below: as can be seen from thread stack trace, they are all stuck in TDSReader.readPacket.
Note: This issue is not always reproducible and is intermittent. When I run less than 10 jobs simultaneously, the issue doesn't occur.
Any help is appreciated on this.
"ImportWorker_94" - Thread t@180
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1782)
at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:4838)
- locked <90e99ee> (a com.microsoft.sqlserver.jdbc.TDSReader)
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:6150)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:402)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
- locked <3b4775e7> (a java.lang.Object)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:116)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2066)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1863)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839)
at org.hibernate.loader.Loader.doQuery(Loader.java:910)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355)
at org.hibernate.loader.Loader.doList(Loader.java:2554)
at org.hibernate.loader.Loader.doList(Loader.java:2540)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370)
at org.hibernate.loader.Loader.list(Loader.java:2365)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:353)
at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1909)
at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:311)
at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:141)
at com.avaya.pim.jdbc.bo.ContactBO.loadCountryCodesForExistingContacts(ContactBO.java:1861)
at com.avaya.pim.dataimport.ImportDsJob.AddContactListToDataBase(ImportDsJob.java:729)
at com.avaya.pim.dataimport.ImportDsJob.fetchContactInBatches(ImportDsJob.java:1295)
at com.avaya.pim.dataimport.ImportDsJob.RunQueuedImportJob(ImportDsJob.java:1619)
at com.avaya.pim.dataimport.ImportDsJob.processImportJob(ImportDsJob.java:1929)
at com.avaya.pim.dataimport.ImportDsJob.processJob(ImportDsJob.java:2308)
at com.avaya.pim.dataimport.ImportManager$ContactListWorker.run(ImportManager.java:159)






