![]() |
Sun ONE Message Queue 管理者ガイド |
第 7 章 管理対象オブジェクトの管理
管理対象オブジェクトを使用すると、ほかの JMS プロバイダへの移植が可能なクライアントアプリケーションを開発できます。管理対象オブジェクトとは、プロバイダ固有の設定および命名情報をカプセル化するオブジェクトのことです。通常、これらのオブジェクトは MQ の管理者によって作成され、クライアントアプリケーションがブローカへのコネクションを取得する際に使用されます。さらに、これらのオブジェクトは、物理的な送信先にメッセージを送信したり、物理的な送信先からメッセージを受信したりする場合にも使用されます。管理対象オブジェクトの概要については、「MQ 管理対象オブジェクト」を参照してください。
MQ には、管理対象オブジェクトを作成および管理するために、オブジェクトマネージャコマンド行ユーティリティ (imqobjmgr) と GUI の管理コンソールの 2 つの管理ツールが用意されています。これらのツールでは、次のようなタスクを実行できます。
オブジェクトストアへの管理対象オブジェクトの追加やオブジェクトストアからの管理対象オブジェクトの削除
この章では、オブジェクトマネージャユーティリティ (imqobjmgr) を使用して、これらのタスクを実行する方法について説明します。管理コンソールについては、第 4 章「管理コンソールのチュートリアル」を参照してください。
オブジェクトストアについて
管理対象オブジェクトは、即時に使用可能なオブジェクトストアに配置されます。クライアントアプリケーションは JNDI 検索を行うときに、このオブジェクトストアに配置された管理対象オブジェクトにアクセスします。標準 LDAP ディレクトリサーバまたはファイルシステムのオブジェクトストアの 2 種類のオブジェクトストアが使用できます。
LDAP サーバ LDAP サーバは、運用メッセージングシステム用のオブジェクトストアとしてお勧めします。LDAP 実装は、多数のベンダーでサポートされており、分散システムでの使用を考慮した設計になっています。LDAP サーバには、運用環境で有効なセキュリティ機能も用意されています。MQ の管理ツールは、LDAP サーバでの使用を考慮して設計されています。
ファイルシステムストア MQ は、ファイルシステムのオブジェクトストア実装もサポートしています。ファイルシステムのオブジェクトストアは、まだ十分なテストが行われていないため、運用システムでの使用はお勧めしませんが、開発環境で使いやすいという利点があります。LDAP サーバをセットアップする必要はなく、ローカルのファイルシステム上にディレクトリを作成するだけで利用できます。このディレクトリにアクセス可能なユーザは、MQ の管理ツールを使用して、管理対象オブジェクトを作成および管理することができます。
管理対象オブジェクト
管理対象オブジェクトの概要については、「MQ 管理対象オブジェクト」を参照してください。MQ の管理対象オブジェクトには、コネクションファクトリと送信先の 基本的な 2 種類があります。コネクションファクトリ管理対象オブジェクトは、ブローカへのコネクションを作成するために、クライアントアプリケーションが使用します。送信先管理対象オブジェクトは、送信先を識別するために、クライアントアプリケーションが使用します。その送信先にプロデューサはメッセージを送信し、その送信先からコンシューマはメッセージを受信します。特殊な SOAP 終端管理対象オブジェクトは、SOAP メッセージングに使用されます。詳細は、『MQ 開発者ガイド』を参照してください。
メッセージ配信モデル (ポイントツーポイント、またはパブリッシュ / サブスクライブ) に応じて、特定タイプのコネクションファクトリおよび送信先を使用できます。たとえば、ポイントツーポイントプログラミングの場合、queueConnectionFactory とキューの送信先を使用できます。同様に、パブリッシュおよびサブスクライブプログラミングの場合、topicConnectionFactory とトピックの送信先を使用できます。また、分散トランザクションをサポートするコネクションファクトリのタイプとして、不特定のコネクションファクトリと送信先管理対象オブジェクトのタイプも使用できます (すべてのサポートタイプについては、表 1-1 を参照)。
オブジェクトマネージャユーティリティ (imqobjmgr)
オブジェクトマネージャユーティリティを使用すると、MQ の管理対象オブジェクトを作成および管理することができます。この節では、imqobjmgr コマンドの基本構文、サブコマンドのリスト、imqobjmgr コマンドのオプションの概要について説明します。後続の節では、これらのコマンドを使用して、特定のタスクを実行する方法について説明します。
コマンドの構文
imqcmd コマンドの一般的な構文は、次のとおりです。
-v、-h、および -H オプションを指定する場合、そのコマンド行で指定するその他のサブコマンドは実行できません。たとえば、次のコマンドを入力すると、バージョン情報が表示されますが、list サブコマンドは実行されません。
- imqobjmgr subcommand [options ]
- imqcmd list -v
imqobjmgr のサブコマンド
オブジェクトマネージャユーティリティ (imqobjmgr) には、次の表 7-1 に示すようなサブコマンドが含まれています。
表 7-1    imqobjmgr のサブコマンド
サブコマンド
説明
add
delete
list
query
update
imqobjmgr コマンドのオプションの概要
表 7-2 に、imqobjmgr コマンドのオプションを示します。これらの使用方法については、タスクごとに説明した後続の節を参照してください。
表 7-2    imqobjmgr のオプション
オプション
説明
-f
-h
-H
-i fileName
実行するコマンドとそのコマンドに必要なその他の情報 (検索名、オブジェクトストアの属性、オブジェクトタイプ、およびオブジェクト属性) が入っている java プロパティファイルの名前を指定する
-j attribute=value
-javahome
使用する代替の Java 2 互換のランタイムを指定する (デフォルトでは、製品にバンドルされているランタイムが使用される)
-l name
管理対象オブジェクトの JNDI 検索名を指定する。この名前は、オブジェクトストアのコンテキスト内で一意であることが必要
-o attribute=value
-r read-only
管理対象オブジェクトを読み取り専用オブジェクトとして作成するかどうかを指定する。値を true にすると、読み取り専用オブジェクトとして管理対象オブジェクトが作成される
-t type
xcf = XA ConnectionFactory (分散トランザクション)
xqf = XA queueConnectionFactory (分散トランザクション)
xtf = XA topicConnectionFactory (分散トランザクション)
e = SOAP 終端1
-v
1 この管理対象オブジェクトのタイプは、SOAP メッセージをサポートするために使用されます (『MQ 開発者ガイド』を参照)。
次に、imqobjmgr のサブコマンドを使用する場合に、設定する必要がある情報について説明します。
必要な情報
管理対象オブジェクトに関連する大部分のタスクを実行する場合、管理者は imqobjmgr サブコマンドのオプションとして、次の情報を指定する必要があります。
管理対象オブジェクトのタイプ
管理対象オブジェクトの JNDI 検索名
- 使用可能なタイプを表 7-2 に示します。
管理対象オブジェクトの属性
- これはオブジェクトストア内の管理対象オブジェクトを (JNDI を使用して) 参照する場合に、クライアントコードで使用される論理名です。
キューおよびトピックの場合 : ブローカの物理的な送信先の名前。これは imqcmd create サブコマンドの -n オプションで指定した名前になります。この名前を指定しない場合、デフォルト名の Untitled_Destination_Object が使用されます。
コネクションファクトリの場合 : クライアントが接続するブローカのホスト名とポート番号。この情報を指定しない場合、ローカルホストとデフォルトのポート番号 (7676) が使用されます。「管理対象オブジェクトの属性」では、オブジェクトの属性を指定する方法について説明します。
JNDI オブジェクトストアの属性
- その他の属性については、「管理対象オブジェクトの属性」を参照してください。
- この情報は、ファイルシステムストアと LDAP サーバのどちらを使用するかによって異なりますが、次の属性を設定する必要があります。
JNDI 実装のタイプ (初期コンテキスト属性)。たとえば、ファイルシステムまたは LDAP
オブジェクトストア内の管理対象オブジェクトの場所 (プロバイダの URL 属性) 。管理対象オブジェクトが存在する「フォルダ」
オブジェクトストアへのアクセスに必要なユーザ名、パスワード、および認証タイプ
- オブジェクトストアの属性については、「オブジェクトストアの属性」を参照してください。
管理対象オブジェクトの属性
管理対象オブジェクトの属性は、属性と値の組み合わせで指定します。次に、これらの属性について説明します。
コネクションファクトリ管理対象オブジェクト
コネクションファクトリ (および XA コネクションファクトリ) の管理対象オブジェクトには、表 7-3 に示すような属性があります。主に使用する 2 つの属性は、imqBrokerHostPort と imqBrokerHostName です。これらの属性を使用して、クライアントアプリケーションがコネクションを確立するブローカを指定します。「コネクションファクトリ管理対象オブジェクトの追加」では、コネクションファクトリ管理対象オブジェクトをオブジェクトストアに追加する場合に、これらの属性を指定する方法について説明します。コネクションファクトリ属性の詳細およびこれらの属性の使用方法については、『MQ 開発者ガイド』と MQ クラスの com.sun.messaging.ConnectionConfiguration に関する『JavaDoc API Documentation』を参照してください。
送信先管理対象オブジェクト
物理的なトピックやキューの送信先を指定する、送信先管理対象オブジェクトには、表 7-4 に示すような属性があります。「トピックまたはキューの管理対象オブジェクトの追加」では、送信先管理対象オブジェクトをオブジェクトストアに追加する場合に、これらの属性を指定する方法について説明します。主に使用する属性は、imqDestinationName です。これは、トピックまたはキューの管理対象オブジェクトに対応する物理的な送信先に割り当てる名前です。複数のアプリケーションをサポートするために作成するほかの送信先と区別するために、送信先の説明を指定することもできます。
詳細は、MQ クラスの com.sun.messaging.DestinationConfiguration に関する『JavaDoc API Documentation』を参照してください。
属性 / プロパティ名
データ型
デフォルト値
imqDestinationDescription
送信先オブジェクトの説明
imqDestinationName
文字列1
Untitled_Destination_Object
1 送信先名には、英数字 (空白文字は含まない) だけを使用できます。送信先名は、英字や、「 _ 」 または「 $ 」、あるいはその両方の文字で開始する必要があります。
オブジェクトストアの属性
オブジェクトストアの属性は、-j オプションを使用して指定し、属性と値の組み合わせで構成します。一般的に、次の属性を指定する必要があります。
初期コンテキストおよび場所の情報
これらのエントリの形式は、ファイルシステムストアと LDAP サーバのどちらを使用するかによって異なります。
ファイルシステムストア ファイルシステムストアを使用する例として、C ドライブに MyObjstore という名前のフォルダを作成し、初期コンテキストと場所の属性について、それぞれ次の値を指定してください。
- -j "java.naming.factory.initial=
com.sun.jndi.fscontext.RefFSContextFactory"
- -j "java.naming.provider.url=file:///C:/MyObjStore"
LDAP サーバ LDAP サーバを使用する例として、初期コンテキストと場所の属性について、それぞれ次の値を指定してください。
- -j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
- -j "java.naming.provider.url=ldap://mydomain.com:389/o=imq"
セキュリティ情報 (LDAP のみ)
これらのエントリの形式は、LDAP プロバイダによって異なります。セキュリティ情報をすべての操作で必要とするのか、あるいは格納データを変更する操作にだけ必要とするのか決める場合、使用する LDAP 実装に付属するマニュアルも参照する必要があります。
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"表 7-5 にこれらのエントリの説明を示します。
入力ファイルの使用
imqobjmgr コマンドを使用すると、imqobjmgr サブコマンド句のすべてまたは一部を表すために java プロパティファイルの構文を使用する、入力ファイルの名前を指定できます。Object Manager ユーティリティ (imqobjmgr) と一緒に入力ファイルを使用すると、オブジェクトストアの属性を指定する場合に特に便利です。なぜなら、オブジェクトストアの属性は複数の imqobjmgr の呼び出しにおいて、同じ内容になる可能性が高く、通常多くの入力作業が必要になるためです。また、入力ファイルを使用すると、コマンド行で許可されている最大文字数を超えて入力してしまうのを防ぐことができます。
imqobjmgr 入力ファイルの一般的な構文は、次のとおりです。なお、version プロパティは、入力ファイルにのみ適用されます。これはコマンド行オプションではありません。この値には 2.0 を設定する必要があります。
入力ファイルを使用する方法の例として、次の imqobjmgr コマンドを検討してください。
このコマンドは、次の内容を含む MyCmdFile などのファイルにカプセル化することができます。
次に、-i オプションを使用して、このファイルをオブジェクトマネージャユーティリティ (imqobjmgr) に渡すことができます。
入力ファイルを使用して一部のオプションを指定する一方で、コマンド行を使用してその他のオプションを指定することも可能です。このため、ユーティリティの複数の呼び出しで、同じ内容になるサブコマンド句の一部を入力ファイルを使用して指定することができます。たとえば、次のコマンドでは、コネクションファクトリ管理対象オブジェクトを追加する場合に必要なすべてのオプション (ただし、管理対象オブジェクトの保存場所を指定するオプションは除く) が指定されています。
- imqobjmgr -i MyCmdFile
imqobjmgr add
-t qf
-l "cn=myQCF"
-o "imqBrokerHostName=foo"
-o "imqBrokerHostPort=777"
-i MyCmdFileこの場合、MyCmdFile ファイルには次の定義が含まれます。
- IMQ_HOME/demo/imqobjmgr
管理対象オブジェクトの追加および削除
この節では、コネクションファクトリおよびトピックまたはキューの送信先管理対象オブジェクトをオブジェクトストアに追加する方法について説明します。
コネクションファクトリ管理対象オブジェクトの追加
クライアントアプリケーションがブローカへのコネクションを取得できるようにするには、クライアントアプリケーションに必要なコネクションのタイプ (トピックのコネクションファクトリ、またはキューのコネクションファクトリ) を表す管理対象オブジェクトを追加します。キューのコネクションファクトリを追加するには、次のようなコマンドを使用します。
上記のコマンドでは、検索名が cn=myQCF で、myHost 上で実行しているブローカに接続し、ポート 7272 で待機する管理対象オブジェクトが作成されます。この管理対象オブジェクトは、LDAP サーバに格納されます。
注 LDAP サーバを使用して、管理対象オブジェクトを格納する場合、前述の例のように、接頭辞「 cn= 」が付いた検索名を割り当てることが重要です。検索名は、-l オプションを使用して指定します。ファイルシステムのオブジェクトストアを使用する場合は、この接頭辞を使用する必要はありません。
引数として入力ファイルに imqobjmgr コマンドを指定すると、同じことを実行できます。詳細は、「入力ファイルの使用」を参照してください。
トピックまたはキューの管理対象オブジェクトの追加
クライアントアプリケーションがブローカ上の物理的な送信先にアクセスできるようにするには、これらの送信先を指定する管理対象オブジェクトをオブジェクトストアに追加します。該当する管理対象オブジェクトをオブジェクトストアに追加する前に、物理的な送信先を作成しておくことをお勧めします。コマンドユーティリティ (imqcmd) を使用して、オブジェクトストア内の送信先管理対象オブジェクトによって識別される、ブローカの物理的な送信先を作成してください。物理的な送信先の作成方法については、「送信先の管理」を参照してください。
次のコマンドでは、検索名が myTopic で、物理的な送信先名が TestTopic のトピック送信先を識別する管理対象オブジェクトが追加されます。この管理対象オブジェクトは、LDAP サーバに格納されます。
次は同じコマンドです。ただし、管理対象オブジェクトが Solaris のファイルシステムに格納されるという点が異なります。
たとえば、LDAP サーバの場合、MyCmdFile という入力ファイルを使用して、サブコマンド句を指定できます。ファイルには、次のテキストが含まれます。
ファイルを imqobjmgr コマンドに渡す場合は、-i オプションを使用します。
キューオブジェクトを追加する場合は、-t オプションに q を指定することを除いて、まったく同じコマンドを使用します。
管理対象オブジェクトの削除
管理対象オブジェクトを削除するには、delete サブコマンドを使用します。オブジェクトの検索名、タイプ、および場所を指定する必要があります。次のコマンドでは、検索名が cn=myTopic で、LDAP サーバに格納される、トピックの管理対象オブジェクトが削除されます。
情報の入手
オブジェクトストア内の管理対象オブジェクトを一覧表示し、個々のオブジェクトに関する情報を表示するには、list サブコマンドと query サブコマンドを使用します。
管理対象オブジェクトの一覧表示
すべての管理対象オブジェクト、または特定タイプのすべての管理対象オブジェクトを一覧表示するには、list サブコマンドを使用します。次のサンプルコードでは、管理対象オブジェクトが LDAP サーバに格納されることを前提としています。
次のコマンドでは、queue タイプのすべてのオブジェクトが一覧表示されます。
単一オブジェクトの情報
管理対象オブジェクトに関する情報を入手するには、query サブコマンドを使用します。オブジェクトの検索名、および管理対象オブジェクト (初期コンテキストおよび場所など) を含むオブジェクトストアの属性を指定する必要があります。次の例では、query サブコマンドを使用して、myTopic という検索名のオブジェクトに関する情報を表示します。
管理対象オブジェクトの更新
管理対象オブジェクトの属性を変更するには、update コマンドを使用します。検索名とオブジェクトの場所を指定する必要があります。-o オプションを使用して、属性値を変更します。このコマンドでは、トピックのコネクションファクトリを表す管理対象オブジェクトの属性が変更されます。
前へ 目次 索引 次へ
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.
最終更新日 2002 年 6 月 19 日