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