1

我有一个要求,我需要将每个单独的目标连接到数据源。如果 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();
 }

}
 }
4

2 回答 2

0

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

于 2013-09-02T17:51:14.347 回答
0

我们在使用此代码时遇到问题,并得到以下异常。总之,如果服务了 100 个请求,则一个失败,但出现以下异常。

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

于 2018-08-21T16:10:25.137 回答