프로젝트 중에 발생한 자잘한 문제점 몇 가지를 기록합니다.
Application | Version |
Spring | 4.2.4 Release |
JAVA | Oracle JDK 1.8.0_171 |
eGovFrame | 3.7.0 |
Mybatis(DTD) | 3.3.0(3.0) |
JDBC | OJDBC6-11.2.0.3 |
문제 1 - INSERT INTO... SELECT...
<insert id="insertSQL">
INSERT INTO
TABLE_A
SELECT
*
FROM
TABLE_B
</insert>
=> ERROR : ORA-00933 : SQL COMMAND NOT PROPERLY ENDED
INSERT INTO... SELECT 구문을 INSERT 태그와 함께 사용 시 ORA-00933 오류가 발생합니다.
<update id="insertSQL">
INSERT INTO
TABLE_A
SELECT
*
FROM
TABLE_B
</update>
=> OK!!
INSERT > UPDATE로 변경하여 해결했습니다.
문제 2 - Memory Leak
<insert id="insertSQL">
INSERT INTO
TABLE_A (A, B, C)
VALUES ('A', 'B', 'C')
</insert>
=> 심각: The web application [ROOT] created a ThreadLocal with key of type [oracle.jdbc.driver.AutoKeyInfo$1]...패키지 위치 및 SQL 생략...
but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
INSERT 구문을 호출 후, 서비스(WAS) 종료 시에 Memory Leak에 관한 경고가 출력되었습니다.
<insert useGeneratedKeys="false" id="insertSQL">
INSERT INTO
TABLE_A (A, B, C)
VALUES ('A', 'B', 'C')
</insert>
=> OK!!
useGeneratedKeys="false"옵션 추가하여 해결했습니다.
'프로그래밍 > Web.' 카테고리의 다른 글
[JavaScript] 자식 항목 선택시 부모 항목 이벤트 실행 방지 (2) | 2020.11.22 |
---|---|
[HTML] 이미지가 없으면 감추기 (0) | 2020.10.16 |
[Web Security] 불필요한 HTTP Method 지원 방지 (0) | 2020.08.24 |
[Web] OWASP ZAP로 HTTP Method 확인하기 (0) | 2020.08.24 |
[JAVA] static과 final의 컴파일 (0) | 2020.08.11 |
댓글