We have an app using WLS 10.3.5.
We have set the following:
100/100 for Initial/MAX capacity
JDBC THIN NON-XA
Statement Cache: LRU
cache Size: 10
TEST CONNECTIONS ON RESERVE: TRUE
TEST FREQ: 0
SECONDS TO TRUST IDLE POOL: 0
Shrink Freq: 0
Connection Creation Retry Freq: 10
Inactive Connect Timeout: 180
maximum waiting for connection: 2147483647
Connection reserve timeout: 0
Ignore In-Use Connections: TRUE
Pinned-To Thread: FALSE
REMOVE INFECTED CONNECTIONS ENABLED: SELECTED
WRAP DATA TYPES: SELECTED
on NO LOAD, when browsing the app, we would get:
"The data source is unavailable. Please wait a few seconds and try again".
On WLS server logs:
<Sep 24, 2012 12:00:24 AM CDT> <Warning> <JDBC> <BEA-001153> <Forcibly releasing inactive connection "weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@399e" back into the connection pool "JDBC Data Source-0", currently reserved by: java.lang.Exception
The above can probably be a warning message...of course.
On database side:
SQLNET file contents:
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /u01/app/oracle
SQLNET.RECV_TIMEOUT = 180
SQLNET.EXPIRE_TIME = 20
SQLNET.INBOUND_CONNECT_TIMEOUT = 300
On Listener file:
Thanks in advance...
I see that you have 100 initial and 100 as max connection pool size but why like that...?????
at start of the server it will wait for 100 connection to create and then move further so try to avoid such thing.
Keep initial capacity 5 or 10 and increment as 5 and keep Max pool size as 100.
This kind of tuning because even though you dont have load but all connection are already created and test frequency is for 120 second but where as inactive connection time you set for 180 seconds.
That cause big issue.
Make sure to keep inactive connection time less then test frequency seconds.
This setting will tune your Datasource and work perfectly and load on server will also reduced.