use*_*150 5 sql-server database-connection jdbc
我们的一位客户有一个新问题:应用程序停止运行.线程转储显示JDBC调用中所有线程都挂在网络IO上.
我们/我从未见过这些"网络IO".通常,具有DB问题的慢速机器具有a)一个或两个长时间运行的查询或b)某种类型的锁定/死锁.在任何一种情况下,线程都会"挂起"在不同的方法上.我从未见过所有30多个线程挂在网络IO上.
下面我已经包含了一个来自线程转储的摘录.所有HTTP线程都挂在同一个java.net.SocketInputStream.read调用上.
我和他们的dba和系统管理员交谈过.据他们说,最近在环境中"没有任何改变"会导致这个问题.
数据库环境
MSSQL 2005 64位Service Pack 2驱动程序:sqljdbc.jar:1.0 809 102
注意:它们正在运行较旧的jdbc驱动程序.AFAIK他们尝试从1.0升级到1.2驱动程序,但还有其他一些问题.
其他环境问题
他们在VMWare VM中同时运行应用服务器和数据库服务器.我不知道这种设置如何影响网络性能.
显然这是唯一具有此问题的应用程序.我对他们的网络架构一无所知.
问题 *有关此问题的任何见解?*如果是网络,任何后续分析步骤?
附录A:摘自线程转储
所有HTTP连接都挂在同一个方法上:
"TP-Processor31" daemon prio=5 tid=0x04085b78 nid=0x970 runnable [0x0764d000..0x0764fd6c]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.sendCommand(Unknown Source)
- locked (a com.microsoft.sqlserver.jdbc.DBComms)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
小智 8
我们遇到过类似的问题,并将它们追溯到一个有缺陷的JDK更新(1.6.29).
我们下载了27年6月1日(http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u27-oth-JPR),重新设置JAVA_HOME环境,我们又回到了正轨.
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |