I have a little bug, we recently created a new environment and the HardWare inventory doesn't seem to be filling up as previously.
In CA 12.5 :
In the new CA 14 sp2:
The two differences I could see in the collect task was that in 12.5 there was only one hardware collect task while in 14 the task has been split and the Performance Inventory has been disabled in 14.
What did we do wrong ?
Judging from the screenshot, it looks like the agent has only reported a small DELTA inventory to the new domain manager, and has not reported a FULL inventory, as expected. We can observe this because Network and FileSystem inventory are really the only two items reports. These two categories in particular will be reported with EACH delta inventory, as I believe DHCP lease times and file system free space are always changing from report to report.
Anyway, it may take another run of the AM agent inventory, to release the agent has changed Domain Manager and/or scalability server.
Please share more details:
- As the agent is migrated from an ITCM r12.5 GA domain manager, is the agent version also r12.5 GA?
- Is the agent reporting to an external SS, or directly at the DM?
- Was the SS moved from the 12.5 environment, to the new environment?
- Has the SS version been upgraded at all?
In a pinch, if you needed the agent to report a FULL inventory, you could run an Asset Job Check from DSM Explorer, and be sure to check the "Collect" option" to report the full inventory. Alternatively, you can run this from the agent command line: "caf start amagent args -rescan_inventory -rescan_software -collect"
There's no migration from 12.5, we have decided to start anew.
So the 12.5 agents were killed and deleted.
DM and SS are new server made in 14 sp2
The inventory scan has been running for over a month.
Got it-- fresh DM and SS, and some procedure was run to remove the 12.5 agent, and install a fresh r14 SP2 agent.
Doesn't matter that it has been a month now-- if the agents have not reported a FULL inventory, they aren't suddenly going to start.
Right now the product has no intelligence to detect a mismatch between agent-side inventory, and what is stored in the database. Once they are out of sync, they will remain that way until a full inventory is requested.
This has been a long-time problem I have raised with ITCM development over the years, and only recently in r14 SP2, did they add a mechanism to mitigate it:
The default value of this policy is 0, which means it is OFF. This policy basically says, after X number of executions of the AM agent, it will report a FULL inventory, versus sending a delta.
Keep in mind size and scale of your environment, as it may be perfectly fine to set a low number in a lab environment, but in a PROD environment, you cannot have all agents sending a full inventory too often.
I recommend you set a value of 100. This way, every 100 executions, the AM agent sends a FULL inventory to the DM. Recall the AM agent is scheduled and event based, so it will execute multiple times daily.
Schedule based: By the CAF scheduler. The AM agent will run with the Registration Refresh policy, as well as the Run the UAM agent policy. Thus out of the box, not considering any events, the AM agent will run two times.
Event based: The AM agent will run upon system reboot, user login or network address change.
So you need to do two things:
1- Recommend you set this policy at some distant value, e.g. 100. Thus going forward the agents are periodically sending a FULL inventory.
2- Create a software package with "caf start amagent args -rescan_inventory -collect", in order to prompt agents in the near-term to resend a full inventory, and re-populate the database. The reason for a software package is so you can track who you've sent it to, and who you haven't.
it's weird! After I've launch the command on three computers (caf start amagent args -rescan_inventory -collect), I've lost everything on those computer...
On other computer (Those are two windows 10 Pro 1803 french ):
Very strange. It's like the engine removed the agent inventory, after receiving the full collect, but then failed to merge/insert all the new inventory.
What version of ITCM are you running?
And are you running MS SQL or Oracle as the database?
Also, what is the output of this command?
ccnfcmda -cmd getparametervalue -ps itrm/manager/engine/ -pn DoUpdateInsert
I'm expecting a ~parameter not found~ type error. I just need to make sure that doesn't come back with a '1'.
Disregard the question about version-- r14 SP2
Just let me know about the parameter, and if you are running Oracle at all.
We need to narrow if this is an engine issue with merging inventory, or an agent issue with sending the inventory. Ideally you should open up a support case. We would be interested in a DETAIL trace of the engine, capturing the time when it's collecting files, based on you running "caf start amagent args -rescan_inventory -collect", on an agent having the issue.
We're running on a SQL 2012 database;
here are the result of a Caf Status for the version and running agent on one of the troublesome computer:
Here the result of the getparametervalue:
Is there a way to resest SS inventory so that it forget anything it has until now?
As for opening a support case, we're still waiting for the contract to be signed... **** bureaucracy.
Attach the engine log here for now-- maybe I can quickly scan it.
1- Set the engine in DETAIL mode:
cftrace -c set -l detail -s 50000 -ln 4 -f cstack -pp EngineName
Where "EngineName" is the name of the engine running the Collect Task, for the Scalability Server one of the agents reports to.
2- Force the agent to re-run and report a full inventory:
caf start amagent args -rescan_inventory -collect
3- Wait for the engine to collect the inventory. You will see a line in the Engine Portal similar to, "Inventory updated for AgentName"
ZIP the TRC_EngineName*.log file, and attach to the posting...
I've add the log.
If you look at the Agent properties in the DSM Explorer, do you see the AM Agent listed? Same if you run the dsmver on the Agent?
Yes to both
I don't know if this could help:
I've created a new Collection Modules:
That I added on the general inventory task on all computer:
Then I force a recollect on a few computer. I'm unable to see the new data collected anywhere in the computer inventory.
I'Ve followed the Printer Inventory collection module to create the new one.
From the attached engine log, I can see the engine is failing to merge bulk inventory into the database:
INFO | CDb_Ado::ExecSQL() enter - EXEC('MERGE INTO inv_generalinventory_tree trg USING ca_itrm.gent_1526306942_61 src ON (src.object_uuid = trg.object_uuid AND src.item_id = trg.item_id) WHEN NOT MATCHED THEN INSERT (item_id,object_uuid,item_root_id,item_root_name_id,item_parent_id,item_parent_name_id,item_indent,item_index,item_name_id,item_flag,domain_uuid,tenant_id) VALUES (src.item_id,src.object_uuid,src.item_root_id,src.item_root_name_id,src.item_parent_id,src.item_parent_name_id,src.item_indent,src.item_index,src.item_name_id,src.item_flag,src.domain_uuid,src.tenant_id);');NOTIFY | evalSQLInfo sqlstate: 42S02 native error: 208 0xd0NOTIFY | evalSQLInfo class: 16 state: 1 server: SP002\SP002NOTIFY | Error Message: ADO Version 6.3 - COM Error: ErrorCode:-2147217865,WordErrorCode:3127, IDispatch error #3127, Invalid object name 'ca_itrm.gent_1526306942_61'., Microsoft SQL Server Native Client 11.0, (null)INFO | Failed to merge to inv_generalinventory_tree
To accomplish this, as the engine processes inventory files from the SS, it stores the data in memory and temporary tables in the database, and once all files are collected, it merges all the new inventory into the database.
The merge is failing because it does not recognize the temporary table object, ca_itrm.gen*. geni for inventory, gent for inventory tree.
The problem is likely that the ca_itrm account is running as a SYSADMIN in SQL, which means its operating using the DBO schema, instead of the ca_itrm schema.
Check your ca_itrm account.
It should be a public account:
And it should be mapped to the "mdb" with the "ca_itrm" schema, and have the following role memberships:
After making changes, recycle all of CAF, and re-request FULL inventory from every agent, in order to make up for all the data loss.
that was exactly the problem!