ORA-12519: TNS:no appropriate service handler found (用戶端連接間歇性失敗),有時會連得上有時連不上,可能是資料庫上當前的連接數目已經超過了它能夠處理的最大值。
select count(*) from v$process --當前的連接數
select value from v$parameter where name = 'processes' --資料庫允許的最大連接數
修改最大連接數:
alter system set processes = 300 scope = spfile;
重啟資料庫:
shutdown immediate;
startup;
--查看當前有哪些用戶正在使用資料
SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine from v$session a, v$sqlarea b where a.sql_address =b.
還沒完,這問題是在C3P0遇到的,經過另篇文章查到,上面的錯誤是由於Oracle Express 10g的預設配置連接數只有20,而在hibernate.cfg.xml配置使用c3p0連接池的最大連接數遠遠超過了這個資料庫允許的數量,因此但頻繁的去連接資料庫的時候,無法獲得連接,資料庫Listner就直接拒絕連接的請求,因此只要修改c3p0連接池最大最小連接數為。c3p0可以設置如下:
<property name="hibernate.c3p0.min_size">5</property> <property name="hibernate.c3p0.max_size">10</property>
問題來了,在系統上線前就要估算有多少用戶會使用這個DB,而每個用戶會使用多少connection,總和不能超過Oracle配置的連線數(看該DB獲得Oracle多少授權connection數),看來Project的Architecture也得注意這一塊
全站熱搜
留言列表