Buffer Manager Errors

This section contains error messages for the Adaptive Server Buffer Manager.




Error 803

Severity

20

Message text

Unable to place buffer '0x%lx' from cache '%.*s' holding logical page '%ld' in sdes for object '%.*s' - either there is no room in sdes or buffer already in requested slot.

Note“sdes” is an abbreviation for “session descriptors.” Refer to Error 603 for information about session descriptors.

Explanation

A session descriptor is an internal data structure in Adaptive Server which contains information about a table. All open objects in Adaptive Server require a descriptor structure. Whenever a connection to Adaptive Server attempts to open a table, it gets a session descriptor.

To ensure that a buffer read by the session remains in the buffer cache and does not age out, Adaptive Server “keeps” the buffer. The session descriptor contains eight slots where buffers that are “kept” by the session are stored.

Error 803 occurs during recovery or regular Adaptive Server operation when one of the following is true:

Action

When an 803 error occurs:

If problems persist, contact Technical Support for assistance. Before contacting Technical Support, be prepared to fax or provide the complete text of all error messages.

Examine your operating system error log file as well as the Adaptive Server error log to determine if hardware errors may have caused the problem.


sybload Error 803

Error Message Text

Please inform Sybase Customer Service that there may be
a problem with this tape and cite error condition 803.

sybload Error 803 can occur when unloading software because of one of the following:

Action for sybload Error 803

For more information, refer to the Adaptive Server installation and configuration guide and the Release Bulletin.

Use appropriate procedures from the following:

Versions in which this error is raised

All versions




Error 804

Severity

20

Message text

Unable to find buffer 0x%lx holding logical  page %ld in sdes 0x%lx kept buffer pool for object '%.*s'.

Note“sdes” is an abbreviation for “session descriptors.” Refer to Error 603 for information about session descriptors.

Explanation

A session descriptor is an internal data structure in Adaptive Server which contains information about a table. All open objects in Adaptive Server require a descriptor structure. Whenever a connection to Adaptive Server attempts to open a table, it gets a session descriptor.

To ensure that a buffer read by the session remains in the buffer cache and does not age out, Adaptive Server “keeps” the buffer. The session descriptor contains eight slots where buffers that are “kept” by the session are stored.

Error 804 occurs when Adaptive Server cannot find the pointer to a buffer header in a session descriptor. This error can be transient.

Action

When an 804 error occurs, restart Adaptive Server as soon as possible. If additional 804 errors occur, call Sybase Technical Support.

Additional information

When calling Technical Support, have the following information available:

Versions in which this error is raised

All versions




Error 806

Severity

21

Message text

Could not find virtual page for logical page  %ld in database '%S_DBID'.

NoteThis error may be caused by a hardware problem.

Explanation

A virtual page is a page within a Sybase device. A logical page is a page in an Adaptive Server database. There is a one-to-one correspondence between these two types of pages.

Error 806 occurs when Adaptive Server fails to convert a logical page number to a virtual page number. Depending on what caused the error, it can be serious or transient.

If Error 806 is accompanied by the message “Page %d is not in the range of pages for database id %d,” it means you used dbcc page with an invalid parameter. This is not a serious problem.

If Error 806 occurs on recovery, it may be transient or serious (see information under “Action” for specifics).

Error 806 can occur during normal processing, such as creating an index or running a stored procedure. In this case, the error is probably caused by corruption or a problem with Adaptive Server and it is a serious error.

Action

If Error 806 specifies tempdb in the message output, restart Adaptive Server. Since tempdb is rebuilt each time Adaptive Server is restarted, this may clear the error. If the error occurs again (on tempdb), call Sybase Technical Support.


During Recovery

If Error 806 occurs on recovery, the database will be marked suspect. If the error is transient, resetting the suspect status will solve the problem.

To resolve this problem:

  1. Bypass recovery by starting Adaptive Server with status -32768.

  2. Run dbcc checkdb and dbcc checkalloc on the database listed in the error message output.

  3. Set status back to 0.

  4. Shut down Adaptive Server:

    1> shutdown with nowait
    2> go
    

  5. Try recovery again.

If Error 806 occurs again, call Sybase Technical Support. Technical Support may be able to help you recover from this error if the corruption is not too widespread. However, recovery from clean backups might be necessary.


During Normal Processing

Run dbcc checkdb and dbcc checkalloc on the database listed in the error message output.

