Error Handler サンプルの実行
Error Handler サンプルの実行は、メッセージ・フローに各メッセージを入れることからなります。
サンプルを実行すると、以下の状態でどのようなことが生じるかを理解できます。
- 入力メッセージに有効なスタッフ番号が含まれる。
- 入力メッセージに無効なスタッフ番号が含まれる。
- 入力メッセージに有効なスタッフ番号が含まれるが、出力キュー STAFF_OUT は書き込み禁止である。
詳しくは、Error Handler サンプルについてを参照してください。
セットアップ手順で説明されているとおりに DB2 および WebSphere MQ が構成されていない
場合は、サンプルの実行時にメッセージ・フローの別の作業単位を使用する際の影響を観察することはできません。
しかし、サンプルの他の特徴を調べることはできます。
Windows で Error Handler サンプルを実行している場合、以下の指示は、DB2 Universal Database のフル・バージョンを
インストールしたことを想定しています。
ランチパッドで Express Installation 方式を使用して Cloudscape の ODBC ドライバーのみをインストールした
場合、DB2 Control Center は使用できず、これを使用して Error Handler サンプルのデータベース表における変更を
検査することはできません。
サンプルを実行する際、
「問題」ビューに「データベース表参照 T.CLASSTYPE が解決できません」というような
エラー・メッセージが表示される場合があります。
この警告は、データベース表の定義がプロジェクトにインポートされていないことを示します。これは、実行時のサンプルの振る舞いには影響しません。
サンプルを実行するときに問題が発生する場合は、『サンプルの実行時に発生する問題の診断』を
参照してください。
有効スタッフ番号を含むメッセージを伴うサンプルの実行
有効スタッフ番号を含むメッセージを伴うサンプルを実行するには、次のようにします。
- Message Brokers Toolkit で、ブローカー・アプリケーション開発パースペクティブに切り替えます。
- 「リソース・ナビゲーター」ビューで、staffmsg.enqueue をダブルクリックします。
Enqueue エディターで、staffmsg.enqueue が開きます。
「ポート」フィールドに値 2414 が入力されていることを確認してください。
- Enqueue エディターで、「キューへ書き込み」をクリックします。
有効スタッフ番号を含むメッセージが STAFF_IN キューに入れられます。
- 次の結果を確認します。
- STAFFDB データベースの STAFF 表を表示します。表は、入力メッセージからのスタッフ情報で更新されています。
- STAFF_OUT キューから入力メッセージを取得します。入力メッセージは、その出力キューに書き込まれています。
無効スタッフ番号を含むメッセージを伴うサンプルの実行
無効スタッフ番号を含むメッセージを伴うサンプルを実行するには、次のようにします。
- Enqueue エディターで invalidstaffmsg.enqueue を開きます。 「ポート」フィールドに値 2414 が入力されていることを確認した後、「キューへ書き込み」をクリックします。
- 次の結果を確認します。
- ERRORDB データベースの ERRORS 表を表示します。ERRORS 表の MSGID と MSGDATA フィールドのデータは BLOB データ・タイプで、それは DB2 Control Center を使用してこのデータを表示できないことを意味します。しかし、DB2 コマンド行プロセッサーを使用するとこのデータを表示できます。
- コマンド行プロセッサーを始動します。
- Windows では、「スタート」>「プログラム」>「IBM DB2」>「コマンド行ツール
(Command Line Tools)」>「コマンド行プロセッサー」の順にクリックします。
- Linux では、シェル・プロンプトで、DB2 インスタンスとして実行していることを確認して
から、db2 と入力します。
- 以下のコマンドを入力します。
connect to ERRORDB
select * from ERRORS
ERRORS 表のデータが表示されます。
表は、エラーの詳細情報で更新されています。
- STAFF_FAIL キューから入力メッセージを取得します。入力メッセージは、その障害の発生したキューに書き込まれています。
有効スタッフ番号および書き込み禁止キューを伴うサンプルの実行
有効スタッフ番号を含むメッセージを伴うものの、出力キューが書き込み禁止であるサンプルを実行するには、次のようにします。
- STAFF_OUT キューを書き込み禁止にします。
- WebSphere MQ Explorer で、WBRK6_DEFAULT_QUEUE_MANAGER キュー・マネージャーの「キュー」フォルダーを
クリックして、キュー・マネージャーのキューを表示します。
- STAFF_OUT キューを右マウス・ボタン・クリックしてから、
「プロパティー」をクリックします。「プロパティー」ダイアログが表示されます。
- 「プロパティー」ダイアログの「メッセージの格納」 リストで「禁止
(Inhibited)」をクリックし、次に「OK」クリックします。
- Enqueue エディターで staffmsg.enqueue を開きます。 「ポート」フィールドに値 2414 が入力されていることを確認した後、「キューへ書き込み」をクリックします。
メッセージが STAFF_IN キューに書き込まれます。メッセージのスタッフ番号は有効であるため、メッセージは Update Staff Database ノードを通過します。しかし、このメッセージは STAFF_OUT キューには入れられないため、エラーが生成され、メッセージはロールバックされます。
- 次の結果を確認します。
- STAFFDB データベースの STAFF 表を表示します。データベース更新はロールバックされたため、表には新しい項目は存在しません。
- ERRORDB データベースの ERRORS 表を表示します。表は、エラーの詳細情報で更新されています。
- STAFF_FAIL キューから入力メッセージを取得します。入力メッセージは、その障害の発生したキューに書き込まれています。
サンプルのホームに戻る