Method and system for connection pooling for content management clients
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.
7 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for selecting an existing connection from a connection pool. A connection is immediately decoupled from its client session when the client session is released by a user and made available to the same user or other users. Criteria are defined, applied and considered for either re-using an existing connection or creating a new connection.
-
Citations
11 Claims
-
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; andusing 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 Dependent Claims (2, 3, 4, 5)
-
-
6. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:
-
couple a connection to a session with a first client from a plurality of clients; in response to release of the session by the first client, decouple the connection from the session with a first client, place the decoupled session in a session pool in a session manager cache associated with the first client to maintain the decoupled session for the first client to reuse and place the connection in a connection pool for reuse by any of the plurality of clients, the connection pool only including connections that are decoupled from previously-created sessions, the decoupled connection being available for reuse prior to the expiration of the decoupled session; receive a connection request, from a requesting client of the plurality of clients, after the decoupling; determine 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; apply 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; create the new connection and provide 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 an available connection 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; use 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 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 apply a set of queuing policies, comprising; create the new connection and provide 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 use 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; and based on a determination that the plurality of connections are not available in the connection pool for reuse, create the new connection and provide the new connection to the requesting client. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A content management system for managing client sessions in a distributed computing environment, comprising:
-
a repository having access and storage operations controlled by at least one content server; and a computing platform including a content management framework for integrating operations with the content server and repository, the computing platform including at least one computing device processor and a memory; a module stored in the memory, executable by a computing device, to; couple a connection to a session with a first client from a plurality of clients; in response to release of the session by the first client, decouple the connection from the session with the first client, place the decoupled session in a session pool in a session manager cache associated with the first client to maintain the decoupled session for the first client to reuse and place the connection in a connection pool for reuse by any of the plurality of clients, the connection pool only including connections that are decoupled from previously-created sessions, the decoupled connection being available for reuse prior to the expiration of the decoupled session; receive a connection request, from a requesting client of the plurality of clients, after the decoupling; determine 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; apply 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 pooling policy comprising; create the new connection and provide 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 an available connection 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; use 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 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 apply a set of queuing policies, comprising; create the new connection and provide 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 use 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, create the new connection and provide the new connection to the requesting client.
-
Specification