BMC Connector is not retrieving all CMDB items into SOI

Document ID : KB000122041
Last Modified Date : 30/11/2018
Show Technical Document Details
Issue:
The connector is not retrieving all CMDB items from BMC. You see the following messages in the logs: [2018-11-26 12:13:30] [CA:00051_Edidvwitsmap01:3814@EDIDVWSOIC02_BMC] INFO [com.ca.usm.ucf.bmcremedyatrium.ARSysOperationsHandler] - Into getInstanceObjectsBulk :BMC.CORE:BMC_SoftwareServer [2018-11-26 12:13:30] [CA:00051_Edidvwitsmap01:3814@EDIDVWSOIC02_BMC] ERROR [com.ca.usm.ucf.bmcremedyatrium.BMCAtriumRemedyASTThreadPoolExecutor] - Caught exception in execute : Task com.ca.usm.ucf.bmcremedyatrium.BMCDataReaderwithAST@28006269 rejected from java.util.concurrent.ThreadPoolExecutor@313cf003[Running, pool size = 20, active threads = 11, queued tasks = 1000, completed tasks = 255] java.util.concurrent.RejectedExecutionException: Task com.ca.usm.ucf.bmcremedyatrium.BMCDataReaderwithAST@28006269 rejected from java.util.concurrent.ThreadPoolExecutor@313cf003[Running, pool size = 20, active threads = 11, queued tasks = 1000, completed tasks = 255] at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.reject(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.execute(Unknown Source) at com.ca.usm.ucf.bmcremedyatrium.BMCAtriumRemedyASTThreadPoolExecutor.runTask(ARSysOperationsHandler.java:6613) at com.ca.usm.ucf.bmcremedyatrium.BMCAtriumRemedyASTThreadPoolExecutor.execute(ARSysOperationsHandler.java:6767) at com.ca.usm.ucf.bmcremedyatrium.ARSysOperationsHandler.getASTInstanceObjectsBulk(ARSysOperationsHandler.java:950) at com.ca.usm.ucf.bmcremedyatrium.ARSysOperationsHandler.getInstanceDataBulk(ARSysOperationsHandler.java:2355) at com.ca.usm.ucf.bmcremedyatrium.BMCRemedyAtrium.getCIs(BMCRemedyAtrium.java:355) at com.ca.usm.ucf.bmcremedyatrium.BMCRemedyAtrium.get(BMCRemedyAtrium.java:216) at com.ca.usm.ucf.bmcremedyatrium.BMCRemedyAtriumConnector.get(BMCRemedyAtriumConnector.java:260) at com.ca.ucf.container.ModuleWrapper.getEntities(ModuleWrapper.java:1209) at com.ca.ucf.container.ModuleWrapper.getEntities(ModuleWrapper.java:1194) at com.ca.ucf.container.ModuleWrapper.getEntitiesDefault(ModuleWrapper.java:1140) at com.ca.ucf.container.ModuleWrapper.get(ModuleWrapper.java:1113) at com.ca.ucf.local.LocalModuleProxy.get(LocalModuleProxy.java:303) at com.ca.sam.ifw.framework.Silo.GetCIs(Silo.java:813) at com.ca.soi.catalyst.SiloProxy.GetCIs(SiloProxy.java:72) at com.ca.sam.ifw.framework.Connector.launchItemDiscovery(Connector.java:1917) at com.ca.soi.catalyst.IFWProxy$5.run(IFWProxy.java:1223) and [2018-11-28 11:05:40] [BMC_ATTRIUM_SOI CORE--2141912560879618632] ERROR [com.ca.usm.ucf.bmcremedyatrium.BMCDataReader] - Caught exception in BMCDataReader::run() - ERROR (294): Requested number of entries exceeds maximum allowed.;
Environment:
SOI 4.2
SOI BMC connector 5.4.0
BMC 9.1
Cause:
In the BMC connector code we are using the ThreadPool where we specify the max size of the queue. If more tasks are added to the queue it would then throw the RejectedExecutionException.
Resolution:
The sizes are controlled in the \CATALYST_HOME\Catalyst\CatalystConnector\container\lib\BMC-Atrium-Connector\BMCRemedyAtriumRB.properties file. We increased the sizes of the following: #changed next value from 100 to 500 BLOCK_SIZE=500 AST_BLOCK_SIZE=1000 THREAD-POOL-SIZE=10 MAX-POOL-SIZE=20 KEEP-ALIVE-TIME-IN-SECONDS=60 #changed next value from 1000 to 2000 MAX-QUEUE-SIZE=2000 MAX-WAIT-TIME-IN-SECONDS=120