3

JMScreateQueueメソッドに関する一般的な質問があります。WebSphere MQでは、このメソッドはJNDIルックアップの代わりに使用されますか?動的にキューを作成できると思っていました。これは可能ですか?ありがとうございました。

4

2 に答える 2

4

あなたが意味すると仮定するとQueueSession.createQueue、これは非常に誤解を招く方法であり、あなたが思うかもしれないことをしません:

指定されたキュー名でキュー ID を作成します。

この機能は、クライアントがキュー ID を動的に操作する必要があるまれなケースのために提供されています。これにより、プロバイダー固有の名前を持つキュー ID を作成できます。この機能に依存するクライアントは移植できません。

このメソッドは、物理キューを作成するためのものではないことに注意してください。キューの物理的な作成は管理タスクであり、JMS API によって開始されることはありません。1 つの例外は一時キューの作成で、これは createTemporaryQueue メソッドで実行されます。

JMS API は、キューを動的に作成する方法を提供しません (要求応答メッセージングで使用される非常に異なるビーストである一時キューを意味しない限り)。実行時にキューを作成したい場合、それは WebSphere 独自のものになります。

于 2009-09-21T17:41:37.243 に答える
1

はい、仕様どおりで、上記の回答で正しく指摘されています

Creates a queue identity given a Queue name.

This facility is provided for the rare cases where clients need to dynamically
manipulate queue identity. It allows the creation of a queue identity with a
provider-specific name. Clients that depend on this ability are not portable.

Note that this method is not for creating the physical queue.
The physical creation of queues is an administrative task and is not to be
initiated by the JMS API. The one exception is the creation of temporary queues,
which is accomplished with the createTemporaryQueue method.

そのため、JMS はキューを動的に作成する直接的な方法を提供しません。その方法は、JMS プロバイダーに固有です。JMS プロバイダーは、これを行うためのある種のコンソールまたは管理 API を提供する場合があります。

createQueue()Session のメソッドを考える限り、 既に作成されている場合は Queue への参照を返します。そうでない場合はJMSExceptionスローされます。

createTemporaryQueue()また、実際の物理キューを作成することにも注意してください。delete()クリーンアップ関連のリソースを呼び出す必要があります。

于 2014-02-13T14:15:22.417 に答える