Skip to main content
Kofax

MarkView Application Server - JVM Time Drifting causing inconsistency in timestamps between the viewer (Action History) and (Document History) for some actions.

Summary

20265

Applies To

  • MarkView: All Versions
  • Application Server: WebLogic on HPUX (Hewlett Packard Unix)

Behavior

  • The user(s) can see difference between the Action History and Document History timestamps for some actions in MarkView Viewer.

For example:
You can see time difference in timestamps between the (Action History) and the (Document History) for the (Complete Entry) action you will notice the timestamp recorded in the (Action History) is earlier by several seconds/minutes than the one recorded in the (Document History), in other words it gets recorded in the past (earlier than it should be).

  • The time difference decreases temporary by a Server/JVM bounce, however that increases by time, till you do the next bounce.

Known Causes

  • By default when you first start a JVM, it gets the time from the physical server, for any subsequent time calls from the applications (running on the JVM) the system relies on the CPU register to calculate the time and provide it to the application, and it is common that JVMs get out of sync after running for some time.
  • Therefore the JVMs need to refresh the time from the physical server on intervals, or constantly obtain the time from the physical server and provide it to the application ( rather than relying on the CPU register to calculate the time for each time call).

Resolution

  • In HP servers environments, there are certain java parameters that can be added to the WebLogic startup script, which change the way the JVM gets/updates/syncs the time from the physical server.

Those are the parameters: +UseHighResolutionTimer and +UseGetTimeOfDay, and can be used as shown below.

  1. If user needs the time accurate, then use this parameter:
    -XX:+UseGetTimeOfDay.
    Slowest option but most accurate uses gettimeofday on every time related call, you might still see 1 or 2 seconds difference but that is acceptable.
  2. If you found option one has decreased the system performance dramatically, then use both parameters below together, that updates the JVM time every100ms, rather than obtaining the time from the physical server constantly:
    -XX:-UseHighResolutionTimer -XX:-UseGetTimeOfDay

Example:
<server-start>
<arguments>-d64 -Xms8192m -Xmx8192m -XX:CompileThreshold=8000 -XX:PermSize=1024m -XX:MaxPermSize=2048m - XX:+UseGetTimeOfDay
-Doracle.jdbc.J2EE13Compliant=true -Doracle.jms.useEmulatedXA=false -Doracle.jms.useNativeXA=true - Djava.awt.headless=true</arguments>
</server-start>

Keywords: timestamp, drifting, jvm, HPUX, action history, document history