Connection pooling in Siebel is very important for performance. Siebel Bookshelf contains a section on “Database Connection Pooling Usage Guidelines” that provides general recommendations with regards to connection pooling. Several factors should be considered when determining whether to use connection pooling in an implementation. For example, number of users, type of connections etc.
An implementation with connection pooling is characterized by the following behavior:
- Opening a connection is relatively fast. The shared connection eliminates the need to creating a physical database connection, which takes a long time.
- For the same reason, database resource utilization may be reduced.
- On the other hand, as users need to share the connection, additional overhead is added to obtain the connection for every request.
- Long-running queries utilize a connection for a long time and may result in users waiting a long time for a connection.
Therefore, when considering connection pooling it is important to analyze the behavior of the implementation with regards to database connections. Are the connections mostly end-users? What is the average think time? What is the maximum number of connections?