MSMQ アダプタのインストールには、Enterprise Manager プラグインに加えて、次に示す 2 つの追加コンポーネントが含まれます。これらをダウンロードして MSMQ アダプタ用にインストールしてください。
MSMQ アダプタ - 実行時 win32 ブリッジ DLL Zip: このファイルには、Windows の環境変数パスにコピーされる多数の必須 DDL ファイルが含まれています。
MSMQ アダプタ - 実行時 JNI: このファイルは、Sun JavaTM Composite Application Platform Suite インストーラを使用してダウンロードしてください。
Sun Java Composite Application Platform Suite インストーラの「ダウンロード」タブをクリックします。「リポジトリのダウンロード」リストに、MSMQ DLL と実行時 JNI コンポーネントのリストが表示されます。
両方のファイルをローカルディレクトリにダウンロードします。msmqjni.jar ファイルを Windows 環境パスに追加する方法については、「実行時 JNI ファイルを追加する」を参照してください。DLL ファイルをアプリケーションサーバープロセスの PATH に追加する方法については、「DLL ファイルを環境パスに追加する」を参照してください。
MSMQ アダプタプロジェクトを作成する前に、Suite インストーラからダウンロードした実行時 JNI (msmqjni.jar) を次の場所にコピーします。
JavaCAPS6\netbeans\lib\ext JavaCAPS6\appserver\is\lib |
JavaCAPS6 は、Sun Java Composite Application Platform Suite がインストールされているディレクトリです。
これらのファイルは手動でコピーします。
コマンド行コードジェネレータを配備および実行する前に、msmqjni.jar ファイルを \compile\lib\ext フォルダにコピーしてください。同様に、Sun Java System Application Server Enterprise Edition 8.1 経由で配備、実行する前に、msmqjni.jar ファイルを c:\Sun\ApplicationServer\lib フォルダにコピーしてください。
MSMQ プロジェクトを実行する前に、Windows の環境システム変数パスに含まれているディレクトリに実行時 win32 ブリッジ DLL ファイルを追加します。正しいファイルが適切なパスに確実に追加されるようにするため、次の手順に従います。
Java コラボレーション定義でエラーが発生したとき (たとえば、一意のキーを持つと定義されているデータベーステーブルに重複する行を挿入しようとした場合) に、アウトバウンド MSMQ メッセージをロールバックするには、次の手順に従います。
アウトバウンド MSMQ アダプタのコネクティビティーマップのプロパティーで、「MSMQ 接続モード」として「手動」を選択します。
次の JCD コードを使用します。
try { MSMQClient_1.getEwayConfiguration().setOutMSMQName( "public" ); MSMQClient_1.getEwayConfiguration().setOutMSMQShareMode( "DENY_RECEIVE_SHARE" ); MSMQClient_1.getEwayConfiguration().setOutMSMQReceiveActionCode ( "ACTION_PEEK_CURRENT" ); MSMQClient_1.connect(); MSMQClient_1.getMSMQMessage(); TestDB_1.getTEST1().insert(); TestDB_1.getTEST1().setTESTSTRING( "From JCD" ); TestDB_1.getTEST1().insertRow(); MSMQClient_1.getEwayConfiguration().setOutMSMQReceiveActionCode ( "ACTION_RECEIVE" ); MSMQClient_1.getMSMQMessage(); MSMQClient_1.disconnect(); } catch ( Exception Catch ) { MSMQClient_1.disconnect(); } |
重要なコード項目は太字になっています。例外をキャッチする場合は、try/catch ブロックも使用します (この例では、データベースへの挿入に失敗した場合)。
次の設定でキューを開きます。
MSMQ 共有モード – DENY_RECEIVE_SHARE: ほかのアプリケーションがこのキューを受信モードで開くことができないように、キューをロックします。アプリケーションでキューを閉じるまで、ほかのどのアプリケーションもこのキューを開いてメッセージを受信することはできません。
MSMQ 受信アクションコード – ACTION_PEEK_CURRENT: メッセージを「のぞく」(表示する) ことができるようにキューを開きます。
次に、キューから受信したメッセージでデータベースの更新を試行します。更新に失敗した場合は、手順 7 (キューインスタンスを閉じる) に進みます。正常に更新された場合は、この方法でメッセージをプログラムで受信するようにアダプタ設定プロパティーを変更します。
次に、メッセージを受信します。これで、メッセージがキューから消去されます。
キューを切断します。
最後に、MSMQClient_1.disconnect() を使用してキューを閉じます。これで現在のキューインスタンスが閉じられ、キューのロックが解除されます。