Call Sybase Technical Support. Technical Support may be able to help you recover from this error if the corruption is not too widespread. However, recovery from clean backups might be necessary.

Additional information

Refer to “Checking Database Consistency” in the System Administration Guide for information about dbcc commands.

Before contacting Technical Support, be prepared to provide:

Versions in which this error is raised

All versions




Error 813

Severity

20

Message text

Logical page '%ld' in database '%S_DBID',  cache '%.*s' is already hashed.

NoteThis error may be caused by a hardware problem.

Explanation

This error may be serious, especially if it occurs on a table's data page. It means that a page is currently in the data cache and is in use by a table or index but is not marked as allocated. An attempt to allocate it causes Error 813.

The same page could be allocated again after it is removed from the data cache, resulting in a loss of whatever data resides on the page.

WARNING! Pages encountering Error 813 will not be included in a database dump. This is because database dumps are performed by reading allocation pages and not by traversing page chains. Therefore, this error should be corrected before dumping the database.

After the page is removed from the data cache, further attempts to access this page may raise 2500 series errors (allocation errors) when running dbcc checkalloc, dbcc tablealloc, or dbcc indexalloc.

Action

To clear the error, do the following:

  1. Execute the checkpoint command on the database specified in the error message. This will cause all modified pages in the data cache to be flushed to disk.

  2. Run dbcc checkalloc or dbcc checkalloc with the fix option on the database. As a result, you might get allocation errors because the page displayed in the error message will be linked but not allocated. Refer to “dbcc” in the Reference Manual for information about running these commands.

  3. If you do get allocation errors:

  4. If you still have 813 errors after fixing any other errors reported during step 2, shut down and restart Adaptive Server. This will probably clear Error 813.

    If errors still occur, call Sybase Technical Support. They might be able to help you recover from this error if the corruption is not too widespread. However, recovery from backups might be necessary.

Using dump transaction with no_log

Using the dump transaction with no_log command can result in an 813 error. Therefore, do not use dump transaction with no_log unless it is absolutely necessary (when dump transaction with truncate_only will not truncate the log). Try using dump transaction with truncate_only first and use the no_log option only as a last resort. Refer to Error 1105 for details.

Check for any occurrences of dump transaction with no_log in any of your scripts or procedures and replace them with dump transaction with truncate_only.

Additional information

For more information on the 2500 series errors, refer to the information in this section and in “How to Fix and Prevent Allocation Errors” in the Encyclopedia of Tasks chapter.

Versions in which this error is raised

All versions




Error 820

Severity

21

Message text

Attempt to dirty non-log buffer %S_BUF which is in I/O.

Explanation

Adaptive Server uses buffers to manage physical pages while they are in memory. When a page is read into memory from the disk, a buffer header is assigned to it. The header tracks the usage and contents of the page image.

The buffers themselves are grouped together to form Memory Address Space Segments (MASSes). A buffer cache consists of MASSes linked in MRU/LRU (most recently used/least recently used) chains.

A buffer that was changed while in cache and has not yet been written to disk is known as a dirty buffer.

Error 820 is raised when the server detects that an invalid operation has been performed on a buffer or MASS. The error is raised in the following states:

State

Meaning

1

Attempted to mark as dirty a MASS that is currently being written.

2

Object ID mismatch detected when linking a buffer to the chain.

3

MASS found to belong to a different database. This state is only raised by diagserver.

4

Buffer is being changed but the page residing in the buffer does not belong to the transaction log as expected.

5

Buffer pinning to a cache is invalid with respect to transaction state.

6

Attempted to pin a buffer to a cache while the buffer is pinned to a different cache.

Error 820 is due to an Adaptive Server problem. Some scenarios in which this error may be raised include:

Action

Call Sybase Technical Support.

Additional information

Before calling Technical Support, have the following information available:

Versions in which this error is raised

All versions




Error 821

Severity

20

Message text

Attempt to unhash buffer at 0x%lx with a  buffer pageno of %ld and database id %ld with HASHED status set failed - buffer  was not found. %S_PAGE.

NoteThis error may be caused by a hardware problem.

Explanation

Every data or index page in the data cache has a corresponding buffer pointing to it, controlling its stay in the cache. As these pages are read and modified, they are scheduled to be written to disk and removed from the data cache. Error 821 occurs when Adaptive Server attempts to remove a nonexistent or corrupted page from the data cache.

Some potential causes of this error are:

