21
Attempt to dirty non-log buffer %S_BUF which is in I/O.
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. |
Some scenarios in which this error may be raised include:
Parallel select into with union all.
drop role when 15 or more databases exist on the server.
Call Sybase Technical Support.
All versions