2016-06-03 2 views
0

Я запустил сервер Gemfire и привязал его к следующему адресу: myserver: 10344. (Сервер и локатор запускаются без проблем). После этого я проверяю соединение с помощью GFSH и «пульса» клиента. Все проверки успешны. На следующем этапе я разрабатываю свой Java-клиент и не могу установить соединение с сервером.Исключение соединения JDBC Gemfire

Мой проект построен Maven со следующими зависимостями:

<dependency> 
     <groupId>com.pivotal.gemfirexd</groupId> 
     <artifactId>gemfirexd</artifactId> 
     <version>1.4.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.pivotal.gemfirexd</groupId> 
     <artifactId>gemfirexd-client</artifactId> 
     <version>1.4.1</version> 
    </dependency> 

(Все зависимости Gemfire загружаются из http://dist.gemstone.com/maven/release)

источника Код:

package com.mycompany.app; 
import java.sql.Connection; 
import java.sql.DriverManager; 

public class App { 

    private void connect() { 
     try { 
      Class.forName("com.pivotal.gemfirexd.jdbc.ClientDriver"); 

      String x = "jdbc:gemfirexd://myserver:10344/"; 

      System.out.println(x); 

      final Connection conn = DriverManager.getConnection(x); 

      System.out.println("Connected "); 
      conn.close(); 
      System.out.println("Disconnected"); 

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

    public static void main(String[] args) { 
     new App().connect(); 
    } 
} 

Я получаю следующее исключение :

java.sql.SQLNonTransientConnectionException: A communications error has been detected: Failed after trying all available servers: [], for control URL: myserver[10334]. 
    at com.pivotal.gemfirexd.internal.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:77) 
    at com.pivotal.gemfirexd.internal.client.am.SqlException.getSQLException(SqlException.java:401) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.getPreferredServer(NetConnection.java:1554) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.preConnect(NetConnection.java:1902) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.newAgent_(NetConnection.java:2368) 
    at com.pivotal.gemfirexd.internal.client.am.Connection.<init>(Connection.java:595) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.<init>(NetConnection.java:248) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection40.<init>(NetConnection40.java:86) 
    at com.pivotal.gemfirexd.internal.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(ClientJDBCObjectFactoryImpl40.java:290) 
    at com.pivotal.gemfirexd.jdbc.ClientDriver.connect(ClientDriver.java:161) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.mycompany.app.App.connect(App.java:15) 
    at com.mycompany.app.App.main(App.java:27) 
Caused by: DisconnectException 08006: A communications error has been detected: Failed after trying all available servers: [], for control URL: myserver[10334]. 
    ... 12 more 
Caused by: java.sql.SQLNonTransientConnectionException: A communications error has been detected: Connection reset. 
    at com.pivotal.gemfirexd.internal.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:77) 
    at com.pivotal.gemfirexd.internal.client.am.SqlException.getSQLException(SqlException.java:401) 
    at com.pivotal.gemfirexd.jdbc.ClientDriver.connect(ClientDriver.java:170) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.getPreferredServer(NetConnection.java:1451) 
    ... 11 more 
Caused by: DisconnectException 08006: A communications error has been detected: Connection reset. 
    at com.pivotal.gemfirexd.internal.client.net.NetAgent.throwCommunicationsFailure(NetAgent.java:527) 
    at com.pivotal.gemfirexd.internal.client.net.Reply.fill(Reply.java:183) 
    at com.pivotal.gemfirexd.internal.client.net.Reply.ensureALayerDataInBuffer(Reply.java:222) 
    at com.pivotal.gemfirexd.internal.client.net.Reply.readDssHeader(Reply.java:324) 
    at com.pivotal.gemfirexd.internal.client.net.Reply.startSameIdChainParse(Reply.java:1154) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnectionReply.readExchangeServerAttributes(NetConnectionReply.java:61) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.readServerAttributesAndKeyExchange(NetConnection.java:1013) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.flowServerAttributesAndKeyExchange(NetConnection.java:941) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.flowUSRIDONLconnect(NetConnection.java:796) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.flowConnect(NetConnection.java:580) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection.<init>(NetConnection.java:259) 
    at com.pivotal.gemfirexd.internal.client.net.NetConnection40.<init>(NetConnection40.java:86) 
    at com.pivotal.gemfirexd.internal.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(ClientJDBCObjectFactoryImpl40.java:290) 
    at com.pivotal.gemfirexd.jdbc.ClientDriver.connect(ClientDriver.java:161) 
    ... 14 more 
Caused by: java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at com.pivotal.gemfirexd.internal.client.net.Reply.fill(Reply.java:181) 
    ... 26 more 

ответ

0

Я вижу, что это старый пост, но только в случае, если вы все еще хотите знать ....

порт вы указываете в вашем URL JDBC ссылается на порт обнаружения одноранговой членства, а не клиент-порт (по умолчанию 1527).

Когда вы начали локатор, там должен был быть информация о количестве портов клиента как таковой (если вы не указали, по умолчанию 1527)

... Запуск GemFireXD Locator с помощью обнаружения пэра на : локальный [10334] Запуск сетевого сервера для GemFireXD Locator по адресу локального хоста/127.0.0.1 [1527]

Ваш JDBC URL должен выглядеть следующим образом:

Строка х = «: gemfirexd JDBC: // MyServer: 1 527/";

Смежные вопросы