転送に失敗した場合や転送が確認されなかった場合を示すには、このイベントを設定します。たとえば、転送に失敗した場合、このイベントを使用すると、監査テーブルにローを挿入したり、Push 通知を送信したりできます。
次の表に、error_handler イベントを使用して取得できるパラメータの詳細を示します。
スクリプト・パラメータ | 型 | 説明 |
---|---|---|
request_option (out) | Integer |
エラー・ハンドラが戻った後に Notifier が Push 要求に対して実行する処理を制御します。出力は、次のいずれかの値になります。
|
error_code (in) | Integer |
エラー・コードには、次のいずれかの値を使用します。
|
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 設定ファイルを使用したサーバ側設定の実行を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |