Troubleshooting
Here are problems and fixes related to using the GemFire-Greenplum Connector.
Problem: When a second server is started, the second server will fail to start under each of the following situations:
- If two
cache.xml
files have different GPDB table names mapped to the same GemFire region. - If two
cache.xml
files have differentschema
attribute values in the specification of thegpdb:pdx
element for a single GemFire region. - If two
cache.xml
files map a different set of ID fields. This implies that thegpdb:id
element must be fully specified; it cannot be empty. If two
cache.xml
files have different content for theirgpdb:field
elements. Note that if both have an emptygpdb:fields
element, the second server can start. For differing content in thecache.xml
files, the situations that cause the second server to fail include:- no
gpdb:field
elements are specified for the first server, and all thegpdb:field
elements are specified for the second server - no
gpdb:field
elements are specified for the second server, and all thegpdb:field
elements are specified for the first server - no
gpdb:field
elements are specified for the first server, and somegpdb:field
elements are specified for the second server - no
gpdb:field
elements are specified for the second server, and somegpdb:field
elements are specified for the first server
- no
Solution: Correct the
cache.xml
contents and start or restart the servers.- If two
Problem: Error message when attempting an import or export. An error message similar to
Could not process command due to GemFire error. Error while processing command <import gpdb --region=/Child>
Cause of the Problem: There is a communication error between GemFire and the Pivotal Greenplum® Database (GPDB) segment. The GPDB communication to GemFire is unsuccessful.
Diagnosis and Solution: Use network tools to identify and fix the problem. Consider firewall issues, and make sure that the proper ports are open. Also check that the server’s gpfdist is configured correctly. Use the
gfsh describe gpfdist-protocol
command to observe the configuration. If the host name or IP address are incorrect, correct them in thecache.xml
file’sgpdb:gpfdist
attribute specification or with thegfsh configure gpfdist-protocol
command.Problem: Error message when attempting an import or export. An error message similar to
No longer connected to 192.0.2.0[1099]. Could not process command due to GemFire error. Error while processing command <export gpdb --region=/LargeRegion --type=UPSERT> Reason : This connection to a distributed system has been disconnected.
Cause of the Problem: Timeouts within the GemFire cluster have resulted in the disconnection of one or more cluster members.
Diagnosis and Solution: Follow advice on Diagnosing System Problems within the GemFire manual on topics dealing with timeouts, as well as the specific error of Member logs ForcedDisconnectException, Cache and DistributedSystem forcibly closed to adjust the GemFire cluster.
Problem: Error message when attempting an import or export. An error message similar to
Could not process command due to GemFire error. Error while processing command <import gpdb --region=/Child> Reason : io.pivotal.gemfire.gpdb.operations.OperationException: org.postgresql.util.PSQLException: FATAL: database "gemfire_db" does not exist
Cause of the Problem: The GPDB does not exist as specified. Doing an import or export operation presumes that the GPDB exists and is up and running; these operations do not create or instantiate a GPDB.
Diagnosis and Solution: Find and fix any spelling or address error(s) in the specification of the GPDB.
Problem: A
NullPointerException
causes this start of a stack trace starts within the server’s log:[error 2017/04/19 09:21:18.112 KST server1-1 <Function Execution Processor2> tid=0x72] null 1 execute: Failed operation. java.lang.NullPointerException at io.pivotal.gemfire.gpdb.operations.OperationBase$Transaction .begin(OperationBase.java:564) at io.pivotal.gemfire.gpdb.operations.OperationBase .execute(OperationBase.java:114) at io.pivotal.gemfire.gpdb.functions.OperationFunction .execute(OperationFunction.java:68) at org.apache.geode.internal.cache.execute.AbstractExecution .executeFunctionLocally(AbstractExecution.java:333)
Cause of the Problem:
Theconnection-url
attribute is invalid, so the JNDI binding for JDBC cannot work.Diagnosis and Solution: Find and fix the URL. If created with
gfsh create jndi-binding
, then first destroy it usinggfsh destroy jndi-binding
, and then re-create the JNDI binding with a corrected URL. If specified within thejndi-binding
element of thecache.xml
file, fix the spelling within thecache.xml
file. The JDBC connection to the GPDB may be tested by using the procedure outlined in the Pivotal Greenplum Knowledge Base article How to test JDBC and Greenplum Datadirect JDBC.