일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- jquery
- null
- php
- 호환성
- DB
- maven
- JSTL
- 이클립스
- exception
- 오라클
- checbox
- 문자열
- MYSQL
- 웹 플랫폼 설치 관리자
- switch
- java
- html
- RADIO
- 톰캣
- Oracle
- 날짜
- spring form tag
- SSL
- 한글
- json
- 스크립트
- 전자정부 표준프레임워크
- @RequestBody
- 네이버스마트 에디터
- HTML5
- Today
- Total
개인적인 정리
java.sql.sqlrecoverableexception: io 오류: connection reset 본문
java.sql.sqlrecoverableexception: io 오류: connection reset
WAS 로그를 보니 이런 경우가 많진 않은데... 가끔 있다.
1. 대부분 정상적으로 동작함.
2. toad 접속 이상 없음..
어떻게 봐도 일단은 문제가 없어 보이는 상황속에 위와 같은 로그가 있어서 2가지 조치를 해줬더니 에러가 나질 않는 것을 확인하였다.
운영환경
linux + oracle 11g
1. tomcat 시작시 option 추가
https://steemit.com/kr/@flyyou/java-db-java-sql-sqlrecoverableexception-io-error-connection-reset
http://goni9071.tistory.com/entry/connection-reset
https://stackoverflow.com/questions/137212/how-to-solve-slow-java-securerandom
https://github.com/flyway/flyway/issues/1077
의 글 외에도 조치사항으로
-Djava.security.egd=file:/dev/./urandom
를 말하는 것아서 tomcat 의 catalina.sh 에 추가하였다.
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom" 라고 아랫부분에 추가하였다.
2. validation query 추가
이클립스 환경에서는 문제가 없어서 validation query 를 넣어주지 않았는데.
운영환경에 올려서 일부사람만 지켜보는 상태로 한동안 운영이 되기 때문에 사용자 접속이 전혀 없는 상태가 발생한다.
따라서 connection 이 idle해지는 상태가 꾸준히 발생할 것 같아서 validation query를 추가하였다.
context-datasource.xml 에 아래 내용울 추가하였는데..
<!-- 특정 시간마다 validationQuery를 실행 셋팅 시작 3600000 : 1시간-->
<property name="validationQuery" value="select 1 from dual"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="1800000"/>
<!-- 특정 시간마다 validationQuery를 실행 셋팅 끝 -->
전체를 보면 아래와 같다.
<!-- Oracle -->
<bean id="dataSource-oracle" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
<!-- 특정 시간마다 validationQuery를 실행 셋팅 시작 3600000 : 1시간-->
<property name="validationQuery" value="select 1 from dual"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="1800000"/>
<!-- 특정 시간마다 validationQuery를 실행 셋팅 끝 -->
</bean>
mysql 이라면 아래와 같이 추가해준다.
<!-- 특정 시간마다 validationQuery를 실행 셋팅 시작 3600000 : 1시간-->
<property name="validationQuery" value="select 1"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="100000"/>
<!-- 특정 시간마다 validationQuery를 실행 셋팅 끝 -->
일단 위와 같은 방벙으로 에러로그가 남지 않는 것을 확인하였고
순서대로 진행을 하였는데..
1번만 했을 경우에도 에러로그는 남았었다.
3번, 4번으로 할 내용들을 준비해놨었는데.. 에러로그가 더 이상 남지 않아서 이것으로 종료를 할 예정이다.
'DB > ORACLE' 카테고리의 다른 글
oci_connect() [function.oci-connect]: ORA-24408 (0) | 2019.11.08 |
---|---|
TABLE EXPORT & IMPORT (CLOB 포함) (0) | 2019.05.14 |
ORA-01843: 지정한 월이 부적합합니다. (0) | 2019.04.17 |
ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 (0) | 2019.04.13 |
clob 데이타 처리 (0) | 2018.09.22 |
ojdbc6.jar (0) | 2018.04.16 |
오라클 설치시 에러화면 (0) | 2018.04.13 |
window10에서 오라클 설치 (0) | 2018.04.13 |