Consultor Eletrônico



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.