1

MDB の移植性を実現するためのベスト プラクティスを教えてください。ConnectionFactoryと と の両方Queueを使用するアプリケーションに取り組んでいますTopic。一部のアプリケーション サーバー (主に Glassfish 3.1.2.2 および JBoss EAP 6.1) でアプリケーションをテストしているときに、リソースに次のような注釈が付けられていることがわかりました。

@Resource(name="jms/myConnectionFactory", lookup="java:/jms/myConnectionFactory")
private ConnectionFactory myConnectionFactory;

@Resource(name="jms/myTopic", lookup="java:/jms/myTopic")
private Topic myTopic;

AS固有であるため、mappedNameプロパティを使用すると移植性がないと見なされることをどこかで読みました。@Resourceしかし、私は前述のアプローチにも苦労しており、実際にはGlassfishで作業していますが、JBossでは作業していません。JMS エンティティを定義するための真にポータブルなアプローチはありますか?

どうもありがとう。

4

2 に答える 2

1

たとえば、WebSphere MQ API から一般的な JMS に変更すると、JMS にマップされない MQの特別な機能がいくつかあることに気付く場合があります。

ソースがすでに JMS のみを使用している場合、実際に異なるのは、ConnectionFactory. その上、私は違いに遭遇していません。

アプリケーションサーバーなし(=JNDIなし)のJMSキューを利用している場合、通常は接続方法のみが異なります。

アプリケーションサーバーで JMS キューを使用している (= JNDI を使用している) 場合、通常は JNDI 名のみが異なります。

MDB の場合、ソースと構成を分離するために、(ソースではなく) アプリケーション サーバー固有の記述子ファイルで接続ファクトリを構成することを好みます。いずれにせよ、アプリケーションを構成するのはデータセンターの責任です。さまざまな環境やアプリケーション サーバー用にさまざまなパッケージを構築すると役立つ場合があります。

于 2013-06-03T10:15:02.140 に答える