manifoldcf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Thomas (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CONNECTORS-1521) Documentum Connector users ManifoldCF's local time in queries constraints against the Documentum server without reference to time zones
Date Tue, 07 Aug 2018 12:29:00 GMT

    [ https://issues.apache.org/jira/browse/CONNECTORS-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16571571#comment-16571571
] 

James Thomas commented on CONNECTORS-1521:
------------------------------------------

Taking a different approach, I looked for alternative time and date formats. Might com.documentum.fc.client.search
Interface IDfRelativeDateExpression be interesting?
{noformat}
Defines an expression on a date that is relative to the actual date when the query is executed.
For example, a date greater than (<actual date> - 3 months). The inherited method getValue()
returns a dynamic date that is relative to the actual date when the query is executed.

{noformat}
With methods:

 
{noformat}
int getRelativeTime()
Gets the number of time units for the relative date expression.
 These time units are added to the current date to compute the real expression date. For example,
if search operator=GREATER_THAN, relative time=-3, time unit=MONTH, then the expression defines
a constraint on a date that must be greater than the current date minus 3 months. In this
example, this method would return the value -3.
Returns:
 The number of time units for the relative date expression.
 int getTimeUnit()
Gets the time unit for the relative date expression.
 For example, if searchOpCode=GREATER_THAN, relativeTime=-3, timeUnit=MONTH, then the expression
defines a constraint on a date that must be greater than the current date minus 3 months.
In this example, this method would return the value MONTH.
Returns:
 The time unit for the relative date expression.
 
{noformat}
 

 

> Documentum Connector users ManifoldCF's local time in queries constraints against the
Documentum server without reference to time zones
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CONNECTORS-1521
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-1521
>             Project: ManifoldCF
>          Issue Type: Bug
>          Components: Documentum connector
>    Affects Versions: ManifoldCF 2.10
>            Reporter: James Thomas
>            Assignee: Karl Wright
>            Priority: Major
>
> I find that the time/date constraints in queries to the Documentum server are based on
the "raw" local time of the ManifoldCF server but appear to take no account of the time zones
of the two servers.
> This can lead to recently modified files not being transferred to the output repository
when you would naturally expect them to be. I'd like the times to be aligned, perhaps by including
time zone in the query. In particular, is there a way to use UTC perhaps?
> Here's an example ...
>  * create a folder in Documentum
>  * set up a job to point at the folder and output to the file system
>  * put two documents into a folder in Documentum
>  * Select them, right click and export as CSV (to show the timestamps):
> {noformat}
> 1.png,48489.0,Portable Network Graphics,8/7/2018 9:04 AM,
> 2.png,28620.0,Portable Network Graphics,8/7/2018 9:04 AM,,{noformat}
> Check the local time on the ManifoldCF server machine. Observe that it's reporting consistent
time with the DM server:
> {noformat}
> [james@manifold]$ date
> Tue Aug  7 09:07:25 BST 2018{noformat}
> Start the job and look for the query to Documentum in the manifoldcf.log file (line break
added for readability):
> {noformat}
> DEBUG 2018-08-07T08:07:47.297Z (Startup thread) - DCTM: About to execute query= (select
for READ distinct i_chronicle_id from dm_document where r_modify_date >= date('01/01/1970
00:00:00','mm/dd/yyyy hh:mi:ss') and
> r_modify_date<=date('08/07/2018 08:07:34','mm/dd/yyyy hh:mi:ss') 
> AND (i_is_deleted=TRUE Or (i_is_deleted=FALSE AND a_full_text=TRUE AND r_content_size>0))
AND ( Folder('/Administrator/james', DESCEND) ))
> ^C{noformat}
> Notice that the latest date asked for is *before* the modification date of the files
added to DM. (And is an hour out, see footnote.)
>   
>  See whether anything has been output by the File System connector. It hasn't:
> {noformat}
> [james@manifold]$ ls /bigdisc/source/PDFs/timezones/
> [james@manifold]$
> {noformat}
> Now:
>  * change the timezone on the ManifoldCF server machine
>  * restart the ManifoldCF server and the Documentum processes
>  * reseed the job
> Check the local time on the ManifoldCF server machine; it has changed:
> {noformat}
> [james@manifold]$ date
> Tue Aug  7 10:10:29 CEST 2018{noformat}
> Start the job again and notice that the query has changed by an hour, plus the few minutes
it took to change the date etc (and is still an hour out, see footnote):
> {noformat}
> r_modify_date<=date('08/07/2018 09:11:02','mm/dd/yyyy hh:mi:ss') 
> {noformat}
> Observe that the range of dates now covers the timestamps on the DM data, and also that
some data has now been transferred by the File System connector:
> {noformat}
> [james@manifold]$ ls /bigdisc/source/PDFs/timezones/http/mfserver\:8080/da/component/
> drl?versionLabel=CURRENT&objectId=090000018000e515
> drl?versionLabel=CURRENT&objectId=090000018000e516
> {noformat}
>  
>  
> [Footnote] It appears that something is trying to take account of Daylight Saving Time
too.
> If I set the server date to a time outside of DST, the query is aligned with the current
time:
> {noformat}
> [i2e@i2ehost manifold]$ date
>  Mon Oct 29 00:01:13 CET 2018
> r_modify_date<=date('10/29/2018 00:01:39','mm/dd/yyyy hh:mi:ss') 
> {noformat}
> But if I set the time inside DST, the time is an hour before:
> {noformat}
> [i2e@i2ehost manifold]$ date
>  Sat Oct 27 00:00:06 CEST 2018
> r_modify_date<=date('10/26/2018 23:00:26','mm/dd/yyyy hh:mi:ss') 
> {noformat}
> This is perhaps a Java issue rather than a logic issue in the connector? See e.g. [https://stackoverflow.com/questions/6392/java-time-zone-is-messed-up]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message