私はアクティブなmq経由で通信するためにバネ統合を使用しています。私は次の設定を持っている。起動時にスプリング統合:ゲートウェイを初期化するにはどうすればよいですか?
<integration:channel id="riskApprovalRequestChannel"/>
<integration:channel id="riskApprovalResponseChannel"/>
<jms:outbound-gateway id="riskApprovalServiceGateway"
request-destination-name="${risk.approval.queue.request}"
reply-destination-name="${risk.approval.queue.response}"
request-channel="riskApprovalRequestChannel"
reply-channel="riskApprovalResponseChannel"
connection-factory="jmsConnectionFactory"
receive-timeout="1000"/>
<integration:gateway id="riskApprovalService" service-interface="com.my.ServiceInterface"
default-request-channel="riskApprovalRequestChannel"
default-reply-channel="riskApprovalResponseChannel"/>
これは、遅い第1の要求を除いてうまく動作します。私はいつも1回目のリクエストで1秒のタイムアウトに当たった。明らかにどこかで怠惰な読み込みがあります。
私の質問は、最初のリクエストがいつもタイムアウトするのを避けるために、起動時に完全な初期化を行うにはどうすればよいですか?
乾杯、
ピーター
Russel:私はすでにSpring CachingConnectinoFactoryを使用しています。 init-method = "createConnection"を追加することで問題は修正されましたが、孤立した接続も浮かび上がってしまうことが考えられます。私は仕事をしていると思われる を使用して終了しました。 正しい方向に私を指摘して答えを受け入れました。 –
CCFは単一の接続(セッション、消費者、およびプロデューサのキャッシュを追加するSingleConnectionFactoryのサブクラス)を使用するため、追加の接続は必要ありません。 –
接続を熱心に作成するためにファクトリBeanを使用するのはすてきなトリックです。しかし、他のスレッドで指摘したように、initメソッドは必要ありません。再利用のために単一の接続が保持されているため、何もしません。 –