Make the BeanShell interpreter pool configurable

Description

The Calculated Custom Fields use a pool of BeanShell interpreters in order to avoid recreating them on every invocation. Unfortunately, this pool is currently hardcoded for a maximum of 24 interpreters. It should instead be configurable, for use on systems with lots of cores and/or recursive calculated field formulas.

Parameters should be passed as Java System Properties, using -D<property-name>=<value> entries in the JVM_SUPPORT_RECOMMENDED_ARGS variable of setenv.bat/.sh. Available parameters:

Param name

Value

jmcf.maxActive

Maximum number of active Interpreters at a given time. Default value: 48

jmcf.maxIdle

Maximum number of idle Interpreters. Default value: jmcf.maxActive

jmcf.maxWait

Number of milliseconds to wait for an Interpreter to become available. Default value: 20,000 (20 seconds)

This is mostly useful if you run into a deadlock during re-indexing, where all threads are locked in a similar manner:

Environment

None

Customer Info

None

Assignee

Unassigned

Reporter

David Fischer [Innovalog]

Labels

None

Internal Complexity

Unknown

Internal Value

Unknown

Requires documentation

None

Impact

None

Fix versions

Priority

Major
Configure