Digging deeper – Troubleshooting geoprocessing errors when using ArcSDE data

Geoprocessing error reporting has significantly improved in the ArcGIS 9.3 release.
All tractable errors now have a unique error code and each error code has
a detailed explanation in the help system. See Understanding geoprocessing tool errors and warnings for more details.

However, at this time, geoprocessing errors that occur when reading or writing
ArcSDE/DBMS data receive a generic ‘catch-all’ error message, such as error 00210 when writing output:

ERROR 000210: Cannot create output E:InfraToolDataConnection to ArcSDE.sdeken.cities

We are working
hard to improve reporting of ArcSDE/DBMS geoprocessing errors in future service
packs and releases. In the meantime, here are some techniques you can use to
determine the cause of your error.  Note that the cause of the error could be anything from not being able to connect
to ArcSDE to any number of DBMS or network related issues.

Test the connection

The first thing you should test is whether your ArcSDE/DBMS connection properties
are correct. Open ArcCatalog and navigate to the location containing the .sde
connection file (“E:InfraToolData” in the above example) and double-click the
connection, causing a connection to be made to the database. If a connection cannot be made, you’ll receive an error message with details on the cause. If you can make a connection, then your connection properties may be invalid.  Right-click the connection and select Connection
Properties.  Visually inspect the connection properties. Make sure that your
script or model is using the correct user name when fully qualifying object names. For example, you may have connected to the database as the user ‘ken’ in the
connection file, but the data paths in the script or model has a different user
for the qualified feature class name, as illustrated below.

If everything seems correct with your connection file, the next investigation step is to set up a client-side SDEINTERCEPT.

Client-side SDEINTERCEPT

You may need to dig
deeper by instructing ArcGIS to log information about the communication between
your computer and the ArcSDE server. To instruct ArcGIS to log information, and where
to write the logs, you need to set certain system environment variables.
The exact technique for setting these variables depends on whether you are
using Windows or UNIX. For a full explanation of the variables and how to set
them, see the web help topic The dbinit.sde file

(For a more general introduction to configuring ArcSDE geodatabases, see An Overview of configuring an ArcSDE geodatabase .)

A SDEINTERCEPT file contains all the calls to ArcSDE along with their return values.
These return values often contain the failure message received from ArcSDE or the error message ArcSDE received from the database. On Windows, the general
steps are:

1. Set the following system environment variables:

      SDEINTERCEPT=crwft

 

    SDEINTERCEPTLOC=<folder name>

<folder name> can be any existing folder on your computer.
Just be sure to add the slash at the end of the pathname (i.e.: C:templogs)

On Windows XP, system environment variables are accessed by right-clicking
My Computer and clicking Properties. On the Advanced Tab, click Environment
Variables, as illustrated below.

2. Restart the application that will run the geoprocessing tool
(such as ArcMap) so that it inherits the new system environment.

3. Run the geoprocessing tool or script that caused the failure.

After the task is run, a file named se_intercept.<nnn> is created in the folder specified
in the SDEINTERCEPTLOC variable (where <nnn> is a unique number starting at 001).
This file will contain error and warning messages. Not all of these
errors and warnings are issues you need to worry about; some are a normal part
of using ArcSDE and are just warnings that are automatically handled by ArcSDE.
It will take some time to learn how to read these files. If necessary, you can get
help interpreting the file from ESRI support. A good strategy is to search the file
from the bottom up since it’s more likely that the real error is near the bottom.

ArcSDE Server error logs

Each entry in an ArcSDE Server error log contains three pieces of information: the time of the message, the name of the client machine, and the message.  If you can identify the time your error occurred, you can
search the log for any obvious error messages around the time the error occurred on your client machine.

ArcSDE Server error logs are written to the location specified by your SDE administrator,
so you will need to contact your SDE administrator to gain access to these logs.
(They are written to SDEHOMEetc<sde_instance_name>.log, such as sde_esri_sde.log).

To have more detailed information in the ArcSDE Server error logs, see the SDEVERBOSE setting in the topic The dbinit.sde file

DBMS logs and trace files

Most database management systems have the ability to log detailed information
about database activities and queries. Investigating these logs usually
require assistance from your database administrator as a certain amount of
database specific expertise is needed to gain useful information from their contents.

DBMS logs contain information on the state of the database and any database related
issues that may have occurred. Things such as the database running out of
space to store your data, dead locks, database system errors and much more are
contained in these files.

DBMS trace files, on the other hand, are files that contain all the SQL
statements and their return values for a session in the database. When you
request ArcSDE to perform an action, a lot of what is done is the running of SQL
in the database. The database trace file will contain all the SQL used by ArcSDE
and the messages the database returned when running this SQL. Any unexpected errors
can be found in these files.

This entry was posted in Analysis & Geoprocessing and tagged , , . Bookmark the permalink.

Leave a Reply

One Comment