Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Parameter

Default

Description

name

mandatory

Name for the proxy target

targetServer

mandatory

Host name of the target server

requestTypeCategory

mandatory

Type of request that are processed by the target. The value controls the possible mechanisms that are available to dispatch the request to the matching pipelines.

Possible values are: SOAP and REST

requestURI

mandatory

Request URI that is used to detect that an incoming request on the workload proxy should be sent to this proxy target

Default Request Executor

JEAF Workload Proxy uses Apaches HTTP Client to communicate with the proxy targettargets. For each proxy target there is a separate request executor that has his own connection pool and circuit breaker, which can be configured using the parameters below.

maxIdleConnections

20

Maximum amount of idle connections in the connection pool

keepAliveDuration

60000

Keep alive duration for connection to proxy target (in milliseconds)

validateAfterInactivityDuration

10000

Parameter configures the time period in milliseconds after which a connection is validated before it is taken from the pool again.

maxRetries

1

Maximum amount of retries before a call to the proxy target is considered to be failed.

retryInterval

100

Interval in milliseconds after which the proxy target is called again in case that retries are configured.

responseTimeout

10000

Response timeout in milliseconds for calls to proxy target. Please be aware that this is a very sensitive parameter and needs to be fine-tuned for your purposes. the response timeout has a very strong influence on the behavior of your service to the outside world and also influences pipeline configuration values.

connectTimeout

10000

Timeout in milliseconds to establish connections to the proxy target. As connections are pooled this parameter should not have a too strong influence on the overall behavior. However please ensure that it fits to your environment.

JEAF Workload proxy also makes use of a so called circuit breaker for each proxy target. The parameters below can be used to configure it.

failureRateThreshold

30

Failure rate threshold (percent of requests) defines which amount of failed request must be exceeded due to technical problems that the circuit breaker opens and no further request will be sent to the proxy target.

Value must between 0 and 100.

durationInOpenState

1000

Duration in milliseconds that the circuit breaker stays open until request will be sent to the proxy target again.

The value must be zero or greater.

slowRequestDuration

10000

Configures the duration in milliseconds above which calls are considered as slow and increase the slow calls percentage.

The value must be zero or greater.

slowRequestRateThreshold

30

Configures the slow request threshold in percentage. The circuit breaker considers a call as slow when the call duration is greater than slowCallDuration. When the percentage of slow calls is equal to or greater than the threshold, the circuit breaker transitions to open and starts short-circuiting calls.

Value must between 0 and 100.

permittedCallsInHalfOpenState

5

Configures the number of permitted calls when the circuit breaker is half open.

The value must be zero or greater.

slidingWindowSizeSeconds

5

Configures the size of the sliding window in seconds which is used to record the outcome of calls when the circuit breaker is closed.

The value must be greater than 0.

Custom Request Executor

In addition to default request executors it is also possible to define custom request executors that are used for specific request types. This is especially useful in cases where different requests for the same proxy targets should have different timeouts as their response times vary much. For further details please also have a look on the example below.

customRequestExecutors

optional

For each custom request executor the same parameters can be defined as for the default request executor above

executorMappings

optional

In order to define which request executor should be used for which request it is possible to define an executorMapping where all request type keys are mapped to an executor. If no specific executor mapping is available for a request type the the default executor will be used.

Key Resolution Rules

When requests are received by JEAF Workload Proxy for a specific target then they are dispatched to a pipeline that is responsible to take care about its processing (or rejection).

Currently key resolution rules are only supported for SOAP requests. In case of REST, dispatching is only possible based on the URI.

In case of SOAP at least 1 key resolution rule is expected per proxy target.

requestKey

mandatory

Key for unique identification of a request type. This key will be used when dispatching requests to pipelines as pipelines are responsible for 1 or more request keys.

xpathExpression

optional

XPath expression that is used to evaluate if a request matches to this request key. If there is no XPath expression defined for a key resolution rule then this rule is the default rule.

...