Progress is lost (WXP Pr91.C)

Hello,
very important.
our progress-program is at one moment respecively at one point waiting for the answer of another program (with do while-function).
Sometimes I have the problem (=> our customers) that they lost progress.
No error message and nothing appears but progress is lost.
What can I do in this situation?

Regards
Matthias
 
lost database connection ? appserver ? socket ? i've got a problem now what's the answer, kind of vague.

how about posting some code ... or if it's too clattered then atleast a more thorough description of the process.
 
Hello,
it is a single client system.
And problem is not that db is lost (in this case I would get an error I think),
=> my progress programm is completely lost and teh customer has to restart the program.
Here is the code without definitions:

Verarbeitung:
DO WHILE vl-x = TRUE
ON ERROR UNDO Verarbeitung, LEAVE Verarbeitung
ON END-KEY UNDO Verarbeitung, RETRY Verarbeitung
ON STOP UNDO Verarbeitung, RETRY Verarbeitung:
IF RETRY THEN
RUN Dispatch IN THIS-PROCEDURE ('Interrupt':U).
IF adm-vl-Interrupt THEN
LEAVE Verarbeitung.
ASSIGN vi-z = vi-z + 1.
RUN check4file IN vhg-libsystem("":U,vc-vorgfile) NO-ERROR.
/* internal check*/
IF {&OK} THEN DO:
RUN check4file IN vhg-libsystem("":U,vc-expfile) NO-ERROR.
IF {&OK} THEN DO:
ASSIGN vl-x = FALSE
pc-temp = "":U.
RUN anzeigen(pc-temp,0) NO-ERROR.
END.
ASSIGN vl-kopiert = TRUE.
RUN filecopy (vc-vorgfile,vc-inputfile) NO-ERROR.
/* internal proc */
IF {&OK} THEN DO:
INPUT STREAM herein FROM VALUE(vc-inputfile).
REPEAT:
IMPORT STREAM herein UNFORMATTED vc-Zeile NO-ERROR.
IF NUM-ENTRIES(vc-zeile,"-":U) > 2 THEN
ASSIGN pc-temp = ENTRY(2,vc-zeile,"-":U) + "-":U + ENTRY(3,vc-zeile,"-":U) NO-ERROR.
ELSE IF NUM-ENTRIES(vc-zeile,"-":U) > 1 THEN
ASSIGN pc-temp = ENTRY(2,vc-zeile,"-":U) NO-ERROR.
END.
INPUT STREAM herein CLOSE.
RUN anzeigen(pc-temp,0) NO-ERROR.
END.
ELSE DO:
ASSIGN vl-x = FALSE
pc-temp = "":U.
RUN anzeigen(pc-temp,0) NO-ERROR.
END.
END.
ELSE DO:
IF vl-kopiert = TRUE THEN DO:
ASSIGN vl-x = FALSE
pc-temp = "":U.
RUN anzeigen(pc-temp,0) NO-ERROR.
END.
ELSE DO:
IF vlg-cardwareaktiv = FALSE THEN DO:
ASSIGN vl-x = FALSE
pc-temp = "":U.
RUN anzeigen(pc-temp,0) NO-ERROR.
END.
ELSE DO:
RUN check4file IN vhg-libsystem("":U,vc-expfile) NO-ERROR.
IF {&OK} THEN DO:
ASSIGN vl-x = FALSE
pc-temp = "":U.
RUN anzeigen(pc-temp,0) NO-ERROR.
END.
ELSE DO:
ASSIGN vi-wert = vi-wert + 1.
/* nothing stay in 'do while' */
END.
END.
END.
END.
END. /* do while".*/
 
Lost

RUN dispatch IN .....
There is your problem ADM(1).
PSC binned ADM(1) after the failed attempt in V8, released ADM2 for V9+ .
 
Are you shure that 'RUN dispatch IN ..... ' could be my problem?
a) we use this in a lot of programs and
b) the user (our customer) never stops this program manually so 'adm-vl-interrupt' will always be FALSE.

Nevertheless, do you propose another code for me?
Without
"ON ERROR UNDO Verarbeitung, LEAVE Verarbeitung
ON END-KEY UNDO Verarbeitung, RETRY Verarbeitung
ON STOP UNDO Verarbeitung, RETRY Verarbeitung:"
- or what can I do?

Thank you very much for further information.
Regards
Matthias
 
It's very difficult to know without having a trace of the program, but as you've got a loop it may be some sort of overflow (string? recursion?) error, or memory access bug.

Have you got a procore file in your temp directory?

Any errors in your db log? - also check your windows event log.

Apart from that, can you replicate the error? Try the debugger is an obvious approach.

I don't think you have client logging in your version, and probably not ProSpy Plus either - try inserting your own logging mechanism, eg. outputting Program Stack info to a log-file - see PROGRAM-NAME in Help.

Lee
 
As Lord says, ADM1 should not be used if possible, as it is deprecated.
I'm not sure if that is because it was buggy or just difficult to implement.

The other thing that may mark your use of Dispatch out is that you are calling it in a loop - is that what you do in your other programs? There may be some global (shared) variable/reference somewhere that is overflowing or otherwise misbehaving in that, or one of the other programs you call.

Finally, you may like to consult with the administrator of this site, who has considerable recent experience with mysterious crashes.
 
I do not know if this is the case as you have not posted the code in the procedures you are running but I have seen something similar to what you are describing when running Progress on Windows in the past. If you are storing your r-code in the current windows working directory for your prowin32 session and have not explicitly set the propath to this directory progress cannot find the r-code if you run some windows program that changes the current windows working directory.
 
The problem roettgerman is that I don't know if the code without declarative variables you delivered to us generates complete fail program, and thus, it must be restarted, or, if you can get some message errors in some logs to report the problem.
There must be somewhere a code log listening to you message errors, explanation on some database of Progress errors, the explanation of these code errors messages, and then, you should have to re-manage you code in order to make your program more stable and more robust.
I won't accuse Progress, but maybe, the code you writed is not exactly the good one.
But my past expertise on Webspeed is here not the good one for a clien-server L4G windows application.
Sorry
 
Back
Top