This error can occur during database recovery as well as during normal operation of Adaptive Server.

Action

  1. Check the Adaptive Server error log to determine whether there are other indications of hardware problems, such as kernel messages reporting I/O errors. If problems exist, solve them.

  2. Check the operating system error log or run diagnostic utilities to check for I/O errors. If problems exist, solve them.

    Refer to “Checking the Operating System Error Log” in the Encyclopedia of Tasks chapter for more information.

  3. Once the actual cause of corruption has been removed, shut down and restart Adaptive Server to clear the 821 error. If restarting is not feasible and if you have dial-in facilities, Sybase Technical Support may be able to help resolve the immediate problem.

Using dump transaction with no_log

Using the dump transaction with no_log command can result in an 821 error. Therefore, do not use dump transaction with no_log unless it is absolutely necessary (when dump transaction with truncate_only will not truncate the log). Try using dump transaction with truncate_only first and use the no_log option only as a last resort. Refer to Error 1105 for details.

Check for any occurrences of dump transaction with no_log in any of your scripts or procedures and replace them with dump transaction with truncate_only.

Additional information

Before calling Technical Support, have the following information available:

Versions in which this error is raised

All versions




Error 822

Severity

20

Message text

Could not start I/O for request BLKIO flags  = 0x%lx, size = %ld, errcode = 0x%lx, %S_BUF.

NoteThis error may be caused by a hardware problem, usually a missing/offline device.

Explanation

This error occurs when a read or write operation was requested and Adaptive Server encountered an error while attempting to initiate the request. Error 822 can occur for any of the following reasons:

The information in the error message refers to an internal Sybase structure and does not help determine which database device or file is involved. Other error messages appearing in the Adaptive Server error log just before the 822 error usually indicate the nature of the problem and the device involved. Refer to “Additional Information” for examples of this type of error message.

Action

  1. Examine the availability and condition of the device involved using your standard operating system procedures, and make sure the device is accessible.

  2. Adaptive Server will not be able to recover the database upon restarting because an 822 error will mark the database suspect. If you know that the database was marked suspect because the device was unavailable, reset the status of the database to allow recovery to continue.

    WARNING! Do not use these procedures if other errors in the error log near the 822 error message suggest that the database may have been marked suspect for some other reason.

    Reset the suspect status using one of the methods supplied in “How to Reset a Database's “suspect” Status” in the Encyclopedia of Tasks chapter. After you reset the status, and start Adaptive Server, if the database is again marked suspect, examine the Adaptive Server error log for indications of other errors.

Additional information

Here are two examples of the 822 error and associated messages from the Adaptive Server error log. Examining the error messages just before the error usually helps determine the type of problem.

Example 1: Permission Problems

In this example, the permissions on disk1 (virtual device 6) were incorrect, so Adaptive Server was unable to access this device:

kernel: initializing virtual device 6, "/work/disk1"
kernel: dopen: open "/work/disk1", Permission denied 
kernel: dinit: failed to open primary device /work/disk1 for vdn6
kernel: udstartio: vdn 6 has not been set up 
server: Error: 822, Severity: 20, State: 3 
server: Could not start I/O for request BLKIO ....   

To correct an error like this:

  1. Change the ownership to user “sybase”. Make sure that this user has read and write permissions on the device. In our example, check the user's permission on /work/disk1.

  2. Become the “sybase” user.

  3. Start Adaptive Server.

Example 2: File Missing

In this example, the unix file corresponding to disk1 (virtual device 6) did not exist when Adaptive Server started, causing access to the device to fail:

kernel: initializing virtual device 6, "/work/disk1"
kernel: dopen: open "/work/disk1", No such file or directory 
kernel: dinit: failed to open primary device /work/disk1 for vdn6
kernel: udstartio: vdn 6 has not been set up 
server: Error: 822, Severity: 20, State: 3 
server: Could not start I/O for request BLKIO .... 

To correct an error like this, make sure that the virtual device in the error message exists, and correct whatever error caused Adaptive Server not to find it. (For example, it may have been renamed or moved while Adaptive Server was shut down.)

If the virtual device no longer exists, you will have to restore from known clean backups. Merely creating an empty device with the right name will not solve this problem.

Versions in which this error is raised

All versions




Error 823

Severity

24

Message text

I/O error detected during %S_MSG for %S_BUF.

NoteThis error may be caused by a hardware problem.

Explanation

