| jBroker MQ 2.1よくある質問 |
このFAQは、次の4つのセクションに分かれています。
これらの各セクションに対してよくある質問のリストは、次のとおりです。
| | 異なるjvmはどのように使用できますか? |
| | システムには何がインストールされますか? |
| | 製品にはどのようなツールが用意されていますか? |
| | JDBCドライバがCLASSPATHにないため(またはその他の問題のため)、インストール中にデータベース作成が失敗しました。 どうすればよいのですか? |
| | インストールの際に、jBroker ORBをJava 2拡張として誤ってインストールしてしまいました。 これはどのように削除しますか? |
| | コマンドラインからjBroker MQをインストールできますか? |
| | jBroker MQはシステムからどのようにアンインストールしますか? |
| | 「jmqserv」を実行すると、「DB not created or unavailable...」というメッセージが表示されます。 |
| | 「jmqserv」を実行すると、「detected jBroker ORB version 3.1; jBroker MQ requires ORB version 4.0 or higher ...」というメッセージが表示されます。 |
| | 「jmqserv」を実行すると、「java.sql.SQLException」というメッセージが表示され、その後いくつかのエラーメッセージが出力されます。 |
| | 「jmqserv」または「dbinit」を実行すると、「Missing XX in properties file」というメッセージが出力されます。ここで、XXは、「driver name」、「password」、「username」、「jdbcURL」、「min pool size」、または「max pool size」のいずれかです。 |
| | 「jmqserv」、「jmqrun」、または「dbinit」を実行すると、「Exception in thread "main" java.lang.NoClassDefFoundError: com/sssw/jbroker/util/Messages」というメッセージが出力されます。 |
| | 「jmqserv」、「jmqrun」、または「dbinit」を実行すると、「Exception in thread "main" java.lang.NoClassDefFoundError: com/sssw/jbroker/api/security/SecurityException」というメッセージが出力されます。 |
| | 「jmqrun」プログラムでは何が実行されますか? |
| | ORBDefaultInitRefコマンドライン引数の「iioploc」は何ですか? |
| | jBroker MQクライアントプログラムを実行すると、「Exception in thread "main" org.omg.CORBA.BAD_PARAM: unable to resolve initial reference: NameService minor code: 0 completed: No」というエラーメッセージを取得します。 |
| | 「jmqrun」を使用して、jBroker MQサーバと同じホストにはないクライアントを実行できますか? |
| | メモリを増設した状態では、jBroker MQをどのように実行しますか? |
| | jBroker MQでは、クライアントとサーバ間でメッセージをどのように通信しますか? |
| | クライアントは異なるホストからどのように実行しますか? |
| | クライアントを実行すると、「javax.jms.JMSException: maximum connection count of developer version exceeded」という例外を取得します。 |
| | jBroker MQサーバはどのように停止しますか? |
| | 「jmqserv」を実行すると、「Socket bind exception: Address already in use.」というエラーメッセージを取得します。 |
| | 複数のjBroker MQサーバを同じマシンで実行できますか? |
| | 複数のjBroker MQサーバでは同じデータベースを共有できますか? |
| | JMSクライアントアプリケーションのスレッド数が増え続けています。 どのようになる可能性がありますか? |
| | マルチホームホストがあります。 jBroker MQサーバは特定のアダプタにどのようにバインドしますか? |
| | クライアントアプリケーションを実行するときに接続時フェイルオーバが実行されないのはなぜですか? |
| | jBroker MQクラスタの機能を要約してもらえますか? |
| | クラスタリングによって、Pub/Sub (パブリッシュ/サブスクライブ)メッセージングはどのような影響を受けますか? |
| | クラスタリングによって、P2P (ポイントツーポイント)メッセージングはどのような影響を受けますか? |
| | クラスタを使用してメッセージを送信するときに時間がかかることがあるのはなぜですか? |
| | クラスタ内のブローカの1つをシャットダウンするときに生成側アプリケーションでフェイルオーバが実行されません。 なぜですか? |
| | クラスタリングによって、メッセージの順序はどのような影響を受けますか? |
| | 生成側障害対策に制限はありますか? |
| | メッセージの順序に関してJMSで保証していることは何ですか? |
| | JMSを使用してXMLドキュメントを送信できますか? |
| | 特定のメッセージを確認できますか? |
| | トピックのメッセージを参照できますか? |
| | セレクタはどのように機能しますか? |
| | (RMIを使用して実行する場合のように) JMSを使用して同期リクエストをシミュレートできますか? |
| | JMSに関するその他のFAQはありますか? |
質問: 異なるjvmはどのように使用できますか? 回答: まず、jBroker MQと、使用するデータベースが、両方とも特定のjvmと機能することを確認してください。 「jmqserv」コマンドでは |
質問: システムには何がインストールされますか? 回答: jBroker MQインストールでは、jBroker MQのバイナリ、ライブラリ、ドキュメント、およびサンプルプログラムを、インストール中に指定したディレクトリに常にインストールします。 jBroker MQはjBroker ORBに依存しているため、インストールされていない場合はjBroker ORBもインストールされます。 デフォルトにより、jBroker ORBは、Java拡張としてインストールされます。 Javaホームディレクトリへの書き込み許可がない場合、インストーラによってjBroker ORBがjBroker MQとともにインストールされます。 |
質問: 製品にはどのようなツールが用意されていますか? 回答: jBroker MQには、サーバ管理用のツールがいくつも付属しています。 詳細については、コンソールのマニュアルおよびツールのmanページを参照してください。 |
質問: JDBCドライバが
回答: インストール後に、jBroker MQデータベーステーブルを作成できます。 jBroker MQの |
質問: インストールの際に、jBroker ORBをJava 2拡張として誤ってインストールしてしまいました。 これはどのように削除しますか? 回答: Java 2ランタイム環境の |
質問: コマンドラインからjBroker MQをインストールできますか? 回答: はい。 次のように |
質問: jBroker MQはシステムからどのようにアンインストールしますか? 回答: システムからjBroker MQをアンインストールする場合は、アンインストールツールを実行できます。 jBroker MQを最初にインストールした |
質問: 「jmqserv」を実行すると、「DB not created or unavailable...」というメッセージが表示されます。 回答: jBroker MQデータベースを作成していない可能性があります。 「dbinit -create」を実行してみてください。 |
質問: 「jmqserv」を実行すると、「detected jBroker ORB version 3.1; jBroker MQ requires ORB version 4.0 or higher ...」というメッセージが表示されます。 回答: 環境が、このバージョンのjBroker MQではサポートされていない以前のバージョンのjBroker ORBを指しています。 このような状況は、使用しているJava仮想マシンにORBがJava 2拡張としてインストールされている場合に発生することがあります。 拡張を削除またはアップグレードするか、あるいは新しいバージョンのORBを指すように環境を更新する必要があります。 JVM設定については、ここを参照してください。 |
質問: 「jmqserv」を実行すると、「java.sql.SQLException」というメッセージが表示され、その後いくつかのエラーメッセージが出力されます。 回答:
|
質問: 「jmqserv」または「dbinit」を実行すると、「Missing XX in properties file」というメッセージが出力されます。ここで、XXは、「driver name」、「password」、「username」、「jdbcURL」、「min pool size」、または「max pool size」のいずれかです。 回答: このような状況は、msgsvc.propertiesファイルにそのエントリがない場合に発生します。 サンプルの
|
質問: 「jmqserv」、「jmqrun」、または「dbinit」を実行すると、「Exception in thread "main" java.lang.NoClassDefFoundError: com/sssw/jbroker/util/Messages」というメッセージが出力されます。 回答: このような状況は、jBroker ORBが見つからない場合に発生します。 使用しているjdkまたはjreのデフォルトのORBとしてjBroker ORBがインストールされていることを確認してください。 または、異なるjvmの使用方法に関する質問を参照してください。 |
質問: 「jmqserv」、「jmqrun」、または「dbinit」を実行すると、「Exception in thread "main" java.lang.NoClassDefFoundError: com/sssw/jbroker/api/security/SecurityException」というメッセージが出力されます。 回答: このような状況は、jBroker ORBが見つからない場合に発生します。 使用しているjdkまたはjreのデフォルトのORBとしてjBroker ORBがインストールされていることを確認してください。 または、different jvmの使用方法に関する質問を参照してください。 |
質問: 「jmqrun」プログラムでは何が実行されますか? 回答: このプログラムでは、コマンドラインでjBroker MQに適切なパラメータを使用してjvmを起動します。 これには、正しい |
質問:
回答:
|
質問: jBroker MQクライアントプログラムを実行すると、「Exception in thread "main" org.omg.CORBA.BAD_PARAM: unable to resolve initial reference: NameService minor code: 0 completed: No」というエラーメッセージを取得します。 回答: この状況は、jBroker MQサーバが実行されていない場合に通常は発生します。
|
質問: 「jmqrun」を使用して、jBroker MQサーバと同じホストにはないクライアントを実行できますか? 回答: はい。-Jフラグを使用して、jmqrunプログラムのデフォルトのパラメータを修正できます。jmqrun -J-DORBDefaultInitRef=iioploc://<hostname>:<port> <class name> [parameters] |
質問: JMSクライアントプログラムを実行すると、「javax.naming.ConfigurationException: COS Name Service not registered with ORB under the name 'NameService' [Root exception is org.omg.CORBA.ORBPackage.InvalidName: unable to resolve initial reference: NameService]」という例外を取得します。 回答: jBroker MQサーバが実行されていない可能性があります。 このエラーは、インプロセスで実行されているネーミングサービスがjBroker MQサーバにあり、クライアントアプリケーションではこのネーミングサービスをjBroker MQサーバで検出することを予測しているために発生します。 jBroker MQサーバが確実に実行されていても、「-DORBDefaultInitRef=iioploc://host:port」をコマンドラインに置かなかった場合は、この状況が発生することがあります。 jBroker MQサーバがローカルホストのポート3506で実行されている場合は、「-DORBDefaultInitRef=iioploc://localhost:3506」をコマンドラインで指定する必要があります。 |
質問: JMSクライアントプログラムを実行すると、「Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial」という例外が発生します。 回答: 「-Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory」をクライアントプログラムのコマンドラインに指定する必要があります。 これは、CORBAネーミングサービスを使用してJMS管理オブジェクトを検索するようJNDIに指示します。 |
質問: メモリを増設した状態では、jBroker MQをどのように実行しますか? 回答: -Jコマンドラインフラグを使用して、フラグをjvmに渡すことができます。 最大ヒープサイズを250MBに設定するには、次のようにjBroker MQを開始できます。jmqserv -J-Xmx250m |
質問: jBroker MQでは、クライアントとサーバ間でメッセージをどのように通信しますか? 回答: jBroker MQサーバはjBroker ORBの上で実行されているため、IIOPが使用されます。 IIOPでは、TCP/IPプロトコルスタックを使用してメッセージを送信します。 IIOPは、スケーラビリティ、信頼性、および相互運用性を含むさまざまな利点のある標準ベースのプロトコルです。 |
質問: クライアントは異なるホストからどのように実行しますか? 回答: クライアントを実行するには、そのクライアントにjBroker MQライブラリが必要です。 最も簡単な方法は、一般的に、jBroker MQをクライアントマシンにインストールすることです。 次に、
|
質問: クライアントを実行すると、「javax.jms.JMSException: maximum connection count of developer version exceeded」という例外を取得します。 回答: 開発者バージョンで許可されている数よりも多い接続を作成しようとしています。 接続をさらに作成するには、jBroker MQライセンスを購入する必要があります。 |
質問: jBroker MQサーバはどのように停止しますか? 回答: 「jmqserv -stop」を別のウィンドウから単に呼び出してください。 |
質問: 「jmqserv」を実行すると、「Socket bind exception: Address already in use.」というエラーメッセージを取得します。 回答: これは、別のjBroker MQサーバがそのポートですでに実行されていることを意味しています。 最初に、現在実行しているブローカを停止するか、新しいブローカを異なるポートで開始する必要があります。 |
質問: 複数のjBroker MQサーバを同じマシンで実行できますか? 回答: はい。ただし、データベースへのアクセス時にサーバが競合しないように注意する必要があります。 msgsvc.propertiesファイルには、特定のjBroker MQサーバを識別する「msgsvc.name」というエントリがあります。 複数のサーバには、データベース競合を避けるために異なる名前を付ける必要があります。 異なるメッセージサーバ名に対しては、それぞれ「dbinit -create」を実行し、その名前でjBroker MQサーバのテーブルを作成する必要があります。 また、各サーバが異なるポートで実行されるようにする必要もあります。 これを行う最も簡単な方法は、次のように、2つの個々のプロパティファイルを保持して、2つのブローカを開始することです。jmqserv -props b1.properties jmqserv -props b2.properties |
質問: 複数のjBroker MQサーバでは同じデータベースを共有できますか? 回答: はい。ただし、同じテーブルを共有することはできません。 各サーバに対しては、サーバに異なる名前を付けることによって、同じデータベースに異なるテーブルを作成できます。 詳細については、このエントリを参照してください。 |
質問: JMSクライアントアプリケーションのスレッド数が増え続けています。 どのようになる可能性がありますか? 回答: jBroker MQクライアントライブラリの観点から見て最も可能性の高い原因は、InitialContextオブジェクトの作成です。 JNDI/CosNamingドライバの構造化形式のため、
|
質問: マルチホームホストがあります。 jBroker MQサーバは特定のアダプタにどのようにバインドしますか? 回答: jBroker MQはjBroker ORBに基づいたCORBAサーバであるため、ORBランタイムプロパティの |
質問: クライアントアプリケーションを実行するときに接続時フェイルオーバが実行されないのはなぜですか? 回答: これは、 |
質問: jBroker MQクラスタの機能を要約していただけますか? 回答: 主な機能は次のとおりです。 |
質問: クラスタリングによって、Pub/Sub (パブリッシュ/サブスクライブ)メッセージングはどのような影響を受けますか? 回答: トピックは、jBroker MQクラスタ内のすべてのブローカで自動的に使用可能になります。 トピックメッセージは、ブローカ間で転送されます。つまり、発行者は任意のブローカにメッセージを公開でき、加入者は任意のブローカからメッセージを受信できます。 |
質問: クラスタリングによって、P2P (ポイントツーポイント)メッセージングはどのような影響を受けますか? 回答: キューは、各キューメッセージを1人の受信者だけが取得できるように、ブローカにバインドされます。 クライアントアプリケーションでは、「queue@broker」JNDI検索文字列を使用することによって、特定のキューに接続できます。 キュー受信者は、プロキシを使用して、キューがないブローカからメッセージを受信できます。 |
質問: クラスタを使用してメッセージを送信するときに時間がかかることがあるのはなぜですか? 回答: このような状況は、クラスタ内のサーバを起動した直後に発生することがあります。 クラスタ内のブローカでは一定の間隔で互いにpingし、クラスタブローカが相互接続されるまでメッセージは流されません。 |
質問: クラスタ内のブローカの1つをシャットダウンするときに生成側アプリケーションでフェイルオーバが実行されません。 なぜですか? 回答: 理由としては、使用している接続にコンシューマもあることが考えられます。 フェイルオーバは、生成側アプリケーションに対してのみサポートされています。 接続により作成されたセッションにコンシューマがある場合(または接続に接続コンシューマがある場合)、フェイルオーバは発生しません。 |
質問: クラスタリングによって、メッセージの順序はどのような影響を受けますか? 回答: 順序は、待ち時間およびブローカダウンタイムが原因によるメッセージ遅延のために影響を受けることがあります。 たとえば、同じトピックに対して2つの加入者が存在しているが、それぞれが2つの異なるブローカに接続されている場合、複数の発行者が両方のブローカにメッセージを送信すると、加入者がメッセージを受信する順序は異なる可能性があります。 |
質問: 生成側障害対策に制限はありますか? 回答: 接続にはコンシューマを含むことはできないという制限の他に、分散トランザクションではフェイルオーバを実行することもできません。 この制限は、あるブローカでトランザクションを準備できないために別のブローカにコミットする場合に適用されます。 さらに、一時宛先でもフェイルオーバを実行することできません。これは、クラスタで複製されないためです。 |
質問: メッセージの順序に関してJMSで保証していることは何ですか? 回答: JMSの仕様に従うと、優先度のより高いメッセージが優先されます。 つまり、2つのメッセージを送信し、後に送信したメッセージの優先度の方が高い場合、JMSでは、後のメッセージを最初に配信します。 優先度内では、JMSの仕様により、メッセージはセッション範囲内で順序付けられなければなりません。 1つまたは複数のメッセージ生成側が同じセッションを使用してメッセージを送信する場合、コンシューマは、これらのメッセージを、生成側のセッションで受信された順序で受信します。 つまり、FIFOの順序付けは、セッション内で施行されます。 異なるセッションまたはプロセスで実行されている複数のサプライヤからのメッセージは、JMSサーバによって受信された場合に従って順序付けられます。 |
質問: JMSを使用してXMLドキュメントを送信できますか? 回答: はい。 |
質問: 特定のメッセージを確認できますか? 回答: はい。ただし、jBroker MQ専用のAPIを使用する必要があります。 JMQSessionでは、 |
質問: トピックのメッセージを参照できますか? 回答: トピックでは将来の加入者に対するメッセージを保持しないため、通常のトピックブラウザは使用できません。 トピック加入者を作成し、接続した時点からトピックのメッセージをすべて表示することは可能です。 また、永続的加入者を作成して、この永続的加入者が接続するたびに、最後に接続されていた時点から受信したメッセージをすべて参照することもできます。 このようなブラウザでトピックメッセージを複数回参照できるようにする場合は、
|
質問: セレクタはどのように機能しますか? 回答: Pub/Sub (パブリッシュ/サブスクライブ)では、セレクタはフィルタのように機能します。つまり、メッセージが加入者セレクタに一致しない場合、そのメッセージは、その加入者に関する限り存在しません。 これは、加入者が接続する前にメッセージがトピックによって受信された場合のようになります。 P2Pでは、特定の受信者が表示できるメッセージ、つまり、受信者が利用するビューだけがセレクタによって制限されます。 受信者は、別の受信者セレクタに一致しないメッセージでも取得できます。 |
質問: (RMIを使用して実行する場合のように) JMSを使用して同期リクエストをシミュレートできますか? 回答: はい。TopicRequestorまたはQueueRequestorを使用できます。 リクエスタは、ReplyToフィールドが新しく作成された一時宛先に設定されている通常の宛先にJMSメッセージを送信するjavax.jmsパッケージの具体的なクラスです。 アプリケーション開発者は、ReplyTo宛先にメッセージを送信し直す必要のあるコンシューマを実装します。 リクエスタが一時トピックに返信を受信すると、この返信は、リクエスタのユーザに戻されます。 |
質問: JMSに関するその他のFAQはありますか? 回答: はい。次のいずれかを参照できます。 また、jBroker MQに関する記事やディスカッションについては、Novell DevCenterにアクセスしてください。 |
Copyright (C) 1998-2003, Novell, Inc. All rights reserved.
|