EGL では、いずれのターゲット・プラットフォームにおいても、 WebSphere® MQ (以前の MQSeries®) メッセージ・キューのアクセスをサポートしています。
これらの 2 つの方法をプログラム内で混在させることができます。ただし、ベスト・プラクティスとしては、 いずれか一方を排他的に使用します。
どちらの方法でも、オプション・レコードを使用することで、各種のランタイム条件を制御できます。 オプション・レコードは、特定の目的を持つグローバルな BasicRecord パーツに基づく変数のことです。 EGL は、呼び出し時のこれらの変数を WebSphere MQ へと渡します。EGL には多数のサンプル・レコード・パーツが用意されており、 それらのサンプルをオプション・レコードの基礎として使用することができます。
一度にアクセスできる接続キュー・マネージャーは、1 つのみです。 ただし、 接続キュー・マネージャーの制御下にある複数のキューへアクセスすることができます。 現行の接続キュー・マネージャー以外のキュー・マネージャーに直接アクセスするには、 MQDISC を呼び出して最初のキュー・マネージャーから切断し、次に add、get next、MQCONN、または MQCONNX を呼び出して 2 番目のキュー・マネージャーに接続する必要があります。
また、リモート・キュー・マネージャー の制御下にあるキューへのアクセスも可能です。 リモート・キュー・マネージャーとは、接続キュー・マネージャーが対話することのできるキュー・マネージャーです。 2 つのキュー・マネージャー間でのアクセスは、 WebSphere MQ そのものがそのアクセスを許可するよう構成されている場合にのみ行えます。
接続キュー・マネージャーへのアクセスは、MQDISC の呼び出し時、またはコードの終了時に終了します。
キュー・アクセス・ステートメントが作業単位内になければ、メッセージ・キューに対する各変更は即時コミットされます。
コードで作業単位が終了すると、EGL はプログラムがアクセスしているすべての リカバリー可能リソースをコミットまたはロールバックします (データベース・メッセージ・キュー、回復可能ファイルを含む)。 これは、システム関数 (sysLib.commit, sysLib.rollback) または WebSphere MQ への EGL 呼び出し (MQCMIT、MQBACK) のどちらを使用する場合にも起こります。 いずれの場合も、適切な EGL システム関数が呼び出されます。
EGL プログラムがエラーにより早く終了した場合、ロールバックが行われます。
add および get next ステートメントのデフォルトの処理を使用する代わりに、 WebSphere MQ との対話をカスタマイズすることができます。
次のタスクを実行する必要があります。
sharedInstallationDir¥plugins¥
com.ibm.etools.egl.resources_version¥MqReusableParts
詳しくは、import および use 文を参照してください。
mqgmo.options = mqvalue.mqgmo_lock[1];
mqgmo.options = mqvalue.mqgmo_lock[1]
+ mqvalue.mqgmo_accept_truncated_msg[1]
+ mqvalue.mqgmo_browse_first[1];