Bufferpool Management
Several messages contain a status code. This code consists of a
four-hex-digits return and a four-hex-digits feedback code.
Return Codes
00 - Request processed successfully
The request has been processed without problems. When this is returned,
any data expected to be returned by the request should be in its appropriate
field in the parameter list.
04 - Request processed, additional data in feedback code
The request was processed successfully, however, an abnormal event
occurred during the request, which is therefore communicated back to the
requester via a feedback code. Nevertheless, any data expected to be returned
by the request should be in its appropriate field in the parameter list.
08 - Request not processed, additional data in feedback code
The request could not be processed due to a problem with the given
buffer pool. Additional information is provided in the feedback code.
0C - Invalid request, additional data in feedback code
The request was not processed due to an error in the request itself, or
an error in the data given for the request. Additional information is provided
in the feedback code.
10 - Logic error, additional data in feedback code
Due to a logic error in the fixed buffer pool manager logic, the request
may or may not have been processed. Details on the error are provides in the
feedback code.
Feedback Codes
04 - Invalid function requested
The request field of the parameter list contains an invalid or unknown
request identifier.
08 - No buffer pool token parameter provided
The requester did not provide the address of a buffer pool token area
for the request. This parameter is required for all requests.
0C - No buffer pool token parameter provided
The user provided a pointer to a buffer pool token area; however, this
area is either non-zero for a CREATE request or zero for any other request.
When the area is non-zero for any request other than a CREATE request and this
is returned, it indicates that the buffer pool token does not reflect the
status at the time of the buffer pool create when the token was given. After
the creation of a buffer pool, a pointer from the created header to the token
provided on the create remains to ensure that the same token area is provided
for a specific buffer pool for each request, otherwise this feedback code will
be returned.
10 - No parameters provided
The requester issued a request which requires parameters, however, no
parameters were provided in the request parameter list.
14 - Operating system compatability error
One or more subpool parameter areas have been provided to a CREATE
request indicating that the subpool should be in an area that is not available
on the machine. For example, LOC=DS is specified while the operating system is
not capable of supporting data spaces. The closest possible match will always
be used instead, however, this may lead to duplicate buffer subpool
specifications.
18 - Equal subpools specified
The user has requested that a buffer pool be created and provided two or
more subpool parameter areas, however, in at least one case the same type of
subpool was specified twice, ie., a subpool with the same element size and in
the same area of storage has been allocated. In this case, the first
specification is taken and the base number of elements from the duplicate is
added to the base allocation for the first specification. If more than one
duplicate is specified, duplicates subsequent to the first one found are
ignored.
1C - No storage for subpool control blocks
The attempt to get storage from the operating system for the SubPool
Control Block (SPCB) or the SubPool DeScriptors (SPDSs) for a subpool
failed.
20 - No storage for Fixed Buffer SubPool control block
An attempt to get storage for the Fixed Buffer SubPool (FBSP) control
block failed.
24 - No storage for subpool
The attempt to get storage for the actual subpool element storage
failed.
28 - Request rejected, buffer pool quiescing
While a buffer pool is being initialised or deleted, an indication is
set in the buffer pool token. This condition means that the buffer pool is
quiescing and therefore no new requests for the buffer pool can be
accepted.
2C - Logic error in request processing
During the initial processing of a request an unexpected specific type
of request was detected.
30 - Supplied parameters not required
The buffer pool manager has detected parameters that have been supplied
where none are required. These parameters are ignored.
34 - No subpool available to satisfy a request
A request was issued to get a buffer from a buffer pool, however, no
subpool could be found to satisfy the request and implicit subpool creation is
not allowed for the buffer pool. This indicates that either the size of buffer
requested is not available or the conditions imposed by the 'LOC' specified on
the get could not be satisfied.
38 - Subpool creation error
A GET request was issued against a buffer pool, however, no subpool was
found which could satisfy the request. The buffer pool manager tried to
implicitely create a subpool to satisfy the request, however, the creation of
the new subpool failed. Messages to the console show why the creation of the
buffer subpool failed.
3C - Subpool exhausted, expansion not permitted
An attempt to get a buffer subpool element has failed because there are
no free buffers left in the subpool. The subpool definition does not provide
for expansions (expand-by number not specified or 0).
40 - One or more subpool contractions occurred during request
During a FREE request it was discovered that a buffer subpool could be
contracted again. The contraction will be performed by the first FREE request
which discovers the condition and can handle contraction. This simply indicates
that this is the request that caused the contraction to occur.
44 - No buffer available
An attempt to get a buffer subpool element has failed because the buffer
subpool is empty. There are several possible reasons for this:
-
The subpool cannot expand and the base allocation is full.
-
The subpool has been expanded to the maximum number of expansions
allowed.
-
The fixed buffer pool manager attempted to expand the buffer pool
but the expansion failed. Messages written to the console will give the reason
for the failure.
-
The request itself could not handle expansion (EXPAND=NO specified
on request) and no other subpool could be used to satisfy the request.
48 - Buffer address not in buffer pool
A request was made to free a buffer, however, the address provided was
not in the buffer pool indicated by the buffer pool token.
4C - Buffer already free
A request to free a buffer was received, however, the buffer was already
free.
50 - Address not on buffer subpool boundary
A request to free a buffer from a buffer pool was received and the
address provided was found in one of the buffer subpools, however, the address
did not point to the start of a buffer element as the address would have been
returned to the GET request.
54 - Buffer token error
A request to free a buffer was made however, this buffer was originally
requested with a token specified on the get request and either no token was
provided on the free request, or the token provided did not match the one
provided on the GET request.
58 - Buffer chain error
A FREE request was issued for a buffer which is on a chain provided in
the original GET request, however, either the FREE request did not provide a
chain base, or the buffer does not exist in the provided chain.
5C - No storage for fixed buffer pool header control block
An attempt to get storage for the buffer pool header control block
(FBPH) failed.
60 - Freeall request, buffer already free
A FREEALL request was issued to free one or more buffers with a specific
token value and/or on a specific chain, however, at least one of the buffers
has been found to be already free.
64 - Buffer pool token logic error
A logic error has occurred while the fixed buffer pool manager was
manipulating the buffer pool token.
68 - PLIST level error
When a PLIST is built by a user program, the CMFBPM macro ensures that
the level at which the plist was generated is included in the parameter list.
This message indicates that the level is not supported by the fixed buffer pool
manager module in use. It is also possible that the parameter list has been
overwritten or that the manager module was not called using CMFBPM.
6C - Subpool Statistics Area ID error
On a STATS request to the buffer pool manager, a Subpool Statistics Area
(SPSA) must be provided in order to return the statistics requested. This area
must have the character string 'SPSA' in the 'ID' field as mapped by the CCSPSA
generated DSECT. In this case, the string was not found.
70 - End of statistics data for a buffer Pool
The STATS request can be issued more than once to get information about
the various subpools in a buffer pool. This return code indicates that the
there is no more data to return for a buffer pool. It will be returned along
with the data for the last subpool AND if any subsequent request is issued,
after end of data is hit. In the latter case, the subpool statistics area
provided will not have been updated.
74 - Logic error processing buffer pool parameters
While processing the parameters for a BPCREATE request, duplicate buffer
pools are filtered out during processing. This feedback code is returned when a
duplicate buffer pool is discovered at a time when no duplicates should
occur.
78 - Buffer pool create parameter error
This indicates that parameters have been provided to the BPCREATE
request, however, none were selected and thus there are no subpools for the
buffer pool.
7C - Resource manager error
The buffer pool manager has received a non-zero return code from the
resource manager. This should never happen and therefore indicates a logic
error in the buffer pool manager.
80 - Subpool create in progress
The fixed buffer pool manager has detected a request for a buffer which
cannot be satisfied from the currently allocated subpools. An attempt was made
to create a subpool to satisfy this request, however, it was discovered that
another user of the buffer pool was already in the process of creating a
subpool. As no resource number or token was available for this buffer pool, the
requests could not be serialised and this request was failed.
84 - Subpool expand in progress
The fixed buffer pool manager has attempted to expand a buffer subpool
to satisfy this request, however, while attempting to do this, it was
discovered that another user was already expanding the subpool. As no resource
token or number was available for the buffer pool, no serialisation was
possible, therefore, the request was failed. This is usually a short-term
situation and the caller can wait awhile and then reissue the request.
88 - Subpool contract in progress
The fixed buffer pool manager has suspended access to a specific subpool
due to the need to contract the subpool. As no resource token or number was
available for the buffer pool, no serialisation was possible and the request
failed. This is usually a short-term situation and the caller can wait awhile
and then reissue the request.
8C - Operating system subpool error
An operating system subpool was provided in a request to build a buffer
pool and discovered to be outside the range of available operating system
subpool numbers. The request is processed but the provided number is
ignored.
Overview of Messages
BPM0001 | BPM0002 | BPM0003 | BPM0004 | BPM0005 | BPM0006 | BPM0007 | BPM0008 | BPM0009 | BPM0010 | BPM0011 | BPM0012 | BPM0013 | BPM0014 | BPM0015 | BPM0016 | BPM0017 | BPM0018
BPM0001 |
BP $1, Addr=$2 not in buffer pool ret=$3 |
Explanation: |
An attempt was made to free the fixed buffer pool element address $2,
however, this address is not allocated in the $1 buffer pool. The request was
issued from the location indicated by $3.
|
System programmer info: |
This indicates that an invalid free request has been issued for the
buffer pool as indicated by $1. Using the $3 address, the module and offset
from which the request was issued can be determined. Generally speaking it
indicates a problem with the usage of the $1 buffer pool. When $1 is a Software
AG created buffer pool, this should be reported to your local support
centre.
|
BPM0002 |
BP $1 SP $2($3), Addr=$4 bndry error ret=$5 |
Explanation: |
An attempt was made to free the fixed buffer element address $4. This
buffer was found to be within the buffer pool $1 and the subpool as identified
by $2 and $3, however, the address provided did not point to the start of a
buffer in this subpool. The request was issued from the location indicated by
$5.
|
System programmer info: |
This indicates that an invalid free request has been issued for the
buffer pool as indicated by $1. Using the $5 address, the module and offset
from which the request was issued can be determined. This indicates a problem
with the usage of the $1 buffer pool. When $1 is a Software AG created buffer
pool, this should be reported to your local support centre.
|
BPM0003 |
BP $1 SP $2($3), Addr=$4 already free ret=$5 |
Explanation: |
An attempt was made to free the fixed buffer address $4 in the $1
fixed buffer pool. The address was found to be in subpool name $2 id $3,
however, it was already free. The request was issued from the location
indicated by $5.
|
System programmer info: |
This indicates that a module attempted to free the buffer identified
by $4 twice. Using the $3 address, the module and offset from which the request
was issued can be determined. This highlights a logic error with the usage of
the $1 buffer pool. When $1 is a Software AG created buffer pool, this should
be reported to your local support centre.
|
BPM0004 |
BP $1 SP $2($3), Expansion about to occur |
Explanation: |
A 'get' request has been issued for the $1 buffer pool and can be
resolved by the subpool $2 id $3. This subpool, and any extensions that may
have previously been allocated, is full and therefore another extension has to
be built.
|
System action: |
An attempt will be made to create the extensions. A subsequent message
will inidcate the sucess or otherwise of the attempt to expand.
|
System programmer info: |
When this occurs frequently for the same subpool, it might be worth
considering increasing the base allocation for the subpool to avoid the
overhead of expansion.
|
BPM0005 |
BP $1 SP $2($3), Expansion failed, status=$4 |
Explanation: |
At attempt to expand subpool $2 id $3 in the $1 buffer pool failed
due. $4 contains the status of the request in hexadecimal format. This
represents a two byte return code followed by a two byte feedback code
indicating why the expansion request failed. Feedback Explanation 18 Equal
subpools specified 1C, 20, 24 Not enough storage in the region/partition for
controlblocks 3C Bufferpool not allowed to expand 44 Not enough storage in the
region/partition/DS for expansion
|
System programmer info: |
Determine why the expansion failed based on the status as indicated by
$4. Gerneally speaking, this will only occur due to a shortage of storage in
the region. In this case, review the size of the region in which Com-plete is
running or reduce the usage of the storage which is in short supply.
|
BPM0006 |
SP $1($2) Esize=$3 Eno=$4 Size=$5 Loc=$6 Key=$7 |
Explanation: |
This message is issued when a new subpool or subpool extenstion is
allocated by the fixed buffer pool manager. A preceeding or subsequent message
will indicate why it has been allocated. The values are as follows...
$1 - Subpool name
$2 - Numeric Subpool ID
$3 - The Element size contained in this subpool in bytes
$4 - The number of elements allocated in this subpool
$5 - The total size of storage allocated for this subpool
$6 - Where the subpool storage resides. This can be ANY, BELOW, DS,
ECSA or CSA.
$7 - The storage protect key which the subpool storage has assigned.
This will normally be Com-plete's key.
|
BPM0007 |
BP $1, Creating SP Esize=$2 Opt=$3 Ret=$4 |
Explanation: |
A 'get' request has been issued for the $1 buffer pool, however, no
subpool exists to satisfy the request. As the buffer pool was created with an
option indicating that the subpools should automatically be created if no match
is found, the fixed buffer pool manager is about to attempt to create a subpool
to match the request. The buffer subpool will be built with an element size of
$2 and with options $3. These options are the hexadecimal option bytes as
passed to the 'get' request. $4 is the address from where the 'get request was
issued.
|
System action: |
Further messages will be issued indicating the success or otherwise of
the attempt to create the new subpool.
|
BPM0008 |
BP $1, Create failed status=$2 |
Explanation: |
An attempt to create a new buffer subpool for the $1 buffer pool
failed. $2 is the status indicating the reason for the failure. This status is
a hexadecimal representation of a return and feedback code with the first two
bytes representing the return code and the second two bytes the feedback code.
The possible values and their meanings are described in the explanation of
message BPM0005.
|
System action: |
The program which issued the 'get' request which resulted in an
attempt to create a subpool to satisfy the request will be notified that the
'get' failed.
|
BPM0009 |
BP $1 SP $2($3), $4 expansion(s) contracted |
Explanation: |
The subpool $2 id $3 in the buffer pool $1 was previously expanded due
to excessive demands on the space allocated in the base area. The fixed buffer
pool mananger has determined that enough space now exists to delete some of the
expansions. In this case, $4 indicates the number of expansions which have been
deleted and are no longer available to the subpool. They can of course be
allocated again in the future should they be required.
|
BPM0010 |
BP $1 SP $2($3), A=$4 token error '$5'/'$6' ret=$7 |
Explanation: |
An attempt was made to free a fixed buffer element from the buffer
pool $1. This was found to be in subpool $2 id $3 and was found to have been
gotten with a token provided on the 'get' request. On the free request either
no token was provided, or a token was provided which didn't match the token
provided on the 'get' request. The free request was issued from the location
indicated by $7. $5 is the token which was provided on the 'get' request and $6
is the token which was provided on this request. If either are blank, it
indicates that no token was provided for the appropriate request. $4 is the
address of the token which was the target of the free request.
|
System action: |
The buffer is not freed.
|
System programmer info: |
This indicates that there is an error in the handling of the $1 buffer
pool. When a buffer is gotten with a token specified, the free request must be
issued with the same token name before the free request will be processed.
Using the $6 address, the module and offset from which the request was issued
can be determined. When $1 is a Software AG created buffer pool, this should be
reported to your local support centre.
|
BPM0011 |
BP $1 SP $2($3), A=$4 chain error $5/$6 ret=$7 |
Explanation: |
A request has been issued to free fixed buffer element from the $1
buffer pool. The buffer has been found in subpool $2 id $3 and was found to
have been gotten with a chain specified. In this case, the free request has
been issued without a chain base specified or the buffer element was not found
on the chain provided. The request was issued from the location indicated by
$7. $5 is the address of the SPDS for the buffer pool element and $6 is the
address of the chain base provided on the free request. $4 is the address of
the buffer which was the target of the free request.
|
System action: |
The buffer is not freed.
|
System programmer info: |
When a buffer is gotten with a chain request, the fixed buffer pool
manager chains information for the gotten buffer into the provided chain. To
ensure that the system intergrity is maintained, the buffer must be removed
from this prior to it being freed. In this case either the free request did not
provide a chain base or the buffer does not exist in the provided chain and
therefore cannot be removed from the chain. This indicates that there is a
logic error in the use of the $1 buffer pool. Using the $6 address, the module
and offset from which the request was issued can be determined. When $1 is a
Software AG created buffer pool, this should be reported to your local support
centre.
|
BPM0012 |
BP $1, Subpool creation successful |
Explanation: |
This indicates that an attempt to create a new buffer subpool for
buffer pool $1 was successful. This will be preceeded by message '6' which will
indicate the size and attributes of the newly created subpool.
|
BPM0013 |
BP $1 SP $2($3), Expanded successfully |
Explanation: |
An attempt to expand subpool $2 id $3 in the $1 buffer pool was
successful. A preceeding message will have indicated the attributes of the
newly created subpool extension.
|
BPM0014 |
BP $1, Internal request returned status=$2 |
Explanation: |
An internal request was issued to perform a fixed buffer pool
management function for the $1 buffer pool. The request completed successfully,
however, the status information as indicated by $2 was returned. $2 is the hex
representation of a two byte return code and a two byte feedback code. The
first two bytes are the return code and should always be x'0004', while the
second two bytes are the feedback code. The request which was being issued will
have been indicated by a preceeding message.
|
System action: |
Processing continues. Normally a message will following indicating
that the indicated processing completed sucessfully.
|
System programmer info: |
This message should not normally be issued and indicates the
possibility of a logic error in the fixed buffer pool manager. Although no
direct problems are associated with this message, it should be reported to your
local support centre.
|
BPM0015 |
BP $1, Freeall request; Buffers already free ret=$2 |
Explanation: |
A FREEALL request has been issued for the $1 buffer pool to free a
group of buffers with certain attributes, however, this has resulted in a free
request for a buffer which has already been freed. The request was issued from
the address indicated by $2.
|
System action: |
The FREEALL request will be terminated, possibly resulting in buffers
being left allocated when they are no longer in use.
|
System programmer info: |
This indicates that a logic error exists in the handling of the $1
buffer pool. Using the $2 address, the module and offset from which the request
was issued can be determined. When this is a Software AG controlled buffer
pool, this should be reported to your local support centre.
|
BPM0016 |
BP $1 Allocated successfully |
Explanation: |
The buffer pool named $1 has been allocated successfully. One or more
fixed buffer pool number '6' messages will be subsequently issued describing
the various subpools created for this buffer pool.
|
BPM0017 |
BP $1 Deleted successfully |
Explanation: |
The buffer pool known as $1 has been successfully deleted.
|
BPM0018 |
BP $1 Request $2 Status=$3 |
Explanation: |
A $2 request for buffer pool $1 returned a status $3 to the caller.
The caller indicated that a message should be issued in the event of a status
for the request and this message is the result. The $3 status consists of a
halfword return code and halfword feedback code respectively. When the buffer
pool no longer exists, $1 will contain the string '$UNAVAIL'.
|
System action: |
The system will continue as normally as possible. This message will
generally only be issued when a program is not in a position to handle a
failure due to the nature of the module. For example, if the routine which
builds output messages cannot get a buffer, then it is unlikely that it will be
able to get a buffer to print a message about the fact that it cannot get a
buffer.
|
System programmer info: |
When this occurs for a Software AG created buffer pool, it should be
reported to your local support centre.
|