After upgrading Spectrum NCM is experiencing issues:
SPC-OCC-10747: Error capturing configuration for host: NCM configuration difference failed to complete because required resources could not be allocated. Please see $SPECROOT/NCM/NCMSERV.OUT for detailed information.
Next knowledge document has been implemented, without success:
https://knowledge.broadcom.com/external/article/212630/ncmserv-cannot-allocate-resources-faile.html
To workaround the problem it is needed to restart the NCM Process via processd, which is time consuming
Here is an Output from the NCMSERV.OUT as it happens.
################################
Feb 02, 2022 14:32:46.828 -
Failed to allocate array: 41003 x 40989 process memory currently set to: 3641M. To increase memory adjust value of -Xmx parameter in: $SPECROOT/lib/SDPM/partslist/NCMSERV.idb, 'processd' will need to be restarted after making this change.
at com.aprisma.spectrum.scmd.NCMFileDifference.getDiffResultsImpl(NCMFileDifference.java:372)
at com.aprisma.spectrum.scmd.NCMFileDifference.getDiffResults(NCMFileDifference.java:200)
at com.aprisma.spectrum.scmd.ScmServiceImpl.diff(ScmServiceImpl.java:2837)
at com.aprisma.spectrum.scmd.ScmServiceImpl.diff(ScmServiceImpl.java:2764)
at com.grpc.SpectrumCMGRPC.NCMServiceGrpc$MethodHandlers.invoke(NCMServiceGrpc.java:1178)
at io.grpc.stub.ServerCalls$1$1.onHalfClose(ServerCalls.java:148)
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:267)
at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$2.runInContext(ServerImpl.java:573)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:117)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
################################
Release : 21.2.x, 22,2,x
Component : Spectrum Applications
The upgrade installer revert some configuration files, like $SPECROOT/NCM/config.xml, to its default values.
There is a configuration entry in this file to allow the diffs and large captures. By default this value is set to off, which might cause the behavior reported in this knowledge document.
<diff-largefile type = "java.lang.String" >off</diff-largefile>
1. Edit the file $SPECROOT/NCM/config.xml
2. Change this entry from:
<diff-largefile type = "java.lang.String" >off</diff-largefile>
to
<diff-largefile type = "java.lang.String" >on</diff-largefile>
3. Kill the NCMService process. Processd will automatically start it back up