Microsoft MVP성태의 닷넷 이야기
C# 디버깅 모드에서만 DB Insert가 되는 현상 질의 [링크 복사], [링크+제목 복사],
조회: 9720
글쓴 사람
몽중언 (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 걸어 확인해 봐야 한다던지...하는
혹시 조언해 주실 부분이 있는지요.. 실례가 되지 않으신다면 조언해 주실 부분이 있다면 정말 감사드리겠습니다.








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


비밀번호

댓글 작성자
 



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

제 생각에는 아무래도 문제를 잘못 짚고 있는 것 같습니다. 디버깅이 아닌 모드에서만 그럴 확률은 그리 높지 않습니다. 다시 한번, 코드를 꼼꼼이 확인해 보세요. 어디가 되었던 오류가 발생하는 부분이 있거나 코드 실행이 안되는 부분이 있을 것입니다. Insert 코드까지 잘 실행이 되었는데 오라클 DB에 내용이 추가 안 된다는 것은 있을 수 없는 일입니다. 정말 그런 버그가 있다면 오라클이 망했을 것입니다.
정성태
2017-12-04 12시45분
[몽중언] 정성태님이 하시는 말씀은 코드가 잘못 됐다는 이야기인데...그런경우에도 디버깅 모드에서 data가 정상적으로 들어가는게 있을수 있나요?
그렇다고 하더라도...말씀하신 내용을 확인하기 위해선 어떤방법이 있을까요;; 중간중간 breaking point를 설정해놓고 event를 발생시키면 마찬가지로 debuging 모드가 돼 버려서
정상 처리 돼 버리는데요..
[guest]
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 내용이 포함돼 있는것 같으셔서 질의드리고 있습니다;;
[guest]
2017-12-04 01시16분
그런 케이스는 없습니다. 단지 있다면 코드를 잘못 작성했거나 멀티 스레딩으로 인해 Visual Studio 디버깅 중에 BP로 인한 시간차가 발생해 실행이 다르게 될 수 있는 정도입니다.

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

... [61]  62  63  64  65  66  67  68  69  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
1091김대경9/20/201210875    답변글 [답변]: windows2008 에서 ActiveX 사용 시 문제점. [2]파일 다운로드1
1081Seon...8/20/201213182WCF 파일 업,다운로드 문제 [2]
1080배동선8/13/201211911정품 라이센스 인증 개발에 대해 조언을 구하고 싶습니다 [4]
1079송준호8/11/20129906basicHttpBinding stream 전송에 관하여 질문드립니다. [1]
1078Ho S...8/10/20129084윈도우폰 지도 구현에서 ㅠㅠㅠ 질문드립니다. [1]파일 다운로드1
1077한우주8/6/201212050웹서비스 호출 후 세션 유지하기 [1]
1076이성환8/2/201211512dynamic 변수 할당은 도대체 어디에???? [1]
1073pass...7/24/201211391c# 으로 만드는 음성인식/TTS 프로그램에 관련해서.. [3]
1072일반인7/23/201213661rss 만드는 방법 알려주실 수 있으신가요? [5]
1069임경훈7/20/201214414아래와 같은 오류후 IIS가 다운되는 현상이 발생합니다. [1]
1068신호철6/15/201213765ClassLibrary COM+ 등록 안되는 현상 [2]
1067김은주6/14/201223123소스세이프 사용시 pfx 파일 빌드 실패 [3]
1066너무초보6/3/201210327안녕하세요! 디렉토리 삭제 오류 질문 좀 드립니다. [4]
1065이성환5/23/201212102Assembly.LoadFrom Assembly.Load 의 차이점이 궁금합니다. [2]파일 다운로드1
1064푸우5/21/201210930GPU 디바이스 재시작시 WPF + .NET 3.5 기반 어플리케이션 UI 문제 [2]
1063발코더5/20/201211084귀신 곡할 상황 질문입니다. [3]
1062김규덕5/12/201211186ffmpeg 관련 조언 구합니다. [2]
1061Dave5/11/20129932언제 스크린 캡쳐 하시나요? [1]
1058정재훈5/11/201211843c#으로 동영상에 로고를 삽입하는 기능을 구현중입니다. [3]
1057전남진5/1/201210878** 몇일째 고생하다가 웹 검색을 통해 알게되어 질문드립니다.. 초보 질문이긴하지만 도움 부탁드려요 [2]
1056안현수5/1/201212619listview 와 웹파싱에관해 질문드립니다 [1]파일 다운로드1
1055이성환4/30/201210755WPF FramworkElement의 이벤트를 가져오고 싶습니다. [3]
1054정웅모4/20/201210289안녕하세요 [1]
1053폭풍코딩4/19/201210625스마트클라이언트 ctrl-c 복사가 작동하지 않습니다. [1]
1052에슈리온4/17/201226356ClickOnce 배포시 클라이언트의 설치경로를 지정할 수 없나요? [1]
1051최정수4/10/201213446WCF 클라이언트 비정상 종료 관련 [1]
... [61]  62  63  64  65  66  67  68  69  70  71  72  73  74  75  ...