If Component Integration Services has been enabled, a client can use one of two methods to request that Component Integration Services handle outbound RPC requests:
Configure Component Integration Services to handle outbound RPCs as the default for all clients by issuing:
sp_configure "cis rpc handling", 1
If you use this method to set the cis rpc handling configuration parameter, all new client connections inherit this behavior, and outbound RPC requests are handled by Component Integration Services. This is a server property inherited by all future connections. The client can, if necessary, revert back to the default Adaptive Server behavior by issuing the command:
set cis_rpc_handling off
Configure Component Integration Services to handle outbound RPCs for the current connection only by issuing:
set cis_rpc_handling on
This command enables cis rpc handling for the current thread only, and will not affect the behavior of other threads.
When cis rpc handling is enabled, outbound RPC requests are not routed through the Adaptive Server’s site handler. Instead, they are routed through Component Integration Services, which uses persistent Client-Library connections to handle the RPC request. Using this mechanism, Component Integration Services handles outbound RPCs as follows:
Determines whether the client already has a Client-Library connection to the server in which the RPC is intended. If not, establish one.
Sends the RPC to the remote server using Client-Library functions.
Relays the results from the remote server back to the client program that issued the RPC using Client-Library functions.
RPCs can be included within a user-defined transaction. In fact, all work performed by Component Integration Services on behalf of its client can be performed within a single connection context. This allows RPCs to be included in a transaction’s unit of work, and the work performed by the RPC can be committed or rolled back with the other work performed within the transaction. This transactional RPC capability is supported only when release 10.0 or later Servers or DirectConnect servers are involved.
The side effects of using Component Integration Services to handle outbound RPC requests are as follows:
Client-Library connections are persistent so that subsequent RPC requests can use the same connection to the remote server. This can result in substantial RPC performance improvements, since the connect and disconnect logic is bypassed for all but the first RPC.
Work performed by an RPC can be included in a transaction, and is committed or rolled back with the rest of the work performed by the transaction. This transactional RPC behavior is currently supported only when the server receiving the RPC is another Adaptive Server or a DirectConnect which supports transactional RPCs.
Connect requests appear to a remote server as ordinary client connections. The remote server cannot distinguish the connection from a normal application’s connection. This affects the remote server management capabilities of an Adaptive Server, since no verification is performed against sysremotelogins, and all connections must have valid Adaptive Server login accounts established prior to the connect request (trusted mode cannot be used in this case). .