物理格納先は、JMSクライアントが送信したメッセージを格納する領域です。
物理格納先の種類には、Point-to-Point(1対1)形態のQueueと、Publish/Subscribe(1対多)形態のTopicの2種類が存在します。
物理格納先では、以下のような管理が可能です。
物理格納先の自動生成
物理格納先の作成
物理格納先の一覧表示
物理格納先情報の表示
物理格納先プロパティの更新
物理格納先の停止と再開
物理格納先の蓄積メッセージの破棄
物理格納先の削除
物理格納先の動作は、生成時と運用中に設定できます。以降に設定可能な項目と設定方法について説明します。
物理格納先の自動生成
JMSクライアントが存在していない物理格納先にアクセスしようとした場合、メッセージブローカが自動的に新しい物理格納先を作成します。
物理格納先を自動生成する場合は、imqbrokerdコマンドのオプション、またはimqcmdコマンドのupdate bkrサブコマンドを使用します。
物理格納先の自動生成に関するプロパティの詳細については、「9.7.3 物理格納先自動生成に関するプロパティ」を参照してください。
注意
本機能は、定義ミスにより誤って意図しない物理格納先へのメッセージ送受信が行われる場合があります。そのため本運用時には、物理格納先の自動作成プロパティをfalseに設定して運用してください。
自動生成された物理格納先は、アクセスがなくなると自動削除されます。
物理格納先の自動作成は、以下の例に示す2つのプロパティをimqbrokerdコマンドに指定してメッセージブローカを起動することで、QueueとTopicそれぞれに対して物理格納先の自動生成を抑止できます。
例
物理格納先の自動生成を抑止する例
imqbrokerd -port 37676 -name brokertest -Dimq.autocreate.queue=false -Dimq.autocreate.topic=false
また、メッセージブローカ起動後も、imqcmdコマンドのupdate bkrサブコマンドを使用して、物理格納先の自動生成を抑止するよう設定を変更できます。
例
物理格納先の設定を変更する例
imqcmd update bkr -b localhost:37676 -o imq.autocreate.queue=false -o imq.autocreate.topic=false
物理格納先の作成
imqcmdコマンドのcreate dstサブコマンドを使用して、物理格納先を作成できます。
例
ローカルホスト上で動作しているメッセージブローカに対して、JMSQueueという名前のQueueを作成する例
imqcmd create dst -b localhost:37676 -n JMSQueue -t q
デフォルトの設定を変更して作成するには、物理格納先の生成に関するプロパティを-oオプションで指定して作成します。
物理格納先の生成に関するプロパティの詳細については、「9.7.7 物理格納先の生成または更新に関するプロパティ」を参照してください。
例
物理格納先の滞留メッセージの最大数を「100」に変更する例
imqcmd create dst -b localhost:37676 -n JMSQueue -t q -o maxNumMsgs=100
物理格納先の一覧表示
imqcmdコマンドのlist dstサブコマンドを使用して、物理格納先の一覧を表示できます。
例
メッセージブローカの物理格納先の一覧を表示する例
imqcmd list dst -b localhost:37676
物理格納先情報の表示
imqcmdコマンドのquery dstサブコマンドを使用して、物理格納先に設定されているプロパティの情報を表示できます。
例
物理格納先JMSQueueのプロパティの情報を表示する例
imqcmd query dst -b localhost:37676 -t q -n JMSQueue
物理格納先プロパティの更新
imqcmdコマンドのupdate dstサブコマンドを使用して、物理格納先に設定されているプロパティの情報を更新できます。
物理格納先の更新に関するプロパティの詳細については、「9.7.7 物理格納先の生成または更新に関するプロパティ」を参照してください。
例
物理格納先JMSQueueのプロパティ「maxNumMsgs」と「maxBytesPerMsg」を変更する例
imqcmd update dst -b localhost:37676 -t q -n JMSQueue -o maxNumMsgs=100 -o maxBytesPerMsg=100
物理格納先の停止と再開
imqcmdコマンドのpause dstサブコマンドを使用して、Producerから物理格納先JMSQueue、物理格納先JMSQueueからConsumer、またはその両方のメッセージの配信を停止できます。
例
物理格納先JMSQueueからConsumerへのメッセージの配信を停止する例
imqcmd pause dst -b localhost:37676 -t q -n JMSQueue -pst CONSUMERS
停止したメッセージの配信は、imqcmdコマンドのresume dstコマンドを使用して再開できます。
例
物理格納先JMSQueueからConsumerへのメッセージ配信を再開する例
imqcmd resume dst -b localhost:37676 -t q -n JMSQueue
物理格納先の蓄積メッセージの破棄
imqcmdコマンドのpurge dstサブコマンドを使用して、物理格納先に格納されたすべてのメッセージを破棄できます。
例
物理格納先JMSQueueに格納されたすべてのメッセージを破棄する例
imqcmd purge dst -b localhost:37676 -t q -n JMSQueue
物理格納先の削除
imqcmdコマンドのdestroy dstサブコマンドを使用して、物理格納先を削除できます。
例
物理格納先JMSQueueを削除する例
imqcmd destroy dst -b localhost:37676 -t q -n JMSQueue