メッセージキュー 4.0 は、Application Server 9 PE のサポートに限定されたマイナーリリースです。このリリースでは、いくつかの新機能、機能拡張、およびバグ修正が実装されています。この節では、このリリースの新機能について説明します。
version 4.0 には、軽度とはいえ、状況によって十分な対応が必要になる変更が導入されました。その 1 つとして、パスワードを指定するコマンド行オプションが使用されなくなったことが挙げられます。今後は、「使用されなくなったパスワードオプション」で説明するように、すべてのパスワードをファイルに保存するか、または要求されたときに入力します。
Message Queue 4.0 には、Java Management Extensions (JMX) 仕様に準拠して、メッセージキュー ブローカを設定および監視するための新しい API が追加されました。この API を使用すると、Java アプリケーション内部からプログラムによってブローカ関数を設定および監視することができます。以前のバージョンの メッセージキュー では、これらの関数にはコマンド行管理ユーティリティーまたは管理コンソールからしかアクセスできませんでした。
詳細は、『Sun GlassFish Message Queue 4.4 Developer’s Guide for JMX Clients 』を参照してください。
メッセージキュー 4.0 では、接続およびセッション関連のイベントに関するクライアントランタイムログのサポートが導入されました。
クライアントランタイムログおよびその設定方法については、『Java Dev Guide』の 137 ページを参照してください。
メッセージキュー 4.0 にはイベント通知 API が導入され、クライアントランタイムが接続状態の変更をアプリケーションに通知できるようになりました。接続イベント通知を使用すると、Message Queue クライアントは接続のクローズおよび再接続イベントを待機して、通知タイプと接続状態に基づいて適切なアクションを起こすことができます。たとえば、フェイルオーバーが発生してクライアントが別のブローカに再接続された場合、アプリケーションはそのトランザクションの状態をクリーンアップしてから新しいトランザクションに進む必要があるかもしれません。
接続イベント、およびイベントリスナの作成方法については、『Java Dev Guide』の 96 ページを参照してください。
メッセージキュー 4.0 では、コマンドユーティリティー (imqcmd) に、サブコマンドといくつかのコマンドオプションが追加されました。管理者はこれらを使用して、ブローカを休止したり、指定した間隔の後でブローカをシャットダウンしたり、接続を破棄したり、Java システムプロパティー (たとえば、コネクション関連のプロパティー) を設定したりできます。
ブローカを休止すると休止状態になり、ブローカをシャットダウンまたは再起動する前に、メッセージを排出してしまうことができます。休止状態にあるブローカに新しく接続が作成されることはありません。ブローカを休止するには、次のようなコマンドを入力します。
imqcmd quiesce bkr -b Wolfgang:1756
指定した間隔の後でブローカをシャットダウンするには、次のようなコマンドを入力します。(時間間隔は、ブローカをシャットダウンするまでの待機を秒数で指定します。)
imqcmd shutdown bkr -b Hastings:1066 -time 90
時間間隔を指定した場合、ブローカはシャットダウンが発生するタイミングを示すメッセージを記録します。次に例を示します。
Shutting down the broker in 29 seconds (29996 milliseconds)
ブローカがシャットダウンを待っている間、ブローカの動作は次のような影響を受けます。
管理 JMS 接続は引き続き受け付けられます。
新しい JMS 接続は受け付けられません。
既存の JMS 接続は引き続き機能します。
ブローカが拡張ブローカクラスタ内のほかのブローカを継承することはできません。
imqcmd ユーティリティーはブロックはせず、シャットダウンの要求をブローカに送信してすぐに返します。
接続を破棄するには、次のようなコマンドを入力します。
imqcmd destroy cxn -n 2691475382197166336
コマンド imqcmd list cxn または imqcmd query cxn を使用してコネクション ID を取得します。
imqcmd を使用してシステムプロパティーを設定するには、新しい –D オプションを使用します。これは、JMS コネクションファクトリのプロパティー、またはコネクション関連の Java システムのプロパティーの設定または上書きに便利です。次に例を示します。
imqcmd list svc -secure -DimqSSLIsHostTrusted=true imqcmd list svc -secure -Djavax.net.ssl.trustStore=/tmp/mytruststore -Djavax.net.ssl.trustStorePassword=mytrustword
imqcmd コマンドの構文については、『Sun GlassFish Message Queue 4.4 Administration Guide』の第 16 章「Command Line Reference」を参照してください。
メッセージキュー 4.0 では、データベースマネージャーユーティリティー imqdbmgr に、新しい query サブコマンドが追加されました。このサブコマンドは、JDBC ベースのデータストアに関する情報 (データベースバージョン、データベースユーザー、データベーステーブルが作成されたかどうかなど) を表示するために使用します。
次に、このコマンドによって表示される情報の例を示します。
imqdbmgr query |
[04/Oct/2005:15:30:20 PDT] Using plugged-in persistent store: version=400 brokerid=Mozart1756 database connection url=jdbc:oracle:thin:@Xhome:1521:mqdb database user=scott Running in standalone mode. Database tables have already been created. |
メッセージキュー 4.0 では、Apache Derby Version 10.1.1 が、JDBC ベースのデータストアプロバイダとしてサポートされるようになりました。
メッセージキュー 4.0 では、最適化のため、および今後の拡張機能をサポートするために、JDBC ベースのデータストアに変更が加えられました。このため、JDBC ベースのデータストアの形式はバージョン 400 に更新されました。Message Queue 4.0 では、ファイルベースのデータストアのバージョンは、何も変更されていないので 370 のままです。
メッセージキュー 4.0 では、デッドメッセージキューに配置されたすべてのメッセージで設定される 2 つの新しいプロパティーが追加されました。
JMS_SUN_DMQ_PRODUCING_BROKER は、メッセージが生成されたブローカを指定します。
JMS_SUN_DMQ_DEAD_BROKER は、メッセージをデッドとして指定したブローカを指定します。
メッセージキュー 4.0 から、クライアントコネクションファクトリのプロパティー imqSSLIsHostTrusted のデフォルト値が false になりました。使用しているアプリケーションが以前のデフォルト値の true に依存している場合は、再設定を行い、プロパティーを明示的に true に設定する必要があります。
ブローカが自己署名付き証明書を使用するように設定されているときは、ホストを信頼することもできます。この場合、接続で SSL ベースの接続サービスを使用するように指定する (imqConnectionType プロパティーを使用する) ことに加えて、imqSSLIsHostTrusted プロパティーを true に設定することをお勧めします。
たとえば、ブローカが自己署名付き証明書を使用するときに安全にクライアントアプリケーションを実行するには、次のようなコマンドを使用します。
java -DimqConnectionType=TLS -DimqSSLIsHostTrusted=true ClientAppName
ブローカが自己署名付き証明書を使用するときにコマンドユーティリティー (imqcmd) を安全に使用するには、次のようなコマンドを使用します (コネクタサービスのリストを表示する場合)。
imqcmd list svc -secure -DimqSSLIsHostTrusted=true