私は以前のアプリケーションを使ってJBoss MessagingからHornetQへのアップグレードを行っています。このアプリケーションでの使用方法JMS接続を管理します。これはJMSへの私の最初の大規模なエクスポージャー(単純なおもちゃの使用の他に)ですので、現在のイディオムが...正しい、愚かな、または死んだ間違っているかどうか疑問に思っていますか?HornetQを使用したJMS接続/ ConnectionFactoryリファレンス
現在のシステムの動作を示します。
static QueueConnection connection;
static boolean isConnected;
static void sendSomeMessage(Object sendMe) {
if(!isConnected) connect();
}
static void connect() {
// jndi lookup for connection factory
connection = factory.createQueueConnection();
// lambdas in java pseudo code, woot!
connection.onException => disconnect();
connection.start();
isConnected = true;
}
static void disconnect() {
connection.close()
isConnected = false;
}
本の要旨は、接続エラーが最終的に閉じられ、再作成されます接続を発生したときにエラーが発生するまで送信されるすべての単一のメッセージを何度も使用されることです。
私が見てきたすべての例では、常に新しい接続ファクトリとすべてのメッセージ用の新しい接続が作成されますが、これらの例は大きなシステム例ではなく、「ハウツー」例です。
接続ファクトリをキャッシュする必要がある場合、JMS接続への単一の管理参照を許容可能なイディオムにしておきますか?新しいメッセージが出るたびに再作成する必要がありますか?
接続ファクトリを再利用するのは当然ですが、毎回新しい接続を使用してください。
ありがとう、とても役に立ちます! – Michael