This error occurs when Adaptive Server encounters an I/O error on a read or write request made to a Sybase device. It usually means you have disk problems. The parameters in the error message refer to internal Sybase structures and do not often help determine which device is involved. However, additional kernel messages in Adaptive Server's error log recorded before the 823 error should indicate which device is involved.

Causes of the 823 error can include the following:

Action

Check the accessibility and condition of the device in question. Once you have identified and corrected the problem, execute the dbcc checkdb and dbcc checkalloc commands to ensure that no other damage was caused by the bad device.


SunOS 5.x (Sun Solaris 2.x)

The 823 error can also appear if the Sun operating system is not configured correctly for asynchronous I/O.

Adaptive Servers running on Sun machines can use asynchronous I/O on raw partitions without any special kernel enhancements such as the MtXinu DBM or Sun DBE. An Adaptive Server running on a SunOS 4.1 or later operating system attempts to do asynchronous I/O on raw partitions. Successful use of asynchronous I/O requires that the UNIX kernel be configured to support it. Two options must be included in the Sun operating system kernel configuration file when the kernel is built. These are:

options  LWP    # kernel threads 
options  ASYNCHIO        # asynch I/O (requires LWP)

You can find examples of how to set these options in the original GENERIC configuration file usually found in /sys/{sun3, sun4}/conf. The exact location of these files may vary. Do not comment out these options.

An improperly configured kernel causes Adaptive Server to fail the first time it attempts to do I/O to a raw partition. For example, if your master device is on a raw partition, and you attempt to start Adaptive Server with that master device, Adaptive Server displays the following message:

kernel: read error on virtual disk 0 block 28
kernel: invalid argument
server: Failure to open master database for the first time
server: Error 823, Severity 24, State 1

If the master device is located on a UNIX file for which standard disk I/O rather than asynchronous I/O is used, Adaptive Server starts even if the Sun kernel is not configured for asynchronous I/O. However, if you attempt a disk init command on a raw partition, it fails with a 5115 error. Refer to Error 5115 for more information.


AIX Systems Only

Error 823 may occur if the disk device is run under the Logical Volume Manager (LVM) , vstart is equal to 2 and the size is not shortened by 2. vstart needs to be equal to 2 because the first AIX block (1 AIX block equals 2 Sybase pages) has to be available for the LVM control block (LVCB).

Versions in which this error is raised

All versions




Error 832

Severity

20

Message text

Unable to place buffer 0x%x holding logical page %ld in sdes for object ’%.*s’ - there is no room in sdes aux keep pool.

Explanation

Error 832 is raised when the server runs out of space in the 2K sort buffer during a sort-intensive operation such as a parallel index creation.

Error 832 is raised with the following states:

State

Meaning

1

Buffer could not be placed in auxiliary buffer keep pool.

2

Similar to State 1, but this state occurs when an operation needs to ’keep’ an already kept buffer.

Action


State 1

Increase number of sort buffers beyond the default value. This allows the sort manager to utilize more sort buffers and reduce the number of merge runs and amount of disk I/O required for the operation.


State 2

If this error is raised with State 2, report the problem to Sybase Technical Support. Have the following information ready when you contact Technical Support:

Additional information

number of sort buffers specifies the number of 2K buffers used to hold pages read from input tables and perform index merges during sorts.

Sybase recommends that you leave this parameter set to the default except when you are creating indexes in parallel. Setting the value too high can rob non-sorting processes of access to the 2K buffer pool in caches being used to perform sorts.

For more information on configuring this value for parallel create index statements, see "Sort Buffer Configuration Guidelines" and "Configuring the number of sort buffers Parameter" in the Performance and Tuning Guide.

Versions in which this error is raised

All versions.




Error 834

Severity

20

Message text

Illegal attempt to clean buffer: %S_BUF.

Explanation

The Adaptive Server Cache Manager works in conjunction with the Buffer Manager to manage physical disk pages while they are in memory. When a page is read into memory from the disk, a buffer header is assigned to it. The header tracks the usage and the contents of the page image. The page and the buffer header together define a buffer.

The buffers themselves are grouped together to form Memory Address Space Segments (MASSes). A buffer cache consists of MASSes linked in MRU/LRU (most recently used/least recently used) chains. The Cache Manager manages MASSes and buffer caches.

