[
https://issues.apache.org/jira/browse/OAK-3645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15008644#comment-15008644
]
Axel Hanikel commented on OAK-3645:
-----------------------------------
I think that the JDBC driver is simply unable to know about the server's
timezone because that information is not conveyed in the query result. Oracle
is documented to return a timestamp with time zone value (
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions037.htm ) where
DB/2 seems to just return a timestamp without time zone.
As a proof of concept I have added
{noformat}
@Override
public String getCurrentTimeStampInMsSyntax() {
return "CURRENT_TIMESTAMP(4) || ' +00:00'";
}
{noformat}
to the {{DB2}} initializer in {{RDBDocumentStoreDB.java}} and things worked
fine.
> RDBDocumentStore: server time detection for DB2 fails due to timezone/dst
> differences
> -------------------------------------------------------------------------------------
>
> Key: OAK-3645
> URL: https://issues.apache.org/jira/browse/OAK-3645
> Project: Jackrabbit Oak
> Issue Type: Technical task
> Components: rdbmk
> Affects Versions: 1.3.10, 1.2.8, 1.0.24
> Reporter: Julian Reschke
> Assignee: Julian Reschke
>
> We use {{CURRENT_TIMESTAMP(4)}} to ask the DB for it's system time.
> Apparently, at least with DB2, this might return a value that is off by a
> multiple of one hour (3600 * 1000ms) depending on whether the OAK instance
> and the DB run in different timezones.
> Known to work: both on the same machine.
> Known to fail: OAK in CET, DB2 in UTC, in which case we're getting a
> timestamp one hour in the past.
> At this time it's not clear whether the same problem occurs for other
> databases.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)