[Openroad-users] eClient & Timezones-CORRECTION KB415539not KB415439

Paul White Paul.White at iasbet.com
Fri Apr 11 11:08:25 EST 2008


We run our servers and OpenROAD clients under Australia-North which does
not suffer from DST changes.

In the UK we use GMT at both client and server end.

We only have DST issues dealing with external data feeds.

 

By using local date literals you need to be careful when doing date/time
calcs at DST switch over. 

Someone starts Midnight 3rd Apriil 2008 and finishes 8am 4th April

Have they worked 8 or 9 hours?

 

Ingres date calcs handle this very well (providing the DST rules don't
change half way)

 

Paul

 

 

________________________________

From: openroad-users-bounces at peerlessit.com
[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Chris
Wallace
Sent: Friday, 11 April 2008 10:58 AM
To: International OpenROAD Users
Subject: Re: [Openroad-users] eClient & Timezones-CORRECTION KB415539not
KB415439

 

Darren,

 

Storing a 'local' view of the time is only good if you don't care /
aren't impacted by daylight savings changes.  Particularly, since Perth,
Tassie and Sydney/Melbourne are all change to or from daylight savings
on different dates.

Regards 
Chris Wallace

________________________________

From: openroad-users-bounces at peerlessit.com
[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Darren Mason
Sent: Friday, 11 April 2008 07:39
To: 'International OpenROAD Users'
Subject: Re: [Openroad-users] eClient & Timezones -CORRECTION
KB415539not KB415439

 

Thank you Durwin and Bill,

 

It seems the consensus is to store a copy of each date field into a text
field that represents the 'local' view of the time and then use this for
display purposes.

 

What concerns me is the effort required by us to address the issue in
this way. As we are developers of  Time & Attendance software, as you
would expect, the software is  a heavy user of date fields.   What
compounds this is the implication of rolling such a change out to 100+
clients.     Not pretty in a commercial world.

 

Where our thoughts have evolved to is deploying the eClient so it runs
the same Timezone as the server, so Perth WA in effect, is on the Sydney
NSW Timezone.   This will ensure all data is viewed consistently - I
submit 9:00am in Perth it will be displayed as 9:00am in Sydney, etc.
Are there any gotchas with this, is this heresy, or a viable approach?

 

This leaves us with cases where we have used SELECT date('now').   My
understanding is this gets the current date and time from the server so
bypasses input from the client.   So if a user clicks on a button to say
they are starting or finishing work it will apply the server view of
'now', which if I was in Perth and the server in Sydney would be out by
2 hours.

 

To address this I expect we need to get the current system time from the
local client and use it (where appropriate).   Our audit logs that
record when changes were made by users will need to use this alternate
approach.

We have not used any Windows API calls to get the time on the client PC
previously but I expect it is simple enough.

 

If anyone can see any 'gotchas' with what we are doing we will gladly
hear them!

 

Thanks...

 

Regards

 

Darren Mason

 

 

 

MyWorkplace Solutions Pty Limited

Level 5, 11 Queens Road

Melbourne Victoria 3004

 

Ph.   1300 733 731

Mob. 0419 337 170

Fax.  03 9710 1112

Making Service our Priority

 

www.MyWorkplace.com.au

 

If you receive this email by mistake, please notify us and do not make
any use of the email. We do not waive any privilege, confidentiality or
copyright associated with it.

 

 

From: openroad-users-bounces at peerlessit.com
[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Durwin
Wright
Sent: Friday, 11 April 2008 1:25 AM
To: International OpenROAD Users
Subject: Re: [Openroad-users] eClient & Timezones - CORRECTION
KB415539not KB415439

 

Hello Darren,

 

It looks like you are dealing with an artifact of the Ingres
implementation of the INGRES DATE datatype.  Your description of how the
INGRES DATE is stored as GMT in the database is accurate.  When a local
client retrieves an INGRES DATE datatype, it flows across the wire in
the GMT normalized form.  Internally in the local client it retrains
it's GMT form.  When it is time to convert the date into a DATE LITERAL
is when the timezone offsets are applied.

 

We tend to think of the INGRES DATE and the INGRES DATE LITERAL as being
equivalent.  In many cases they do get treated identically. 

 

Maybe you can try introducing an additional column in which you store
the the INGRES DATE LITERAL value evaluated on the local OpenROAD
eClient by using he VARCHAR(ingresdate) expression.  If you have an
Ingres database (or EA) connection this expression will evaluate to the
same value since the DBMS server will put the session that the client is
using into the same timezone name.  If you have an eClient that uses an
OpenROAD Server connection, the same is not true.

 

If the Sydney client stores the VARCHAR(ingresdate) value in the
database where the time is 11:00 AM, then when the Perth client
retrieves this value they will also see 11:00 AM.  This can be converted
back into an INGRES DATE value by using the DATE(ingres date liternal)
expression.  One caution, is that when you use this technique, you are
effectively using an implicit INGRES DATE WITHOUT TIMEZONE value.  Do
not forget that the INGRES DATE semantic always assume that the they
will be normalized to GMT when they are passed to the Ingres Server.  

 

When the eClient passes an INGRES DATE to the OpenROAD Server, it get's
passed also in a GMT normalized form.  The only difference, is that when
the OpenROAD Server passes the date into an Ingres database, it applies
the timezone offset that the OpenROAD Server is set to instead of the
timezone offset of the cleint.

 

Durwin Wright | Sr. Architect | Durwin.Wright at ingres.com
<mailto:Durwin.Wright at ingres.com>  | Ingres | 500 Arguello Street |
Suite 200 | Redwood City | CA | 94063 | USA
<http://maps.google.com/maps?q=500+arguello+street,+94063&ll=37.487297,-
122.233200&spn=0.004602,0.012771&t=k&hl=en>   +1 650-587-5523 | fax: +1
650-587-5550 

________________________________

From: openroad-users-bounces at peerlessit.com
[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Darren Mason
Sent: Thursday, April 10, 2008 2:39 AM
To: 'International OpenROAD Users'
Subject: Re: [Openroad-users] eClient & Timezones - CORRECTION
KB415539not KB415439

 

(on behalf of Darren Harvey) 

 

Thanks for the advice Durwin,

 

That gives as some ideas on how to ensure we set the correct timezone at
each of our interstate sites. Our immediate thought is to check for an
.ini file on the client PC that will contain the local timezone value,
and if it does not exists then prompt the user to select a timezone.
Once this has been done the first time we should be ok from then on. We
will start putting ths in place.  The problem we are trying to resolve
leads down the path of viewing the data after it has been saved.  The
following is based on the Australian timezones.

 

Let's use Perth in WA where the is at 9:00am , Sydney in NSW where the
time is 11:00am, and GMT being 1:00 at the same time.

 

What we will be doing is enabling our Perth users to view the time as
9:00am and save it accordingly - all is good.

Our Sydney users will view their times as 11:00am, and saving it
accordingly so all is good.

 

Our understanding is that the times are saved in the db as GMT times, so
9:00am in Perth and 11:00am in Sydney will both be saved as 1:00am GMT.
Now we start introducing an issue.

 

If a Sydney user then access the Perth times, the 9:00am will then be
displayed as 11:00am because it is applying the Sydney - NSW timezone.
The reverse is true if a user in Perth needed to view times from a
Sydney employee...    11:00 am will be displayed as 9:00am.

 

We fear needing to introduce text fields to store the times that need to
be displayed on each screen, and I expect reporting will become an issue
as it will be reporting on a collective set of date fields without
knowing the source?

 

Any advice on how to address this would be greatly appreciated...

 

Regards

 

Darren Mason

 



 

MyWorkplace Solutions Pty Limited

Level 5, 11 Queens Road

Melbourne Victoria 3004

 

Ph.   1300 733 731

Mob. 0419 337 170

Fax.  03 9710 1112

Making Service our Priority

 

www.MyWorkplace.com.au

 

If you receive this email by mistake, please notify us and do not make
any use of the email. We do not waive any privilege, confidentiality or
copyright associated with it.

 

 

From: openroad-users-bounces at peerlessit.com
[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Durwin
Wright
Sent: Thursday, 10 April 2008 5:59 PM
To: International OpenROAD Users
Subject: Re: [Openroad-users] eClient & Timezones - CORRECTION KB415539
not KB415439

 

Are you using the eClient ENVIRONMENT= directive in your eclient in the
INSTALL4GL.TXT file that you use to package the eClient application?  An
excerpt fron the readme.txt for the eCleint is as follows,

 

    ENVIRONMENT

        This line can appear ZERO or more times.  The string to the
right of

        the first "=" sign is treated as an environment variable
specification.

        These environment variables will be set in the eClient runtime
process

        before the OpenROAD runtime is initialized.

 

        The variable name is separated from the variable value by the
second

        "=" sign, similar to the syntax for using "set" in a command
window.

 

        Variable values can refer to other variables using the standard
%xxx%

        syntax (such as in the %II_ECLIENT_APPDIR% example shown above).

        The following "built-in" variables can be referenced by your own

        definitions:

 

            II_ECLIENT_APPDIR

                This will be set to the current eClient application's

                installation directory, which is also the current
directory

                when the OpenROAD runtime executes this eClient
application.

 

            II_ECLIENT_ROOT

                This will be set to the parent directory of the
application's

                installation directory.

 

            II_ECLIENT_LIBDIR

                This will be set to the eClient shared library
installation

                directory.

 

            (Other predefined variables are described in a later
section.)

 

        Variable definitions are processed in two passes.  First the
variables

        that do not reference any other variables (i.e., those that do
not

        contain any "%" characters) are set.  In the second pass, the
variables

        that contain "%" references are expanded using the current
environment

        settings, and then set.

 

        The order in which variables are processed within each pass is
not

        defined.  Therefore, you should not attempt to use more than one
level

        of nesting in your variable definitions.

 

Normally the II_TIMEZONE_NAME is retrieved from the SYMBOL.TBL for the
nstallation.  The eClient does not use a SYMBOL.TBL.  If there is an
Ingres installation on the machine where the eClient is deployed, then
you could use the ENVIRONMENT directive to set II_SYSTEM to an explicit
value.  

 

An alternative to the SYMBOL.TBL is to explicitly use the SET command to
specific an II_TIMEZONE_NAME vlaue.  This environment variable cannot be
set after the eClient starts the underlying OpenROAD runtime.  The
ENVIRONMENT directive is processed prior to the eClient OpenROAD runtime
initializing and performs a SET on behalf of the eClient prior to the
initialization of the eClient OpenROAD runtime.

 

Take a look at Ingres KB415539, "How to run an eClient application using
different settings for II_W4GLAPPS_DIR to use different image versions".
It specifically refers to II_W4GLAPPS_DIR but the technique cold easily
be generalized to having a previously Windows environment variable set
that contains the local value of II_TIMEZONE_NAME.

 

Durwin Wright | Sr. Architect | Durwin.Wright at ingres.com
<mailto:Durwin.Wright at ingres.com>  | Ingres | 500 Arguello Street |
Suite 200 | Redwood City | CA | 94063 | USA
<http://maps.google.com/maps?q=500+arguello+street,+94063&ll=37.487297,-
122.233200&spn=0.004602,0.012771&t=k&hl=en>   +1 650-587-5523 | fax: +1
650-587-5550 

________________________________

From: openroad-users-bounces at peerlessit.com
[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Darren
Harvey
Sent: Wednesday, April 09, 2008 7:17 PM
To: 'International OpenROAD Users'
Subject: [Openroad-users] eClient & Timezones

 

I have a question re the handling of Timezones within an eClient
environment.  

 

Assume the time in NSW is 11:00 and Western Australia is 09:00.

 

We have built the Cab file through the OR Web-Publisher and specified an
environment parameter of 'II_TIMEZONE_NAME=AUSTRALIA-NSW'.  This works
fine in NSW, however when users in Western Australia run the eClient,
they see the 'current' time as 11:00 instead of the correct local time
of 09:00.  (I assume this is correct from an OR point of view? But
unfortunately it isn't what we require.)

 

Does this mean we need to build a separate Web application for Western
Australian users, that specifies a parameter of
'II_TIMEZONE_NAME=AUSTRALIA-WEST'? And that this would then show the
'current' time as 09:00.

 

I hope this makes sense.

 

Thanks

 

Darren

 

 

Regards

 

Darren Harvey

 



 

MyWorkplace Solutions Pty Limited

Level 5, 11 Queens Road

Melbourne Victoria 3004

 

Ph.       1300 733 731

Mob.     0400 398 188

Fax.      03 9710 1112

 

Making Service our Priority

 

www.MyWorkplace.com.au

 

If you receive this email by mistake, please notify us and do not make
any use of the email. We do not waive any privilege, confidentiality or
copyright associated with it.

 

Disclaimer: This e-mail is intended for the named recipient only. The information contained in this message may be confidential, or commercially sensitive. If you are not the intended recipient you must not reproduce or distribute any part of the e-mail, disclose its contents to any other party, or take any action in reliance on it. If you have received this e-mail in error, please contact the sender immediately. Please delete this message from your computer. Any views expressed in this message are those of the individual sender and may not necessarily reflect the views of International All Sports Ltd (IAS). IAS accepts no responsibility for changes made to this message after it was sent. Before opening or using attachments, please check them for viruses and defects.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.peerlessit.com/pipermail/openroad-users/attachments/20080411/d9e5d0d8/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/x-citrix-jpeg
Size: 1436 bytes
Desc: image001.jpg
Url : http://www.peerlessit.com/pipermail/openroad-users/attachments/20080411/d9e5d0d8/attachment-0001.bin 


More information about the Openroad-users mailing list