Kbase P143870: Daylight Saving Time causes AppServer crash due to main record containing a Datetime field
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  01/04/2009 |
|
Status: Unverified
SYMPTOM(s):
Daylight Saving Time causes AppServer crash due to main record containing a Datetime field
Client FSM Error : Invalid ACTION for STATE : state= <state> <descState> event= <event> <descEvent> action= <action> nextState= <state> <descState>. (8087)
Client FSM Error : Invalid ACTION for STATE : state= 7 STATE_DISCONNECT_RSP event= 14 EVENT_FINISH_RQ action= 10 nextState= 9 STATE_OBLIVION . (8087)
Cannot write response message. (8420)
Debug code to catch error messages within the application in revealed that the following error is thrown by the application itself: "Gregorian Date must be in range ..."
FACT(s) (Environment):
This application ran without any errors for months.
The dataset returned by the part of the application that causes this error contains a Datetime field
Windows
OpenEdge 10.x
Progress 9.x
OpenEdge Server Technology Category: AppServer
Clients are pure C# 2.0, AppServer procedures are pure 4GL.
CHANGE:
Daylight Saving Time set in on the weekend the error was occurred for the first time.
CAUSE:
The main record has a Datetime field, which in the procedure is assigned to a Datetime-tz-field which resulted in the Gregorian date error after subtracting one hour from fields that had the minimum date of 01/01/0001 00:00. The error was caused on the appserver side, not on the client. The C# datetime ranges are different then the progress datetime ranges so the C# client received a valid "progress" datetime that is actually an invalid "C#" datetime
FIX:
Fix the code in a way that the subtraction would not cause an error related to the Gregorian Date anymore.