2 u010186896 u010186896 于 2015.06.04 21:27 提问

关于使用ActiveMQPooledConnectionFactory的一下问题 10C
 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个回答

u012144461
u012144461   2015.06.04 21:51

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

qq_28763887
qq_28763887   2015.06.05 11:55

不好意思 ,帮不上你的忙 了,想了好久还是想不出

u010389851
u010389851   2016.09.26 20:26

楼主现在解决了吗?我现在也在为这个烦恼。

Csdn user default icon
上传中...
上传图片
插入图片