Answers:
实际上,有许多方法可以跟踪任何ArcSDE连接。客户端应用程序和ArcSDE客户端之间的调用记录在SDE跟踪文件中,而SDE Intercept文件中的ArcSDE客户端和服务器之间的调用记录在案,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帮助中查看SDETraceLoc和SDETraceMode 。在启动应用程序之前,也可以将这些值设置为环境变量,这适用于应用程序和直接连接。
通常,ArcSDE Intercept文件更有用。他们将显示在通话中花费了多少时间。提醒一下,SDE遵循流的概念。某些命令(例如插入,更新和删除)在流上设置信息,然后执行该命令。通常,流号是截取文件中命令后的第一个整数。如果您有很多流,这可能会造成混淆(我看过多达26个流)。您可以在dbinit帮助中查看SDEIntercept和SDEInterceptLoc,或者在SDE Intercept文件上查看此知识库文章,以获取更多信息和示例。
%SDE_HOME%\ etc文件夹中的ArcSDE服务日志文件,或%SDE_HOME%\ etc或%TEMP%文件夹中的直接连接日志文件,包含有关服务或连接进行情况的常规信息。可以使用SDEVerbose变量(dbinit help)增加所记录的信息量。
DBMS日志文件和跟踪非常有用。但是它们只会给您部分图片。此外,某些数据库(例如Oracle)实际上并未在DBMS跟踪中包括所有类型的错误。启用SQL跟踪的方法有很多,Devdatta的上面的评论链接到更多信息。
其他链接: 深入挖掘–使用ArcSDE数据时解决地理处理错误