package com.neusoft.module.ods.config;
import javax.jms.JMSException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jms.connection.CachingConnectionFactory;
import org.springframework.jms.core.JmsTemplate;
import com.ibm.mq.jms.MQQueueConnectionFactory;
import com.ibm.msg.client.wmq.WMQConstants;
@Configuration
public class JmsConfig {
@Value("${ibm.mq.hostname}")
private String host;
@Value("${ibm.mq.port}")
private Integer port;
@Value("${ibm.mq.channel}")
private String channel;
@Value("${ibm.mq.ccsid}")
private Integer ccsid;
@Value("${ibm.mq.qManager}")
private String queueManager;
@Value("${ibm.mq.qName}")
private String qName;
@Value("${ibm.mq.receiveTimeout}")
private Long receiveTimeout;
@Bean
public MQQueueConnectionFactory connectionFactory() {
MQQueueConnectionFactory factory = new MQQueueConnectionFactory();
factory.setHostName(host);
try {
factory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
factory.setCCSID(1208);
factory.setChannel(channel);
factory.setPort(port);
factory.setQueueManager(queueManager);
} catch (JMSException e) {
e.printStackTrace();
}
return factory;
}
@Bean
@Primary
public CachingConnectionFactory cachingConnectionFactory() {
CachingConnectionFactory factory = new CachingConnectionFactory();
// 目标ConnectionFactory, 对应真实的可以产生JMS Connection的ConnectionFactory
factory.setTargetConnectionFactory(connectionFactory());
// Session缓存数量
factory.setSessionCacheSize(500);
// 连接断开后重试
factory.setReconnectOnException(true);
return factory;
}
@Bean
public JmsTemplate jmsTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory());
jmsTemplate.setReceiveTimeout(receiveTimeout);
return jmsTemplate;
}
}
评论0
最新资源