2014-06-18 2 views
0

제 질문은 매우 간단합니다. WebSphere Commerce와 DB2를 사용하고 있습니다. DB2에서 자체 트리거를 사용하고 있습니다. 트리거가 시작될 때와 트리거가 끝날 때 로그 파일을 확인해야합니다. 어떤 로그 파일에 DB2에 대한 정보가 있습니까?DB2에서 트리거를 감사하는 방법은 무엇입니까?

페루에서 온 그레팅!

+0

DB2는 어떤 플랫폼에 있습니까? DB2 on i는 트리거를 개별적으로 관리 할 수 ​​있지만 트리거 시간의 로깅은 정확하게 내장 기능이 아닙니다. – user2338816

답변

1

트리거는 트리거하는 SQL 문과 별도로 실행되지 않습니다. 실제로 트리거를 실행시키는 명령문으로 컴파일됩니다.

트리거가 실행되는시기를 알아야 할 경우 트리거에서 필요한 로깅 동작을 수행해야합니다. 트리거는 거래 범위 내에서 발생하므로 트리거의 변경 사항 (예 : 로그 표에 삽입)은 나머지 거래와 함께 롤백됩니다.

감사를 위해이 트랜잭션은 자치 프로 시저 (트랜잭션의 나머지 범위를 벗어나는 경우)를 통해 처리해야합니다.

+0

안녕하세요, 귀하의 제안을 따르고있었습니다. 같은 트리거 스키마에서 '로깅 저장 프로 시저'를 수행했습니다. 모든 것은 괜찮 았어, 저장 프로시 저는 'myLoggin.log'라는 텍스트 파일에 기록합니다. 그러나 지금 트리거가 발사 될 때이 문제가 발생합니다. 트리거 호출의 'CALL myProcedure'행에 다음과 같이 표시됩니다. 트리거 "DB2INST1.DIEGOTR"의 트리거 된 SQL 문에서 오류가 발생했습니다. 오류에 대해 리턴 된 정보에는 SQLCODE "-746", SQLSTATE "57053"및 메시지 토큰 "SYSIBMADM.UTL_DI | UTL_DIR_GET_DIRECTORY_PAT"가 포함됩니다. – Diego

+0

-746 오류를 찾으셨습니까? ('db2 "? sql0746n"') –

관련 문제