修正処理ステータス変更情報の受渡し

修正処理ステータス変更属性(新規ステータス、ジョブ名、ジョブ・タイプ、通知ルール、ルール所有者など)をPL/SQLプロシージャまたはOSコマンドやスクリプトに渡すことで、ステータス変更に対して自動化されたレスポンスをカスタマイズできます。たとえば、クリティカルな修正処理の実行が失敗したときに、社内のサポート用トラブル・チケット・システムに関するトラブル・チケットを開くためにOSスクリプトをコールする場合があります。この場合、スクリプトに「問題」または「中断」などのステータスを渡してトラブル・チケットを開き、問題を重大化させる必要があります。修正処理は、メトリック重大度およびポリシー違反に応じて実行できます。

PL/SQLプロシージャへの情報の受渡し

通知システムは、MGMT_NOTIFY_CORRECTIVE_ACTIONオブジェクトを介して修正処理ステータス変更情報をPL/SQLプロシージャに渡します。このオブジェクトのインスタンスは、ステータス変更ごとに作成されます。修正処理がステータスを変更すると、通知システムは通知ルールに関連付けられているPL/SQLプロシージャをコールして、移入されたオブジェクトを渡します。これにより、プロシージャは渡されたMGMT_NOTIFY_CORRECTIVE_ACTIONオブジェクトのフィールドにアクセスできます。

次の表に、受渡しできるすべてのジョブ・ステータスの変更属性を示します。

属性
データ型
追加情報

job_name

VARCHAR2(128)

ジョブ名

job_owner

VARCHAR2(256)

ジョブの所有者
job_type VARCHAR2(32) ジョブのタイプ

job_status

NUMBER

ジョブの新規ステータス

state_change_guid  

RAW(16)

状態変更レコードのGUID

job_guid

RAW(16)

ジョブの一意のID

execution_id

RAW(16)

実行の一意のID

targets

SMP_EMD_NVPAIR_ARRAY

ジョブが実行される対象のターゲット名/ターゲット・タイプのペアの配列

metric_name
VARCHAR2(256)
修正処理が実行される原因となった、アラートのメトリック/ポリシー・ルールの名前。
metric_column
VARCHAR2(64)
修正処理が実行される原因となった、アラートのメトリック列の名前。これはポリシー違反には使用されません。
metric_value
VARCHAR2(1024)
修正処理が実行される原因となった、アラートのメトリック列の値。
severity_code
NUMBER
修正処理が実行される原因となった、アラートの重大度コード。
key_value_name
VARCHAR2(512)
キーの値の名前(例: マウント・ポイント)。
key_value
VARCHAR2(1290)
表メトリックの場合、この列には、しきい値を定義する表にある行のキー列の値が含まれます。しきい値が表メトリックに関するものではない場合、またはしきい値がメトリック列の行すべてに適用される場合、この列の値はスペース1個となります。
key_value_guid
RAW(16)
複合キーの値の名前に関連付けられているGUID。
ctxt_list
MGMT_NOTIFY_COLUMNS
アラート・コンテキストの詳細。

rule_owner

VARCHAR2(64)

通知が送信される原因となる通知ルールの名前。

rule_name

VARCHAR2(132)

通知が送信される原因となる通知ルールの所有者。

修正処理に対するステータス変更が発生すると、通知システムはMGMT_NOTIFY_CORRECTIVE_ACTIONオブジェクトのインスタンスを作成し、ステータス変更の値を移入します。次のステータス・コードがMGMT_JOBSパッケージに制約として定義されています。これらのコードを使用すると、MGMT_NOTIFY_CORRECTIVE_ACTIONオブジェクトのjob_statusフィールドのステータスのタイプを判別できます。

ジョブ・ステータス・コード

名前
データ型
値

SCHEDULED_STATUS

NUMBER(2)

1

EXECUTING_STATUS

NUMBER(2)

2

ABORTED_STATUS

NUMBER(2)

3

FAILED_STATUS

NUMBER(2)

4

COMPLETED_STATUS

NUMBER(2)

5

SUSPENDED_STATUS

NUMBER(2)

6

AGENTDOWN_STATUS

NUMBER(2)

7

STOPPED_STATUS

NUMBER(2)

8

SUSPENDED_LOCK_STATUS

NUMBER(2)

9

SUSPENDED_EVENT_STATUS

NUMBER(2)

10

SUSPENDED_BLACKOUT_STATUS

NUMBER(2)

11

