Подключение к источнику данных JDBC с помощью JNDI Websphere

#java #jdbc #websphere #datasource #jndi

#java #jdbc #websphere #источник данных #jndi

Вопрос:

Я пытаюсь подключиться к источнику данных, доступному на моем сервере websphere 7.0, через eclipse.

Ниже приведен код.

 Hashtable<String, String> pdEnv = new Hashtable<String, String>();
        pdEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");             
        pdEnv.put(Context.PROVIDER_URL, "iiop://XX.XXX.XX.XX:YYYY");

        Connection connection =null;



        Context initialContext = new InitialContext(pdEnv);
        DataSource datasource = (DataSource) initialContext.lookup("jdbc/AEDS");

        if (datasource != null) {
          connection = datasource.getConnection("admin","admin"); // DB credintials
        } else {
            System.out.println("hi");
        }
 

Но я получаю приведенное ниже исключение при попытке подключиться к нему

 Exception in thread "P=365798:O=0:CT" javax.naming.ServiceUnavailableException: A communication failure occurred while attempting to obtain an initial context with the provider URL: 
    at com.ibm.ws.naming.util.WsnInitCtxFactory.mapInitialReferenceFailure(WsnInitCtxFactory.java:2271)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getWsnNameService(WsnInitCtxFactory.java:1457)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootContextFromServer(WsnInitCtxFactory.java:987)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootJndiContext(WsnInitCtxFactory.java:909)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:581)
 

Меня также смущает номер порта, который будет использоваться с URL-адресом iiop, поскольку у нас есть несколько серверов, работающих на одном узле, и каждый из них имеет свой загрузочный порт.

Комментарии:

1. В какой области вы настроили источник данных?

2. Область для источника данных — ячейка

3. Используемый вами порт должен быть тем, для какого сервера вы обычно получаете доступ к источнику данных, но поскольку вы используете ячейку, это не должно иметь значения. Вам также необходимо проверить имя хоста. Если вы на том же клиентском компьютере просто пытаетесь подключиться к порту, что-то отвечает на этом порту или вам отказывают в подключении? (вы можете попробовать telnet для этого имени хоста и порта)

4. Я использовал тот же порт сервера начальной загрузки, но получаю исключение неизвестного хоста. попытался пропинговать хост, и это было успешно

5. Если вы получаете неизвестный хост, это действительно то, с чего вам следует начать. Если вы попробуете IP-адрес, он будет работать?