How to Increase the maxFrameSize in the Data Collector
search cancel

How to Increase the maxFrameSize in the Data Collector

book

Article ID: 46654

calendar_today

Updated On:

Products

CA Performance Management Network Observability

Issue/Introduction

DX NetOps Performance Management Data Collector (DC) doesn't run.

Data Collector seems to be running but according to System Health Dashboards the DC is flatlined and is not polling any data.

Data Collector not showing new polled data.

Data Collector fails to stay running after being restarted.

Data Collector dcmd service fails to stay running.

In the DC's (default path) /opt/IMDataCollector/apache-karaf-<version>/data/log/karaf.log file the following errors will be present.

Older releases may show:

java.io.IOException: Frame size of 169 MB larger than max allowed 100 MB 
at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)[162:org.apache.activemq.activemq-osgi:5.13.1] 
at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:240)[162:org.apache.activemq.activemq-osgi:5.13.1] 
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:232)[162:org.apache.activemq.activemq-osgi:5.13.1] 
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)[162:org.apache.activemq.activemq-osgi:5.13.1] 
at java.lang.Thread.run(Thread.java:745)[:1.8.0_72] 
<DATE><TIME> | INFO | ActiveMQ Task-2 | FailoverTransport | sport.failover.FailoverTransport 1077 | 162 - org.apache.activemq.activemq-osgi - 5.13.1 | | Successfully reconnected to tcp://127.0.0.1:61616

Newer releases may show:

2022-02-23 15:34:40,863 | INFO  | ActiveMQ Task-2  | FailoverTransport                | sport.failover.FailoverTransport 1054 | 165 - org.apache.activemq.activemq-osgi - 5.15.8 |  | Successfully reconnected to tcp://127.0.0.1:61616
2022-02-23 15:34:40,866 | WARN  | .0.1:61616@55678 | FailoverTransport                | sport.failover.FailoverTransport  280 | 165 - org.apache.activemq.activemq-osgi - 5.15.8 |  | Transport (tcp://127.0.0.1:61616) failed , attempting to automatically reconnect: java.io.IOException: Frame size of 137 MB larger than max allowed 100 MB

Environment

All supported DX NetOps Performance Management Data Collector releases

Resolution

To resolve this we'll need to increase the maxFrameSize configuration to a value higher than the highest value reported by the log messages.

  1. Open a terminal on the Data Collector server.
  2. Stop the dcmd and activemq services using:
    1. systemctl stop dcmd
    2. systemctl start activemq
  3. Go to the (default path) /opt/IMDataCollector/broker/apache-activemq-<version>/conf directory.
  4. Open the activemq.xml file for editing.
  5. Find the <transportConnector> section that stores the maxFrameSize configuration value.
  6. Edit the maxFramSize value to one larger than the largest called out in the log messages.
    • This is calculated from MB to Bytes using:
      • MB*1024*1024=byesAllowed
    • Default is 100. The value derived and set is calculate as:
      • 100*1024*1024=104857600
    • Using the 137 value seen in the sample messages above we get the new value:
      • 137*1024*1024=143654912
    • Set the new value and save the changes to the activemq.xml file
  7. Go to the (default path) /opt/IMDataCollector/scripts directory and run:
    • ./dcmd clean
  8. Restart the DC dcmd and activemq services using the command:
    • systemctl start dcmd
  9. Confirm the services are up using this command. The dcmd restart should restart activemq for us.
    • systemctl status dcmd activemq

The dcmd DC service should now remain running, connect to the DA and begin polling it's managed devices.

Additional Information

Is there any downside to increasing the maxFrameSize?

When increasing maxFramSize speculation suggests that it would use more memory for a messages in AMQ, and possibly take a little (micro or milli seconds) longer to send the message to the DA. The collection of java memory garbage collection may come into play, as the DC will need a bigger block of memory to store the messages, and will then garbage collect it later. Best not to go bigger than 250 MB in total.