STOP_PENDING_STATUS
NUMBER(2) 12
SUSPEND_PENDING_STATUS
NUMBER(2) 13
INACTIVE_STATUS
NUMBER(2) 14
QUEUED_STATUS
NUMBER(2) 15
FAILED_RETRIED_STATUS
NUMBER(2) 16
WAITING_STATUS
NUMBER(2) 17
SKIPPED_STATUS
NUMBER(2) 18
REASSIGNED_STATUS
NUMBER(2) 20

例: ステータス・コードを使用するPL/SQLプロシージャ

CREATE TABLE ca_log (jobid RAW(16),
occured DATE);

PL/SQLプロシージャ

CREATE OR REPLACE PROCEDURE LOG_PROBLEM_CAS(status_change IN MGMT_NOTIFY_CORRECTIVE_ACTION)
IS
BEGIN
-- Log all failed corrective actions
IF status_change.job_status = MGMT_JOBS.FAILED_STATUS
THEN
BEGIN
INSERT INTO ca_log (jobid, occured)
VALUES (status_change.job_guid, SYSDATE);
EXCEPTION
WHEN OTHERS
THEN
-- If there are any problems then get the notification retried
RAISE_APPLICATION_ERROR(-20000, 'Please retry');
END;
COMMIT;
END IF;
END LOG_PROBLEM_CAS;

PL/SQLプロシージャの使用方法

  1. 次のプロシージャ指定を使用して、リポジトリ・データベースにPL/SQLプロシージャを作成します。

    PROCEDURE p(status_change IN MGMT_NOTIFY_CORRECTIVE_ACTION)

    プロシージャの実行時にエラーが発生した場合、エラー・コード-20000を使用するユーザー定義例外を返すことによって、通知システムでプロシージャへの通知の送信を再試行できます。前述の例を参照してください。この再試行処理は最初1分後に行われ、2分後、3分後などのように続き、通知がパージされるポイントである1日後までそれが続きます。

  2. このPL/SQLプロシージャを、通知ルールでコールできる通知メソッドとして追加します。「PL/SQLプロシージャの追加」を参照してください。

    スキーマ所有者、パッケージ名およびプロシージャ名を含む完全修飾名を必ず使用してください。プロシージャはリポジトリ所有者によって実行されるため、リポジトリ所有者にプロシージャの実行権限があります。

  3. PL/SQLプロシージャを通知ルールに関連付けます。

OSスクリプトまたは実行可能ファイルへの情報の受渡し

通知システムは、システム環境変数を介してOSスクリプトまたは実行可能ファイルに重大度情報を渡します。環境変数へのアクセスに使用される表記規則は、オペレーティング・システムに応じて異なります。

通知システムは、スクリプトをコールする前に次の環境変数を設定します。

環境変数
説明

JOB_NAME

ジョブの名前

JOB_OWNER

ジョブの所有者

JOB_TYPE

ジョブのタイプ

JOB_STATUS

ジョブのステータス

TIMESTAMP

重大度が発生した時刻

NUM_TARGETS

ターゲットの数

TARGET_NAMEn
n番目のターゲットの名前(例: TARGET_NAME1、TARGET_NAME2)
TARGET_TYPEn
n番目のターゲットのタイプ(例: TARGET_TYPE1、TARGET_TYPE2)。
METRIC
修正処理が実行される原因となった、アラートのメトリックの名前。ポリシー違反には設定されません。
POLICY_RULE
修正処理が実行される原因となった、アラートのポリシー・ルールの名前。メトリック重大度には設定されません。
METRIC_VALUE
修正処理が実行される原因となった、アラートのメトリック列の値。
VIOLATION_CONTEXT
アラート・コンテキストを示す名前/値ペアのカンマで区切られたリスト。
KEY_VALUE_NAME
キーの値の名前(例: マウント・ポイント)。
KEY_VALUE
表メトリックの場合、この値はしきい値を定義する表内の行のキー列を表します。この情報を使用して、収集される特定の値が一意に識別されます。ターゲット名、ターゲット・タイプおよびメトリック名とともに、メトリック値を一意に識別できます。
SEVERITY

重大度のタイプ。たとえば、ターゲットの可用性に関連する重大度タイプは、次のとおりです。

  • 稼働中

  • 停止中

  • 使用不可の回復

  • 使用不可の発生

  • ブラックアウト終了

  • ブラックアウト開始

その他のメトリックは次のいずれかの重大度になります。

  • 警告

  • クリティカル

  • クリア

  • メトリックエラーのクリア

  • メトリック開始エラー

RULE_NAME

重大度を発生させた通知ルールの名前。

RULE_OWNER

ルールを所有するEnterprise Manager管理者名。

スクリプトでは、これらの変数の一部またはすべてを参照できます。

OSスクリプトまたは実行可能ファイルの使用方法

関連トピック

Enterprise Managerの情報ロードマップ