Microsoft MVP성태의 닷넷 이야기
C# 디버깅 모드에서만 DB Insert가 되는 현상 질의 [링크 복사], [링크+제목 복사]
조회: 4336
글쓴 사람
몽중언 (brandword at naver.com)
홈페이지
첨부 파일
 
안녕하세요 혹시나 하는 마음에 남깁니다.
얼마전부터 C#을 이용해 주식매매프로그램을 개발중인데 문제가 있어 찾다찾다 여기까지 왔네요;;

현재 개발 환경은 Visual Studio 2017 과 DB로 Oracle 11g를 로컬 PC에 설치해서 개발중입니다.
문제가 되는 부분은 증권사에서 제공하는 API를 통해 내려받은 종목코드들을 배열로 만들어
for문을 이용해 코드별로 상세 정보를 다시 API로 수신받아 DB에 저장하는 방식으로 구현하고 있습니다.

--종목코드 수신 (Open API)
--종목상세 정보 수신
  (for 수신된 코드 row수
       코드상세정보요청 API 호출
       요청정보수신 API
      --수신된 상세정보 DB 저장
         for 수신된 상세정보 row수
         오라클 DB Con Open
         insert 쿼리 실행
         오라클 DB Con Close )

대략 위와같은 로직으로 구현하고 있는데 이게 디버그 모드로 실행해서보면 data 송/수신 및 Oracle DB 접속이후
Insert까지 문제 없이 흘러갑니다. 에러도 없구요;;
문제는 컴파일후에 실제 프로그램 실행시에 해당 event를 발생시키면 DB에 저장이 안됩니다;;
이 문제로 며칠동안 고민하고 여러 싸이트들을 다니며 search해 봤지만 관련된 내용이 없구 간혹 google에 저와
동일한 내용으로 질의한 내용이 있는데 거기서도 해결을 못한거 같습니다;;
해서 혹시나 하는 마음에 책을 사서 체계적으로 다시 해볼까 하다 눈에 띄는 책의 저자님 홈페이지가 있어 여기에
질문을 우선 드려 봅니다.

(추가로 말씀드리면 화면상 data Grid에서 추가/삭제/수정/조회 하도록 구현해 놓은 event가 있는데 이부분은
문제 없이 실행됩니다.)

혹시 위와 같은 현상이 있는건 어느부분을 의심해 봐야 할지요?
아님 자체적으로 해결해 보기 위해선 프로그램 실행중 어떤 부분에 breaking 걸어 확인해 봐야 한다던지...하는
혹시 조언해 주실 부분이 있는지요.. 실례가 되지 않으신다면 조언해 주실 부분이 있다면 정말 감사드리겠습니다.




donaricano-btn



[최초 등록일: ]
[최종 수정일: 12/4/2017 ]


비밀번호

댓글 쓴 사람
 



2017-12-04 12시22분
그러니까, event도 잘 발생이 된 것을 확인했고, DB Insert도 잘 실행이 되는 것을 확인했는데도 오라클 DB에 내용이 추가되지 않았다는 건가요? 반면 디버깅 모드에서는 잘 된다는 것이고요?

제 생각에는 아무래도 문제를 잘못 짚고 있는 것 같습니다. 디버깅이 아닌 모드에서만 그럴 확률은 그리 높지 않습니다. 다시 한번, 코드를 꼼꼼이 확인해 보세요. 어디가 되었던 오류가 발생하는 부분이 있거나 코드 실행이 안되는 부분이 있을 것입니다. Insert 코드까지 잘 실행이 되었는데 오라클 DB에 내용이 추가 안 된다는 것은 있을 수 없는 일입니다. 정말 그런 버그가 있다면 오라클이 망했을 것입니다.
정성태
2017-12-04 12시45분
[몽중언] 정성태님이 하시는 말씀은 코드가 잘못 됐다는 이야기인데...그런경우에도 디버깅 모드에서 data가 정상적으로 들어가는게 있을수 있나요?
그렇다고 하더라도...말씀하신 내용을 확인하기 위해선 어떤방법이 있을까요;; 중간중간 breaking point를 설정해놓고 event를 발생시키면 마찬가지로 debuging 모드가 돼 버려서
정상 처리 돼 버리는데요..
[손님]
2017-12-04 12시56분
로그를 남겨보면 되지 않을까요? 파일이든, 콘솔이든 로그를 남겨 코드 수행이 정상적으로 되었는지를 확인해 보세요.
정성태
2017-12-04 01시04분
[몽중언] 아..제가 질문을 좀 이상하게 했네요;; SAP만 하다가 C#은 처음 구현해보는거라..
제가 말씀드린 Debug모드는 말그대로 Break point 걸어서 한줄 한줄 F11로 실행했을때 입니다..
릴리즈 모드 말고요...C# 개념으로는 그냥 Debug mode에서도 Breaking point 걸지않고 event 실행시키면
말씀드린대로 data가 insert가 되지 않구요..F11로 라인하나하나 확인하면서 로그를 보면서 실행하면 쿼리에 지극히 정상적인 에러 (primary key중복에러라던가등..)
return없이 정상적으로 insert가 됩니다..이게 이상한거거든요;; 동일한 Debug 모드에서 왜 그런건지..
정말 이런 케이스가 없는걸까요? 아님 제가 코딩을 이상하게 해 놓은건지..
책을 사서 처음 DB 설치부터 해보려고 해도 시중에 Oracle연동 C# 관련 책은 없는것 같고 그나마 책 목차에 DB Connect 내용이 포함돼 있는것 같으셔서 질의드리고 있습니다;;
[손님]
2017-12-04 01시16분
그런 케이스는 없습니다. 단지 있다면 코드를 잘못 작성했거나 멀티 스레딩으로 인해 Visual Studio 디버깅 중에 BP로 인한 시간차가 발생해 실행이 다르게 될 수 있는 정도입니다.

