Я хотел бы создать файл журнала, содержащий все запросы SQL, отправленные ArcGIS Server (ArcSDE) в базу данных Oracle. Есть ли способ сделать это? Я использую Oracle 11g и ArcGIS Server 10.0 в Windows. ArcSDE используется в прямом соединении.
Я хотел бы создать файл журнала, содержащий все запросы SQL, отправленные ArcGIS Server (ArcSDE) в базу данных Oracle. Есть ли способ сделать это? Я использую Oracle 11g и ArcGIS Server 10.0 в Windows. ArcSDE используется в прямом соединении.
Ответы:
На самом деле существует несколько способов отслеживания любого соединения ArcSDE. Вызовы между клиентским приложением и клиентом ArcSDE регистрируются в файле трассировки SDE, между клиентом ArcSDE и сервером в файле перехвата SDE, сервер 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 Intercept обычно более полезны. Они покажут, сколько времени тратится на какой звонок. Однако, предупреждая, SDE работает над концепцией потоков. Некоторые команды (например, вставки, обновления и удаления) устанавливают информацию о потоке, а затем выполняют команду. Обычно номер потока является первым целым числом после команды в файле перехвата. Это может сбить с толку, если у вас много потоков (я видел до 26 потоков). Вы можете посмотреть SDEIntercept и SDEInterceptLoc в справке dbinit или этой статье базы знаний о файлах перехвата SDE для получения дополнительной информации и примеров.
Файлы журналов сервиса ArcSDE в папке% SDE_HOME% \ etc или файлы журналов прямого подключения в папках% SDE_HOME% \ etc или% TEMP% содержат общую информацию о том, что происходит с сервисом или соединением. Количество регистрируемой информации может быть увеличено с помощью переменной SDEVerbose ( dbinit help ).
Лог-файлы и трассировки СУБД очень полезны. Но они только дают вам часть картины. Кроме того, некоторые базы данных (например, Oracle) фактически не включают все типы ошибок в трассировку СУБД. Есть много способов включить трассировку SQL, комментарий Devdatta выше ссылается на дополнительную информацию.
Другие ссылки: Копаем глубже - Устранение ошибок геообработки при использовании данных ArcSDE