현재 oracle 8i, java 를 쓰고 있습니다.
String result = "Y";
String other_result = "";
String Query = "
INSERT INTO result_table
(
seq, date1, date2, result, regdate
)
VALUES
(
( SELECT NVL(MAX(seq), 0) + 1 FROM result_table ),
?, ?, ?, SYSDATE
)";
pstmt1 = conn.prepareStatement(Query);
pstmt1.setString(1, strDate1);
pstmt1.setString(2, strDate2);
pstmt1.setString(3, result );
conn.prepareStatement(Query);
other_result = "Y".equals(result) ? "N" :"Y";
pstmt2 = conn.prepareStatement(Query);
pstmt2.setString(1, strDate2);
pstmt2.setString(2, strDate1);
pstmt2.setString(3,other_result);
conn.prepareStatement(Query);
위과 같이 사용하고 있습니다.
문제가 다른부분들은 문제가 없는데 특정부분(result, other_result) 위아래가 바뀌어서 들어갑니다.
계속 그러면 소스 오류지 싶은데....이게 정상적으로 들어가다가 간혹 위아래의 result, other_result 값이 바뀌어서 들어가집니다.
예를 들어 result 가 Y이면 other_result N 일 들어가야 하는데 binding 은 첫번째 Y, 두번째 N이 되는데
실제 입력된 데이터는 첫번째 N, 두번째 Y 로 들어가는 경우가 생깁니다.
iplanet was db pool 을 사용하고 있구요. 계속 그러면 소스상의 문제겠거니 하겠는데
정상적으로 들오가다 간혹 저런 건수들이 발생합니다.
도대체 원인을 모르겠네요;;
|