Một trong những khách hàng của chúng tôi có một vấn đề mới: ứng dụng sẽ dừng lại. Kết xuất chuỗi cho thấy tất cả các luồng đang treo trên mạng IO trong các cuộc gọi JDBC.Kết nối JDBC treo
Chúng tôi/tôi chưa bao giờ thấy các 'mạng IO' này bị treo. Thông thường một máy chậm với các vấn đề DB có hoặc là một) một hoặc hai truy vấn dài hạn hoặc b) một số loại khóa/bế tắc. Trong một trong các trường hợp này, luồng được treo trên các phương thức khác nhau. Tôi chưa bao giờ thấy tất cả hơn 30 chủ đề treo trên mạng IO.
Dưới đây tôi đã bao gồm một đoạn trích từ kết xuất chuỗi. Tất cả chuỗi HTTP đang treo trên cùng một cuộc gọi java.net.SocketInputStream.read
.
Tôi đã nói chuyện với dba và sysadmin của họ. Theo họ 'không có gì thay đổi' trong môi trường gần đây sẽ gây ra vấn đề này.
môi trường db
MSSQL 2005 64-bit Service Pack 2 Driver: sqljdbc.jar: 1,0 809 102
Lưu ý: họ đang chạy một trình điều khiển JDBC cũ. AFAIK họ đã cố nâng cấp từ 1.0 lên trình điều khiển 1.2 nhưng có một số vấn đề khác.
môi trường khác phát
Họ đang chạy cả máy chủ ứng dụng và máy chủ db trong VMWare của VM. Tôi không biết cách thiết lập này ảnh hưởng đến hiệu suất mạng như thế nào.
Rõ ràng đây là ứng dụng duy nhất có vấn đề này. Tôi không biết gì khác về kiến trúc mạng của họ.
Câu hỏi * mọi thông tin chi tiết về vấn đề này? * nếu đó là mạng, mọi bước tiếp theo để phân tích?
Phụ lục A: Trích từ bài viết đổ
Tất cả các kết nối HTTP đang treo trên cùng một phương pháp:
"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)
Tôi đã thấy các nội dung như vậy nếu kết nối đi qua cổng NAT ngớ ngẩn – nos