Versions Compared

Key

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

...

Configuration of JEAF Workload Proxy basically consists of the following YAML configuration files:

  • Proxy Configuration
    The so called proxy configuration contains all the configuration parameters for the proxy itself as well as the configuration of the proxy targets

  • Pipeline Configuration
    The pipeline configuration defines the several pipelines that are used for request dispatching.

...

Parameter

Default

Description

Settings for Workload Container

The JEAF Workload Proxy Server consists of 2 containers. One to process “normal” workload request the other one is the management container. The following parameters are specific to the workload container.

port

8090

Port that is used to server requests by the so called workload container. The workload container is used to server all kinds of non-management requests.

minThreads

10

Minimum amount of threads that are used by the workload container.

maxThreads

50

Maximum amount of threads that are used by the workload container.

enableREST

true

Enables the REST interface so that REST service can be used.

enableWebServlets

true

Enables the servlet interface so that Web servlets can be used.

contextPath

/*

Context path of the workload container.

restPath

/rest/*

Root path under which REST resources will be available.

Settings for Management Container

The JEAF Workload Proxy Server consists of 2 containers. One to process “normal” workload request the other one is the management container. The following parameters are specific to the management container.

enableManagementInterface

true

Enables management interface.

managementPort

8091

Port under which the management interface is accessible.

minManagementThreads

1

Minimum amount of threads that are used for requests to the management interface. Depending on the used Java Runtime Environment it may happen that you need to increase minimum amount of management threads. In this case an exception will occur during startup.

maxManagementThreads

8

Maximum amount of threads that are used for requests to the management interface.

managementPath

/*

Context path under which the management interface will be available.

Common Settings for Proxy Server

Some of the parameters below are very similar to those of pipelines. so please be aware that here we are talking about the configuration of the proxy server itself and not of its pipelines. In general the resource requirements of the proxy server itself are rather low.

threadIdleTimeout

300000

Idle time after which a thread will be stopped and removed from pool. Timeout is defined in milliseconds.

initialQueueSize

100

Initial size of queue that is used to store requests until they are dispatched to the matching pipelines.

maxQueueSize

0

Maximum size of queue that is used to store requested until they are really processed.

  • 0 means that the initial size is also the maximum

  • -1 means that queue is unlimited. It strong recommended to not use this as it might crash the whole server in case of high loads or DoS attacks.

queueGrowSize

100

Size of which the request queue should be increased until the maximum is reached.

inputBufferSize

8192

Size of input buffer in bytes that is used when request data is read.

outputBufferSize

32768

Size of output buffer in bytes that is used when response data is written.

httpIOIdleTimeout

30000

HTTP I/O timeout of the HTTP connector. This timeout comes into play if a client does not consume further response data for a certain amount of time.

sendServerVersion

false

Enables sending the server version as a response header field. It's recommended to not enable this info for security reasons. By default information about server version is not send in response header for security reasons.

sendXPoweredBy

false

Enables sending the server version as a response header field. It's recommended to not enable this info for security reasons. By default information about server version is not send in response header for security reasons.

gracefulShutdown

true

Enables graceful shutdown behavior. Graceful shutdown means that request that are already processed will be finished but new ones will not be accepted.

gracefulShutdownTimeout

30000

Timeout for graceful shutdown. If this timeout is exceeded then running threads will be killed.

stopServerOnError

true

Defines if server should be stopped when a java.lang.Error occurs.

traceUncaughtErrors

true

Defines if uncaught java.lang.Error should be traced.

stopServerOnRuntimeException

false

Defines if server should be stopped when a java.lang.RuntimeException occurs.

traceUncaughtRuntimeExceptions

false

Defines if uncaught java.lang.RuntimeException should be traced.

enableJMX

false

Defines if JMX should be enabled or not. By default JMX is disabled to prevent security issues. By default JMX is disabled for security reasons.

Byte Buffer Pool Configuration

JEAF Workload Proxy has a set pools where byte buffers are cached. These byte buffers are used to store incoming requests during processing. Each byte buffer pool will have a set of byte buffers with a specific size. You can define the minimum and maximum size of the byte buffers. For minBufferSize, maxBufferSize and all multiples of 2 in between an own pool will be created.

Working with byte buffer pools has the advantage that less garbage will be produced. The buffer sizes and the size of each pool has to be configured according to the behavior of your services.

poolSize

20

Size of each pool with byte buffers.

minBufferSize

128

Size of the smallest byte buffers.

maxBufferSize

16k

Size of the largest byte buffers (default 16k bytes). Larger byte buffers will not be pooled.

Pipeline Configuration

The actual pipeline configurations are stored in another YAML configuration file.

pipelineConfigurationFile

mandatory no default

Location of configuration file that contains the pipeline definitions. Path can either be absolute or relative to this file.

Proxy Target Configuration

The following configuration parameters are used to configure all the proxy targets. Of course its possible to define multiple proxy targets here

name

mandatory

Name for the proxy target

targetServer

mandatory

URL 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

Example

Pipeline Configuration Parameters

...