When a buffer or MASS is no longer needed (for example during a drop database, drop table, drop index, or deallocation of pages), Adaptive Server performs some cleanup tasks and releases the resources taken up by the buffer or MASS. Before these actions are carried out, Adaptive Server does a number of checks to make sure the buffer or MASS is no longer in use. Error 834 occurs when one of these checks fails. It is caused by an Adaptive Server problem.

Error 834 occurs with the following states:

State

Meaning

1

If the MASS is actively being used or if Adaptive Server is in the process of writing out the MASS when Adaptive Server tries to clean it up, Error 834 occurs with State 1. This state is only raised by diagserver.

2

If the buffer is still hashed or has not been cleaned up when Adaptive Server is ready to release it, Error 834 occurs with State 2. This state is only raised by diagserver.

3

If the buffer is actively being used or if Adaptive Server is in the process of writing out the buffer when Adaptive Server is ready to release it, Error 834 occurs with State 3. This state is only raised by diagserver.

4

If the buffer belonging to a database has been set aside for later use and Adaptive Server tries to clean it out of a cache, Error 834 occurs with State 4.

5

If a buffer belonging to an object has been set aside for later use and Adaptive Server tries to clean it out of a cache, Error 834 occurs with State 5.

Action


State 4, LTMs Running

834 errors with State 4 can occur if the Log Transfer Manager (LTM), a Replication Server component, is running during server recovery. The LTM process attempts to log in before the database is fully recovered. To avoid this error, shut down the LTM before restarting the server. Restart LTM only after all the databases have been recovered.


All Other States

Shut down and restart Adaptive Server to clear the buffer structure.

If Error 834 occurs again, call Sybase Technical Support.

Additional information

Have the following information ready when you call Sybase Technical Support:

Versions in which this error is raised

All versions




Error 835

Severity

20

Message text

Illegal attempt to change contents of buffer:  %S_BUF.

Explanation

The Adaptive Server Cache Manager works in conjunction with the Buffer Manager to manage physical disk pages while they are in memory. When a page is read into memory from the disk, a buffer header is assigned to it. The header tracks the usage and the contents of the page image. The page and the buffer header together define a buffer.

When a client process completes, Adaptive Server performs some cleanup tasks such as closing the buffers and releasing the resources taken up by the buffers. If the client process terminates abnormally, however (for example if the process is killed during execution), Adaptive Server may be unable to carry out the appropriate cleanup, buffers are left open, and Error 835 is raised. The error can also occur due to an Adaptive Server problem, when a page being updated is deallocated before the modification can complete.

This error is only raised by diagserver.

Action

If the problem recurs, shut down and restart Adaptive Server to clear the buffer structure.

If Error 835 continues to occur, call Sybase Technical Support.

Versions in which this error is raised

All versions




Error 840

Severity

17

Message text

Device '%.*s' (with physical name '%.*s',  and virtual device number %d) has not been correctly activated at startup  time. Please contact a user with System Administrator (SA) role.

NoteThis error may be caused by a hardware problem.

Explanation

This error can occur when Adaptive Server is unable to access a device during startup.

This error can occur for any of the following reasons:

Action

  1. Examine the availability and condition of the device involved using your standard operating system procedures, and make sure the device is accessible.

  2. Adaptive Server will not be able to recover any databases that have space on the device upon restarting because an 840 error will mark the databases suspect. If you know that the databases were marked suspect because the device was unavailable, resolve the problem with the device and reset the status of the databases to allow recovery to continue.

    WARNING! Do not use these procedures if other errors in the error log near the 840 error message suggest that the databases may have been marked suspect for some other reason.

Reset the suspect status using one of the methods supplied in “How to Reset a Database's “suspect” Status” in the Encyclopedia of Tasks chapter.

After you reset the status, execute the dbcc checkdb and dbcc checkalloc commands for the affected databases to ensure that no other damage was caused by the device being unavailable. If other errors occur, refer to the writeups for those errors in this manual. If errors still persist, call Sybase Technical Support.

Versions in which this error is raised

All versions




Error 842

Severity

20

Message text

Attempt to set bufclaims in PSS structure for process %d to negative value while unclaiming cache.

Explanation

Adaptive Server manages physical disk pages while they are in memory by maintaining buffer pools of logical pages in cache. It allocates buffers to server tasks as needed, keeps track of the buffers assigned to caches and tasks, and releases (unclaims) buffers that are no longer needed by a task. It also accesses the Process Status Structure (PSS), which is a memory structure associated with each process describing the state of the process.

