Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)FrançaisItaliano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

Application Development with PAS for OpenEdge

Performance-related issues for the DISCONNECT( ) method

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • PAS for OpenEdge and Client Interaction
    • Understand application models
      • Application model context management
      • Application model performance
    • Application models and Open Client Objects
    • Choose the application model
    • Context management and the session-free model
    • Decide the scope of individual requests
    • Understand synchronous and asynchronous requests
      • Process control flow
      • Specifying the type of remote request
      • Handling asynchronous request results
      • Asynchronous request queuing
      • Understanding the session-managed queuing model
      • Understanding the session-free queuing model
      • Asynchronous requests and internal procedures
      • Tuning the size of the send and response queues
  • Programming the Progress Application Server for OpenEdge
    • Programming for a PAS for OpenEdge application model
      • Session-free programming
        • Affecting application scalability
        • SESSION handle attributes and session-free programming
      • Session-managed programming
    • ABL for programming PAS for OpenEdge procedures
    • Accessing the connection ID
    • Accessing the name of the current remote procedure
      • Accessing a procedure name on PAS for OpenEdge
    • Using PAS for OpenEdge event procedures
      • Startup and Shutdown procedures
        • Multi-session Agent Startup procedure
        • Multi-session Agent Shutdown procedure
        • Session Startup procedure
        • Session Shutdown procedure
        • Usage requirements
      • Connect and Disconnect procedures
        • Connect procedure
        • Disconnect procedure
        • Usage requirements
      • Activate and Deactivate procedures
        • Activate procedure
        • Deactivate procedure
        • Usage requirements
    • Controlling PAS for OpenEdge entry points
      • Export list operation
      • Setting and resetting the export list
      • Calling the EXPORT( ) method
        • Setting an initial export list
        • Resetting the export list
      • Resolving remote procedure names
    • Manage context for bound and unbound session-managed connections
      • Use the SERVER-CONNECTION-CONTEXT attribute
      • Use the SERVER-CONNECTION-ID attribute
      • Use the SERVER-CONNECTION-BOUND-REQUEST
        • Bound connections
        • Unbound connections
      • Use the SERVER-CONNECTION-BOUND attribute
    • Manage client context for session-free and unbound session-managed connections
      • Pass the client context identifier between client and server
      • Generate a client context identifier
      • Manage context from the server with OERequestInfo objects
      • Implementing multi-tier security models
    • Understanding remote procedure handles
      • Remote procedure handles
      • Deleting remote procedures
    • Handling conditions and returning values
      • Raising the ERROR condition and returning values
      • Throwing error objects to the client
      • Raising the ENDKEY condition
      • Handling the STOP condition
        • Raising a timed STOP
      • Handling the QUIT condition
      • Effects of unhandled conditions
    • Managing transactions
      • Types of a PAS for OpenEdge instance transactions
        • Normal ABL transactions
        • Automatic transactions
      • Implementing normal ABL transactions
      • Implementing automatic transactions
        • Initializing the automatic transaction object
        • Controlling the transaction
        • Terminating automatic transactions
        • Restarting automatic transactions
        • Automatic transaction example
    • Programming for Open Client applications
      • Using the ProtoGen utility
      • Using code editors
  • Programming ABL Client Applications
    • Programming for the application model
    • ABL for programming PAS for OpenEdge client procedures
    • Accessing PAS for OpenEdge resources from a client
      • Steps for accessing PAS for OpenEdge resources
      • Features of client-PAS for OpenEdge interactions
    • Connecting to a PAS for OpenEdge instance
      • Creating a server object handle
      • Establishing a connection with the CONNECT( ) method
        • Connection parameters argument
        • Connection URL syntax for the APSV transport
        • Session-managed application arguments
      • Connection examples
        • Connecting to a session-managed PAS for OpenEdge instance
        • Connecting to a session-free PAS for OpenEdge instance
    • Accessing the connection ID on a session-managed client
    • Accessing client context regardless of application model
      • Managing context from the ABL client with OERequestInfo objects
    • Running and managing remote procedures
      • Running remote procedures
        • Synchronous remote procedures
        • Asynchronous remote procedures
        • RUN statement options for remote procedures
        • Passing class-based objects as parameters between a server and ABL client
        • Remote procedure behavior
      • Understanding proxy procedure handles
        • Accessing proxy procedure handles
        • Comparing proxy and local procedure handles
      • Deleting remote persistent procedures
      • Remote procedure code examples
        • Example 1: Remote non-persistent procedure example
        • Example 2: Remote persistent procedure example
        • Example 3: Remote persistent procedure example using the FUNCTION statement
        • Example 4: Remote non-persistent procedure with a class-based object as a parameter
    • Disconnecting from a PAS for OpenEdge instance
      • Using the DISCONNECT( ) method
      • Disconnecting a session-managed client
      • Disconnecting a session-free client
      • Deleting the server handle
    • Handling conditions and return values
      • Raising the STOP condition
      • Handling conditions on the RUN statement
      • Using the RETURN-VALUE function across sessions
    • Managing asynchronous requests
      • Executing an asynchronous request
        • Asynchronous request handles
      • Handling the response from an asynchronous request
        • PROCEDURE-COMPLETE events
        • Event procedures
        • Obtaining error information
        • Obtaining parameter values
        • Obtaining the return value
      • Canceling asynchronous requests
      • Canceling asynchronous requests after a specified time
        • Examples
      • Asynchronous requests and persistent procedures
      • Deleting asynchronous remote persistent procedures
      • Deleting server handles
      • Deleting asynchronous request handles
      • Mixing synchronous and asynchronous requests
      • Running asynchronous requests on the SESSION system handle
      • Examples
        • Synchronous request execution model
        • Asynchronous request execution model
        • A complete asynchronous request example
  • Design and Implementation Considerations
    • Primary performance considerations
      • Minimizing network traffic
      • Off loading resource-intensive processing tasks
      • Choosing an application model
        • Application characteristics to consider
        • Managing larger amounts of context
        • Managing smaller amounts of context
        • Considering ample computer resources
        • Considering the future
      • Setting the number of multi-session agents, sessions, and connections
      • Choosing a transaction model
      • Using load balancing
    • Secondary performance considerations
      • Connect and disconnect performance issues
        • Using the PAS for OpenEdge Server Connect procedure
        • Performance-related issue for the CONNECT( ) method
        • Performance-related issues for the DISCONNECT( ) method
      • Compiled compared to precompiled code
      • ABL browse design considerations
      • Performance issues related to schema transmission
      • Garbage collection for class-based objects
    • Transaction and record management considerations
      • Comparing normal ABL and automatic transactions
      • Ensuring a small transaction size
      • Returning transaction status to the client
      • Maintaining transaction consistency between client and server
      • Managing conflicts between client and server
        • On the client
        • On the server
      • Buffer currency and NO-LOCK
        • Reading the current record
        • Releasing the record
        • Setting the -rereadnolock parameter
    • Deployment considerations
      • Minimizing the effects of schema changes
      • Advantages of using portable r-code
    • Security considerations
      • Overview of the server security options
      • User authentication and authorization
        • Authorization over a bound session-managed connection
        • Authorization over an unbound session-managed or session-free connection
      • Database access
      • PAS for OpenEdge session access
        • Application model interactions
        • How to set and reset an export list for each application model
        • Session-managed application with a bound connection
        • Session-managed application with an unbound connection
        • Session-free application
      • Audit trails
        • PAS for OpenEdge application audit trails
        • Client application audit trails
      • Digital certificate management
    • Multi-language support
    • Distributed application design and implementation
      • Understanding the scope of persistent, single-run, and
      • Cleanup of remote procedure instances
      • Understanding procedure handles in distributed ABL
        • REMOTE attribute
        • PERSISTENT, SINGLE-RUN, and SINGLETON attributes
        • PROXY attribute
        • How the attributes work together
      • Understanding condition handling in distributed ABL sessions
      • Schema triggers
      • Conditions that make migrating your application model
