제가 sqlldr를 사용해서 cmd창에서는 데이테거 무사히 oracle DB에 올라갔습니다.
그런데 java로 프로그래밍해서 데이터를 올리려고 하니까 256개 데이터가 올라가고 나서는 프로그램이 데드락에 걸리네요...
프로그램을 종료하고 나서 DB에 가보면 데이터는 모두 들어가 있고요...^^;;
cmd창에서 데이터 commit시점은 64개의 데이터가 들어갈때 마다 발생합니다.
다음은 제가 간단하게 프로그래밍한 것인데...어디에 이상이 있는지 좀 봐주십시요..
들어갈 데이터의양은 10만개 이상 정도 됩니다....그래도 cmd창에서는 무리없이 돌아갔거든요....
데이터가 77개정도 일때는 무사히 들어갔습니다....
아무리 찾아봐도 원인은 process부분인거 같은데 ....디비서버 문제인지 .....프로그래밍 문제인지...
고수님들 부탁드립니다...꾸벅
Process proc1;
String cmds = "sqlldr 아이디/비번@주소 control=d:\\test\\temp\\xmldocument.ctl data=d:\\xml_test_data\\auction\\auction_xml_documents.txt"; proc1 = Runtime.getRuntime().exec(cmds);
if(proc1.waitFor() != 0){
err = new BufferedReader(new InputStreamReader(proc1.getErrorStream())); buffer = new StringBuffer();
while(err.ready()){ buffer.append(err.readLine()); } err.close(); throw new Exception(buffer.toString()); } |