jms - 如何为 MQQueueConnectionFactory 设置固定退避
问题描述
我已经DefaultJmsListenerContainerFactory
很好地实现了它的工作,现在我正在为 IBM MQ(MQQueueConnectionFactory
寻找解决方案)实现下面是来自DefaultJmsListenerContainerFactory
. 期待:
FixedBackOff{interval=200, currentAttempts=1, maxAttempts=7}`
DefaultJmsListenerContainerFactory ---->
FixedBackOff{interval=5000, currentAttempts=1, maxAttempts=unlimited}
我想覆盖interval
and maxAttempts
。
FixedBackOff backOff=new FixedBackOff();
backOff.setInterval(200);
backOff.setMaxAttempts(7);
factory.setBackOff(backOff);
factory.setErrorHandler(
new ErrorHandler() {
@Override
public void handleError(Throwable t) {
logger.error("An error has occurred in the transaction of JMSconnectionFactory");
}
});
解决方案
通常不要使用 QueueConnectionFactory 或 TopicConnectionFactory,因为 ConnectionFactory (JMS 1.1) 是两者的替代品。
Spring xml配置示例:
<bean id="mqConnectionFactory" class="com.ibm.mq.jms.MQConnectionFactory"
p:queueManager="${QM_NAME}"
p:hostName="${QM_HOST_NAME}"
p:port="${QM_HOST_PORT}"
p:channel="${QM_CHANNEL}"
p:clientID="${QM_CLIENT_ID}">
<property name="transportType">
<util:constant static-field="com.ibm.msg.client.wmq.WMQConstants.WMQ_CM_CLIENT" />
</property>
</bean>
<bean id="messageListener" class="com.stackowerflow.example.MyMessageListenerStub" />
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"
p:corePoolSize="5"
p:maxPoolSize="10"
p:queueCapacity="25" />
<bean id="backOff" class="org.springframework.util.backoff.FixedBackOff"
p:interval="5000"
p:maxAttempts="10" />
<bean id="msgListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="mqConnectionFactory"
p:destinationName="${QM_DESTINATION}"
p:messageListener-ref="messageListener"
p:taskExecutor-ref="taskExecutor"
p:backOff-ref="backOff" />
推荐阅读
- c++11 - 回调函数未提供所需的输出
- angular - 可以为 FormControl 值设置某种类型吗?
- sql - 将 char var 转换为整数以用于连接
- microsoft-cognitive - 为什么我在尝试分析表单时会收到 UnsupportedMediaType 消息?
- php - 日期和时间拆分,然后添加到另一个表列
- migration - Websphere 从 was7 迁移到 was9
- amazon-web-services - 带有文件附件的 SNS
- javascript - 为什么字符类中的句点不只匹配文字句点
- node.js - 为什么函数没有按预期返回值?
- python - 如何在一个变量中同时在python中以读取和追加模式打开文件