The client uses the GPSS Connect
service to connect to a specific Greenplum database. The Disconnect
service closes the connection to Greenplum.
The Connect
and Disconnect
service definitions follow:
rpc Connect(ConnectRequest) returns (Session) {}
rpc Disconnect(Session) returns (google.protobuf.Empty) {}
The client specifies the information required to connect to Greenplum Database in a ConnectRequest
message. The Connect
service returns a Session
message. The session identifies the client's connection to the GPSS server. The client must provide the session when it invokes metadata- and table-related services on Greenplum Database. The client must also provide the session when it disconnects from Greenplum Database.
The ConnectRequest
and Session
message definitions:
message ConnectRequest {
string Host = 1;
int32 Port = 2;
string Username = 3;
string Password = 4;
string DB = 5;
bool UseSSL = 6;
int32 SessionTimeout=7;
}
message Session {
string ID = 1;
}
The following sample includes Java client code to:
ConnectRequest
protocol buffer object.Connect
service.Session
response object.Session mSession = null;
String gpCoordHost = "localhost";
Integer gpCoordPort = 15432;
String gpRoleName = "gpadmin";
String gpPasswd = "changeme";
String dbname = "testdb";
// create a connect request builder
ConnectRequest connReq = ConnectRequest.newBuilder()
.setHost(gpCoordHost)
.setPort(gpCoordPort)
.setUsername(gpRoleName)
.setPassword(gpPasswd)
.setDB(dbname)
.setUseSSL(false)
.setSessionTimeout(1000)
.build();
// use the blocking stub to call the Connect service
mSession = bStub.connect(connReq);
// (placeholder) do greenplum stuff here
// use the blocking stub to call the Disconnect service
bStub.disconnect(mSession);
After the GPSS client connects to Greenplum Database, the client can invoke service requests to retrieve information about schemas and tables, and write to Greenplum tables.