NCM capture of large device configuration (greater than 40000 lines) is truncated

book

Article ID: 211431

calendar_today

Updated On:

Products

CA Spectrum

Issue/Introduction

A NCM capture of a large configuration for a device may not complete and may result in the captured configuration being truncated.

 

The following error may be seen in the NCMSERV.OUT log file:

Mar 04, 2021 12:27:29 PM io.grpc.netty.NettyServerHandler onStreamError
WARNING: Stream Error
io.netty.handler.codec.http2.Http2Exception$StreamException: Stream closed before write could take place

 

SPC-OCC-10746: The operation failed. SPC-NCM-20007: Capture Running Script Returned Error [-99]: Received message larger than max (5254178 vs. 4194304).

 

I ran the Host Configuration debug from the console and got this:

Apr 13, 2021 13:54:51.472 (PoolThread-74: GlobalPool => CaptureAction.actionPerformed) (HOSTCONFIG) - HostConfig - Capture results: ModelActionResults: errorMsg: null, values: [Attribute: 0x1 = SPC-NCM-20007: Capture Running Script Returned Error [-99]:  Received message larger than max (5111090 vs. 4194304), Attribute: 0x2 = false, Attribute: 0x3 = 1, Attribute: 0x0 = 0, Attribute: 0x0 = 0, Attribute: 0x0 = 0, Attribute: 0x0 = 0]

Cause

The default max receive message size is 4MB, which is not large enough and causes the failure

 

 

 

Environment

Spectrum 10.4.2.2
DX NetOPs Spectrum 20.2.5

Resolution

This will be resolved in DX NetOps Spectrum 20.2.10 (aka 10.4.3.1) and above.  There is no fix for 20.2.7 (aka 10.4.3.0).

If you are running Spectrum 10.4.2.2 you can open a case with Broadcom support and request patch Spectrum 10.04.02.02.PTF_10.4.2.208

The fix will change the default Max Receive message size to 64MB.

Symptom:

NCM running configuration failed in the case of large configuration files.

 
Resolution:

NCM GRPC communication channel maximum receives message size set to default value 4MB. Changed the Receive message size to 64MB. (DE496405, 32582829 , 10.4.3.1)

Additional Information

 

You may need to also set the following in $SPECROOT/NCM/config.xml:

<diff-largefile type="java.lang.String">on</diff-largefile>
<jsch-read-datawait type="java.lang.Integer">8</jsch-read-datawait>
<jsch-read-datawait-mutipler type="java.lang.Integer">30</jsch-read-datawait-mutipler>

In case you should see any OutOfMemory errors when running the configration capture, set the following in $SPECROOT/lib/SDPM/partslist/NCMSERV.idb

ARGV;$SPECROOT/bin/JavaApps/bin/ncmservice<CSEXE> -Xms256M -Xmx8192M

Restart the ncmservice after making the above changes.