How to configure BE engine to process for large Kafka payloads

How to configure BE engine to process for large Kafka payloads

book

Article ID: KB0071703

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition 5.6.1, 6.0.0, 6.1.0, 6.1.1, 6.2.0, 6.2.1, 6.2.2

Description

Sometimes BE engines might need to send a large Kafka payload or receive a large payload from an external application, in such cases we might run into error below:

com.tibco.cep.runtime.model.exception.impl.BEExceptionImpl: java.lang.StackOverflowError: <no message>
    at jdk.internal.reflect.GeneratedConstructorAccessor134.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.tibco.be.functions.object.JSONConceptInstance.a(SourceFile:443)...

Issue/Introduction

This article shows how to configure BE when a large Kafka payload is being sent to BE

Environment

All Supported Platforms

Resolution

To solve this stack overflow error we need to increase the JVM stack size in the be-engine.tra file, it should be at least greater than the payload size. We can also multiply by a factor of 5 or 10 the original stack size setting depending on the machine resources. For this example it was used a payload greater than 4 MB and the stack size -Xss was set to 20 MB as shown below:
 
java.extended.properties=-server -Xms1024m -Xmx1024m -Xss20m -javaagent:C:/tibco561/be/5.6/lib/cep-base.jar -XX:MaxMetaspaceSize=256m