스프링 프레임워크 + tomcat 8.0 + oracle 11g 에서 혼자 로컬로 DB를 사용할 때는 아무 문제가
없다가 여러 인원이 DB서버 하나를 사용하게 될 때 발생했던 오류
close()를 해줘야 하는데 안하는게 쌓이다 보니 결국 오류가 뿜음..
ORA-12519, Error preloading the connection pool, no appropriate service handler found 보인다.
경고: Unexpected exception resolving reference
java.sql.SQLException: Error preloading the connection pool
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2084)
Caused by: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
... 22 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:386)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
... 31 more
경고: Unexpected exception resolving reference
java.sql.SQLException: Error preloading the connection pool
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2084)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getLogWriter(BasicDataSource.java:1587)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:386)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
... 79 more
오류 해결방법
1. close()를 해준다.
2. SELECT * FROM V$SESSION WHERE OSUSER != 'SYSTEM'; 으로 점유하는 것을
확인하여 이상이 있는지 체크
이 글에서 소개할 방법은 3번
3. processes의 할당량을 늘려준다.
select * from v$resource_limit where resource_name = 'processes';
위 내용을 입력하여 현재 사용중인 수가 할당보다 많으면 위 오류를 나온다.
현재 32 최대 36 할당 100
먼저, cmd를 실행한다.
sqlplus /nolog
SQL> conn /as sysdba
SQL>alter system set processes=200 scope=spfile;
값은 적당하게~
SQL> shutdown immediate;
SQL> startup;
재시작까지 완료되고 다시 확인을 하면
위처럼 allocation, limit 값이 늘어난 걸 확인할 수 있다.