Resolving Error: Could not get the Canonical Time Zone (KBA1471)
KBA
KBA#1471Troubleshooting Error "Could not get the Canonical Time Zone"
When trying to perform an operation (ex: adding an Environment) in Delphix versions prior to 4.3.4.1 and older, you may receive the following error:
Cannot get host machine information on host TARGETHOST [TARGETHOST]: CANONICAL_TIME_ZONE :: Could not get the Canonical Time Zone
This is a common error when Java is not installed in the Source and/or Target environment, or it is not installed in a standard path.
In Delphix 4.3.4.1 and earlier, Delphix relies on an existing Java installation on the environment to calculate the timezone during environment discovery. When performing this task, it looks for java at /usr/bin/java and ${JAVA_HOME}/jre/bin/java.
However, when Delphix connects to the source/target, it uses a non-interactive shell and shell profiles (like .bash_profile) are not read. As such, the Environment variable ${JAVA_HOME} will frequently be unknown to Delphix.
You can confirm whether you are susceptible to this issue by attempting to run java via /usr/bin/java on your source or target environment:
$ /usr/bin/java -version -bash: /usr/bin/java: No such file or directory
Resolution
For host discovery to work, Delphix must be able to locate /usr/bin/java on that host. You can ensure this in one of two ways:
- Install java on the system using the common installation mechanism for your environment (e.g. yum install java)
- Creating a symbolic link to an existing java binary as /usr/bin/java
Once the toolkit has been installed, Delphix will supply its own version of Java, and you can then remove the system installed version of Java if required.
This is issue is also fixed in Delphix Engine version 4.3.5.0 and newer.