エラー処理の概要

コネクターによって生成されたすべてのエラー・メッセージは、MQSIV2Connector.txt という名前のメッセージ・ファイルに格納されます。(このファイルの名前は、コネクター構成標準プロパティー LogFileName によって決定されます。) 各エラーはエラー番号が付けられ、その後にエラー・メッセージが表示されます。

Message number
 Message text

コネクターは、以降のセクションで説明する方法で特定のエラーを処理します。

アプリケーション・タイムアウト

エラー・メッセージ ABON_APPRESPONSETIMEOUT は、以下の場合に戻されます。

アンサブスクライブされたビジネス・オブジェクト

コネクターは、次の場合に、UnsubscribedQueue プロパティーで指定されたキューにメッセージをデリバリーします。

注:
UnsubscribedQueue が定義されていない場合、アンサブスクライブされたメッセージは破棄されます。

コネクターがアクティブでない

gotApplEvent() メソッドが CONNECTOR_NOT_ACTIVE コードを戻すと、pollForEvents() メソッドは APP_RESPONSE_TIMEOUT コードを戻し、イベントは InProgress キューに置かれたままになります。

データ・ハンドラーによる変換

データ・ハンドラーがメッセージからビジネス・オブジェクトへの変換に失敗した場合、または、(JMS プロバイダーではなく) ビジネス・オブジェクトに固有の処理エラーが発生した場合、メッセージは ErrorQueue で指定されたキューにデリバリーされます。ErrorQueue が定義されていない場合、エラーが原因で処理できなかったメッセージは破棄されます。

データ・ハンドラーがビジネス・オブジェクトからメッセージへの変換に失敗した場合、BON_FAIL が戻されます。

JMS プロパティー

メッセージに対して JMS プロパティーの読み取りまたは書き込みを実行できない 場合、コネクターはエラーをログに記録し、要求またはイベントは失敗します。ReplyToQueue が未指定またはアクセス不可の場合、コネクターはエラーをログに記録し、要求は失敗します。CorrelationID が無効であるか設定できない場合、コネクターはエラーを ログに記録し、要求は失敗します。

いずれの場合も、ログに記録されるメッセージはコネクター・メッセージ・ファ イルから読み込まれます。

入力フォーマットの多重定義

コネクターは通常、メッセージを検索するときに、ビジネス・オブジェクトと動詞の特定の 1 つの組み合わせと入力フォーマットを突き合わせます。そして、コネクターはビジネス・オブジェクト名とメッセージの内容をデータ・ハンドラーに渡します。これにより、データ・ハンドラーは、メッセージの内容がユーザーの予期するビジネス・オブジェクトに対応していることを確認できます。

しかし、複数のビジネス・オブジェクトに対して同じ入力フォーマットが定義されている場合、コネクターは、データ・ハンドラーにデータを渡す前に、データがどのビジネス・オブジェクトを表すのかを判別できません。そのような場合、コネクターはデータ・ハンドラーにメッセージの内容のみを渡し、生成されるビジネス・オブジェクトに基づいて変換プロパティーを調べます。したがって、データ・ハンドラーは、メッセージの内容のみに基づいてビジネス・オブジェクトを決定する必要があります。

生成されたビジネス・オブジェクトに動詞が設定されていない場合、コネクターはビジネス・オブジェクトの動詞の種類を限定せずに、このビジネス・オブジェクトに定義されている変換プロパティーを検索します。変換プロパティーが 1 セットのみ検出された場合は、コネクターは特定の動詞を割り当てます。複数のプロパティーが検出された場合は、コネクターは動詞を判別できないため、メッセージの処理が失敗します。

Copyright IBM Corp. 2003, 2005