Недавно я обновил драйвер JConn2 Sybase до JConn4. Мой код Java jdbc неоднократно вызывает proc. Каждый вызов в ~ 1000 раз медленнее с JConn4. JConn2 среднее значение составляет ~ 2 мс. С JConn4 это ~ 2 с.
Процесс вызывается через CallableStatement.
Кто-нибудь знает, есть ли какие-либо свойства соединения, которые изменились с JConn4, которые, возможно, необходимо установить, чтобы устранить эту проблему производительности?
Это среда Linux.
Я взял дамп потока, и все, что я вижу, это следы, подобные этому:
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.sybase.jdbc4.timedio.RawDbio.reallyRead(RawDbio.java:404)
at com.sybase.jdbc4.timedio.Dbio.doRead(Dbio.java:257)
at com.sybase.jdbc4.timedio.InStreamMgr.readIfOwner(InStreamMgr.java:583)
at com.sybase.jdbc4.timedio.InStreamMgr.doRead(InStreamMgr.java:319)
at com.sybase.jdbc4.tds.TdsProtocolContext.getChunk(TdsProtocolContext.java:622)
at com.sybase.jdbc4.tds.PduInputFormatter.readPacket(PduInputFormatter.java:239)
at com.sybase.jdbc4.tds.PduInputFormatter.read(PduInputFormatter.java:72)
at com.sybase.jdbc4.tds.TdsInputStream.read(TdsInputStream.java:91)
at com.sybase.jdbc4.tds.TdsInputStream.readUnsignedByte(TdsInputStream.java:124)
at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:2912)
at com.sybase.jdbc4.jdbc.ResultGetter.nextResult(ResultGetter.java:78)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:293)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:275)
at com.sybase.jdbc4.jdbc.SybStatement.executeLoop(SybStatement.java:2827)
at com.sybase.jdbc4.jdbc.SybCallableStatement.execute(SybCallableStatement.java:244)