2012-03-06 3 views
0

DB2를 데이터베이스로 사용하는 이전 EJB 2.1 프로젝트가 있습니다.
프로그램에서 데이터베이스로 보낸 sql 쿼리를보고 싶습니다. 어떻게하면 돼? DB2를 사용하고 있습니다. 지속성은 컨테이너 관리 지속성입니다. (CMP)CMP를 사용하여 EJB 2.1에서 sql 문을 볼 수있는 방법

최대 절전 모드에서 최대 절전 모드로 전환했습니다. <property name="hibernate.show_sql" value="true"/> 같은 효과를 원합니다. :-)

답변

0

지속성 계층에서 SQL을 캡처하는 데 적합한 옵션을 찾지 못하면 DB2는 드라이버 레벨 및 데이터베이스 서버에서 몇 가지 강력한 추적 옵션을 제공합니다. 각 접근 방식에는 장단점이 있습니다.

EJB 프로젝트를 오래된 것으로 설명 했으므로 지속성 계층이 IBM의 JDBC 유형 2 드라이버를 사용하고있을 가능성이 있습니다.이 드라이버는 본질적으로 DB2의 호출 레벨 인터페이스를 감싸는 래퍼입니다. db2cli.ini 파일을 통해 추적 옵션을 사용 가능하게합니다.

새롭고 더 널리 사용되는 드라이버는 JDBC 유형 4 "범용 드라이버"인 db2jcc.jar입니다.이 드라이버는 연결 문자열에 추가되거나 응용 프로그램이 런타임에 설정할 수있는 등록 정보를 통해 추적을 처리합니다.

응용 프로그램 서버보다 데이터베이스 작업이 많기 때문에 개인적으로 SQL 캡처는 SQL 문과 자세한 통계를 플랫 파일이나 전용 테이블 집합으로 캡처하는 문 이벤트 모니터를 정의하는 것입니다. 이벤트 모니터는 전체 워크로드의 작은 부분에 대해서만 세부 추적 레코드를 수집 할 수있는 다양한 필터링 메커니즘을 제공합니다. 이벤트 모니터의 또 다른 장점은 DBA가 응용 프로그램 서버를 중단시키지 않고 시작하거나 중지 할 수 있다는 것입니다. 이벤트 모니터는 많은 양의 데이터를 신속하게 수집 할 수 있기 때문에 몇 가지 SQL 조회로 결과를 쉽게 분석 할 수 있기 때문에 테이블을 이벤트 모니터 대상으로 사용하는 것을 선호합니다.