26
An in-use preallocated semaphore cursor was encountered.
A semaphore is the position at the head of a queue of locks, and is used by the server’s Lock Manager to ensure that tasks obtain valid and compatible locks. Error 1251 is raised when a task attempts to access a semaphore from a position in the queue that is already in use.
1251 errors are due to a Adaptive Server locking synchronization problem and results in a stack trace.
Some situations that can raise a 1251 error:
When you drop a column using alter table on an all-pages-locked (APL) table with a clustered index; and the server is configured for parallel processing;
If you create or alter a database in a device on AIX and the specified size is too large;
If a query in chained transaction mode invokes a Java method using iJDBC;
If there are stranded data extents in the log segment of a dedicated log.
Call Sybase Technical Support for assistance; you may be able to upgrade to an Adaptive Server Enterprise version where the problem is resolved.
If the error was raised while creating or altering a database on AIX, note that the space actually available on a device is slightly smaller than the device size; specifying a slightly smaller size when you create or alter the database may help resolve the problem.
If the error was raised while executing alter table drop column, disable parallel processing with sp_configure “max scan parallel degree” as a workaround.
If the error was raised invoking a Java method, check your query. Commands like begin tran, commit, rollback, set chained on/off are not allowed in nested SQL. See Java in Adaptive Server Enterprise for details.
Before calling Sybase Technical Support, have the information available that is listed in “Reporting errors”, including the query that raised the error.
All versions