第9章 エラー処理
Red Hat build of Rhea のエラーは、AMQP プロトコルまたは接続エラーに対応する名前付きイベントをインターセプトすることで処理できます。
9.1. 接続およびプロトコルエラーの処理
以下のイベントをインターセプトして、プロトコルレベルのエラーを処理できます。
-
connection_error
-
session_error
-
sender_error
-
receiver_error
-
protocol_error
-
error
これらのイベントは、イベントにある特定のオブジェクトにエラー状態が生じるたびに実行されます。エラーハンドラーを呼び出すと、対応する <object>_close
ハンドラーも呼び出されます。
event
引数には、エラーオブジェクトにアクセスするための error
属性があります。
例: エラーの処理
container.on("error", function (event) { console.log("An error!", event.error); });
クローズハンドラーはエラー発生時に呼び出されるため、エラーハンドラー内でのみ処理する必要があります。リソースのクリーンアップは、近辺にあるハンドラーで管理できます。特定のオブジェクトに固有のエラー処理がない場合は、一般的な error
イベントを処理してより具体的なハンドラーを持たないのが一般的です。
再接続が有効になっており、リモートサーバーが amqp:connection:forced
の条件で接続が切断されると、クライアントはこれをエラーとして処理しないため、connection_error
イベントは実行されません。代わりに、クライアントが再接続プロセスを開始します。