问题现象:

做报文解析的时候,从MQ获取报文,经过解析存储到数据库。

一条报文插入5个表中,插入前都做数据库连接,估计循环多长连接数据库,造成数据库压力过大。

修改连接语句。

1.有时候连得上数据库,有时候又连不上.

2.可能是数据库上当前的连接数目已经超过了它能够处理的最大值.


解决办法:

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.address order by cpu_time/executions desc;