흐르는 시간의 블로그...

여전히 오늘도 코딩중에 요구사항이 발생 했다.


"0시"에 DB에서 고객정보를 읽어 초기화 해야한다.

문제는 해당 시각에 메모리에서 고객정보를 읽어가는 쓰레드가 존재할 가능성이 있다.(매우 미미하지만)

어쨋든 그 언젠가라도 매우 적은 확률이라도 발생할 수 있기 때문에 문제를 방어해야 한다.


가장 좋은 방안은 RWL (Reader Writer Lock)이다.

읽을때는 서로 lock을 걸지 않고 쓸때는 서로 Lock을 걸게 하는 방식이다.


TMultiReadExclusiveWriteSynchronizer 를 사용한다.

자료는 "TMultiReadExclusiveWriteSynchronizer 를 아시나요?" 에서 얻었다.


델파이상 소스를 보니 Event를 활용하는 것으로 보인다.

이벤트 객체는 활용에 따라 다양하게 운용할 수 있어 이런 경우에 좋긴 할듯 하다.


우쨋건 델파이로 AP를 개발하는 이번건은 마무리로 향해 가고 있다.

...


  • 기존 버전의 Unidac이 Oracle10G에서 ParamBy가 정상적으로 작동하지 않았다
  • adhoc 쿼리는 정상 작동하지만 ParamBy로 입력한 문자열들은 모두 제한 범위를 넘쳤다
  • AsString인 경우 6Byte 짜리가 14Byte로 인식했다
  • AsAnsiString인 경우 6Byte 짜리가 7Byte로 인식했다
  • 오라클에서 범위를 넘어 갔다는 오류를 발생 시켰다
  • UniDac 6.0.2 Trial 버전을 적용하여 테스트한 결과 정상 작동하였다
  • Trial 버전인 경우 네개의 bpl을 실행 디렉토리에 넣어줘야 했다(unidac 에서 요구하는 bpl이 더 있으면 더 넣어야 한다)
  • rtl150.bpl, dbrtl150.bpl, dac150.bpl, unidac150.bpl


TThread에 대한 자세한 사용법과 예시

'프로그래밍???' 카테고리의 다른 글

델파이에서 Reader Writer Lock  (0) 2015.01.30
Unidac 컴포넌트의 BPL 오류  (0) 2015.01.23
델파이에서 텍스트파일 사용하기  (0) 2015.01.22
Container에 대한 자료 링크  (0) 2015.01.22
SK Tech Planet 2013 참석  (0) 2013.11.15

기본 쓰기 예제

여러 방식의 쓰기 예제

델파이 파일입출력 관련 함수 모음

'프로그래밍???' 카테고리의 다른 글

Unidac 컴포넌트의 BPL 오류  (0) 2015.01.23
쓰레드 관련 자료  (0) 2015.01.22
Container에 대한 자료 링크  (0) 2015.01.22
SK Tech Planet 2013 참석  (0) 2013.11.15
델파이에서 WM_COPYDATA 이용한 데이터 전달  (0) 2012.05.08