Sequencer Errors (continued)

This section includes error messages for the Adaptive Server Sequencer, which is the subsystem that controls command execution. The Sequencer handles the processing between steps in commands and also handles the procedural steps between commands, such as if, goto and while.




Error 7783

Severity

10

Message text

Internal error -- server failed to do garbage collection on this procedure, id = %ld.  Please save the query tree and procedure text and inform the technical support.  This is not a critical error, so server continues processing.

Explanation

Remapping a stored procedure, view or trigger generally causes the object to grow. After remapping, Adaptive Server compresses the object. Error 7783 occurs when Adaptive Server is unable to reclaim space after remapping the query tree. It occurs:

This error is due to an Adaptive Server problem and is frequently accompanied by Error 7961 ("Remapping utility - Wrong kind of node passed to tree remapping. This is an internal system error.")

Although the server is unable to reclaim space, error 7783 does not cause any severe problems and the procedure or trigger continues processing.

Action

Take the following steps:

  1. Identify the stored procedure, view or trigger:

    1> select object_name(object_id)
    2> go
    

    where object_id is the id named in the error message.

  2. Check that the object text is available. It is important to verify this before you continue with the next step.

  3. Drop and re-create the object. Note that you are re-creating the stored procedure, view or trigger, and no changes are needed to the underlying table(s).

  4. If the error results in a stack trace and/or is accompanied by the 7961 error, you may need to upgrade to a version in which the problem is resolved. Call Sybase Technical Support for assistance.

Additional information

Have the following information available before calling Sybase Technical Support:

Versions in which this error is raised

All versions




Error 7788

Severity

10

Message text

WARNING: An explicit or implicit HOLDLOCK or NOHOLDLOCK was specified for table '%.*s'; however, since this is an isolation level 0 scan, the HOLDLOCK or NOHOLDLOCK is ignored.

Explanation

Isolation level 0 allows transactions to read uncommitted data (dirty reads). You can specify isolation level 0 for your queries using the at isolation syntax, or you can specify level 0 for your session as part of the transaction isolation level option of the set command. Adaptive Server's default transaction isolation level is 1.

The holdlock parameter makes a shared lock on a specified table or view more restrictive by holding it until the completion of a transaction (instead of releasing the lock as soon as the required data is no longer needed, whether or not the transaction has been completed). Setting transaction isolation level 3 with a set command implicitly applies a holdlock.

The noholdlock parameter prevents Adaptive Server from holding any locks acquired, regardless of the transaction level currently in effect.

Error 7788 is a warning message that is raised during query execution when level 0 scans are active and the query includes an explicit or implicit holdlock or noholdlock parameter. The query is executed and the transaction isolation level 0 option of the set command takes precedence over the holdlock or noholdlock parameter of the query.

Action

If you want to use holdlock or noholdlock in your query, use the transaction isolation level option of the set command to change the isolation level to a value other than 0 for your session:

1> set transaction isolation level n
2> go

where n is the value to which you want to set the isolation level.

Then re-enter your query.

Additional information

Refer to the Transact-SQL User's Guide for information about selecting an isolation mode for a query or for your session.

Refer to the Reference Manual and the Performance and Tuning Guide for information about holdlock and noholdlock.

Versions in which this error is raised

All versions