Error 842 occurs when a buffer is released, and the task is found to have a negative buffer count as a result. The error is sometimes seen during sort operations, for example during index creation.

Error 842 breaks your connection to Adaptive Server.

Action

Reconnect to the server. If the error persists:

  1. Configure the server to obtain a shared memory dump for future occurrences of Error 842; and

  2. Contact Sybase Technical Support after collecting the memory dump and related error data.

    To configure the server to dump shared memory upon future occurrence of Error 842:

    1> sp_configure "dump on conditions",1
    2> go
    1> sp_shmdumpconfig "add", error, 842, 1, <directory>, <file_name>
    2> go
    

Additional information

Have the following information ready when you call Sybase Technical Support:

Versions in which this error is raised

All versions




Error 847

Severity

10

Message text

Checkpoint process detected hardware error writing logical page '%ld', virtual page '%ld' for dbid '%ld', cache '%.*s'.  It will sleep until write completes successfully.

NoteThis error may be caused by a hardware problem.

Explanation

Adaptive Server's automatic checkpoint mechanism guarantees that data pages changed by completed transactions are regularly written from memory to the database device. To accomplish this, the checkpoint process periodically checks the number of log records in the transaction log for each database. The number of log records, and a recovery interval defined with sp_configure, are used to decide when to checkpoint each database. During the checkpoint all pages that have been modified in memory, but not on disk, since the last checkpoint are written out to the database device. checkpoint is performed on a per database basis for all the databases on an Adaptive Server.

Error 847 occurs when the checkpoint process is unable to write out pages to the database device due to a hardware problem. The error is preceded by the following message in the error log:

bufwritedes: write error detected - spid=%ld, ppage=%ld, 
bvirtpg=%ld, dbid=%ld

Action

This is an informational message and the checkpoint task will periodically retry writing pages to the device. To identify the affected devices so you can investigate the hardware problem, refer to “Creating and Managing User Databases” in the System Administration Guide and read “Getting Information About Database Storage”.

NoteIf hardware problems were detected, execute the dbcc checkdb and dbcc checkalloc commands for the affected database to ensure that no database corruption occurred due to the problem.

Versions in which this error is raised

All versions




Error 849

Severity

24

Message text

I/O error detected for device '%.*s' (with  physical name '%.*s', and virtual device number %d). 

NoteThis error may be caused by a hardware problem.

Explanation

This error occurs when Adaptive Server encounters an I/O error on a read or write request made to a Sybase device. The error is accompanied by Error 823 and is seen during dbcc operations.

The parameters in the error message refer to the Sybase logical device name, the physical operating system location of the device, and the virtual device number (a unique identifier for the device).

Error 849 is related to one of the following:

Action

Check your operating system logs for any information about hardware problems on a disk containing a Sybase device. Since Error 849 accompanies and provides supporting data for 823 errors, refer to the writeup on Error 823 for more troubleshooting information. In the event of hardware failure, you will need to restore the affected database(s) from clean backups.

If your site uses disk mirroring, Error 849 may indicate that Adaptive  Server continued to issue I/O's to a failed primary device. Contact Sybase Technical Support for assistance.

Additional information

When calling Technical support, have the following information available:

Versions in which this error is raised

All versions




Error 852

Severity

20

Message text

Command Failed: Invalid request to move '%ld'  buffers from the '%ld'K pool of the '%.*s' cache to the '%ld'K pool. Source  pool only contains '%ld' buffers. Retry the command specifying fewer buffers.

Explanation

The Adaptive Server Cache Manager works in conjunction with the Buffer Manager to manage physical disk pages while they are in memory. When a page is read into memory from the disk, a buffer header is assigned to it. The header tracks the usage and the contents of the page image. The page and the buffer header together define a buffer.

The buffers themselves are grouped together to form Memory Address Space Segments (MASSes). A buffer cache consists of MASSes linked in MRU/LRU (most recently used/least recently used) chains. The Cache Manager manages MASSes and buffer caches.

The Adaptive Server command sp_poolconfig allows you to create, drop, resize, and get information about memory pools within named data caches. Error 852 occurs when you use sp_poolconfig or a configuration file to create or resize memory pool size and Adaptive Server is unable to find contiguous memory to fulfill the request.

Error 852 occurs with the following states:

State

Meaning

1

Error 852 occurs with State 1 when the size of the destination pool is smaller than the requested memory size.

