0
我使用彈簧集成通過活動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秒超時。顯然有一些懶惰的加載正在進行。
我的問題是,我如何在啓動時進行完全初始化以避免第一個請求總是超時?
乾杯,
彼得
Russel:我已經在使用Spring CachingConnectinoFactory。添加init-method =「createConnection」確實解決了一些問題,但我懷疑它也會使孤立的連接浮動。我結束了使用 這似乎是做這項工作。 接受了答案,因爲它指向了正確的方向。 –
2012-04-27 06:01:57
不應該有任何額外的連接,因爲CCF使用單個連接(它是SingleConnectionFactory的子類,它增加了會話,消費者和生產者的緩存)。 – 2012-04-27 17:39:14
使用工廠bean熱切地創建連接是一個巧妙的技巧。但是,正如我在其他線程中指出的那樣,您不需要init方法 - 它不會執行任何操作,因爲單個連接會保留以供重用。 – 2012-05-03 12:31:20