2011-10-20 23 views
26

Tôi không biết phải viết cái gì về điều này và quyết định làm điều đó ở đây.Driver.getConnection bị treo bằng cách sử dụng trình điều khiển SQLServer và Java 1.6.0_29

Sau khi loooong thời gian gỡ lỗi chương trình của tôi tôi có thể tìm ra rằng gọi Driver.getConnection (chuỗi, chuỗi, chuỗi) treo sợi chỉ gọi. Tại sao (?), Tôi thực sự không biết, nhưng tôi có thể thấy rằng điều này xảy ra với java 1.6.0_29 và không phải với java 1.6.0_26.

Full môi trường:

  • OS: Thử nghiệm trên cả redhat 6.1 và Windows 2008

  • Driver: MS SQL Server JDBC driver phiên bản 3.0.1301.101

  • Java Phiên bản: 1.6. 0_26 và 1.6.0_29

Như tôi đã từng sử dụng trước đây d nó hoạt động với 1.6.0_26.

Có ai có bất kỳ ý tưởng nào có thể gây ra điều này không? Có thể một số nhà phát triển? : P

Trân trọng,

Rui

+0

Cùng một vấn đề ở đây. Windows 7 x64, JDK 1.6.0_29, SQL Express 2008 R2 (10.50.1790), sử dụng sqljdbc4.jar và nó treo trên getConnection. Trong khi nó làm việc/hoạt động tốt với 1.6.0_24 cho tôi (tôi đã không thử các phiên bản khác được nêu ra, chỉ cần hai.) – EdGruberman

+0

Sao chép với SQL server 2008R2. SQL 2005 & 2008 hoạt động bình thường. – NielsK

+3

Vấn đề được giải quyết trong 1.6.0.30 – Michel

Trả lời

15

tôi gặp phải chính xác hành vi tương tự:

tôi sử dụng cả Oracle XE và MS SQL Server Express trên Windows 7 64bit máy tính của tôi - tôi nâng cấp lên java 1.6.0_29 từ phiên bản 1.6.0_27 (phiên bản x64) và ngạc nhiên khi thấy rằng các chương trình tương tự có thể kết nối với Oracle XE nhưng không phải với MS SQL Server ...

Tôi đã tìm ra sự cố ở javax.sql.DataSource.getConnection() nơi nó đã được treo choeve r - bởi vì đây chỉ là một giao diện, các trình điều khiển jdbc nêu lên sự nghi ngờ của tôi ...

Tôi đang sử dụng MS SQL Server JDBC Driver 3.0.1301.202 và tôi thậm chí cập nhật lên SQL Server CTP ("xem trước kỹ thuật cộng đồng") 4.0.1722.1 vì sự nghi ngờ của tôi là nó phải làm điều gì đó với trình điều khiển jdbc - nhưng không thành công: vẫn treo!

Cách giải quyết của tôi là hạ cấp xuống 1.6.0_27 và - bang: mọi thứ đều ổn!

Trân Erich

+0

Cùng một vấn đề, cùng một công việc xung quanh. –

+0

Tôi cũng đã thêm một Báo cáo Lỗi trên Cơ sở dữ liệu Lỗi Java. Nhưng kể từ khi Oracle tiếp quản, điều này hầu như không hiệu quả. Tôi không nghe thấy bất cứ điều gì trở lại từ Oracle cũng không thể tìm thấy lỗi khác tại thời điểm này ... –

+2

Vì vậy, làm thế nào chính xác làm bạn hạ cấp java xuống 1.6.0_xx trên OSX Lion? – Kimi

1

Tôi có cùng treo vấn đề, và chỉ với java 1.6.0_29. Tôi nhận thấy rằng nếu tôi nâng cấp lên 7.1 vấn đề đi xa

7

sao chép: Vấn đề xảy ra với sự kết hợp của

  • lái xe SQL 2.0
  • lái xe SQL 3.0
  • lái xe SQL 4,0 CTP 3
  • jTDS Trình điều khiển SQL 1.2.5

  • Máy chủ SQL 2008R2

  • Java 1.6.0_29

