How to Configure Timezones

Goal

Correctly importing date values that differ from the local time zone into Datameer.

Learn

According to Configuring Datameer - Timezone it is possible to define the timezone that should be used for displaying the date in the UI and for parsing date strings that do not specify a timezone. This can be done by the file:

datameer-install-path/conf/default.properties

and configuring the value: 

system.property.das.default-timezone=default

whereby default specifies the local server's timezone.

Please make sure to use only the values from Joda-Time's Available Time Zones.  

Troubleshooting 

If using an incorrect value like CEST, the embedded Jetty web service might not be able to start (fully).

After configuring and starting the service, monitor the startup from the installation directory via 

cat logs/jvm-stdout.log && cat logs/`date +"%Y_%m_%d"`.stderrout.log && tail -f logs/conductor.log

This will cover the full boot process.

If a not available value was used, logs/jvm-stdout.log will show an error message

<timestamp>:INFO:oejs.Server:main: jetty-9.2.10.v20150310
<timestamp>:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/<datameer-install-path>/current/webapps/] at interval 1
<timestamp>:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@519e67d4{/,file:/<datameer-install-path>/current/webapps/conductor/,STARTING}{/conductor}
java.lang.IllegalArgumentException: Configured system property 'das.default-timezone' has invalid value 'CEST'! Valid values are: [<long list of all available timezones>, default]
at datameer.base.util.DateUtil.checkTimeZone(DateUtil.java:63)
at datameer.base.Env.verifyTimeZone(Env.java:172)
...
at org.eclipse.jetty.start.Main.invokeMain(Main.java:321)
at org.eclipse.jetty.start.Main.start(Main.java:817)
at org.eclipse.jetty.start.Main.main(Main.java:112)
<timestamp>:INFO:oejs.ServerConnector:main: Started ServerConnector@2b2d02e5{HTTP/1.1}{0.0.0.0:8080}
<timestamp>:INFO:oejs.ServerConnector:main: Started ServerConnector@75852413{SSL-http/1.1}{0.0.0.0:8443}
<timestamp>:INFO:oejs.Server:main: Started @12601ms

The JVM will found just stopped within the application log file.

[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:621) - 16. Sequence File with Metadata
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:621) - 17. Twitter Data
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:621) - 18. XML
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:111) - --- JVM Information ---
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:112) - JVM: Java HotSpot(TM) 64-Bit Server VM, 24.71-b01 (Oracle Corporation)
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:113) - JVM arguments: -Xmx1024m -XX:MaxPermSize=384m -Xms256m -XX:MaxNewSize=448m -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+HeapDumpOnOutOfMemoryError -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -Dfile.encoding=utf-8 -Ddeploy.mode=trial -XX:HeapDumpPath=/<datameer-install-path>/current/logs/heapdump.log -Dlog4j.configuration=file:///<datameer-install-path>/current/conf/log4j-production.properties -Djetty.home=/<datameer-install-path>/current -Djava.io.tmpdir=tmp -Djava.library.path=/<datameer-install-path>/current/lib/native
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:124) - Log4j: 'file:///<datameer-install-path>/current/conf/log4j-production.properties' (configured path)
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:115) - Max memory : 968.0 MB
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:117) - Free memory: 877.4 MB, before Plugin Registry start-up: 802.9 MB
[anonymous] INFO [<timestamp>] [main] (PluginRegistryImpl.java:118) - ---------------------

The next steps from a successful start are missing.

[anonymous] INFO [<timestamp>] [main] (ContextListener.java:92) - JVM: Java HotSpot(TM) 64-Bit Server VM, 24.71-b01 (Oracle Corporation)
[anonymous] INFO [<timestamp>] [main] (ContextListener.java:93) - JVM Arguments: -Xmx1024m -XX:MaxPermSize=384m -Xms256m -XX:MaxNewSize=448m -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+HeapDumpOnOutOfMemoryError -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -Dfile.encoding=utf-8 -Ddeploy.mode=trial -XX:HeapDumpPath=/<datameer-install-path>/current/logs/heapdump.log -Dlog4j.configuration=file:///<datameer-install-path>/current/conf/log4j-production.properties -Djetty.home=/<datameer-install-path>/current -Djava.io.tmpdir=tmp -Djava.library.path=/<datameer-install-path>/current/lib/native

To correct this:

  • Stop the Datameer service.
  • Adjust the timezone value to an existing one.
  • Restart Datameer.