JAVA web项目JDBC连接池配置过大,或者JAVA数据源JDBC连接类编写不规范,打开链接不及时关闭,会导致数据库进
程数超过最大值而拒绝新连接。最近,一客户的遇到的问题就是典型的JDBC连接类打开会话不关闭导致应用链接报错:ORA-00020&ORA12516。
一、问题描述
JAVA WEB应用前台报错数据库连接超时,web中间件后台报错ORA-12516,报错信息如下:
观察Oracle数据库告警日志,会发现ORA-0020报错:
有趣的是:因为数据库是新安装部署的,开发同事并不认为这是应用导致的。作为运维的人,只能自己写个JAVA JDBC类,
重启数据库,通过自己的JAVA JDBC类操作数据库,一切如常。
JDBC JAVA类:
package com.cn;
import java.sql.*;
public class JDBCTest {
// dbUrl数据库连接串信息,其中“1521”为端口,“ora9”为sid
String dbUrl = "jdbc:oracle:thin://@117.113.168.198:1521/DB";
&n