3

请你帮我解决一个简单的问题。我需要使用没有弹簧的 PooledConnectionFactory,JMSTemplate。ActiveMQ 说这个类正在汇集连接、生产者、会话,而让我感到困惑的是,我不知道如何从实例中获取它们。我在等待一些 takeConnection(),然后是 realeaseConnection() 和 takeProducer() 并实现 producer()。pooledConnectionFactory.start(); 之后我该怎么办?Normaly,我会做 Connection c = pooledConnectionFactory.createConnection... 希望,我解释了我的问题。以及如果生产者和会话是直接从 Connection 创建的,它们是如何池化的。

    connectionFactory = new ActiveMQConnectionFactory(
            userId, 
            passWord, 
            brokerURL);
    log.info("Queueing service init: BrokerURL: " + brokerURL + "  UserId: " + userId + "   Paasword: " + passWord);

    pooledConnectionFactory = new PooledConnectionFactory(connectionFactory);

    pooledConnectionFactory.setIdleTimeout(5000);
    pooledConnectionFactory.setMaxConnections(10);
    pooledConnectionFactory.setMaximumActive(5000);
    pooledConnectionFactory.start();
4

1 回答 1

3

好吧,在使用池连接工厂时,它就像任何其他 jms 连接工厂一样。

只需致电:

pooledConnectionFactory.createConnection(); // 如你所愿

连接工厂不会真正创建连接,而是为您提供一个池化连接。然后,connection.close(); 将再次将其释放到池中。但是所有这些都在引擎盖下,只要按照习惯使用它就可以了。会话和生产者也是如此,而不是消费者。

于 2012-06-21T20:46:11.657 回答