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;
}
}
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;
}
}