The Server Request Broker and Server Request Processor are two vital components for managing requests for component execution on the Siebel servers. These pre-defined components provided in Siebel are used to handle the requests on Siebel servers effectively by using optimum strategies of load balancing on both single and multi-server deployments.
Request is a task that is processed by batch mode components in the Siebel server. SRBroker and SRProc are responsible to route requests from its requestor to its target.
Server Request Broker (also known as SRBroker or SRB):
SRBroker is the main part in this request mechanism. It handles and routes the request to its target component based on the routing information in the request. Every SRBroker process will cache information from the Siebel Gateway Name Server and know which component is enabled on which Siebel server. They also cache information from the shared memory and know which component is running on the local Siebel server
Server Request Processor (also known as SRProc or SRP):
SRProc is used to process server requests that are stored in the Siebel database for various reasons, mostly asynchronous server requests. SRProc has connection information to the Siebel database to store and pick up requests from the S_SRM_REQUEST table. SRProc process only communicates with the SRBroker running on the same Siebel server.
Request Type: There are primarily two different types of server requests:
- Synchronous:The requests are sent to its target component as soon as possible and its requestor will wait for the response.
- Asynchronous:The requests are sent to its target component as soon as possible, but its requestor will not wait for the response. Furthermore, the requestor does not expect any response at all or trigger a callback upon getting a response.
- In the Asynchronous mode, you can specify a request to be scheduled at a later time by using the Scheduled Start Date parameter while submitting the request.
Request Routing Logic
By default, if the target component resides on the same server as the requestor, SRB will always route the request to the instance of the component running on the same server. SRB will never route request to other servers if the target component is running on the local server.
If the target component is not running on the same server, SRB will route the request to the other Siebel servers running the target component. If there are multiple Siebel servers running the target component, SRB will route successive requests to different Siebel servers in a round robin fashion.