델파이에서 Reader Writer Lock
프로그래밍???2015. 1. 30. 10:16
여전히 오늘도 코딩중에 요구사항이 발생 했다.
"0시"에 DB에서 고객정보를 읽어 초기화 해야한다.
문제는 해당 시각에 메모리에서 고객정보를 읽어가는 쓰레드가 존재할 가능성이 있다.(매우 미미하지만)
어쨋든 그 언젠가라도 매우 적은 확률이라도 발생할 수 있기 때문에 문제를 방어해야 한다.
가장 좋은 방안은 RWL (Reader Writer Lock)이다.
읽을때는 서로 lock을 걸지 않고 쓸때는 서로 Lock을 걸게 하는 방식이다.
TMultiReadExclusiveWriteSynchronizer 를 사용한다.
자료는 "TMultiReadExclusiveWriteSynchronizer 를 아시나요?" 에서 얻었다.
델파이상 소스를 보니 Event를 활용하는 것으로 보인다.
이벤트 객체는 활용에 따라 다양하게 운용할 수 있어 이런 경우에 좋긴 할듯 하다.
우쨋건 델파이로 AP를 개발하는 이번건은 마무리로 향해 가고 있다.
...
'프로그래밍???' 카테고리의 다른 글
Parsing Valid JSON with TJSONObject using Embarcadero Code Example fails with exception (0) | 2015.01.30 |
---|---|
Access Violation시 뜨는 주소값으로 에러난 라인찾기 (0) | 2015.01.30 |
Unidac 컴포넌트의 BPL 오류 (0) | 2015.01.23 |
쓰레드 관련 자료 (0) | 2015.01.22 |
델파이에서 텍스트파일 사용하기 (0) | 2015.01.22 |
Unidac 컴포넌트의 BPL 오류
프로그래밍???2015. 1. 23. 15:48
- 기존 버전의 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
'프로그래밍???' 카테고리의 다른 글
Access Violation시 뜨는 주소값으로 에러난 라인찾기 (0) | 2015.01.30 |
---|---|
델파이에서 Reader Writer Lock (0) | 2015.01.30 |
쓰레드 관련 자료 (0) | 2015.01.22 |
델파이에서 텍스트파일 사용하기 (0) | 2015.01.22 |
Container에 대한 자료 링크 (0) | 2015.01.22 |
'프로그래밍???' 카테고리의 다른 글
델파이에서 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 |
델파이에서 텍스트파일 사용하기
프로그래밍???2015. 1. 22. 10:47
'프로그래밍???' 카테고리의 다른 글
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 |