202 DBMS_USERDIAG
DBMS_USERDIAG
パッケージを使用すると、PDBに対して限定された一連の診断操作を実行できます。
この章のトピックは、次のとおりです:
クラウドでトレースを有効にするには、Autonomous DatabaseでのSQLトレースの実行に記載されている追加の構成が必要です。
202.1 DBMS_USERDIAGの概要
DBMS_USERDIAG
パッケージは診断用であり、PDB内でトレースを設定できます。
DBMS_USERDIAG
パッケージは、DBMS_SYSTEM
機能の下で利用されますが、任意のイベント設定を制限する限定された一連の定義を使用します。
指定したPDBについて、DBMS_USERDIAG
パッケージでは次のことができます。
- 指定したレベルでSQLトレースを有効にします。
- SQLトレースを無効にします。
- SQLトレースをチェックします。
通常の診断メカニズムのほとんどは、ロックダウン・プロファイルを使用して、指定したPDBの外部で制限されているため、クラウド・インスタンスのCBDデプロイメントで共有テナンシのユーザー・セッションから任意のイベントを有効にすることはできません。特に、"alter session set events
"文は、コードパスの実行を変更したり、エラーをシミュレートする可能性のあるイベント/アクションを設定するために悪用されることがあるため、クラウド・デプロイメントではブロックされています。
202.2 DBMS_USERDIAGサブプログラムの要約
DBMS_USERDIAG
パッケージでは、ENABLE_SQL_TRACE_EVENT
およびCHECK_SQL_TRACE_EVENT
サブプログラムを使用して、sql_trace
イベントを有効化、無効化および監視します。
表202-1 DBMS_USERDIAGパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
CHECK_SQL_TRACE_EVENTプロシージャ |
現在の |
ENABLE_SQL_TRACE_EVENTプロシージャ |
ユーザー・セッションにおいて指定された |
GET_CALL_ERROR_MSGファンクション |
|
GET_CALL_STATUSファンクション |
|
SET_EXCEPTION_MODEプロシージャ |
エラーに対して例外を生成するか、同じものをサイレントで無視します(デフォルト)。 |
SET_TRACEFILE_IDENTIFIERプロシージャ |
現在のADRホームのアクティブなトレース・ファイルについてカスタム・トレース・ファイル識別子を設定します。 |
TRACEプロシージャ |
トレース・ファイルまたはアラート・ログへのメッセージをトレースします。 |
202.2.1 CHECK_SQL_TRACE_EVENTプロシージャ
このプロシージャは、現在のユーザーが現在のsql_trace
イベントをチェックし、そのレベルを取得するために使用できます。
構文
DBMS_USERDIAG.CHECK_SQL_TRACE_EVENT(
sql_id IN VARCHAR2 DEFAULT NULL
sys IN BINARY_INTEGER DEFAULT NULL
level OUT BINARY_INTEGER);
パラメータ
表202-2 CHECK_SQL_TRACE_EVENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
必須。 |
|
指定された |
|
オプション。イベントをインスタンス全体またはPDB全体に設定します。デフォルトは0です。これは現在無視されます。 |
202.2.2 ENABLE_SQL_TRACE_EVENTプロシージャ
このプロシージャは、ユーザー・セッションにおいて指定されたlevel
でsql_trace
イベント(sql_trace/10046
)を有効にし、それぞれのプロセス・トレース・ファイルにSQLトレースを生成します。
オプションでsql_id
も指定でき、この場合は、そのsql_id
のみについてトレースが有効になります。デフォルトでは、SQLの範囲なしでイベントが有効になります。デフォルトでは、現在のセッションのみでイベントが設定されます。イベントを無効にするには、disable
をゼロ以外の値に設定します(デフォルトはゼロです)。
構文
DBMS_USERDIAG.ENABLE_SQL_TRACE_EVENT(
level IN BINARY_INTEGER DEFAULT 1,
sid IN BINARY_INTEGER DEFAULT 0,
ser IN BINARY_INTEGER DEFAULT 0,
binds IN BINARY_INTEGER DEFAULT 0,
waits IN BINARY_INTEGER DEFAULT 0,
plan_stat IN VARCHAR2 DEFAULT NULL,
sql_id IN VARCHAR2 DEFAULT NULL,
disable IN BINARY_INTEGER DEFAULT 0,
sys IN BINARY_INTEGER DEFAULT 0);
パラメータ
表202-3 ENABLE_SQL_TRACE_EVENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
オプション。 |
|
オプション。ターゲット・セッション識別子。
|
|
オプション。ターゲットのシリアル番号。 |
|
オプション。ゼロ以外の値を指定すると、バインド値がトレースされます。レベル4にマップします。 |
|
オプション。ゼロ以外の値を指定すると、待機がトレースされます。レベル8にマップします。 |
|
オプション。指定可能な値: |
|
指定された |
|
オプション。ゼロ以外の値を指定すると、すでに設定されている |
|
オプション。イベントをインスタンス全体またはPDB全体に設定します。デフォルトは0です。 |
202.2.3 GET_CALL_ERROR_MSGファンクション
このファンクションは、DBMS_USERDIAG
APIへの最後のコールでエラーが戻された場合にエラー・メッセージを取得するために使用します。
構文
DBMS_USERDIAG.GET_CALL_ERROR_MSG RETURN VARCHAR2;
戻り値
DBMS_USERDIAG
への前のコールが失敗した場合、VARCHAR2
には、関連付けられているエラー・メッセージが含まれます。
DBMS_USERDIAG
への前のコールが成功した場合、戻される値はNULL
です。
202.2.4 GET_CALL_STATUSファンクション
このファンクションは、DBMS_USERDIAG
APIへの最後のコールのステータスを取得するために使用します。
構文
DBMS_USERDIAG.GET_CALL_STATUS RETURN NUMBER;
戻り値
DBMS_USERDIAG
APIへの最後のコールのステータスを示す数値を戻します。
前のコールが成功した場合、このコールの値はNOERROR(0)
です。
前のコールが失敗した場合、このコールの値はエラー・コード番号です。
202.2.5 SET_EXCEPTION_MODEプロシージャ
このプロシージャは、エラーに対して例外を生成するか、同じものをサイレントで無視します(デフォルト)。
構文
DBMS_USERDIAG.SET_EXCEPTION_MODE(
exc_mode IN BOOLEAN DEFAULT FALSE);
パラメータ
表202-4 SET_EXCEPTION_MODEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
202.2.6 SET_TRACEFILE_IDENTIFIERプロシージャ
このプロシージャは、現在のADRホームのアクティブなトレース・ファイルについてカスタム・トレース・ファイル識別子を設定するために使用します。
構文
DBMS_USERDIAG.SET_TRACEFILE_IDENTIFIER(
trc_identifier IN VARCHAR2);
パラメータ
表202-5 SET_TRACEFILE_IDENTIFIERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
現在のADRホームのアクティブなトレース・ファイルのトレース識別子を指定します。 |
202.2.7 TRACEプロシージャ
このプロシージャは、トレース・ファイルまたはアラート・ログへのメッセージをトレースするために使用します。
構文
DBMS_USERDIAG.TRACE(
message IN VARCHAR2,
alert IN BOOLEAN DEFAULT FALSE);
パラメータ
表202-6 TRACEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
トレースするテキストまたはメッセージを指定します。 |
|
|