物理格納先は、JMSクライアントが送信したメッセージを格納する領域です。
物理格納先の種類には、Point-to-Point(1対1)形態のQueueと、Publish/Subscribe(1対多)形態のTopicの2種類が存在します。
物理格納先では、以下の管理を行います。
物理格納先の動作は、生成時と運用中に設定できます。設定可能な項目と設定方法について以下に説明します。
物理格納先の自動生成
JMSクライアントが存在していない物理格納先にアクセスした場合、メッセージブローカは自動的に新しい物理格納先を作成します。
物理格納先の自動生成は、imqbrokerdコマンドのオプション、またはimqcmdコマンドのupdate bkrサブコマンドを使用して行います。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqbrokerd」/「imqcmd」を参照してください。
物理格納先の自動生成に関するプロパティの詳細については、「6.7.3 物理格納先自動生成に関するプロパティ」を参照してください。
注意
本機能は、定義ミスにより誤って意図しない物理格納先にメッセージが送受信される場合があります。このため、本運用時には、物理格納先の自動作成プロパティにfalseを設定して運用してください。
自動生成された物理格納先は、アクセスがなくなると自動削除されます。
物理格納先の自動作成は、imqbrokerdコマンドに、以下の例に示す2つのプロパティを指定してメッセージブローカを起動することにより、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オプションで指定して作成します。
物理格納先の生成に関するプロパティの詳細については、「6.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サブコマンドを使用して、物理格納先に設定されているプロパティの情報を更新します。
物理格納先の更新に関するプロパティの詳細については、「6.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