Microsoft MVP성태의 닷넷 이야기
C# 디버깅 모드에서만 DB Insert가 되는 현상 질의 [링크 복사], [링크+제목 복사]
조회: 9479
글쓴 사람
몽중언 (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]

... 16  17  18  19  20  21  22  23  24  25  26  [27]  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5218민성9/9/20197657안녕하세요 WPF에서 xaml 안에 다른 xaml을 넣고 싶습니다. [1]파일 다운로드1
5216WPF9/8/20198747WPF에서 XAML Islands를 사용하여 Win2D를 사용하니 그래픽 품질이 저하됩니다. [2]파일 다운로드1
5215허송세월9/5/20198569중복실행 방지 관련 문의 [2]파일 다운로드1
5214Jang...9/4/20198164[DB 테이블의 데이터 변경에 대한 알림 처리] SQL-Server말고 MySQL은 불가능하겠죠? [1]
5213진우8/31/20197423c# 람다 변수 캡쳐 문의 [2]
5212심성보8/29/20199085Clipboard내 여러개의 이미지를 PictureBox로 불러오는 문제 [2]
5211최휘철8/24/20198265CLR20r3 관련된 윈도우 오류입니다. ㅠㅠ 도와주세요. / 아래글 관련하여 관련 파일 올려 드려요^^ [1]파일 다운로드1
5210최휘철8/23/201912181CLR20r3 관련된 윈도우 오류입니다. ㅠㅠ 도와주세요. [5]
5209세퉁8/21/20197825폰트 파일 속성 값을 가져오는 방법 질문 드립니다. [2]파일 다운로드1
5208홍길동8/19/20198630DebugDiag에서 .Net의 Stack Trace를 Windbg에서는 어떻게 볼 수 있나요? [3]
5207민성8/16/20196972네 소스 전체를 올리도록 하겠습니다. [2]파일 다운로드1
5206민성8/14/20197115전 재현 가능하다고 봤는데 다시올리도록 하겠습니다. [1]
5205miny...8/14/20197966안녕하세요 .WPF ListBox시 체크박스가 있는데 체크박스에서 체크가 되었는지 알수 있는 방법이 있을까요? [1]
5204영민8/8/201910727안녕하세요 디버깅시 콘솔창을 띠어서 볼수가 없나요? [7]
5202민성8/6/20197482WPF에서 <Application.Resources에 xaml에 있는 icon 값을 저장하고 xaml에 불러다 사용하고 싶은데요 [1]
5201김대훈8/3/20197102상속시 생성자에 대해 질문드립니다 [3]
5200농상7/30/20199799foreach로 데이터 변경 [2]
5190오리다람7/20/20197197질문드립니다. [3]
5189진우7/19/20197726C# 스레드풀 코어별 실행 문의 [2]
5188황태관7/19/20196930비주얼베이직 2019 실행 할때 마다.. [3]
5187플하7/19/20199757UWP 관련 궁금한 사항에 대해서 [1]
5186김대훈7/14/20198354박싱과 언박싱에 대해 [2]
5185농상7/13/20197220Nullable에 대해서 [1]
5184김대훈7/4/20197098저자님의 책을 다 본후에는 [2]
51837/2/20197803.NET Compact Freamwork 컨트롤러 더블버퍼링 [1]
5182wpf ...7/2/20198001wpf 질문 드립니다. [1]파일 다운로드1
... 16  17  18  19  20  21  22  23  24  25  26  [27]  28  29  30  ...