Networking Services Library Functions rpccontrol(3NSL)
NAME
rpccontrol - library routine for manipulating global RPC
attributes for client and server applications
SYNOPSIS
boolt rpccontrol(int op, void *info);
DESCRIPTION
This RPC library routine allows applications to set and
modify global RPC attributes that apply to clients as well
as servers. At present, it supports only server side opera-
tions. This function allows applications to set and modify
global attributes that apply to client as well as server
functions. op indicates the type of operation, and info is a
pointer to the operation specific information. The supported
values of op and their argument types, and what they do are:
RPCSVCMTMODESET int * set multithread mode
RPCSVCMTMODEGET int * get multithread mode
RPCSVCTHRMAXSET int * set maximum number of threads
RPCSVCTHRMAXGET int * get maximum number of threads
RPCSVCTHRTOTALGET int * get number of active threads
RPCSVCTHRCREATESGET int * get number of threads created
RPCSVCTHRERORSGET int * get number of thread create errors
RPCSVCUSEPOLFD int * set number of file descriptors to unlimited
RPCSVCONMAXRECSET int * set non-blocking max rec size
RPCSVCONMAXRECGET int * get non-blocking max rec size
There are three multithread (MT) modes. These are:
RPCSVCMTNONE Single threaded mode (default)
RPCSVCMTAUTO Automatic MT mode
RPCSVCMTUSER User MT mode
Unless the application sets the Automatic or User MT modes,
it will stay in the default (single threaded) mode. See the
Network Interfaces Programmer's Guide for the meanings of
these modes and programming examples. Once a mode is set,
it cannot be changed.
By default, the maximum number of threads that the server
will create at any time is 16. This allows the service
developer to put a bound on thread resources consumed by a
server. If a server needs to process more than 16 client
requests concurrently, the maximum number of threads must be
set to the desired number. This parameter may be set at any
SunOS 5.11 Last change: 24 Feb 1999 1
Networking Services Library Functions rpccontrol(3NSL)
time by the server.
Set and get operations will succeed even in modes where the
operations don't apply. For example, you can set the max-
imum number of threads in any mode, even though it makes
sense only for the Automatic MT mode. All of the get opera-
tions except RPCSVCMTMODEGET apply only to the Automatic
MT mode, so values returned in other modes may be undefined.
By default, RPC servers are limited to a maximum of 1024
file descriptors or connections due to limitations in the
historical interfaces svcfdset(3NSL) and
svcgetreqset(3NSL). Applications written to use the pre-
ferred interfaces of svcpollfd(3NSL) and
svcgetreqpoll(3NSL) can use an unlimited number of file
descriptors. Setting info to point to a non-zero integer and
op to RPCSVCUSEPOLFD removes the limitation.
Connection oriented RPC transports read RPC requests in
blocking mode by default. Thus, they may be adversely
affected by network delays and broken clients.
RPCSVCONMAXRECSET enables non-blocking mode and estab-
lishes the maximum record size (in bytes) for RPC requests;
RPC responses are not affected. Buffer space is allocated as
needed up to the specified maximum, starting at the maximum
or RPCMAXDATASIZE, whichever is smaller.
The value established by RPCSVCONMAXRECSET is used when
a connection is created, and it remains in effect for that
connection until it is closed. To change the value for
existing connections on a per-connection basis, see
svccontrol(3NSL).
RPCSVCONMAXRECGET retrieves the current maximum record
size. A zero value means that no maximum is in effect, and
that the connections are in blocking mode.
info is a pointer to an argument of type int. Non-connection
RPC transports ignore RPCSVCONMAXRECSET and
RPCSVCONMAXRECGET.
RETURN VALUES
This routine returns TRUE if the operation was successful
and returnsFALSE otherwise.
SunOS 5.11 Last change: 24 Feb 1999 2
Networking Services Library Functions rpccontrol(3NSL)
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
MT-Level MT-Safe
SEE ALSO
rpcbind(1M), rpc(3NSL), rpcsvccalls(3NSL), attributes(5)
Network Interfaces Programmer's Guide
SunOS 5.11 Last change: 24 Feb 1999 3
|