アダプターは、各ビジネス・オブジェクトに対する動詞に基づいて、コラボレーションから渡されたビジネス・オブジェクトを処理します。アダプターは、ビジネス・オブジェクト・ハンドラーと doForVerb() メソッドを使用して、アダプターがサポートするビジネス・オブジェクトを処理します。アダプターがサポートするビジネス・オブジェクトの動詞は、以下のとおりです。
Create、Update、Delete の動詞を使用するビジネス・オブジェクトの処理は、そのオブジェクトの発行が非同期か同期かによって異なります。
Create、Update、Delete の動詞を使用するビジネス・オブジェクトのデフォルトの転送モードは、非同期です。メッセージは、データ・ハンドラーを使用してビジネス・オブジェクトから作成され、出力キューに書き込まれます。メッセージが引き渡されると、アダプターは BON_SUCCESS を戻します。引き渡されなかった場合は、BON_FAIL を戻します。
コネクター・プロパティーで replyToQueue が定義されていて、ResponseTimeout がビジネス・オブジェクトの変換プロパティーに存在する場合、アダプターは同期モードで要求を発行します。次に、アダプターは、応答を待機し、WebSphere Commerce によって適切なアクション行われたことを検証します。
アダプターは、まず、表 1 に示すようなヘッダー付きのメッセージを発行します。
フィールド | 説明 | 値 |
---|---|---|
Format
|
フォーマットの名前。
|
変換プロパティーで定義されている出力フォーマット。IBM 要件に従い 8 文字に切り捨てられます (例: MQSTR)。 |
MessageType
|
メッセージのタイプ。
| MQMT_DATAGRAM* |
Report
|
要求されたレポート・メッセージのオプション。
|
応答メッセージが必要な場合は、このフィールドに以下の値を指定します。 MQRO_PAN*: 処理が成功した場合にはポジティブ・アクション・レポートが必要なことを示します。
MQRO_NAN*: 処理が失敗した場合にはネガティブ・アクション・レポートが必要なことを示します。
MQRO_COPY_MSG_ID_TO_CORREL_ID*:
生成されたレポートの相関 ID が、最初に発行された要求のメッセージ ID
と等しくなければならないことを示します。
|
ReplyToQueue
|
応答キューの名前。
|
応答メッセージが必要な場合は、このフィールドにコネクター・プロパティー
ReplyToQueue の値を指定します。
|
Persistence
|
メッセージの永続性。
|
MQPER_PERSISTENT*
|
Expiry
|
メッセージの存続時間。
|
MQEI_UNLIMITED*
|
* IBM で定義されている定数を示します。
|
表 1 に示されているメッセージ・ヘッダーは、メッセージ本体の前に入ります。メッセージ本体は、データ・ハンドラーを使用してシリアライズされたビジネス・オブジェクトです。
Report フィールドは、WebSphere Commerce からポジティブとネガティブの両方のレポートが要求されていることを示すように設定します。メッセージを発行したスレッドは、WebSphere Commerce が要求を処理できたかどうかを示す応答メッセージを待機します。
WebSphere Commerce
は、アダプターから同期要求を受け取ると、ビジネス・オブジェクトのデータを処理し、レポート・メッセージを発行します
(表 2、表 3、および 表 4 を参照)。
フィールド | 説明 | 値 |
---|---|---|
Format
|
フォーマットの名前。
|
変換プロパティーで定義されている busObj の入力フォーマット。 |
MessageType
|
メッセージのタイプ。
|
MQMT_REPORT*
|
* IBM で定義されている定数を示します。
|
動詞 | フィードバック・フィールド | メッセージ本体 |
---|---|---|
Create、Update、Delete
|
SUCCESS VALCHANGE
|
(オプション) 変更を反映しているシリアライズされたビジネス・オブジェクト。
|
|
VALDUPES FAIL
|
(オプション) エラー・メッセージ。
|
表 4. WebSphere MQ のフィードバック・コードと InterChange Server Express の応答値。
WebSphere MQ のフィードバック・コード | 対応する InterChange Server Express の応答 |
---|---|
MQFB_PAN または MQFB_APPL_FIRST
|
SUCCESS
|
MQFB_NAN または MQFB_APPL_FIRST + 1
|
FAIL
|
MQFB_APPL_FIRST + 2
|
VALCHANGE
|
MQFB_APPL_FIRST + 3
|
VALDUPES
|
MQFB_APPL_FIRST + 4
|
MULTIPLE_HITS
|
MQFB_APPL_FIRST + 5
|
FAIL_RETRIEVE_BY_CONTENT
|
MQFB_APPL_FIRST + 6
|
BO_DOES_NOT_EXIST
|
MQFB_APPL_FIRST + 7
|
UNABLE_TO_LOGIN
|
MQFB_APPL_FIRST + 8
|
APP_RESPONSE_TIMEOUT (その結果、即時にコネクターが終了します)
|
MQFB_NONE
|
応答メッセージにフィードバック・コードが指定されていない場合にコネクターが受け取る情報
|
ビジネス・オブジェクトを処理できる場合、アプリケーションは、フィードバック・フィールドを MQFB_PAN (または特定の InterChange Server Express 値) に設定したレポート・メッセージを作成します。必要に応じて、アプリケーションは、メッセージ本体に、変更が加えられているシリアライズされたビジネス・オブジェクトを取り込みます。ビジネス・オブジェクトを処理できない場合、アプリケーションは、フィードバック・フィールドを MQFB_NAN (または特定の InterChange Server Express 値) に設定したレポート・メッセージを作成し、必要に応じてメッセージ本体にエラー・メッセージを組み込みます。いずれの場合も、アプリケーションは、メッセージの correlationID フィールドを、アダプター・メッセージの messageID に設定し、replyTo フィールドで指定されたキューに、そのメッセージを発行します。
応答メッセージを取得すると、アダプターは、応答の correlationID を要求メッセージの messageID と突き合わせます。次に、要求の発行元スレッドに通知します。応答のフィードバック・フィールドに応じて、アダプターは、メッセージ本体にビジネス・オブジェクトとエラー・メッセージのいずれが入っているかを判断します。ビジネス・オブジェクトが含まれていると予測したにもかかわらず、メッセージの本体にビジネス・オブジェクトが取り込まれていなかった場合、アダプターは InterChange Server Express が Request 操作のために最初に発行したのと同じビジネス・オブジェクトを単純に返送します。予期されたエラー・メッセージがメッセージ本体にない場合、応答コードと共に汎用のエラー・メッセージが InterChange Server Express に戻されます。
WebSphere MQ フィードバック・コードを拡張して、表 4 に示すデフォルトの解釈をオーバーライドするには、コネクター・プロパティー FeedbackCodeMappingMO を指定します。このプロパティーにより、InterChange Server Express 固有の戻り状況値がすべて WebSphere MQ のフィードバック・コードにマッピングされるメタオブジェクトを作成することができます。
フィードバック・コードに割り当てられた戻り状況は、InterChange Server Express に渡されます。詳細については、"FeedbackCodeMappingMO"を参照してください。
Retrieve、Exists、Retrieve by Content の動詞を使用するビジネス・オブジェクトは、同期転送しかサポートしていません。コネクターがこれらの動詞を使用するビジネス・オブジェクトを処理する方法は、Create、Update、Delete で定義されている同期転送の場合と同じです。ただし、Retrieve、Exists、Retrieve by Content の動詞を使用している場合は、responseTimeout と replyToQueue が必要です。さらに、Retrieve 動詞と Retrieve by Content 動詞の場合は、トランザクションを完了するために、メッセージ本体にシリアライズされたビジネス・オブジェクトを取り込む必要があります。
表 5 に、これらの動詞の応答メッセージを示します。
動詞 | フィードバック・フィールド | メッセージ本体 |
---|---|---|
Retrieve または RetrieveByContent
|
FAIL FAIL_RETRIEVE_BY_CONTENT
|
(オプション) エラー・メッセージ。
|
|
MULTIPLE_HITS SUCCESS
|
シリアライズされたビジネス・オブジェクト。
|
Exist
|
FAIL
|
(オプション) エラー・メッセージ。
|
|
SUCCESS
|
|