| General |
| Purpose |
Connect/disconnect debug using jdwp protocol |
| Source |
{ORACLE_HOME}/rdbms/admin/dbmsjdwp.sql |
| First Available |
9.0.# |
Constants |
| Name |
Data Type |
Value |
| connect_defer_suspension |
PLS_INTEGER |
1 |
| connect_force_connect |
PLS_INTEGER |
2 |
| connect_string_environment_var |
PLS_INTEGER |
1 |
| connect_string_cookie |
PLS_INTEGER |
2 |
|
| Dependencies |
|
Exceptions |
| Error Code |
Reason |
|
ORA-00022 |
Attempted to disconnect a session other than self |
|
ORA-01031 |
User does not have the DEBUG CONNECT SESSION and DEBUG
ANY PROCEDURE privileges |
|
ORA-30677 |
The requested session is already being debugged |
|
ORA-30681 |
Improper argument was provided for a call to
CONNECT_TCP |
|
ORA-30682 |
Improper value for CONNECT_TCP parameter |
|
ORA-30683 |
Failed to establish a debugger connection |
|
| Security Model |
Execute is granted to PUBLIC |
| |
| CONNECT_TCP |
Connect the specified session to the debugger waiting at host:port
This demo performs added security checks to decide if the debug connection request is granted (for example, by
verifying that the debugger is running on a trusted host)
Note: In 11gR1, and thereafter, an ACL must be created for this call to succeed (see link below) |
dbms_debug_jdwp.connect_tcp(
host IN VARCHAR2,
port IN VARCHAR2,
session_id IN PLS_INTEGER := NULL,
session_serial IN PLS_INTEGER := NULL,
debug_role IN VARCHAR2 := NULL,
debug_role_pwd IN VARCHAR2 := NULL,
option_flags IN PLS_INTEGER := 0,
extensions_cmd_set IN PLS_INTEGER := 128); |
DECLARE
vhost VARCHAR2(40) := 'bigdog.psoug.org';
vport VARCHAR2(10) := '1521';
BEGIN
IF (utl_inaddr.get_host_address(vhost) != '119.168.1.119') THEN
RAISE_APPLICATION_ERROR(-20000, 'debug connection to this host not permitted');
ELSE
dbms_debug_jdwp.connect_tcp(vhost, vport);
END IF;
dbms_debug_jdwp.disconnect;
END;
/ |
| |
| CURRENT_SESSION_ID |
Returns the current session identifier |
dbms_debug_jdwp.current_session_id RETURN PLS_INTEGER; |
SELECT dbms_debug_jdwp.current_session_id
FROM dual; |
| |
| CURRENT_SESSION_SERIAL |
| Returns the current session serial number |
dbms_debug_jdwp.current_session_serial RETURN PLS_INTEGER; |
SELECT dbms_debug_jdwp.current_session_serial
FROM dual; |
| |
| DISCONNECT |
A session cannot yet disconnect another session from a
debugger; it
can only connect or disconnect itself |
dbms_debug_jdwp.disconnect(
session_id IN PLS_INTEGER := NULL,
session_serial IN PLS_INTEGER := NULL); |
|
See CONNECT_TCP Demo Above |
| |
| GET_NLS_PARAMETER |
| Sets the value of the specified NLS parameter
affecting the format in which NUMBER, DATE, TIME (WITH TIME ZONE) and TIMESTAMP (WITH TIME ZONE) |
dbms_debug_jdwp.get_nls_parameter(name IN VARCHAR2) RETURN
VARCHAR2; |
desc nls_session_parameters
SELECT * FROM nls_session_parameters;
SELECT dbms_debug_jdwp.get_nls_parameter('NLS_TIMESTAMP_FORMAT')
FROM dual;
exec dbms_debug_jdwp.set_nls_parameter('NLS_TIMESTAMP_FORMAT','DD-MON-YYYY
HH.MI.SSXFF AM');
SELECT dbms_debug_jdwp.get_nls_parameter('NLS_TIMESTAMP_FORMAT')
FROM dual; |
| |
| PROCESS_CONNECT_STRING |
Undocumented |
dbms_debug_jdwp.process_connect_string(
connect_string IN VARCHAR2,
connect_string_type PLS_INTEGER); |
|
TBD |
| |
| SET_NLS_PARAMETER |
| Sets the value of the specified NLS parameter
affecting the format in which NUMBER, DATE, TIME (WITH TIME ZONE) and TIMESTAMP (WITH TIME ZONE) |
dbms_debug_jdwp.set_nls_parameter(name IN VARCHAR2, value IN
VARCHAR2); |
|
See GET_NLS_PARAMETER Demo Above |