Error Handling for the Sybase IQ Output Adapter

Various scenarios which cause the adapter to log errors to the ESP Server log.

Scenario Result
On start-up, the adapter verifies that the service name provided belongs to an ODBC service entry, and that the specified table exists. Then, either a permutation exists and it checks that, or it assumes a default mapping from the stream or window to the indicated database table and checks whether it is valid.

If any of these checks fail, the adapter logs an error message to the Server log and does not start.

There is a column in the database which is not nullable, and there is no column mapping in the permutation for that column.

The adapter fails to initialize, and an error is logged to the Server log indicating that a mapping for that required column was not provided.

Certain column mappings are valid in data dependent situations. Refer to the Datatype Mapping for the Sybase IQ Output Adapter topic. For example, an integer may only be stored in a tinyint column if its value is between 0 and 255. 

The mappings that require runtime data checks are identified at adapter start-up, and only these mappings are verified for each record through the adapter. Due to the performance impact of runtime checks on each Event Stream Processor record, Sybase recommends that these mappings only be used if changes to existing schemas are not an option.

If a runtime check fails for a mapping, the record is rejected by the adapter. The bad rows statistic is incremented for the adapter, and the adapter logs a message to the Server log indicating that it discarded a row and the nature of the error without providing any information about the specific record (no data values).

An Event Stream Processor string is longer than the varchar or char column into which it is to be stored.

The Event Stream Processor record is stored in the database and the string is truncated to fit in the column. A warning is placed in the log indicating that the string was truncated without providing any specific data from the row.

A load file cannot be loaded into the database due to a database error. The load file is left on the file system, and an error is logged indicating the location and name of the file, and the nature of the error. You can use the load table statement for Sybase IQ that is in the Event Stream Processor log file to reload the file into Sybase IQ.

The adapter does not attempt to reload any load files that have failed in the past. If you wish to correct any problems and load the file, you must do so manually.

Binary values that are too large for the database column into which they are mapped cause an error to be logged, bad rows to be incremented, and the row to be discarded.