用于将weblogic数据源连接到特定目标的java代码

时间:2013-08-31 06:44:56

标签: jdbc weblogic datasource

我要求我需要连接到每个目标的数据源。 如果datsource有两个目标,那么我需要逐个连接到两个目标。

我正在使用以下代码进行数据源连接。 需要知道如何连接到数据源的单个目标

public class ConnectWLSDataSource  {

public static void main(String[] args) {

Connection conn;
 Statement stmt;
 ResultSet rs;
 String str1;

try {
 Properties prop = new Properties();

prop.put(Context.INITIAL_CONTEXT_FACTORY, “weblogic.jndi.WLInitialContextFactory”);
 prop.put(Context.PROVIDER_URL, “t3://HOST_NAME:PORT_NUMBER”);
 Context ctx = new InitialContext(prop);
 Object obj = ctx.lookup(“DATA_SOURCE_NAME”); // java:comp/env/CPDS
 System.out.println(“Data Source Found….”);

DataSource ds = (DataSource) obj;
 conn = ds.getConnection();
 System.out.println(“Data Source User Name::”+conn.getMetaData().getUserName());
 stmt = conn.createStatement();

String query = “select 1 from dual”;
 System.out.println(“Query ” + query);
 rs = stmt.executeQuery(query);
 if (rs != null) {
 System.out.println(“Some Data Found in Query”);
 } else {
 System.out.println(“No Data Found in Query”);
 }
 ctx.close();

} catch (Exception e) {
 e.printStackTrace();
 }

}
 }

2 个答案:

答案 0 :(得分:0)

您需要做的就是将PROVIDER_URL更改为您想要的特定主机。例如,我们有4个服务器在集群中运行,如果我们想要循环连接,或者我们可以选择集群中的一个特定服务器,可以选择使用负载均衡器。

答案 1 :(得分:0)

在使用此代码时,我们遇到问题,并获得以下异常。如果满足100个请求,那么一个请求将失败,但以下异常除外。

javax.naming.CommunicationException [根本异常是java.net.ConnectException:t3://prod.abc.com:7114:无法访问目标;嵌套的异常是: java.net.SocketTimeoutException:读取超时;没有到目的地的可用路由器]。