## Configuring connection pool

If you have used SQL or other similar tools to connect to a database and act on data, you probably know that getting the connection and logging in is the part that takes the most time. A program can spend several seconds every time it needs to establish a connection. To improve performance, JReport Enterprise Server supports caching a connection, so that it can be used each time the same user accesses the same table. Cached connections are kept in the connection pool and can be used and re-used as required. Therefore, JReport Enterprise Server is freed from having to create the connection to the database, leading to a considerable saving of time.

If you want to improve the performance of JReport Enterprise Server, you can configure a connection pool using the ConnectionPoolConfig.properties file in the directory `<install_root>\bin`. The following is an example of the ConnectionPoolConfig.properties file and detailed description of each property in the file:

    # jdbcpool configure information
    URL1=jdbc:odbc:Jinfonet
    Expire_URL1=0
    IdleExpire_URL1=1
    MaxCount_URL1=0
    MaxShare_URL1=0
    Attempt_URL1=1
    Interval_URL1=0

URL

JDBC URL that can establish a connection to your database.

Expire_URL

You can define how long in seconds it takes for an active connection to expire. The value for this property by default is "0", which means that the active connection will not expire.

IdleExpire_URL

You can define how long a free connection can be idle before it is closed. The connection will not be released until the defined time has reached its limit. The value for this property by default is "1", which means that the connection will be released after 1 second. If the value is "0", the connection will be closed right after it starts idling.

MaxCount_URL

The maximum number of connections based on the URL. The value for this property by default is "50". Once the number of the connections reaches the maximum, a new connection will be blocked until a free connection becomes available. Generally speaking, the fewer the connections, the better the performance of JReport Enterprise Server. If the value is set to "0", it means that there will be no limit on the number of the connections.

MaxShare_URL

The maximum number of requests in one connection that can be executed simultaneously. Once the number of the requests reaches the maximum, a new connection will be created to connect to the database. The value for this property by default is "1", which means that one request in one connection can be executed simultaneously. The smaller the number of requests, the better the performance of JReport Enterprise Server. If the value is set to "0", it means that there will be no limit to the maximum number of requests sharing one connection and that all the requests in one connection can be executed simultaneously.

Since the property MaxShare_URL* and MaxCount_URL* are incompatible, you should make a balance between these two properties to achieve the best performance of JReport Enterprise Server.

Attempt_URL

This property has a close relation to the property MaxCount_URL*. Once the number of the connections reaches the maximum, a new connection will be blocked until a free connection becomes available. To make the maximum use of the available connections in the pool, the property Attempt_URL* allows you to set how many times the engine will try to establish a new connection. The default value for this property is "1", which means that the engine will only try once to create a new connection.

Interval_URL

The interval the engine will wait for between attempts to create a new connection if a previous try has failed. The default value for this property is "0", which means that the engine will start the next attempt immediately. The unit of the property value is milliseconds.

Notes:

- You are forced to give a value to the property URL in order to establish a connection to the database. For the other six properties which configure the URL, it is not necessary to set their property values (the default values will be used).
- getConnectionPool.jsp is still available for customers who have updated JReport Enterprise Server from earlier versions. It is now deprecated in the current version. getConnectionPool.jsp is used for viewing connection information and for deleting unused connection information. You can gain access to it using the URL `http://localhost:8889/admin/getConnectionPool.jsp`.