JMS バインディングおよび MQ JMS バインディングでの障害の処理

JMS バインディングおよび MQ JMS バインディングで、障害が発生することがあります。このような障害を処理するメカニズムが用意されています。

始める前に

このタスクを実行する理由と実行時期

JMSDataBinding および JMSObjectBinding に渡されることが想定されている引数は、インターフェース操作と入力、出力、および障害のタイプによって異なります。

障害では、メソッド・バインディングで指定された outDataBindingType が使用されます。指定されていない場合は、すべての直列化および非直列化に対してバインディング・レベル dataBindingType が使用されます。

障害タイプが単純である場合は、障害メッセージを表す JMS DataBinding にストリングが設定されます。 さらに、IsBusinessException が true に設定されます。

障害タイプがデータ・オブジェクトである場合は、障害メッセージを表す JMS DataBinding にデータ・オブジェクトが設定されます。 このシナリオでは、JMSDataBinding を使用する必要があります。

障害を含んだメッセージは、JMS データ・バインディングによって処理されます。ブール値のヘッダー・プロパティー IsBusinessException は、データ・バインディングによってインターセプトされます。値が true の場合、データ・バインディングにより、有効搭載量に障害データが含まれていることがランタイムに通知されます。

カスタム・データ・バインディングを使用している場合は、障害を正しく処理するために以下のステップを実行する必要があります。デフォルトの実装では、障害がユーザーの介入なしに処理されます。

このタスクのためのステップ

  1. JMS エクスポートでは、JMSDataBinding インターフェースの setBusinessException(boolean isBusinessException) メソッドを使用して、データ・バインディングに指定されたデータ・オブジェクトまたはオブジェクトが障害オブジェクトであり、このバインディングによって作成されたメッセージを適宜構成する必要があることを示します。 データ・バインディングが、isBusinessException を適切に指定しなければなりません。
  2. JMS インポートでは、JMSDataBinding インターフェースの isBusinessException() メソッドを使用して、メッセージに障害が含まれているかどうかを示します。

    データ・バインディングでは、有効搭載量に定義された障害を示すヘッダー・プロパティーの値が取得されます。ランタイムにより JMS メッセージがデータ・バインディングに渡された後、データ・バインディングの isBusinessException() が呼び出されます。戻り値が false の場合はメッセージが正常に処理され、それ以外の場合は、呼び出し元に ServiceBusinessException が戻されます。バインディングによって生成されたデータ・オブジェクトやオブジェクトは ServiceBusinessException に設定され、これが呼び出し元に戻されます。


(c) Copyright IBM Corporation 2005, 2006. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。