以下不知道是不是解決方法的方法,因為我只重啟下oracle服務就好了,並沒進行任何修改
引用別人的文章:
1)數據庫是專用服務器,但是在tnsname.ora配置中設置了連接方式為shared,這種情況下打開tnsname.ora,
把(server = shared)改成(server = dedicate)
2)是由於process不夠引起的
后來查看到v$process一直漲到140多,而我的數據庫設置的是150.據此大致能斷定process不夠,
用以下語句修改數據庫的processes值
alter system set processes=500 scope=spfile(由於processes是靜態參數,scope只能為spfile,
在v$sgastate條件為'procesees'中可以看到會每個process會點4個字節),
note:如果在hibernate中的hibernate.connection.provider_class選擇的是c3p0的就會出這種情況,其它的好像不會.
很奇怪為什么c3p0會打開那么多個processs, 在shared連勢接方式下,shared_server即是一直連在數據庫的process值,注意這點
當前的連接數
select count(*) from v$process;
設置的最大連接數
select value from v$parameter where name = 'processes';
修改最大連接數
alter system set processes = 500 scope = spfile;
以上內容第一條我的server已經是dedicate的 所以不是這個問題。
至於第二條我查看下連接數確實很高。我設置的最大連接數為500,當前連接數已達490多。所以肯定是這個問題
我沒有進行修改最大連接數 而是重啟下oracle 當前連接數就一下子回到了兩位數。問題解決
修改最大連接數后記得要重啟oracle