简体   繁体   English

Gemfire JDBC连接异常

[英]Gemfire JDBC connection exception

I start the Gemfire server and bind him to the following address: myserver:10344. 我启动Gemfire服务器,并将其绑定到以下地址:myserver:10344。 (Server and locator are started without problems) After that I check connection by the GFSH and client "pulse". (服务器和定位器启动没有问题)之后,我检查了GFSH和客户端“ pulse”的连接。 All checks are successful. 所有检查均成功。 At the next step I develop my Java client and can't make a connection to the server. 在下一步中,我将开发Java客户端,并且无法与服务器建立连接。

My project is built by Maven with the following dependencies: 我的项目是由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>

(All Gemfire dependencies are downloaded from http://dist.gemstone.com/maven/release ) (所有Gemfire依赖项都从http://dist.gemstone.com/maven/release下载)

Code source: 代码来源:

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

I get the following exception: 我得到以下异常:

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

I see that this is an old post but just in case you still want to know .... 我看到这是一个旧帖子,但以防万一您仍然想知道...。

The port you're specifying in your jdbc url is referring to the peer-membership discovery port, not the client-port (default 1527). 您在jdbc URL中指定的端口是指对等成员发现端口,而不是客户端端口(默认为1527)。

When you started the locator, there should've been info on the client port number as such (if you don't specify, default is 1527) 启动定位器时,应该在客户端端口号上包含此类信息(如果未指定,则默认为1527)。

... Starting GemFireXD Locator using peer discovery on: localhost[10334] Starting network server for GemFireXD Locator at address localhost/127.0.0.1[1527] ...在以下位置使用对等发现启动GemFireXD定位器:本地主机[10334]在地址localhost / 127.0.0.1 [1527]上启动GemFireXD定位器的网络服务器。

Your jdbc url should be as follows: 您的jdbc网址应如下所示:

String x = "jdbc:gemfirexd://myserver:1527/"; 字符串x =“ jdbc:gemfirexd:// myserver:1527 /”;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM