Why BWCE app running into Error: Could not find or load main class bw.engine.enable.memory.saving.mode=true?

Why BWCE app running into Error: Could not find or load main class bw.engine.enable.memory.saving.mode=true?

book

Article ID: KB0076659

calendar_today

Updated On:

Products Versions
TIBCO BusinessWorks Container Edition 2.5.x

Description

In laterst version of BWCE (2.5.0) a new feature has been introduced for memory management which was available in BW 5.x series.

Memory Saving Mode:
All activity output variables in a running process instance are stored in a memory, and hence consume memory. Memory saving mode allows memory used by an activity output variable to be released when the value of the variable is no longer needed.

In a memory saving mode, as each activity is executed, the list of activity output variables is continuously evaluated to determine if subsequent activities in the process refer to the specific activity output variable. If no activities refer to the activity output variable, the memory used by it is released.

Memory saving mode can reduce the memory used by actively running process instances, as well as potentially improve the performance of checkpoints. By default, memory saving mode is disabled. This property, when set to true, enables usage of memory saving mode, which frees activity output variables once they are no longer needed. The default value is false.

Memory saving is enabled at design-time and run-time both.

Issue/Introduction

BWCE application is failing with below exception +++++ xxxx@xxxxx-u52:~$ docker run -i -e "BW_JAVA_OPTS"="bw.engine.enable.memory.saving.mode=true" -e "BW_LOGLEVEL"="DEBUG" jms-local-app:250 The loglevel is set to DEBUG level BW_PROFILE is set to 'default.substvar' Appended ADDONS_HOME/lib in bwappnode.tra file Appended ADDONS_HOME/lib in bwappnode file Appended -Xmx1024M -Xms128M bw.engine.enable.memory.saving.mode=true to java.extend.properties Substituting Profile values for BWCE Application [JmsLocalTransaction-test.application] Error: Could not find or load main class bw.engine.enable.memory.saving.mode=tru +++++

Environment

Docker, Kubernetes cluster

Resolution

When you're using this property as runtime, the property must add in the 'BW_JAVA_OPTS' environment variable.
The syntax is: "BW_JAVA_OPTS"="-Dname=value"

Ex.:
"BW_JAVA_OPTS"="-Dbw.engine.enable.memory.saving.mode=true"

If you miss the parameter '-D' then you'll be getting above mentioned error in docker container/kubernetes cluster or any platform.

The solution is to use '-D' before property as it will be passed to java extended properties.

[NOTE: This solution will be applicable to all the java extended properties passed to BWCE application]

Additional Information

Memory Saving Mode: https://docs.tibco.com/pub/bwce/2.5.0/doc/html/GUID-1D66A2F7-E9C3-40F0-B486-1842EEAE2776.html
Environment Variables: https://docs.tibco.com/pub/bwce/2.5.0/doc/html/GUID-CEDBB9EC-5123-4757-9732-EC15CFBE119C.html