2010-05-20 12 views
5

Tôi có một ứng dụng Java cần được kiểm tra (vì vậy rõ ràng là tôi cần một cách mà ứng dụng có thể được xác định bằng tên ứng dụng). Tôi googled và thấy rằng ojdbc14 có phương pháp .setClientInfo cho phép đăng ký các ứng dụng với một tên tùy chỉnh, vì vậy tôi đang cố gắng để làm cho nó làm việc nhưng tôi nhận được lỗi sau:Cài đặt thông tin khách hàng trong JDBC cho Oracle

Exception in thread "main" java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava/lang/String;Ljava/lang/String;)V

Tôi đang sử dụng ojdbc14 với oracle 10g nhanh . Nếu tôi không đặt dòng:

connection.setClientInfo("ApplicationName","Customers"); 

nó hoạt động khá tốt .... và bằng cách kiểm tra các thông tin kiểm toán tôi có thể thấy oracle mà được tên ứng dụng: OS_program_name = JDBC Thin Client, nhưng tôi cần một cách để thay đổi nó cho một tên tùy chỉnh.

Bằng cách bỏ ghi chú dòng được cho là đặt tên ứng dụng, nó trả về lỗi ở trên.

Mỗi tài liệu hướng dẫn có sẵn cho đối tượng Connection. Bạn có bất kỳ ý tưởng làm thế nào để giải quyết vấn đề này?

Trả lời

9

Đối AbstractMethodError, hãy kiểm tra Why do I get java.lang.AbstractMethodError when trying to load a blob in the db?

Để phân biệt các kết nối của bạn trong Oracle bạn có thể sử dụng mẫu mã này dưới đây:

Properties jdbcProperties = new Properties(); 

this.jdbcProperties.put("user", userName); 
this.jdbcProperties.put("password", password); 
this.jdbcProperties.put("v$session.program", "YourApplicationName"); 
DriverManager.getConnection(url, jdbcProperties); 

sau đó kiểm tra v $ session bằng cách nhóm chống lại cột chương trình cho các kết nối của bạn ..

+0

tôi thực sự đánh giá cao người giúp đỡ của bạn điều này thực sự hữu ích cho tôi ... tôi áp dụng các dòng bạn đã cho tôi và nó hoạt động tốt .... cảm ơn rất nhiều, chân thành. –

+0

Vui mừng khi biết rằng nó hoạt động. Một điều nữa, mã này sẽ không hoạt động khi bạn đang sử dụng url oci để kết nối với db Oracle của bạn. Nó hoạt động chỉ với những url mỏng, tôi không hiểu về điều này. Tại thời điểm này, bạn có thể sử dụng gói DBMS_APPLICATION_INFO để đặt tên mô-đun và hành động để theo dõi các ứng dụng của bạn. – gokhant