JDefens 2015-06-04 13:27 采纳率: 66.7%
浏览 5623
已结题

关于使用ActiveMQPooledConnectionFactory的一下问题

 import javax.jms.Connection;
import javax.jms.JMSException;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.jms.pool.PooledConnectionFactory;

/**
 *  内部类的方式实现对connection的单例获取
 */


public class JMSConnectionUtill {

    private PooledConnectionFactory pooledConnectionFactory = null;

    private static class CreateConnUtil{
        private  static JMSConnectionUtill instance = new JMSConnectionUtill();
    }
    private JMSConnectionUtill (){
        // ConnectionFactory :连接工厂,JMS 用它创建连接
        ActiveMQConnectionFactory connectionFactory = null;
        // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");

        pooledConnectionFactory = new PooledConnectionFactory();
        pooledConnectionFactory.setConnectionFactory(connectionFactory);
        //设置最大连接数
        pooledConnectionFactory.setMaxConnections(200);
        //设置最小
        pooledConnectionFactory.setMaximumActiveSessionPerConnection(50);     
        //后台对象清理时,休眠时间超过了3000毫秒的对象为过期
        pooledConnectionFactory.setTimeBetweenExpirationCheckMillis(3000);
    }  

    //获取链接
    public Connection getConnection(){
        Connection connection = null;
        try {
            connection = pooledConnectionFactory.createConnection();
        } catch (JMSException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public static final JMSConnectionUtill getInstance(){
        return CreateConnUtil.instance;
    }
}

我所想问的是,我通过内部类获取PooledConnectionFactory的单例,每次获取连接从这里面获取,避免每次都创建新的连接而消耗大量的资源,但是这样写有没有问题,单就这个获取连接的工具类,有没有不恰当的地方,或者说这样做跟直接创建连接的效果是一直的,另外,求一份关于这方面的优化方案(经过实际检验的),在线等

  • 写回答

3条回答 默认 最新

  • 荏苒时光 2015-06-04 13:51
    关注

    很好很好很好很好很好很好

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大