ArcGIS Server (ArcSDE)에서 Oracle 데이터베이스로 보낸 모든 SQL 쿼리를 포함하는 로그 파일을 생성하고 싶습니다. 그렇게 할 수있는 방법이 있습니까? Windows에서 Oracle 11g 및 ArcGIS Server 10.0을 사용하고 있습니다. ArcSDE는 직접 연결에 사용됩니다.
ArcGIS Server (ArcSDE)에서 Oracle 데이터베이스로 보낸 모든 SQL 쿼리를 포함하는 로그 파일을 생성하고 싶습니다. 그렇게 할 수있는 방법이 있습니까? Windows에서 Oracle 11g 및 ArcGIS Server 10.0을 사용하고 있습니다. ArcSDE는 직접 연결에 사용됩니다.
답변:
실제로 ArcSDE 연결을 추적하는 방법에는 여러 가지가 있습니다. 클라이언트 애플리케이션과 ArcSDE 클라이언트 간의 통화는 SDE 추적 파일에, ArcSDE 클라이언트와 서버 간의 SDE 인터셉트 파일에 기록되며, ArcSDE 서버는 특정 이벤트를 서비스 또는 직접 연결 로그에 기록하며 데이터베이스 통화는 로그인됩니다. DBMS 로그 파일
-------------------------------------------------------------
| |
| Client (ArcObject, ArcCatalog, ArcGIS Server, ArcIMS...) |
| |
-------------------------------------------------------------
|
|
\|/
------------------ --------> SDE Trace
| |
| ArcSDE Client |
| |
------------------ --------> SDE Intercept
|
|
\|/
------------------- --------> SDE Intercept
| |
| ArcSDE Server | --------> ArcSDE Service Logfile, or direct connect log
| |
-------------------
|
|
\|/
------------------
| |
| DBMS | -----------> DBMS logfiles or trace
| |
------------------
ArcSDE 추적 파일은 ArcSDE 클라이언트에 대한 모든 호출을 기록합니다. 이 파일은 일반적으로 크고 시끄 럽습니다. dbinit help 에서 SDETraceLoc 및 SDETraceMode를 보십시오 . 응용 프로그램을 시작하기 전에이 값을 환경 변수로 설정할 수도 있습니다. 응용 프로그램 및 직접 연결에 사용됩니다.
ArcSDE 차단 파일이 일반적으로 더 유용합니다. 그들은 어떤 전화에 어떤 시간을 보내고 있는지 보여줄 것입니다. 그러나 SDE는 스트림 개념을 작동시킵니다. 삽입, 업데이트 및 삭제와 같은 특정 명령은 스트림에 정보를 설정 한 다음 명령을 실행합니다. 일반적으로 스트림 번호는 인터셉트 파일에서 명령 다음의 첫 번째 정수입니다. 스트림이 많은 경우 혼란 스러울 수 있습니다 (최대 26 개의 스트림을 보았습니다). 자세한 정보 및 예제 는 dbinit 도움말 의 SDEIntercept 및 SDEInterceptLoc 또는 SDE Intercept 파일에 대한 이 KB 기사를 참조하십시오.
% SDE_HOME % \ etc 폴더의 ArcSDE 서비스 로그 파일 또는 % SDE_HOME % \ etc 또는 % TEMP % 폴더의 직접 연결 로그 파일에는 서비스 또는 연결에 대한 일반적인 정보가 포함되어 있습니다. SDEVerbose 변수 ( dbinit help )를 사용하여 기록되는 정보의 양을 늘릴 수 있습니다 .
DBMS 로그 파일 및 추적은 매우 유용합니다. 그러나 그들은 당신에게 그림의 일부만을 제공합니다. 또한 Oracle과 같은 일부 데이터베이스는 실제로 모든 유형의 오류를 DBMS 추적에 포함하지 않습니다. 위의 Devdatta의 의견은 더 많은 정보에 대한 링크 인 SQL 추적을 활성화하는 많은 방법이 있습니다.