1.PooledConnectionFactory中有段代码
(1) this.connectionsPool.setMaxIdle(1);
保证connectionPool只反回同一个连接
(2)
try {
connection = connectionsPool.borrowObject(key);
} catch (Exception e) {
throw JMSExceptionSupport.create("Error while attempting to retrieve a connection from the pool", e);
}
try {
connectionsPool.returnObject(key, connection);
} catch (Exception e) {
throw JMSExceptionSupport.create("Error when returning connection to the pool", e);
}
连接borrow出去时,立即return归还。
这样每个次发送,jmsTemplate.send ....方法,使终获取的同一个连接。
2.ConnectionPool中的
public Session createSession(boolean transacted, int ackMode) throws JMSException {
SessionKey key = new SessionKey(transacted, ackMode);
PooledSession session;
try {
session = sessionPool.borrowObject(key);
} catch (Exception e) {
throw JMSExceptionSupport.create(e);
}
return session;
}
在哪里归还的呢?是在PooledSession的close方法进行归还
3.注意在browsConnection时执行validateObject方法
中的connection.expiredCheck()。
过期时 sessionPool.close();
所以每session中如果没有过期的话,
这样每个次发送,jmsTemplate.send ....方法,使终获取的同一个连接且同一个session
分享到:
相关推荐
当我们需要在Spring Boot应用中集成ActiveMQ时,我们可以实现高效、异步的通信机制,提高系统的可扩展性和解耦性。 首先,让我们详细探讨一下Spring Boot与ActiveMQ的集成过程: 1. **配置ActiveMQ** - 在`...
而Spring框架是Java领域的主流应用框架,以其依赖注入和面向切面编程能力而闻名,同时也提供了与各种中间件集成的能力,包括ActiveMQ。 首先,我们来看第一个知识点:使用JAVA连接ActiveMQ。在Java中连接ActiveMQ...
总的来说,"activemq_activemq_doublezoo_源码"涵盖了ActiveMQ的核心功能和它在实际开发中的应用,特别是与Spring框架的集成,这对于理解如何在实际项目中部署和使用ActiveMQ是非常有价值的。通过深入研究源码,...
本篇文章将深入探讨ActiveMQ的发布/订阅模型(Publish/Subscribe)的实现源码,以及如何与Spring框架进行集成。 首先,我们需要理解ActiveMQ中的发布/订阅模式。在这个模型中,生产者(Publisher)发送消息到一个...
Spring框架提供了与ActiveMQ集成的便利,通过Spring的`JmsTemplate`和`DefaultMessageListenerContainer`等类,你可以轻松地在Spring应用中使用ActiveMQ。这样,你可以利用Spring的依赖注入和事务管理能力,提高代码...
在日常开发与运维过程中,ActiveMQ作为一种广泛应用的消息中间件,其稳定性和性能至关重要。本文旨在提供一套全面的ActiveMQ优化指南,帮助开发者和运维人员提升系统的整体性能。 #### 1. 使用自定义JmsTemplate类...
Spring框架提供了一套完整的支持与ActiveMQ集成的API,简化了在Spring应用中使用ActiveMQ的过程。你可以使用`JmsTemplate`来发送和接收消息,通过配置XML或Java配置来定义消息的生产者和消费者。 **示例运行步骤** ...
这个“activemq(5.9).rar”压缩包包含的是ActiveMQ 5.9.0版本的相关组件,特别是`activemq-all-5.9.0.jar`,这是一个集成了所有功能的JAR文件,方便用户快速地在项目中引入和使用ActiveMQ。 1. **ActiveMQ基础...
1. **Spring与ActiveMQ的集成**:Spring框架通过其`spring-jms`模块提供对JMS的支持,使得开发者可以轻松地在应用中集成MQ。在Spring配置中,我们可以定义一个ConnectionFactory,它是与MQ服务器通信的工厂类。接着...
通常,这涉及到创建一个ActiveMQ连接工厂,创建一个`Connection`,然后创建一个`Session`,接着创建`Producer`和`Consumer`来发送和接收消息。 ```java import org.apache.activemq.ActiveMQConnectionFactory; ...
Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用集成的API,它定义了一种标准的接口,使得不同的消息中间件提供商可以提供不同的实现。JMS允许应用程序创建、发送、接收和读取消息,它是...
5. **连接工厂和会话**:在Java中,你需要通过ConnectionFactory创建一个Connection,然后从Connection创建Session。Connection表示到JMS提供者的物理连接,而Session是执行消息操作的工作线程。 6. **消息生产者和...