Khi ứng dụng của tôi kết nối với cơ sở dữ liệu Oracle, tôi muốn có thể xem bằng cách xem các phiên hoạt động trong cơ sở dữ liệu mà nó được kết nối. Hiện tại nó tự xác định là "JDBC Thin Client" vì đó là trình điều khiển tôi đang sử dụng, nhưng các ứng dụng dựa trên Java khác mà tôi có bằng cách nào đó có thể đặt giá trị này thành một cái gì đó có ý nghĩa hơn, như "SQL Developer". Tôi nghĩ rằng đó là tài sản của Connection
hoặc OracleDataSource
, nhưng tôi đã không quản lý để tìm một tài sản nào thực hiện thủ thuật. Điều này có thể không? Trong trường hợp nó quan trọng, tôi đang sử dụng Java 1.5, với Oracle 10g và trình điều khiển mỏng 10g.Làm cách nào để làm cho ứng dụng Java của tôi tự nhận dạng được với Oracle khi kết nối?
Trả lời
java.util.Properties props = new java.util.Properties();
props.setProperty("password","mypassword");
props.setProperty("user","myusername");
props.put("v$session.osuser", System.getProperty("user.name").toString());
props.put("v$session.machine", InetAddress.getLocalHost().getCanonicalHostName());
props.put("v$session.program", "My Program Name");
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
Connection conn=
DriverManager.getConnection("jdbc:oracle:thin:@myhostname:1521:mysid", props);
SQL>select username,osuser,program,machine
from v$session
where username = 'ROB';
USERNAME OSUSER PROGRAM MACHINE
--------- ----------- ------------------ -----------
ROB rmerkw My Program Name machine
Ở cấp độ ứng dụng mà bạn có thể sử dụng các phương pháp sau đây để thiết lập client_info, mô-đun và hành động trong v $ session:
dbms_application_info.set_client_info
dbms_application_info.set_module
dbms_application_info.set_action
Bạn cần xác định thuộc tính kết nối v$session.program
trong nguồn dữ liệu của mình, sao cho thuộc tính đó sẽ được thêm vào mỗi kết nối. Làm thế nào bạn làm điều đó phụ thuộc vào việc thực hiện nguồn dữ liệu của bạn. Giá trị bạn đặt thuộc tính sẽ xuất hiện trong bảng phiên hoạt động của oracle.
Đây là một lso một hàm Oracle:
dbms_application_info.set_client_info('Client Info');
đặt cột ClientInfo trong phiên $.
Điều này có thể hữu ích nếu bạn chỉ có quyền truy cập vào Kết nối thay vì DataSource hoặc DriverManager cơ bản.
Kể từ oracle jdbc 12.1 bạn có thể đặt một số giá trị khách hàng-info qua api jdbc, tức là bạn có thể làm
connection.setClientInfo("OCSID.CLIENTID", "MyClientId");
đối với tài sản OCSID ...
HÀNH ĐỘNG, ClientId, ECID, MODULE, chuỗi số sequence_number và DBOP
Xem https://docs.oracle.com/database/121/JJDBC/jdbcvers.htm#JJDBC29006
Setting CHƯƠNG TRÌNH không hoạt động theo cách này, bạn có thể làm điều đó như mô tả trong câu trả lời chấp nhận hoặc dễ dàng hơn một chút bằng cách thiết lập thuộc tính hệ thống "oracle.jdbc.v $ session.program".
- 1. Cách tự động kết nối lại hồ bơi kết nối Oracle sau khi ngắt kết nối?
- 2. Làm cách nào để kết nối giao diện người dùng Java của tôi với ứng dụng JPL Prolog?
- 3. Java trên máy Mac: Làm cách nào để phát hiện khi nào ứng dụng của tôi nhận được tiêu điểm?
- 4. Làm thế nào để kết nối trong java như SYS với Oracle?
- 5. Oracle: Làm cách nào để nhận được số thứ tự của hàng được chèn vào?
- 6. Làm cách nào để kết nối với mysql bằng java?
- 7. Làm cách nào để liên kết tên miền của tôi với các ứng dụng AWS?
- 8. Tôi làm cách nào để kiểm tra các kết nối được gộp trong SQLAlchemy trước khi giao cho mã ứng dụng của tôi?
- 9. Tôi làm cách nào để sử dụng API JAVA Facebook trong ứng dụng của mình?
- 10. Làm thế nào để bạn sử dụng telnet để kiểm tra kết nối với Oracle?
- 11. Làm cách nào để tôi hủy một khoảng cách được kết nối với UIButton
- 12. Làm thế nào để kết nối với Oracle sử dụng JRuby & JDBC
- 13. Làm cách nào để triển khai Liên kết Liên kết đến ứng dụng web của tôi?
- 14. Làm thế nào để kết nối facebook với ứng dụng java desktop
- 15. jvisualvm - tự động (JMX) kết nối lại với ứng dụng?
- 16. Java HttpURLConnection không kết nối khi tôi gọi kết nối()
- 17. Làm cách nào để nhận được chức năng tương tự như Spy ++ trong ứng dụng C# của tôi?
- 18. Làm cách nào để xem thông báo lỗi cho ứng dụng Java của tôi?
- 19. Kết nối C# với Oracle
- 20. Kết nối với Oracle DB bằng cách sử dụng Ruby
- 21. Làm thế nào tôi có thể giữ cho Oracle SQL Developer đóng kết nối DB?
- 22. Làm cách nào để kiểm tra kết nối bị hỏng của TCPClient sau khi được kết nối?
- 23. Kết nối với Oracle bằng cách sử dụng PHP
- 24. Làm cách nào để người dùng ứng dụng biết kết nối được thực hiện qua SSL?
- 25. Làm cách nào để nhận được sessionID (Express) cho kết nối websocket
- 26. Làm cách nào để loại bỏ các quy trình con Java khi ứng dụng Java của tôi thoát/bị treo?
- 27. Làm cách nào để kết nối với Máy chủ SQL 64 bit của tôi bằng ODBC?
- 28. Định dạng chuỗi URL để kết nối với cơ sở dữ liệu Oracle với JDBC
- 29. Làm cách nào để kết nối an toàn ứng dụng Backbone.js với cơ sở dữ liệu?
- 30. Facebook access_token: làm thế nào để nhận được nó khi người dùng chấp nhận ứng dụng của tôi?
Bạn đang hy vọng phân biệt giữa các ứng dụng khi xem các phiên hoạt động? –