달력

6

« 2025/6 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

'SQLException'에 해당되는 글 1

  1. 2010.01.25 [JDBC] java.sql.SQLException: Connection has already been closed
<Error> <HTTP> <101017> <[ServletContext(id=10303
87,name=DefaultWebApp_myserver,context-path=)] Root cause of ServletException
java.sql.SQLException: Connection has already been closed.
at weblogic.jdbc.pool.Connection.checkIfClosed(Connection.java:68)
at weblogic.jdbc.pool.ResultSet.close(ResultSet.java:186)
...


위와 같은 에러가 날 수 있는 한가지 가능성은 JDBC Connection 변수를 다음과 같이 static으로 선언한
경우이다.
===
:
<%@ page import="
java.io.*,
java.net.*,
javax.servlet.*,
java.sql.*,
java.util.*
"%>
<%!
Connection conn = null;
%>
<%
Statement stmt = null;
ResultSet rst = null;
try{
try{
이슈사항
해 결 안
www.bea.co.kr 63
WEBLOGIC
Technical Tip
Driver driver = (Driver)Class.forName("weblogic.jdbc.pool.Driver").newInstance();
Properties props = new Properties();
conn = driver.connect("jdbc:weblogic:pool:OraclePool", prop
:
===
이와 같이 선언된 경우 예상할 수 있듯이 다음과 같은 절차로 작업이 일어나게 되면 위와 같은 에러가 발생
하게 된다.
===
1. A 작업에서 connection 생성, DB 작업 진행
2. B 작업에서도 connection을 생성하였으나 static 변수인 관계로 동일한 메모리 참조, 역시 DB 작업 진행
3. A 작업에서 connection close
4. B 작업에서 역시 connection close, 이때 이미 A 작업에서 close된 관계로 에러 발생
===
:
Posted by 버드MC