z/OS DFSMS OAM Application Programmer's Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Object storage

z/OS DFSMS OAM Application Programmer's Reference
SC23-6865-00

When using the OSREQ STORE function, if the object data is not in one contiguous block in a storage area immediately following the end of the buffer list, the object data might be reblocked into temporary storage within the caller’s address space. The temporary storage requirements and uses are as follows:
  • If the object is to be stored initially on disk sublevel 1 (DB2), temporary storage is obtained based on the total length of the object data:
    • If the total object data length is 3980 bytes or less, a temporary storage buffer of 4KB is obtained.
    • If the total object data length is greater than 3980 bytes and the destination is a DB2 32K table, a temporary storage buffer of 32KB is obtained.
  • If the object is to be stored initially on disk sublevel 2 (file system), optical media, or tape media, temporary storage that is large enough to contain the entire object is obtained.

In all cases where the object data requires reblocking, the object data segments are moved from the caller’s buffers into the temporary storage buffer. The object data is reblocked into one contiguous block starting at the beginning of the temporary buffer.

For objects that are stored on disk sublevel 1 (DB2) and are 3980 bytes or less in length, or for objects that are stored on disk sublevel 1 and are greater than 32640 bytes in length and the destination is a DB2 LOB table, or for objects that are stored on disk sublevel 2 (file system), optical media, or tape media, only one block is created and stored.

For objects that are stored on disk sublevel 1 and are greater than 3980 bytes in length, the following steps are followed:
  • Object data is moved into the temporary storage buffer until it is full.
  • The object data in the temporary buffer is stored.
  • The process of reblocking any remaining object data into the temporary buffer is repeated until all object data has been stored.
When using the OSREQ store sequence functions (STOREBEG, STOREPRT, and STOREEND) to store an object in multiple parts, there is no temporary storage needed within the caller’s address space. It is recommended to avoid unnecessary overhead by:
  • Maximizing the size of each part of the object to be stored with STOREPRT and
  • Minimizing the number of STOREPRT invocations.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014