9.4.1 識別コンテキストの渡し方
通常,データが最終あて先に到着するまでの間に,アプリケーション間でメッセージからメッセージへと識別コンテキスト情報が渡されます。アプリケーションはデータを変更するたびに登録元コンテキスト情報を変更します。しかし,コンテキスト情報を変更したり設定したりするアプリケーションは,適切な権限を持っていなければなりません。キューマネジャは,アプリケーションがキューをオープンするときに,この権限を確認します。アプリケーションはMQOPEN命令を発行するために適切なコンテキストオプションを使用する権限を持っていなければなりません。
アプリケーションでメッセージを取得し,メッセージのデータを処理し,変更したデータを異なるメッセージに(他アプリケーションでの処理のためなどに)登録する場合,アプリケーションは識別コンテキスト情報を登録元メッセージから新規メッセージに渡さなければなりません。キューマネジャには登録元コンテキスト情報を生成させることができます。
登録元メッセージのコンテキスト情報を保存するには,メッセージ取り出し用にキューをオープンするときにMQOO_SAVE_ALL_CONTEXTオプションを使用してください。このオプションはほかのオプションに追加してMQOPEN命令で使用できます。ただし,メッセージの検索だけの場合には,コンテキスト情報を保存できないことに注意してください。
2番目のメッセージを作成するとき,次に示す項目を実行してください。
-
MQOO_PASS_IDENTITY_CONTEXTオプションを使用してキューをオープンします。MQOO_OUTPUTオプションに追加します。
-
MQPMO構造体のContextフィールドに,コンテキスト情報を保存したキューのハンドルを指定します。
-
MQPMO構造体のOptionsフィールドに,MQPMO_PASS_IDENTITY_CONTEXTオプションを指定します。