그러니까... 로그는 남겨 보셨나요?
정성태
2017-12-04 01시40분
[몽중언] 안그래도 멀티스레딩때문일까 하는 생각은 어렴풋이 하긴 했으나, 개념이 잘 안서다 보니 그부분을 파지는 못했습니다.
로그도 남겨 봐야겠네요. 당연 디버깅모드에서 한줄씩 확인해 가며 봤기 때문에 굳이 로그를 남겨서 확인해볼 생각을 못했었습니다.
로그를 남기면 해당 쿼리 실행 전후에 대한 내용을 확인해 볼수 있겠네요.
(물론 로그가 그렇게 남아도 원인을 찾으려면 아찔하긴 합니다만..스레드문제인지 뭔지;ㅎㅎ)
대강 찾아보니까 StreamWrite?로 파일로 남기는 방법이 있던것 같던데..
물론 제가 더 찾아보면서 확인해 보긴 해야 하나 혹시 추천해주시는 방법 있으면 감사하겠습니다.
바쁘신데 일일이 대응해 주셔서 감사합니다. ㅎ
[손님]

... 16  [17]  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5028도토리8/1/20183055혹시 회사에서 TFS 구축시 SQL-Server 라이선스 정책 아시는분 계신지요? [2]
5027농상7/31/20182975Freachable Queue의 발음을 표기하면 어떨까요? [2]
5026농상7/31/20183781소멸자의 이름에 대해서 [2]
5025김기철7/30/20182832selenium 질문좀 드릴개요 [3]
5024농상7/29/20182461패턴 매칭 when에 대해서 질문있습니다. [2]
5023농상7/28/20183625패턴매칭에 대해서 질문 있습니다. [1]
5022농상7/28/20182245튜플에 대해서 건의가 있습니다. [1]
5021농상7/27/20182187예외필터에 대해서 질문이요 [4]
5020농상7/27/20183524null 조건 연산자 예제에서 잠깐 혼동이 일어났습니다. [1]
5019농상7/26/20184750오버플로우와 언더플로우 [2]
5018이재윤7/26/20182837정말 간단한 질문일 수 있는데요! [1]
5017나나7/24/20184575Stopwatch.ElapsedTicks와 Stopwatch.ElapsedMilliseconds [9]
5015지누7/18/20183329ASP.Net Core 를 안드로이드에서 작동하는게 가능한가요? [1]
5016지누7/19/20182196    답변글 [답변]: ASP.Net Core 를 안드로이드에서 작동하는게 가능한가요?
5014최홍준7/16/20182335Credential Provider Child Window 띄우기 [1]
5013SoulToMind7/16/20182278HtmlElement 스크롤 문의 [2]
5012황윤하7/13/20182709SMTP 예외처리 관련 질문 [1]
5011손님7/9/20187164c#에서 c++ DllImport 문의 입니다. [1]파일 다운로드2
5010C# 꿈나무7/8/20182914C# WebService 에서 질문이 있습니다. [1]
5009C#초보자7/5/20182949[C#] 감시 프로그램을 제작했는데, 작동은 하나 폼이 멈춰버렵니다... [1]파일 다운로드1
5008도와주세요7/5/20183049 리스트 아이템의 타입을 추출해서 다시 재활용하고 싶어요.2 [6]파일 다운로드1
5007도와주세요7/4/20183516리스트 아이템의 타입을 추출해서 다시 재활용하고 싶어요. [1]
5006정환나라7/4/20183885소켓 통신과 쓰레드에 관해 질문드립니다 [4]
5005psh7/4/20183032인용에 관련해 문의 드립니다 [1]파일 다운로드2
5004까오리7/4/20182604iis8.0에서 닷넷1.1을 사용하기 위한 질문입니다. [1]
5002멋쟁이7/2/20182539WPFApp에 관한 초보 질문입니다. [1]파일 다운로드1
... 16  [17]  18  19  20  21  22  23  24  25  26  27  28  29  30  ...