This section contains error messages for Adaptive Server error and exception handling.
10
Duplicate key was ignored.
This error occurs when you try to insert duplicate key values in a column or columns which have a unique index that was created with the option ignore_dup_key.
Adaptive Server ignores the commands in a transaction which try to insert a duplicate index. The rest of the commands in the transaction will complete normally.
No action is necessary.
If you want the row inserted, use one of the following procedures:
Eliminate the unique index.
Remove duplicate values. If the duplicate values are a result of incorrect data, change the data and rerun the transaction.
Refer to “create index” in the Reference Manual for information about indexes.
All versions
10
Command has been aborted.
This error occurs when Adaptive Server is unable to complete a command. Error 3621 may be the last message displayed by your application even though another message was sent by Adaptive Server when the error actually occurred. The rest of the commands in the transaction will complete normally.
Some situations that may cause Error 3621 include:
Division by 0 in your application
Entry of a duplicate row during use of your application
Other illegal functions in your application
Look for an error before the 3621 error occurs. Resolve the problem that is causing the error before the 3621 error.
If client applications receive this error, ask your Adaptive Server system administrator to check the Adaptive Server error log.
All versions
10
Truncation error occurred.
The precision of a datatype denotes the maximum number of digits allowed in columns of that datatype. For the exact numeric types dec, decimal and numeric, the allowed range of data depends on the column’s precision as well as its scale, that is, the maximum number of digits that are allowed to the right of the decimal point.
Error 3624 occurs when an operation inserts data into a target column or variable but the precision or scale of the target are too small for the data. The operation fails and the command is aborted.
Examine the data involved in the arithmetic operation to ensure that the target column or variable is sized appropriately.
The set arithabort and set arithignore options specify behavior following loss of precision or (for exact numeric types) loss of scale. For more information see:
"Arithmetic Errors" in the Transact-SQL User’s Guide.
The Reference Manual.
All versions
17
The transaction was aborted because it used too much stack space. Either use sp_configure to increase the stack size, or break the query into smaller pieces. spid: %d, suid: %d, hostname: %.*s, application name: %.*s
At start-up, Adaptive Server allocates one stack for each configured user connection. These stacks are in contiguous areas of memory, with a guard area at the end of each stack. Adaptive Server periodically checks to determine whether the stack point for a user connection has entered the stack guard area adjacent to that connection's stack. Error 3626 occurs when this has happened.
Because Error 3626 occurs before any stack corruption, Adaptive Server does not shut down. Instead, it aborts the user process and rolls back any transactions that existed for that process.
An Adaptive Server process usually encounters this error for one of two reasons:
The stack size is too small. The information placed on the stack is valid but its total size exceeds the specified stack size. This is often caused by a single, complex query which requires more than the average amount of stack space. Long where clauses, long select lists, and deeply nested stored procedures can contribute to this type of stack overflow and Error 3626.
An incorrectly handled error results in recursive calls which eventually fill the stack, regardless of its size.
If this error occurs frequently, there is increased risk a process may overflow its stack area and corrupt another process' stack. This situation will cause Adaptive Server to shutdown with the error:
kernel: *** Stack guardword corrupted.
See Stack Guardword Error for more information.
If this error occurs with a transaction which contains a where or where-in clause, you may need to rewrite the query. See Error 404 for additional actions which may be required.
If this error occurs because a complex query has run out of stack area, you can resolve it in one of two ways:
Break up the query into smaller pieces.
Use the following query to increase the stack size:
1> sp_configure "stack size", new_value 2> go
Shut down and restart Adaptive Server to make these changes take effect.
When changing the stack size on Adaptive Server, consider the following facts:
The stack size should always be an even increment of 2K (2,048 bytes). If a specified stack size is not divisible by 2K, sp_configure will round it up to the next 2K increment.
Increase the stack size in small increments to avoid making it too large. If the stack size is too large, you will lose cache space and you may be unable to start Adaptive Server.
Adaptive Server requires more memory for each configured user connection and device when the stack size increases. Therefore, increasing the stack size without increasing the total memory configuration parameter will result in less total cache space for Adaptive Server. This can affect performance.
Refer to “sp_configure” in the Reference Manual and “Setting Configuration Parameters” in the System Administration Guide for information about sp_configure and stack size and stack guard size configuration parameters.
Refer to the Performance and Tuning Guide and “Configuring Memory” in the System Administration Guide for information about configuring Adaptive Server memory.
All versions