헤르메스 LIFE

[Tibero] Caused by: java.sql.SQLException: JDBC-12003:Unable to open a session. 본문

Database

[Tibero] Caused by: java.sql.SQLException: JDBC-12003:Unable to open a session.

헤르메스의날개 2024. 5. 30. 09:51
728x90

티베로 사용 중 아래의 오류가 발생했습니다.

Caused by: java.sql.SQLException: JDBC-12003:Unable to open a session.
	at com.tmax.tibero.jdbc.err.TbError.makeSQLException(Unknown Source)
	at com.tmax.tibero.jdbc.err.TbError.newSQLException(Unknown Source)
	at com.tmax.tibero.jdbc.msg.common.TbMsgError.readErrorStackInfo(Unknown Source)
	at com.tmax.tibero.jdbc.msg.TbMsgEreply.deserialize(Unknown Source)
	at com.tmax.tibero.jdbc.comm.TbStream.readMsg(Unknown Source)
	at com.tmax.tibero.jdbc.comm.TbCommType4.logon(Unknown Source)
	at com.tmax.tibero.jdbc.driver.TbConnection.openConnection(Unknown Source)
	at com.tmax.tibero.jdbc.TbDriver.connectInternal(Unknown Source)
	at com.tmax.tibero.jdbc.TbDriver.connect(Unknown Source)

SYSDBA 계정으로 확인해보면, 각 사용자가 몇 개의 Session 을 가지고 있는지 확인 할 수 있습니다.

SELECT OSUSER, MACHINE, COUNT(1)
  FROM V$SESSION
 WHERE USERNAME = [사용자계정]
 GROUP BY OSUSER, MACHINE
;

예)
SELECT OSUSER, MACHINE, PROG_NAME, COUNT(1)
  FROM V$SESSION
 WHERE USERNAME = 'CSPIVUE'
 GROUP BY OSUSER, MACHINE, PROG_NAME
;

PROG_NAME 을 보면 "JDBC Thin Client" 가 보여지는데..
이는 JDBC Connection 을 의미 합니다.

"JDBC Thin Client"  가 지나치게 많은 경우, Connection 이 close 되고 있지 않는 경우 입니다.

그렇지 않고, 일률적이라면 아마도 JDBC Connection Pool의 경우 입니다.

Conection Pool Size를 개발자의 경우 3개 정도록 줄이면 좋을 것 같습니다.

728x90