Я хотів би створити файл журналу, що містить усі запити SQL, надіслані сервером ArcGIS (ArcSDE) до бази даних Oracle. Чи є спосіб це зробити? Я використовую Oracle 11g та ArcGIS Server 10.0 в Windows. ArcSDE використовується при прямому з'єднанні.
Я хотів би створити файл журналу, що містить усі запити SQL, надіслані сервером ArcGIS (ArcSDE) до бази даних Oracle. Чи є спосіб це зробити? Я використовую Oracle 11g та ArcGIS Server 10.0 в Windows. ArcSDE використовується при прямому з'єднанні.
Відповіді:
Насправді існує кілька способів відстеження будь-якого з'єднання ArcSDE. Виклики між клієнтською програмою та клієнтом ArcSDE реєструються у файлі відстеження SDE, між клієнтом ArcSDE та сервером у файлі SDE Intercept, сервер ArcSDE записуватиме певні події в службі або прямий журнал підключення, а виклики бази даних входять у систему журнали СУБД.
-------------------------------------------------------------
| |
| 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. Ці файли зазвичай великі і галасливі. Подивіться на SDETraceLoc та SDETraceMode в довідці про dbinit . Ці значення також можна встановити як змінні середовища перед запуском програми, це працює для програми та прямих з'єднань.
Файли перехоплення ArcSDE зазвичай корисніші. Вони покажуть, який час витрачається на який дзвінок. Хоча слово обережності, SDE працює над концепцією потоків. Окремі команди (наприклад, вставки, оновлення та видалення) встановлюють інформацію в потоці, а потім виконують команду. Зазвичай номер потоку - це перше ціле число після команди у файлі перехоплення. Це може заплутатися, якщо у вас багато потоків (я бачив до 26 потоків). Ви можете переглянути SDEIntercept та SDEInterceptLoc у довідці про dbinit або цю статтю KB про файли SDE Intercept для отримання додаткової інформації та прикладів.
Файли служб ArcSDE у папці% SDE_HOME% \ тощо або журнали прямого з'єднання у папках% SDE_HOME% \ тощо або% TEMP% містять загальну інформацію про те, що відбувається з послугою чи з'єднанням. Кількість інформації, що реєструється, можна збільшити за допомогою змінної SDEVerbose ( довідка dbinit ).
Журнали та сліди СУБД дуже корисні. Але вони дають вам лише частину картини. Крім того, деякі бази даних (наприклад, Oracle) насправді не включають всі типи помилок у трасі СУБД. Існує багато способів включити відстеження SQL, коментар Devdatta вище посилання на додаткову інформацію.
Інші посилання: Копати глибше - Усунення помилок геопроцедури при використанні даних ArcSDE