안녕하세요...
현재 제가 사용하는 환경은
AIX 에 DB2 9.7이 설치되어 있고 jdbc 드라이버는 db2jcc4.jar (버전은 4.7 입니다)를 이용하고 있습니다.
위 환경에서
String driver = "com.ibm.db2.jcc.DB2Driver";
String url = "jdbc:db2://dbServerAddress:5100/dbid";
String user = "user";
String password = "passwd";
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
con.setAutoCommit(false);
} catch (Exception e) {
e.printStackTrace();
}
return con;
위와같은 코드로 커넥션을 가져오고
String query = "SELECT CLOB_COL FROM CLOB_TABLE FOR UPDATE";
stmt = con.prepareStatement(query);
rs = stmt.executeQuery();
if ( rs.next() ) {
Clob clob = rs.getClob(1);
clob.truncate(0);
clob.setString(1, "1234567890");
clob.free();
}
위와같이 업데이트를 시키는데...
테이블에 아무 변화가 없습니다.
혹시나 캐시드로우셋을 이용하나 싶어 디비툴에서 업데이트를 시켜 락을 걸어둔 상태에서 위 자바코드를 실행하면
멈추어 있는것으로 보아 커넥션에 문제가 있는것으로 보이진 않는데...
뭐가 문제일까요?
위 코드로 오라클에서는 정상적으로 작동하는데...
드라이버를 디컴파일 해 보면 setString 에 대한 구현부가 있는것으로 보아 실행은 되는것 같은데...
다른분들도 이런 현상을 겪어보신분 있나요?
|