TS/MP 2.5 Pathsend and Server Programming Manual
NOTE:
• If a PATHMON is configured under multiple Pathway domains, then the Pathsends issued with
that PATHMON name in the Pathsend API are treated as a domain send for the Pathway
domain, which is configured last in the ACSCTL file having that PATHMON as a member. If
you want the Pathsend request to be served by a particular Pathway domain, then you must
use the Pathway domain name in the Pathsend APIs.
• For more information about TS/MP 2.5 and later versions, see the TS/MP 2.5 Release
Supplement Manual.
Retaining Concurrent Sends Limit
The Pathsend procedures use the process file segment (PFS) of the caller to store the requests and
reply messages. The maximum PFS size is 32 MB. If each request and reply message is 32 KB in
size, the current limit of 255 concurrent outstanding SERVERCLASS_SEND_,
SERVERCLASS_DIALOG_BEGIN_, or SERVERCLASS_DIALOG_SEND_ (referred as Small Pathsend
procedures hereafter) calls can be achieved by a requestor, because 32 KB size limit requires
only 16320 KB of PFS memory (calculated as 255 x (32 KB of request + 32 KB of reply)).
However, if the requestor uses the SERVERCLASS_SENDL_, SERVERCLASS_DIALOG_BEGINL_, or
SERVERCLASS_DIALOG_SENDL_ (referred as Large Pathsend procedures hereafter) calls and each
of the request and reply messages are 2 MB in size, approximately 1020 MB of memory (255 x
(2 MB + 2 MB)) is required to achieve the 255 concurrent outstanding sends. The file system uses
some part of the PFS memory to hold important process data; the Large Pathsend procedures cannot
exhaust all of the PFS memory. Therefore, you can achieve only up to seven ((32 MB / (2 MB +
2 MB)) – 1) concurrent sends, or up to 15 concurrent outstanding sends if all the requests and
replies are 1 MB in size.
If your application request and reply messages are larger than 32 KB and the requestor is performing
up to 255 concurrent sends, use the following guidelines to overcome the PFS memory limitation:
1. Define the read and write buffers with size in multiples of 16 KB.
2. Call the USERIOBUFFER_ALLOW_ Guardian Procedure Call (GPC) before making any Large
Pathsend procedure calls.
3. Allocate the extended data segments using the SEGMENT_ALLOCATE_ procedure. More than
one segment might be required, depending on the maximum number of concurrent sends and
the total size of the memory required by the application.
4. Define memory pools for the allocated extended data segments.
5. Use the POOL_GETSPACE_PAGE_ procedure to obtain a block of memory, which will be
used as the read or write buffer.
6. When the Large Pathsend operation is complete, use the POOL_PUTSPACE_ procedure to
return the memory to the pools.
Applications configured using the above guidelines can have 255 concurrent sends, even when
the read and write messages are 2 MB in size.
NOTE:
• For an OSS program, running under 64-bit environment, and calling the APIs
SERVERCLASS_SENDL64_, SERVERCLASS_DIALOG_BEGINL64_, or
SERVERCLASS_DIALOG_SENDL64_, the calls SEGMENT_ALLOCATE_,
POOL_GETSPACE_PAGE_ and POOL_PUTSPACE_ needs to be replaced with
SEGMENT_ALLOCATE64_, POOL64_GETSPACE_PAGE_ and POOL64_PUTSPACE_
respectively.
• User buffers are used by default on J-series systems.
114 Pathsend Procedure Call Reference