2

Error 852 occurs with State 2 when the requested pool size is larger than the source pool size.

Action

  1. Use sp_cacheconfig to display information about the current configuration of the affected data cache and memory pools in the cache. For example:

    1> sp_cacheconfig test_cache
    2> go
    

    Cache Name    Status    Type     IO Sz  Wash Sz   Config Value Run Value 
    ------------- --------- -------- ------ --------- ------------ --------
    test_cache    Active    Mixed                          2.00 Mb 2.00 Mb
    test_cache    Active    Mixed      2 Kb    512 Kb      0.00 Mb 1.50 Mb
    test_cache    Active    Mixed      4 Kb    100 Kb      0.50 Mb 0.50 Mb
                                                      ------------ --------
                                                Total      2.00 Mb 2.00 Mb
    

  2. Try the sp_poolconfig command again with appropriately-sized values or use sp_poolconfig to reconfigure the source pools to have an appropriate number of buffers available.

Additional information

Refer to the Adaptive Server Enterprise Reference Manual for information about sp_cacheconfig and sp_poolconfig.

Versions in which this error is raised

All versions




Error 855

Severity

16

Message text

Bad prefetch size of %d encountered.

Explanation

On select, update, and delete statements, you can specify a prefetch size that specifies the I/O size in kilobytes for tables bound to caches for which large I/Os are configured. Valid values for size are 2K, 4K, 8K, and 16K. You must have configured the I/O size for the cache before you can specify it for a prefetch size. The procedure sp_helpcache shows the valid sizes for the cache to which an object is bound, or for the default cache.

When you specify a prefetch size, the Adaptive Server Parser passes that value to the Buffer Manager. If the value you specified is not available, Error 7380 (a warning) is raised, and processing continues with the prefetch size that the Adaptive Server optimizer determines to be the “best” value.

Error 855 occurs when:

This error is only raised by diagserver.

Action

Call Sybase Technical Support.

Versions in which this error is raised

All versions




Error 861

Severity

16

Message text

Command Failed: Cannot bind object '%ld',  dbid '%d' to cache because you have an open cursor on the target object.   Retry the command after closing the cursor.

Explanation

You can use the stored procedure sp_bindcache to bind a database, table, index, or text or image object to a named data cache. If there is an open cursor on the target object, the cursor structures have an open descriptor for the object and there may be cache information stored there. Error 861 occurs when you use sp_bindcache or the configuration file to change object binding and Adaptive Server finds that the object has been opened by a cursor.

Action

Close the cursor and try the command again:

  1. Get information about cursors you have open:

    1> sp_cursorinfo null
    2> go
    

  2. If the output from step 1 shows an open cursor for the object you are trying to bind, close the cursor:

    1> close cursor_name
    2> go
    

  3. If the output from step 1 did not show an open cursor for the object you are trying to bind, this probably means someone else opened it. Use sp_lock to determine who has locks on the object. If you can determine who has the open cursor, ask them to close it.

  4. If you cannot determine who has the open cursor on the object you are trying to bind, shut down and restart Adaptive Server or wait and try again later.

  5. Try your command again.

Versions in which this error is raised

All versions




Error 863

Severity

20

Message text

Buffer resources in cache %s, id %d are unavailable. Please re-run this query or ask the system administrator to re-configure buffer cache memory.

Explanation

When a page is read into memory from disk, a buffer header is assigned to it. The header tracks the usage and the contents of the page image. The page and the buffer header together define a buffer. The buffers themselves are grouped together to form Memory Address Space Segments (MASSes). A buffer cache consists of MASSes linked in MRU/LRU (most recently used/least recently used) chains. Error 863 occurs when you run a query and Adaptive Server is unable to find an empty buffer in any buffer pool in the named cache.

Error 863 occurs with the following states:

State

Meaning

1

Adaptive Server could not find a buffer pool that had any available buffers in it.

2

When Adaptive Server makes a prefetch request for a MASS of a specific size, it checks the page range for the request to determine whether any of the pages within the range are already in cache. If any of the pages are already in cache, Error 863 occurs with State 2. This state is caused by an Adaptive Server internal error.

Action

Rerun the query later (when buffer resources in that cache might be free) or use sp_cacheconfig to increase the size of the cache.

Additional information

Refer to the Adaptive Server Enterprise Reference Manual for information about sp_cacheconfig.

Versions in which this error is raised

All versions