Configuring the runtime adapter properties

The following properties must be configured for the IBM Sterling Fulfillment Optimizer with Watson runtime adapter to correctly transfer order data from your order management system to Fulfillment Optimizer.

Note: Contact your IBM Representative to get the credentials for configuring the properties of runtime adapter.
  1. Extract the runtime adapter that you downloaded from Fix Central.
  2. Check whether the existing location is /<location>/otmz.webclient.properties.
  3. Back up the existing file.
  4. Edit the otmz.webclient.properties file as outlined below.
Table 1. Properties in the otmz.webclient.properties file for version 23.4
Property Value Description
Tenant details
optimizer.tenant.id Tenant ID is given to you by your IBM representative. Each customer has an individual tenant ID. To obtain the tenant ID for Optimizer service tenant Id, contact your IBM representative.
com.ibm.commerce.oauth.client_id Client ID is the username that is given to you by your IBM representative.  clientid for oauth2
com.ibm.commerce.oauth.client_secret Client secret is the password that is given to you by your IBM representative. Secret for oauth2
URLs and endpoints
optimizer.service.uri https://api.watsoncommerce.ibm.com/optimizer/ Do not edit.
optimizer.service.endpoint /v2/order/optimization Do not edit.
rank.service.endpoint /v1/order/nodes/rank Do not edit.
HTTP connection properties
Tip: Default values can be used, or modified based on requirements.
otmz.http.conn.pool.max.size The default value for the maximum connection pool size is 50 but can be tested for each instance for performance and set to any number. The connection pool property maintains a pool of connections and can process connection requests from multiple execution threads. The runtime adapter initiates an internal HTTP pool and it calls the service.
otmz.http.conn.pool.max.size.perRoute The default value for this property is 40 but can be tested for each instance and set to another number.  The connection pool maintains a maximum limit of connections per route. If a request is created, and a new request of the same type is received, the connection pool uses the existing connection rather than creating a new connection. 
otmz.http.conn.timeout.ms By default, the value for this property is set to 5000. Sets the time (in milliseconds) limit after which the HTTP request times out.
otmz.http.conn.pool.request.timeout.ms By default, the value for this property is set to 5000. Sets the time (in milliseconds) limit after which the request for connection from the connection pool times out.
Circuit Breaker
Tip: Default values can be used, or modified based on requirements.
otmz.useCircuitBreaker Y Enables circuit breaker
otmz.circuit.slidingWindowSize The default value for this property is set to 100 but can be tested for each instance and set to another number.  Configures the size of the sliding window, which is used to record the outcome of calls when the CircuitBreaker is closed.
otmz.circuit.requestVolumeThreshold The default value for this property is set to 50 but can be tested for each instance and set to another number.  Configures the minimum number of calls, which are required per sliding window period before the CircuitBreaker can calculate the error rate or slow call rate.
otmz.circuit.requestHalfOpenStateThreshold The default value for this property is set to 10 but can be tested for each instance and set to another number. Configures the number of permitted calls when the CircuitBreaker is half open.
otmz.circuit.errorPercentage The default value for this property is set to 50 but can be tested for each instance and set to another number. 

Configures the failure rate threshold in percentage.

When the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls.

otmz.circuit.slowRate The default value for this property is set to 100 but can be tested for each instance and set to another number. 

Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than otmz.circuit.slowDuration.ms.

When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker transitions to open and starts short-circuiting calls.

otmz.circuit.slowDuration.ms The default value for this property is set to 5000 but can be tested for each instance and set to another number.  Configures the duration threshold above which calls are considered as slow and increase the rate of slow calls.
otmz.circuit.waitOpenDuration.ms The default value for this property is set to 5000 but can be tested for each instance and set to another number.  The time that the CircuitBreaker should wait before transitioning from open to half-open.
otmz.circuit.durationHalfOpenState.ms The default value for this property is set to 100 but can be tested for each instance and set to another number.  Configures a maximum wait duration, which controls the longest amount of time a CircuitBreaker might stay in half-open state before it switches to open.