Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Mobile Link - サーバ起動同期 » サーバ起動同期の Mobile Link サーバ設定 » Notifier イベント » ポーリング・イベント

 

error_handler イベント

転送に失敗した場合や転送が確認されなかった場合を示すには、このイベントを設定します。たとえば、転送に失敗した場合、このイベントを使用すると、監査テーブルにローを挿入したり、Push 通知を送信したりできます。

次の表に、error_handler イベントを使用して取得できるパラメータの詳細を示します。

スクリプト・パラメータ 説明
request_option (out) Integer

エラー・ハンドラが戻った後に Notifier が Push 要求に対して実行する処理を制御します。出力は、次のいずれかの値になります。

  • 0:エラー・コードに基づいてデフォルト・アクションを実行し、エラーを記録します。
  • 1:何もしません。
  • 2:request_delete イベントを実行します。
  • 3:セカンダリ・ゲートウェイへの配信を試行します。
error_code (in) Integer

エラー・コードには、次のいずれかの値を使用します。

  • -1:確認が成功したあと、要求はタイムアウトされました。
  • -8:配信試行中にエラーが発生しました。
request_id (in) Integer 要求を識別します。
gateway (in) varchar Push 要求に関連付けられているゲートウェイを指定します。
address (in) varchar Push 要求に関連付けられているアドレスを指定します。
subject (in) varchar Push 要求に関連付けられている件名を指定します。
content (in) varchar Push 要求に関連付けられている内容を指定します。
注意

このイベントにはシステム・プロシージャの使用が必要です。Sybase Central を使用して、このイベントを直接設定することはできません。サーバ起動同期の Mobile Link サーバ設定を参照してください。

参照

次の例では、CustomError というテーブルを作成し、CustomErrorHandler というストアド・プロシージャを使用してエラーをテーブルに記録します。出力パラメータ Notifier_opcode は常に 0 で、デフォルトの Notifier 処理が使用されます。

CREATE TABLE CustomError(
    error_code  integer,
    request_id  integer,
    gateway  varchar(255),
    address  varchar(255),
    subject  varchar(255),
    content  varchar(255),
    occurAt  timestamp not null default timestamp
);

CREATE PROCEDURE CustomErrorHandler(
    out @Notifier_opcode integer,
    in @error_code  integer,
    in @request_id  integer,
    in @gateway   varchar(255),
    in @address   varchar(255),
    in @subject   varchar(255),
    in @content   varchar(255)
)

BEGIN
    INSERT INTO CustomError( 
        error_code,
        request_id,
        gateway,
        address,
        subject,
        content)
    VALUES(
        @error_code,
        @request_id,
        @gateway,
        @address,
        @subject,
        @content
    );
    SET @Notifier_opcode = 0;
END

ml_add_property システム・プロシージャを SQL Anywhere 統合データベースで使用するには、次のコマンドを実行します。

call ml_add_property( 
    'SIS',
    'Notifier(myNotifier)',
    'error_handler',
    'call CustomErrorHandler(?, ?, ?, ?, ?, ?, ?)');

または、Notifier 設定ファイルに次の行を追加しても、このイベントを起動できます。

Notifier(myNotifier).error_handler = call CustomErrorHandler(?, ?, ?, ?, ?, ?, ?)

mlsrv11 -notifier オプションを使用してファイルを実行します。Notifier 設定ファイルを設定する方法については、Notifier 設定ファイルを使用したサーバ側設定の実行を参照してください。