Consultor Eletrônico



Kbase P155365: Errors or hangs from ABL procedures when -q client startup parameter is used
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   06/07/2010
Status: Verified

SYMPTOM(s):

Getting error message 3230 when using -q parameter

Errors or hangs from ABL procedures when -q client startup parameter is used

ABL program runs adecomm/_setcurs.p many times.

The code invokes the adecomm/_setcurs.p procedure in different ways. Sometimes using the .p extension: RUN adecomm/_setcurs.p., other times without the .p extension: RUN adecomm/_setcurs.

One or more of the following symptoms may occur:

ABL program hangs with no errors

ABL program receives error 3245,3246 or 3247 followed by error 3251, indicating that adecomm/_setcurs.p cannot be run because it is a database trigger (which it is not).

<procedure> is a WRITE trigger procedure. (3246)

Cannot RUN <procedure> directly. Must be fired from a trigger. (3251)

** Invalid date input. (85)

Mismatched parameter types passed to procedure <procedure> (3230).

Incompatible datatypes found during runtime conversion. (5729)

Routine <name> sent called routine <name> mismatched parameters. (2570)

LIST-ITEM-PAIRS must contain an even number of entries to specify label/value pairs for <widget id> (7452)

**Attribute <attribute> for the <widget id> has an invalid value of <string>. (4058)

FACT(s) (Environment):

Problem happens randomly
Application may be used successfully for several hours before errors start to appear.
Errors may appear in different parts of the application from one instance to the next.
OpenEdge 10.1x
OpenEdge 10.2x
All Supported Operating Systems

CAUSE:

Bug# OE00191907

CAUSE:

When the -q startup parameter is used and the same external .p is run from multiple places of the application and some of the RUN statements use the .p extension while other RUN statements do not use the .p extension, the ABL client may get into a loop while walking through some linked lists that -q startup par uses.

FIX:

Upgrade to OpenEdge 10.2A03
Upgrade to OpenEdge 10.2B or later.

Workarounds:
- Do not use the -q startup parameter. This may result in a noticable performance loss, depending on the number of non-persistent procedures used in the applcation.
- Make sure all external procedure calls specify the .p extensions of these procedures. This may require a substantial effort, depending on the size of the codebase.