We have an application that watches a Kafka topic and converts items on the topic to MQ messages to be processed by a mainframe. The product that watches the Kafka topic is "IBM sink port connector". The sink port connector is monitored by a Dx-APM java agent. The agent injects the CorrID into the message and 1 in ~100 messages are unable to be read by the mainframe because the first part of the <usr> folder is being overwritten. If the CorrID is shortened and the the message is put back on the queue it processes correctly.
Release : 23.1
Reducing introscope.agent.crossprocess.correlationid.maxlimit first to see if they can tune this setting to a size that can work around their MQ message corruption problem. By default, this agent property is set to 4096. If the correlation ID header is truncated due to exceeding this introscope.agent.crossprocess.correlationid.maxlimit, then the trace correlation may get compromised but it will at least ensure not triggering the MQ message corruption problem.
The agent property introscope.agent.crossprocess.compression should be already enabled with lzma by default and the corresponding default for introscope.agent.crossprocess.compression.minlimit is 1500.
Check these two settings as well. If the customer has to reduce introscope.agent.crossprocess.correlationid.maxlimit below 1500 to avoid the MQ message corruption problem, then they may also want to reduce introscope.agent.crossprocess.compression.minlimit to help ensure this functionality still being effective. If tuning all these agent properties still fails to mitigate the MQ message corruption problem, then the customer can try disabling correlation ID header insertion, e.g. com.wily.introscope.agent.mqheaderinsertion.enabled=false, as a tentative workaround attempt.
Passing in the Agent profile settings via an environment setting as well which works with containerized environments
Configure Environment Variables
You can pass a value using an environment variable.
Follow these steps:
Prefix the configuration property name with apmenv_. For example, apmenv_introscope.agent.acc.port makes an environment variable from the introscope.agent.acc.port property.
Provide the value. For example: apmenv_introscope.agent.acc.port=5555 configures the Java Agent port to be 5555.
- Using the -D java flag should work. Maybe the issue is where it was located on the line.