Thay đổi hoặc SQL phiên bản máy chủ (thử nghiệm trên 2005 & 2008) hoặc phiên bản Java (1.6.0_27, 1.7.0_1), và các vấn đề không xảy ra nữa.

OS Client/Server: Windows 2008R2

Đã thêm vào các Java Bug Database và đang được làm việc trên bởi Oracle.

Đã đăng chéo trên Microsoft MSDN Data Access Forum (câu trả lời được chấp nhận: nâng cấp lên java 7) và Oracle Java JDBC Forums (thông tin được thêm tại đây, cũng được thêm vào Cơ sở dữ liệu lỗi Java).

1

Tôi rất vui vì đã tìm thấy diễn đàn này. Tôi đã gặp vấn đề tương tự khi nâng cấp (tôi thực sự nâng cấp từ 1.6.0_22 lên 1.7.1, sau đó hạ cấp xuống 1.6.0_29, khi sự cố xảy ra.

Một điều nữa tôi đã nhận thấy: nếu tôi sử dụng 1.6.0_29 jre, nó thất bại, nhưng nếu tôi sử dụng 1.6.0_29 jdk, nó hoạt động ... Tôi đã dành khoảng một ngày cố gắng tìm ra lý do tại sao nhật thực (sử dụng jre) bị lỗi trong khi myEclipse (đang sử dụng jdk) đang hoạt động. ?. ...

làm thế nào một lỗi có thể được giới thiệu với một thông cáo cuối như vậy (tôi đang trong quá trình thực hiện một phiên bản sản xuất giới thiệu java)

4

Xem các giải pháp ở đây https://forums.oracle.com/forums/thread.jspa?messageID=9954398&tstart=0 http: // xã hội .Cô dn.microsoft.com/Forums/en/sqldataaccess/thread/97dce8fd-6487-4bca-80b0-492167db3e0d

"Rõ ràng, điều này có liên quan đến việc sử dụng SSL và có thể được giảm nhẹ bằng cách thay thế jsse.jar trong jre/lib với điều đó từ một phiên bản cũ hơn, ví dụ trong bản phát hành 1.6.0_27. Tôi đã bị nhầm lẫn bởi 1.6.0_29 làm việc với MS JDBC và các thiết lập SQL Server '05 cũ hơn mà không làm các kết nối an toàn. Tất cả các máy chủ mới hơn (SQL Server '08 R2) đều thất bại vì chúng yêu cầu SSL và Java 1.6.0_29 không hoạt động bằng cách sử dụng jTDS hoặc MS JDBC trong trường hợp này. "

1

Cùng một vấn đề ở đây (SQLJDBC4, MSSQL 2008 R2, JDK1.6.0.29), nhưng sau khi cập nhật lên 1.6.0.30 vấn đề đã được giải quyết ...

Vì vậy, nó phải là một lỗi nghiêm trọng trong DriverManager của 1.6.0.29

1

Nâng cấp lên 1.6.0_30 cũng wo rked cho tôi. Microsoft đã phát hành a statement thông báo việc sửa chữa trong Q1 2012. Có vẻ như đó là lỗ hổng Java (BEAST).

0

Tôi đã có cùng một vấn đề chính xác nơi jBoss sẽ treo trên driver.getConnection(). Tuy nhiên, tôi đã sử dụng jBoss EAP 5.1, java 1.6.0_37x64, Sql Server 2005 và jtds1.2.5 làm trình điều khiển jdbc của tôi.

Công việc xung quanh tôi phải sử dụng là cài đặt jvm khi khởi động: -Djsse.enableCBCProtection = false và giải quyết được.

Tôi không coi đây là sự khắc phục, nhưng thay vào đó là công việc tại thời điểm này.

Tôi đã tìm thấy lỗi: 7105007 : Microsoft & jTDS JDBC driver broken after update to 1.6.0_29 tương tự, nhưng có nguyên nhân khác. Điều thú vị là nó xuất hiện trên cả trình điều khiển MS và trình điều khiển jtd.

Các vấn đề liên quan