`
cesymm
  • 浏览: 29965 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JmsTemplate 集成activemq中 connection 与 session的管理

 
阅读更多
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
分享到:
评论

相关推荐

    Springboot ActiveMQ 集成.rar

    当我们需要在Spring Boot应用中集成ActiveMQ时,我们可以实现高效、异步的通信机制,提高系统的可扩展性和解耦性。 首先,让我们详细探讨一下Spring Boot与ActiveMQ的集成过程: 1. **配置ActiveMQ** - 在`...

    activemq + spring

    而Spring框架是Java领域的主流应用框架,以其依赖注入和面向切面编程能力而闻名,同时也提供了与各种中间件集成的能力,包括ActiveMQ。 首先,我们来看第一个知识点:使用JAVA连接ActiveMQ。在Java中连接ActiveMQ...

    activemq_activemq_doublezoo_源码

    总的来说,"activemq_activemq_doublezoo_源码"涵盖了ActiveMQ的核心功能和它在实际开发中的应用,特别是与Spring框架的集成,这对于理解如何在实际项目中部署和使用ActiveMQ是非常有价值的。通过深入研究源码,...

    ActiveMq发布和订阅消息的实现源码

    本篇文章将深入探讨ActiveMQ的发布/订阅模型(Publish/Subscribe)的实现源码,以及如何与Spring框架进行集成。 首先,我们需要理解ActiveMQ中的发布/订阅模式。在这个模型中,生产者(Publisher)发送消息到一个...

    ActiveMQDemo:这是关于消息中间件ActiveMQ的WEB项目,将覆盖JMS,ActiveMQ的初始入门和API详细使用,两种经典的消息模式(PTP和PubSub),与Spring集成,ActiveMQ进行监控,监控与配置优化等。不多说,直接撸原始码!

    Spring框架提供了与ActiveMQ集成的便利,通过Spring的`JmsTemplate`和`DefaultMessageListenerContainer`等类,你可以轻松地在Spring应用中使用ActiveMQ。这样,你可以利用Spring的依赖注入和事务管理能力,提高代码...

    activemq优化方案

    在日常开发与运维过程中,ActiveMQ作为一种广泛应用的消息中间件,其稳定性和性能至关重要。本文旨在提供一套全面的ActiveMQ优化指南,帮助开发者和运维人员提升系统的整体性能。 #### 1. 使用自定义JmsTemplate类...

    ActiveMQ的入门例子

    Spring框架提供了一套完整的支持与ActiveMQ集成的API,简化了在Spring应用中使用ActiveMQ的过程。你可以使用`JmsTemplate`来发送和接收消息,通过配置XML或Java配置来定义消息的生产者和消费者。 **示例运行步骤** ...

    activemq(5.9).rar

    这个“activemq(5.9).rar”压缩包包含的是ActiveMQ 5.9.0版本的相关组件,特别是`activemq-all-5.9.0.jar`,这是一个集成了所有功能的JAR文件,方便用户快速地在项目中引入和使用ActiveMQ。 1. **ActiveMQ基础...

    spring+MQ消息队列

    1. **Spring与ActiveMQ的集成**:Spring框架通过其`spring-jms`模块提供对JMS的支持,使得开发者可以轻松地在应用中集成MQ。在Spring配置中,我们可以定义一个ConnectionFactory,它是与MQ服务器通信的工厂类。接着...

    java实现消息队列的两种方式(小结)

    通常,这涉及到创建一个ActiveMQ连接工厂,创建一个`Connection`,然后创建一个`Session`,接着创建`Producer`和`Consumer`来发送和接收消息。 ```java import org.apache.activemq.ActiveMQConnectionFactory; ...

    JMS代码示例及配置相关资料

    Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用集成的API,它定义了一种标准的接口,使得不同的消息中间件提供商可以提供不同的实现。JMS允许应用程序创建、发送、接收和读取消息,它是...

    apps.jms.com.co-snv-desarrollo:开发中的 Jms 应用程序

    5. **连接工厂和会话**:在Java中,你需要通过ConnectionFactory创建一个Connection,然后从Connection创建Session。Connection表示到JMS提供者的物理连接,而Session是执行消息操作的工作线程。 6. **消息生产者和...

Global site tag (gtag.js) - Google Analytics