Building Distributed
Applications
Using the Progress AppServer
Understanding Condition Handling in Distributed Progress Sessions
The processing boundary that exists between a 4GL client application session and an AppServer session influences how error conditions are viewed and handled in each session. Table 6–4 defines the four basic Progress conditions and describes how raising these conditions in one session affects the processing in the other, associated session.
Table 6–4: Progress Conditions Condition Description ERROR An unhandled ERROR condition raised in a client application has no effect on any of the Application Server processes to which it is connected. Conversely, an unhandled ERROR condition raised in an Application Server process has no effect on the client application to which it is connected.Handling this condition conforms to standard Progress rules. For more information about these rules, see the Progress Programming Handbook .The only way an AppServer session can raise ERROR in the client application is for a remote procedure or an Activate procedure to execute the RETURN ERROR statement. This raises ERROR on the RUN statement in the client application. ENDKEY An unhandled ENDKEY condition raised in a client application has no effect on any of the Application Server processes to which it is connected. Conversely, an unhandled ENDKEY condition raised in an Application Server process has no affect on the client application to which it is connected.Handling this condition conforms to standard Progress rules. For more information about these rules, see the Progress Programming Handbook .An AppServer session raises the ENDKEY condition if an attempt to find a database record fails or an INPUT FROM statement reaches the end of an input stream. Like a batch client, there are no user-interface events that can raise the ENDKEY condition. STOP A STOP condition raised in a client application while it is executing a remote procedure causes a STOP condition to be raised in the context of the executing procedure in the AppServer session.An unhandled STOP condition in an AppServer session results in the request being returned with the STOP condition.On a root client application, an unhandled STOP condition causes Progress to restart the client Startup Procedure (-p). This restarted session retains connections with databases, but deletes outstanding persistent procedures. This restart also disconnects any Application Server processes it is connected to and deletes active remote persistent procedures.In an Application Server process, an unhandled STOP condition causes the STOP condition to be propagated back to the client application where it is raised again in the context of the outstanding remote procedure request. It does not cause a restart of the AppServer session. All active remote persistent procedures and Application Server process connections remain intact. QUIT An unhandled QUIT condition raised in a client application disconnects the client application from all Application Server processes it is connected to and deletes the proxy persistent procedure handles for that client application.An unhandled QUIT condition raised in an AppServer session results in the immediate, successful completion of the current remote procedure request. The client application is then automatically disconnected from the Application Server process.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |