DataSourceConnectionPool

package com.huawei.db;

import java.util.Hashtable;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.log4j.Logger;

import com.huawei.common.BaseException;
import com.huawei.esb.FileManager;


public class DataSourceConnectionPool
{
    //默认的数据源
    public static String dataSource = "JDBC/ESB";
   
    private static Logger logger = Logger.getLogger(DataSourceConnectionPool.class);
   
public DataSourceConnectionPool(String dsName)
{
String strDataSource = FileManager.getESBProperty(dsName);

if ((strDataSource == null) || "".equals(strDataSource))
        {
            logger.warn("The datasoruce hasn't configure, use default datasource[" + dataSource + "].");
        }
else
{
dataSource = strDataSource;
}
}

/**
* 获取DataSource的连接
* @return
*/
public DataSource getDataSource()
{
DataSource ds;
Hashtable<Object, Object> ht = new Hashtable<Object, Object>();

try
        {
            // weblogic和websphere连接方式
            InitialContext ic = new InitialContext(ht);
           
            ds = (DataSource) ic.lookup(dataSource);
        }
        catch (NamingException ne)
        {
            try
            {
                //tomcat连接方式
                InitialContext ic = new InitialContext(ht);
                ds = (DataSource) ic.lookup("java:comp/env/jdbc/" + dataSource);
            }
            catch (NamingException e)
            {
                logger.error("Cannot connect to DataSource[" + dataSource + "], Message:" + e.getMessage());
                throw new BaseException(e);
            }
        }
       
        //如果初始化为空,直接抛出异常信息
        if (ds == null)
        {
        throw new BaseException("Cnnot inittial any DataSource[" + dataSource + "]");
        }
       
        return ds;
}

}

你可能感兴趣的:(DataSourceConnectionPool)