Spring MessageListenerによってリッスンされるActiveMQでメッセージが受信されると、バックグラウンドでテキスト処理ジョブを実行するWebアプリケーションがあります。私が直面している問題は、約30のバックグラウンドジョブを処理すると、ActiveMQが発生することです。メッセージの処理を停止し、SpringメッセージリスナーがJMS接続を失い、ActiveMQログに開いているファイルが多すぎるというエラーが表示されることがあります。
LinuxでActiveMQプロセスに対して「lsof」(ファイルを開くリスト)コマンドを実行したところ、JmsTemplateによってキューに入れられ、公開され、受信されたほとんどのメッセージについて、新しい接続が開かれていることがわかりました。これは正常ですか?
これが私の設定です:
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg ref="amqConnectionFactory" />
<property name="exceptionListener" ref="jmsExceptionListener" />
<property name="sessionCacheSize" value="100" />
</bean>