Table of Contents

Performance-related issues for the DISCONNECT( ) method

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: March 30, 2020
  • 2 minute read
    • OpenEdge
    • Version 12.2
    • Documentation

On a bound session-managed connection, the DISCONNECT( ) method has no significant performance impact on your client application regardless of whether there is an server Disconnect procedure defined. The server Disconnect procedure is run by the PAS for OpenEdge server after the client connection is terminated and DISCONNECT( ) method execution has completed. That is, unlike other procedures executed in a server session, the server Disconnect procedure is run for a bound session-managed connection concurrently with processing occurring in the client application.

For a bound session-managed connection, you might be able to take advantage of the way the PAS for OpenEdge Disconnect procedure is run to improve overall application performance. When designing your distributed application, consider tasks to be performed by a PAS for OpenEdge instance that could be performed independently of the connection between the client application and the PAS for OpenEdge instance. These tasks would typically be ones where the client application does not require any information about the success or failure of the operation. Time-consuming actions are very good candidates for consideration. By moving these tasks to the PAS for OpenEdge Disconnect procedure, these actions can be performed concurrently with other client application processing, improving overall application performance.

On an unbound session-managed connection, any defined Disconnect procedure runs before the client connection is terminated. Thus, especially for frequent and short-duration connections, you probably want to ensure that the Disconnect procedure does not perform any processing that significantly delays the execution of the DISCONNECT( ) method. This can both impact the client and delay the availability of the server session to handle other client requests.

In a session-free application, the DISCONNECT( ) method has minimal performance impact because no Disconnect procedure is executed.

TitleResults for “How to create a CRG?”Also Available inAlert