제가 알기론 latch는 플리플롭과 유사한 것으로 알고 있는데 결국
메모리와 같은 역할을 한다고 들었습니다.
그럼 에이젼트가 메모리를 해제 하고 있지 않다는 의미인가여?
위와 같은 상황이 생긴건 db2logts가 활성 중이어서라고 하네요.
그리고 db2logts가 비활성 이면 db2 callstack을 발생시키라는데
정확히 무슨 의미인지?
APAR number는 IY71448입니다.
db2 program error에 대해서 알기는 쉽지 않습니다. ^^
APAR number IY71448의 내용은 다음과 같습니다.
IY71448: Instance hang due to an agent holding latchDirtyPoolsEntry and waiting for db2logts to service requests
If a DB2 agent is holding a latch (latchDirtyPoolsEntry) and iswaiting on the db2logts daemon, the DB2 instance may hang ifdb2logts encountered a "file sharing violation" and shut down.
중간 생략.....
and the DB2 instance seems to be hanging, then you should checkand see if the db2logts is still running or not using the "ps"command. If it is not running, then you should generate DB2callstacks.
db2에서 latch 의미는 다음과 같습니다.
래치(latch) 동시 이벤트나 시스템 자원의 사용을 제어하기 위한 DB2 Universal Database 내부 메커니즘.
그리고 db2logts 프로세스는 다음과 같은 역할을 합니다.
db2logts : Process used for collecting historical information about which logs are active when a table space is modified. This information is recorded in the DB2TSCHG.HIS file in the database directory. It is used to speed up table space rollforward recovery by enabling the skipping of log files that are not needed for the rollforward operation.
db2logts가 동작중이지 않으면 db2 callstacks을 생성시키라는 말은
db2 프로세스에 대한 트랩파일을 생성시키라는 말 같습니다.
이 오류는 리커버리 중에 발생한것 같네요. 그리고 디폴트가 db2logts를 disable하는 옵션이어서 발생할것 같지는 않습니다. ㅎㅎ
그리고 위의 오류는 v8 Fixpack10에서 수정되었습니다. ^^
아 그렇군요!
감사합니다.