Here are problems and fixes related to using the Connector for Tanzu Greenplum and Tanzu GemFire.
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 Greenpnlum table names mapped to the same VMware Tanzu GemFire region.
If two cache.xml
files have different schema
attribute values in the specification of the gpdb:pdx
element for a single GemFire region.
If two cache.xml
files map a different set of ID fields. This implies that the gpdb:id
element must be fully specified; it cannot be empty.
If two cache.xml
files have different content for their gpdb:field
elements. Note that if both have an empty gpdb:fields
element, the second server can start. For differing content in the cache.xml
files, the situations that cause the second server to fail include:
gpdb:field
elements are specified for the first server, and all the gpdb:field
elements are specified for the second servergpdb:field
elements are specified for the second server, and all the gpdb:field
elements are specified for the first servergpdb:field
elements are specified for the first server, and some gpdb:field
elements are specified for the second servergpdb:field
elements are specified for the second server, and some gpdb:field
elements are specified for the first serverSolution: Correct the cache.xml
contents and start or restart the servers.
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 VMware Tanzu Greenplum segment. The Greenplum Database 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 the cache.xml
file’s gpdb:gpfdist
attribute specification or with the gfsh 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 Greenplum database does not exist as specified. Doing an import or export operation presumes that the database exists and Greenplum is up and running; these operations do not start Greenplum Database or create a database.
Diagnosis and Solution: Find and fix any spelling or address error(s) in the specification of Greenplum Database.
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:
The connection-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 using gfsh destroy jndi-binding
, and then re-create the JNDI binding with a corrected URL. If specified within thejndi-binding
element of the cache.xml
file, fix the spelling within the cache.xml
file. The JDBC connection to Greenplum Database may be tested by using the procedure outlined in the Greenplum Knowledge Base article How to test JDBC and Greenplum Datadirect JDBC.