weblogic 서버 운영중 오류
- 작성자 :
- 이*규
- 작성일 :
- 2011-02-16 17:38:50
- 조회수 :
- 2,621
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
weblogic 서버 운영중 오류가 발생하여 문의드립니다.
(weblogic 10.3, oracle 10g)
(javax.transaction.xa.xaexception: java.sql.sqlexception: 접속종료)
웹로직의 데이터소스를 사용하지 않고 프레임워크에서 설정하여서 사용하는데
서버구동 초기에는 이상이 없다가 시간이 지나면 불규칙적으로 발생합니다.
데이터소스 설정과 오류메세지를 첨부파일로 올립니다.
설정의 문제인지 소스의 문제인지 파악이 안되네요.
(weblogic 10.3, oracle 10g)
(javax.transaction.xa.xaexception: java.sql.sqlexception: 접속종료)
웹로직의 데이터소스를 사용하지 않고 프레임워크에서 설정하여서 사용하는데
서버구동 초기에는 이상이 없다가 시간이 지나면 불규칙적으로 발생합니다.
데이터소스 설정과 오류메세지를 첨부파일로 올립니다.
설정의 문제인지 소스의 문제인지 파악이 안되네요.
A
안녕하세요.. 이봉규님..
해당 문제는 DBMS쪽에서 특정 시간 서비스 되지 않는 Connection을 종료시키기 때문에 일정 시간이 지난 후에 DB Connection Pool 상에 connection들이 종료가 되어서 발생된 문제인 것 같습니다.
우선 해결 방법은.. 다음과 같이 연결을 다시 맺도록 하는 설정을 추가하시면 될 것 같습니다.
<bean id="econ" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
...
<property name="user" value="${jdbc.username_econ}" />
<property name="password" value="${jdbc.password_econ}" />
<property name="checkLevelObject" value="2" />
<property name="jdbcTestStmt" value="select 1 from dual" />
</bean>
참고로 checkLevelObject의 값은.. 다음과 같은 의미가 있습니다.
The 5 levels are the following:
level 0: no check, the connection is taken from the pool without any verification
level 1: test if the connection is closed or not, if it is closed, another connection is tested, until we can return a valid connection
level 2: a test is made on the connection with a jdbc statement string. You need to set this string with setJdbcTestStmt(string test) method on StandardXAPoolDataSource object or StandardPoolDataSource object if you use this one. In a lot of case, you can use "select 1" to test your connection.
level 3: test all the unused connections inside the pool, and verify if a connection is closed. If a connection is closed, the pool removes it and creates a new one if needed.
level 4: verify all the unused connections from the pool with a jdbc statement string (see level 2, to set up a jdbc statement string).
참조 : http://xapool.ow2.org/faq_index.html#testconnection
그럼.. 즐거운 하루되십시오.
감사합니다.
해당 문제는 DBMS쪽에서 특정 시간 서비스 되지 않는 Connection을 종료시키기 때문에 일정 시간이 지난 후에 DB Connection Pool 상에 connection들이 종료가 되어서 발생된 문제인 것 같습니다.
우선 해결 방법은.. 다음과 같이 연결을 다시 맺도록 하는 설정을 추가하시면 될 것 같습니다.
<bean id="econ" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
...
<property name="user" value="${jdbc.username_econ}" />
<property name="password" value="${jdbc.password_econ}" />
<property name="checkLevelObject" value="2" />
<property name="jdbcTestStmt" value="select 1 from dual" />
</bean>
참고로 checkLevelObject의 값은.. 다음과 같은 의미가 있습니다.
The 5 levels are the following:
level 0: no check, the connection is taken from the pool without any verification
level 1: test if the connection is closed or not, if it is closed, another connection is tested, until we can return a valid connection
level 2: a test is made on the connection with a jdbc statement string. You need to set this string with setJdbcTestStmt(string test) method on StandardXAPoolDataSource object or StandardPoolDataSource object if you use this one. In a lot of case, you can use "select 1" to test your connection.
level 3: test all the unused connections inside the pool, and verify if a connection is closed. If a connection is closed, the pool removes it and creates a new one if needed.
level 4: verify all the unused connections from the pool with a jdbc statement string (see level 2, to set up a jdbc statement string).
참조 : http://xapool.ow2.org/faq_index.html#testconnection
그럼.. 즐거운 하루되십시오.
감사합니다.