×

Method and system for connection pooling for content management clients

  • US 9,930,122 B1
  • Filed: 09/28/2012
  • Issued: 03/27/2018
  • Est. Priority Date: 09/28/2012
  • Status: Active Grant
First Claim
Patent Images

1. A method for managing client sessions in a distributed computing environment, comprising:

  • in response to the release of a session with a first client, wherein the session is coupled to a connection, decoupling the connection from the session with the first client and placing the decoupled session in a session manager cache associated with the first client and the connection in a connection pool, the decoupled session being maintained in a session pool within a session manager cache such that the decoupled session is held for the first client to reuse, the connection pool only including connections that are decoupled from previously-created sessions, the connections in the connection pool maintained for reuse by any of the plurality of clients, the decoupled connection being available for reuse prior to the expiration of the decoupled session;

    receiving a connection request, from a requesting client from the plurality of clients after the decoupling;

    determining if a plurality of connections are available in the connection pool in response to receiving the request;

    based on a determination that the plurality of connections are available in the connection pool;

    applying at least one defined criteria to each available connection in the connection pool;

    based on a determination that an available connection has met the at least one defined criteria, applying a set of pool policies comprising;

    creating a new connection and providing the new connection to the requesting client if;



    (i) a total number of available connections is less than a minimum value;



    (ii) the total number of available connections is greater than the minimum value and less than the optimum value, and the age of the available connection that met the at least one defined criteria is less than a preset value, or 

    (iii) the total number of available connections is greater than or equal to a maximum value and there are no unused connections;

    using the available connection that met the at least one defined criteria if;



    (i) the total number of available connections is greater than the minimum value and less than the optimum value, and the age of the available connection that met the at least one defined criteria is greater than the preset value, or 

    (ii) the total number of available connections is greater than the minimum value and greater than the optimum value;

    based on a determination that no available connection in the connection pool met the at least one defined criteria, applying a set of queuing policies, comprising;

    creating the new connection and providing the new connection to the requesting client if;



    (i) the total number of available connections is less than the minimum value;



    (ii) the total number of available connections is greater than the minimum value and less than an optimum value, and a first unused connection is not found during a first wait time;

    or 

    (iii) the total number of available connections is greater than optimum and less than a maximum value, and a second unused connection is not found during a second wait time;



    (iv) the total number of available connections is greater than or equal to the maximum value and connections are not available in other connection pools; and

    using an available connection that did not meet the at least one defined criteria if;



    (i) the available connection that did not meet the at least one defined criteria is available in the connection pool and the total number of available connections is greater than the optimum value;

    based on a determination that the plurality of connections are not available in the connection pool for reuse, creating the new connection and providing the new connection to the requesting client.

View all claims
  • 7 Assignments
Timeline View
Assignment View
    ×
    ×