3.3.2 OHI Components as Web Service Client (outbound requests)
For external SOAP Web Services that are called from OHI Components applications the contracts are specified by Oracle. In order for the system to successfully connect to an external service, the contract must be implemented and the Web Service must be available.
3.3.2.1 Synchronous Message Processing
OHI Components applications execute synchronous calls to external services (outbound requests). The endpoint for the Web Services is specified as property in the application's properties file. The format of an endpoint property is ohi.<integration_point>.endpoint.request. For a synchronous request OHI Components applications expect an immediate response.
Other properties relevant for synchronous outbound requests are the following:
- ohi.ws.client.connectiontimeout: the timeout period that OHI Components
applications use to establish a connection to an external service. It is
specified in milliseconds; a value of 0 means never timeout, in that case OHI
Components applications will wait (indefinitely) until the connection is
established.
For example, a value of 6000 means that OHI Components applications will wait for 6000 milliseconds to establish a connection. If a connection is not established before that period expires, OHI Components applications will flag the service as being unavailable. The task for which the request needed to be send ends in an error state and can be retried / recovered from the "View Technical Errors" screen. - ohi.ws.client.readtimeout: once a connection is established and the request
is sent, this property specifies the timeout period OHI Components applications
will wait for the server to respond to the request. It is specified in
milliseconds; a value of 0 means never timeout, in that case OHI Components
applications will wait (indefinitely) until a response is received.
For example, a value of 6000 means that OHI Components applications will wait for a response for 6000 milliseconds after the connection was established. If a response is not received before that period expires, OHI Components applications will flag the service as being unavailable. The task for which the request needed to be send ends in an error state and can be retried / recovered from the "View Technical Errors" screen. - ohi.ws.client.retrytimeout: OHI Components applications keep track of the
state of external web services. In case a request to an external service fails
(either the connection times out or the response is not received before the
readtimeout expires) OHI Components applications register the service as being
unavailable. OHI Components applications will not attempt to send other requests
to the same service within the specified retrytimeout time frame (measured from
the moment the service failed for the first time).
If a service is registered as being unavailable,OHI Components applications send a notification to inform a system administrator so that appropriate action can be taken. Note: if a service is not available for a long time and the service is used with a high frequency, a low value for this property effectively means that OHI Components applications will send many notifications.
A value of 0 means that OHI Components applications attempt to send each request. If the external service is not available, that means that the time that is set for the ohi.ws.client.connectiontimeout property is lost for each attempt. On the other hand, if the value for this property is large and the volume of requests is high then many tasks will end up in an error state (and have to be retried / recovered from the "View Technical Errors" screen).
An example of a synchronous outbound web service is the Claim Event integration point.
3.3.2.2 Asynchronous Message Processing
OHI Components applications can also execute asynchronous calls to external services (outbound requests). As is the case for synchronous services, the endpoint for an asynchronous external Web Services is specified as property in the application's properties file. The format of an endpoint property is ohi.<integration_point>.endpoint.request.
In accordance with the WS-Addressing standard, for an asynchronous request OHI Components applications expect the external system to deliver the response to the OHI Components application endpoint for which the URL is given in the request using the same messageId.
For asynchronous requests, the ohi.ws.client.connectiontimeout and ohi.ws.client.retrytimeout properties apply.