1. A method for dynamically sizing one or more session pools, each of the one or more session pools comprising one or more sessions, the method comprising: requesting a free session from a first session pool; determining that the free session is not immediately available in the first session pool; in response to determining that the free session is not available from the first session pool, determining whether an identified session from a second session pool can be de-allocated; and if the identified session from the second session pool can be de-allocated, dynamically sizing the first and second session pools by de-allocating the identified session from the second session pool and creating a new session in the first session pool.