WebSphere® Message Broker バージョン 8.0 には、動作上の小変更点がいくつかあります。例えば、前のバージョンからの期間に障害が修正された結果としての変更点があります。
バージョン 8.0 で開発する メッセージ・ブローカー API アプリケーションは既存の バージョン 7.0 ブローカーに接続することができ、既存の バージョン 7.0 メッセージ・ブローカー API アプリケーションは バージョン 8.0 ブローカーに接続することができます。
ただし、バージョン 6.1 からマイグレーションする場合、バージョン 8.0 ブローカーに接続する前に、バージョン 8.0 で提供されているファイルを使用するように メッセージ・ブローカー API アプリケーションを更新する必要があります。
詳しくは、メッセージ・ブローカー API アプリケーションのマイグレーションを参照してください。
記録および再生機能は、新規バージョン 8.0 ブローカーと、バージョン 8.0 にマイグレーションされたブローカーでのみ使用できます。 既存の バージョン 7.0 または バージョン 6.1 ブローカーでは使用できません。
詳しくは、記録および再生を参照してください。
リソース統計およびメッセージ・フローのアカウンティングおよび統計の XML パブリケーション・メッセージが MQMD ヘッダーにパブリッシュされるようになりました。その形式は、MQSTR です。 これは、パブリケーション・メッセージが完全に文字データで構成されることを示します。
パブリケーション・トピックにサブスクライブしてメッセージを読むために WebSphere MQ JMS アプリケーションを使用する場合、これらのメッセージは JMS BytesMessage ではなく JMS TextMessage として表されます。
WebSphere Message Broker バージョン 8.0 には、日付、時刻、およびコード・ページの変換のための ICU V4.8 (International Components for Unicode) が付属しています。 これは、WebSphere Message Broker バージョン 7.0 に付属していた ICU 3.8.1 からのアップグレードです。
以下の動作上の変更は、バージョン 6.1 からマイグレーションする場合にのみ当てはまります。
Windows のブローカーを旧バージョンに復元する場合は、ブローカーと一緒にパスワードの値が復元されます。 mqsichangebroker コマンドを使用してパスワードを変更していた場合は、その更新後の値が旧バージョンで設定されます。
マイグレーション対象となるブローカーのデータベース・ユーザー ID とパスワードを構成していた場合は、ブローカーと共にそれらのパラメーター (-u, -p) もマイグレーションされ、明示的な値の設定がないデータ・ソース (ユーザー・データベース) のデフォルト値として使用されます。 -u, -p を構成していなかった場合は、-i, -a の値がマイグレーションされます。 バージョン 8.0 では、mqsisetdbparms コマンドを使用してユーザー・データベースのこれらのユーザー ID とパスワードを管理できます。
デプロイされた メッセージ・ブローカー 成果物の詳細/簡略説明プロパティーは、デプロイされた実行グループ・リポジトリーで保持されなかったため、バージョン 8.0 ブローカーにはマイグレーションされません。
以下のフィールドを使ってキーワードを保持していた場合、マイグレーション後の成果物にはこれらが表示されません。
$MQSI name = value MQSI$
この動作を修正するには、成果物をバージョン 8.0 ブローカーに直接、再デプロイしてください。
キーワードの定義について詳しくは、キーワードを定義するための指針を参照してください。
一部のサンプル・プログラム (Airline サンプルなど) は、データベースを使用します。 Windows で、「デフォルト構成」ウィザードを使用してデフォルトの構成をセットアップし、デフォルトのブローカーにサンプルをデプロイした場合、データベースを必要とするサンプルは、ブローカーの組み込みデータベースである Derby を使用します。ところが、バージョン 8.0 では、Derby データベースは組み込まれておらず、サポートもされていません。 サンプル文書の更新後の手順を実行して、データベース・サンプルを再構成する必要があります。
mqsicreatebroker コマンドを使用してブローカーを作成するときに、デフォルトの実行グループは作成されなくなりました。
WebSphere Message Broker Toolkit または WebSphere Message Broker Explorer を使用してブローカーを作成する場合は、default という名前でデフォルトの実行グループを作成するオプションを選択できます (ただし、別の名前を指定することも可能です)。
さらに、mqsicreateexecutiongroup コマンドを使用して実行グループを作成することもできます。
実行グループの開始と停止の動作はバージョン 8.0 で更新されています。-m パラメーターなしで mqsistartmsgflow コマンドまたは mqsistopmsgflow コマンドを使用して実行グループを開始/停止すると、実行グループのプロセスが停止/開始します。この方法で (あるいは WebSphere Message Broker Toolkit または WebSphere Message Broker Explorer を使って) 実行グループを停止した場合、実行グループにデプロイされたメッセージ・フローの実行状態が記録されます。 次に実行グループを開始するとき、すべてのフローを開始するよう明確に要求したり、あるいはコマンドに -j パラメーターを使用したりしない限り、実行グループが停止されたときに実行されていたメッセージ・フローのみが再始動されます。
SOAPAsyncRequest、SOAPInput、および SOAPRequest の各ノードの「失敗時の処置」プロパティーが変更され、構成可能ではなくなりました。(例えば BAR ファイルの中で) このプロパティーを構成していた場合は、その設定が無視されます。
mqsistart コマンドを実行すると、バージョン 8.0 のブローカーは、必要な SSL 構成があるかどうかを確認します。
HTTPInput ノードまたは HTTPReply ノードを組み込んだメッセージ・フローをバージョン 6.1 のブローカーにデプロイしていた場合は、そのブローカーをバージョン 8.0 にマイグレーションして再びそのブローカーを開始したときに、以下のエラー・メッセージが生成される可能性があります。(メッセージ行は連続していますが、ここでは読みやすくするために分割しています)。
BIP3135S: An exception occurred while starting the servlet engine connector.
Exception text is HTTP Listener LifecycleException:
Protocol handler start failed: java.io.FileNotFoundException: /home/leed/.keystore
(No such file or directory)
at org.apache.coyote.tomcat5.CoyoteConnector.start(CoyoteConnector.java:1529)
at com.ibm.broker.httplistener.ConnectorWrapper.start(ConnectorWrapper.java:166)
at com.ibm.broker.httplistener.TomcatWrapper.startSecureHTTPSConnector
(TomcatWrapper.java:146)
at com.ibm.broker.httplistener.HTTPListenerManager.ensureServletContainer
(HTTPListenerManager.java:290)
at com.ibm.broker.httplistener.HTTPListenerManager.run(HTTPListenerManager.java:153)
at java.lang.Thread.run(Thread.java:735) :
DANBRK.httplistener: /build/S000_P/src/DataFlowEngine/NativeTrace/ImbNativeTrace.cpp: 732:
ensureServletContainer: :
Oct 13 13:47:16 partick user:err|error WebSphere Broker v8000[303572]:
(DANBRK.default)[1]BIP2275E: Error loading message flow 'ef2a0606-2401-0000-0080-984a4915984c'. :
DANBRK.de427601-2401-0000-0080-d525e90f1528: /build/S000_P/src/DataFlowEngine/ImbDataFlowDirector.cpp:
2957: ImbDataFlowDirector::loadAllDataFlowsFromDatabase:
ExecutionGroup: de427601-2401-0000-0080-d525e90f1528
このエラーが生成されるのは、メッセージ・フローに含まれる HTTP ノードが HTTPS を使用するよう構成されているにもかかわらず、必要な SSL が構成されていないことをバージョン 8.0 ブローカーが検出した場合です。ブローカーはそのメッセージ・フローをロードしません。 以前のバージョンではこの検査が行われないため、エラーが生成されません。
このエラーを解決するには、SSL を使用するように HTTP ノードを構成してから、メッセージ・フローを再デプロイします。 SSL の構成情報については、HTTPInput ノードと HTTPReply ノードで SSL (HTTPS) を使用するための構成を参照してください。
モニター・イベントのパブリッシュに関するデフォルト動作が変更されています。 バージョン 8.0 より前のバージョンでは、モニター・イベントは同期点以外で発行されました。 現在、トランザクション・ロールバック以外のすべてのイベントのデフォルトでは、メッセージ・フローが作業単位を正常にコミットする場合にのみイベントが発行されるようになりました。 デフォルトでは、トランザクション・ロールバック・イベントは、メインの作業単位とは独立した、2 番目の作業単位で発行されます。
こうした変更により、障害の発生したメッセージ・フローのためにバックアウトされたイベントは表示されなくなります。表示されるのは、トランザクション開始イベントとトランザクション・ロールバック・イベント (これらのイベントが定義されている場合) だけです。また、独立した作業単位内に配置されるように定義されているその他のイベントもすべて表示されます。 詳しくは、モニターの基本を参照してください。
シーケンス番号が、モニター・イベントの eventSequence エレメントに追加されています。モニター・イベントでは作成時間とシーケンス番号の両方が常に発行されるので、WebSphere Message Broker Toolkit 内のモニター・タブから「シーケンス」タブが除去されています。
フィールド参照指標としてゼロを使用することの妥当性が修正されました。指標ゼロを含んだステートメントが ESQL モジュールにある場合、メッセージ・フローをデプロイするとエラー BIP3226E が生成されます。
例えば、次のステートメントを含んだコードがあるとします。
SET OutputRoot.XMLNSC.Top.A[0].B = 42;
以下の内容が含まれるように、このコードを更新する必要があります。
SET OutputRoot.XMLNSC.Top.A[1].B = 42;
RegistryLookup ノードの「深さのポリシー」プロパティーのデフォルトが、バージョン 6.1 での「一致項目を返し、直接の関係を表示する (互換性のみのため)」という値から、バージョン 8.0 での「一致項目だけを返す (深さ = 0)」という値に変更されています。
RegistryLookup ノードでこのプロパティーを明示的に設定しない場合、デフォルト値の「一致項目だけを返す (深さ = 0)」が使用されて、WSRR 照会の深さおよび返されるエンティティー・データの内容が決められます。
バージョン 8.0で推奨されないモードのノードを使用する場合は、「深さのポリシー」プロパティーを明示的に値「一致項目を返し、直接の関係を表示する (互換性のみのため)」に設定して、BAR ファイルを再作成する必要があります。
RegistryLookup ノードおよびそのプロパティーについて詳しくは、RegistryLookup ノードを参照してください。
WebSphere Message Broker Toolkit には、以下の変更点があります。
WebSphere Message Broker バージョン 7.0.0.2 では、管理エージェントに関するデフォルトのトレース・サイズが 4 MB から 100 MB に変更されました。 WebSphere Message Broker バージョン 7.0.0.1 以前からマイグレーションする場合は、このデフォルト・サイズを考慮に入れる必要があります。