Try OpenEdge Now
skip to main content
Application Migration and Development Guide
Application Development with PAS for OpenEdge : Programming the Progress Application Server for OpenEdge : Programming for a PAS for OpenEdge application model : Session-free programming
Session-free programming
You can develop a session-free application similar to an unbound session-managed application. However, a session-free application must follow these additional PAS for OpenEdge programming requirements and recommendations:
*Every request (external procedure) runs independently of every other request on the PAS for OpenEdge instance. No request can create global or persistent data that any subsequent request can ever expect to find, because each request can execute on a different PAS for OpenEdge instance (with DNS load balancing) or ABL session.
*You cannot specify a Connect or Disconnect event procedure, and none is ever executed on the application server.
*You can specify Activate and Deactivate event procedures to execute before and after each request, but you cannot use them to maintain any contextual data that is not read and written to persistent storage (a database).
*Do not use persistent procedures of any kind, unless you cannot avoid it. (For ABL clients, as an alternative to RUN PERSISTENT, consider using the SINGLE-RUN or SINGLETON option.) Using any persistent procedures (Open Client and SOAP Web service ProcObjects) that are called and instantiated directly by the client forces a bound connection to the application server, which limits application performance and scalability (see Affecting application scalability). Persistent procedures also complicate the programming of session-free client applications, which must maintain connection context with every call to an internal procedure or user-defined function. Also, using the PAS for OpenEdge session to create a persistent procedure internally in response to some other client invocation has limited, if any, value. No external procedure invoked by the client can expect to access any persistent resources created by an PAS for OpenEdge session in response to another client invocation, because the latest remote external procedure is likely to execute in a different PAS for OpenEdge session than the one in which any of the PAS for OE-created persistent resources reside.
* Affecting application scalability
* SESSION handle attributes and session-free programming