vee*_*ras 2 spring spring-jms ibm-mq
我在Spring中有以下配置,它工作正常但性能太低(20条消息需要1分钟).你能否建议我改变以提高性能.
<bean id="jmsConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType"><value>1</value></property>
<property name="queueManager"><value></value></property>
<property name="hostName"><value></value></property>
<property name="port"><value></value></property>
<property name="channel"><value></value></property>
<property name="clientId"><value></value></property>
</bean>
<bean id="SenderJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory"><ref bean="jmsConnectionFactory" /> </property>
<property name="pubSubDomain"><value>false</value></property>
<property name="defaultDestination"><ref bean="senderQueue" /></property>
</bean>
<bean id="senderQueue" class="com.ibm.mq.jms.MQQueue">
<constructor-arg value="TEST" />
<property name="baseQueueManagerName"><value>tree.queue.manager</value></property>
<property name="baseQueueName"><value>ORANGE.QUEUE</value></property>
</bean>
<bean id="jmsSender" class="org.tree.jms.spring.JMSSender">
<property name="jmsTemplate"><ref bean="SenderJMSTemplate"/></property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我是从春天开始打电话的
JMSSender obj = (JMSSender) context.getBean("jmsSender");
Run Code Online (Sandbox Code Playgroud)
我的发件人计划是:
@Cacheable("message")
public void sendMesage() {
jmsTemplate.send(new MessageCreator() {
public Message createMessage(Session session)throws JMSException {
message = (Message) session.createTextMessage(stringBuffer.toString());
return message;
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
使用JMSTemplate从JavaEE容器发送消息时的一个常见问题是它非常慢,因为它为每条消息获取一个新连接(然后关闭它).你可能需要一个池化/缓存连接来提高速度.
阅读本文,它是为ActiveMQ编写的,但以类似于WebSphere MQ的方式应用:http://activemq.apache.org/jmstemplate-gotchas.html
您可以使用以下内容在spring中设置缓存连接工厂:
<bean id="cachedConnectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory"
p:targetConnectionFactory-ref="jmsConnectionFactory"
p:sessionCacheSize="10" />
Run Code Online (Sandbox Code Playgroud)
然后使用它而不是原始的JMS连接.
| 归档时间: |
|
| 查看次数: |
14194 次 |
| 最近记录: |