Digging Deeper - Troubleshooting Geoprocessing Error When Using ArcSDE Data
Digging Deeper - Troubleshooting Geoprocessing Error 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:\Infra\ToolData\Connection to ArcSDE.sde\ken.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:\Infra\ToolData" 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:\temp\logs\)

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 SDEHOME\etc\<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.

Source: http://blogs.esri.com