Why is it that a resource is successfully purged on a Forwarding NS, but is never purged on the Reporting NS?
The way that Purge Maintenance currently works is that the SQL within the stored procedure that it uses as part of its mechanism, spGetComputersToPurge, looks for resources that have the Altiris.vResourceEx.IsManaged value of 1, which is why resources are purged from a Forwarding NS.
Unfortunately, once a resource is either deleted or retired on a Forwarding NS, the next time the Reporting NS receives data from that Forwarding NS, it changes IsManaged=1 to IsManaged=0 for that resource in all Tables and Views that have an IsManaged column, which is why your Reporting NS is not purging these resources.
To combat this, I have created a process that uses one of our CS files which development have created.
1. Please extract and import into a suitable location within the Altiris Console, the attached 'Forwarded resources not reporting after one day' collection. Please rename it and modify its SQL to suit your needs.
2. Please extract and place into the '.\Notification Server\Bin' directory, the attached DeleteCollectionMembers.cs file. You can also use the attached exe file instead as it just requires the GUID of the collection too.
3. Please create a scheduled task similar to the one attached.
A retired resource will be removed from the vActiveAsset View and will be placed into the vRetiredAsset View on the Forwarding NS. However, it will still remain in the vActiveAsset View on the Reporting NS but as IsManaged=0. This means that it is easy to identify a retired asset on a Forwarding NS but not on a Reporting NS as deleted resources on a Forwarding NS will also be present in vActiveAsset on a Reporting NS but as IsManaged=0.
Forwarding NS's only send data about resources that are IsManaged=1 in their databases. Reporting NS's class all resources that are forwarded to it as IsManaged=1 until their status on the Forwarding NS changes.
If you do not wish to implement the attached DeleteCollectionMembers process on your Reporting NS's, then yes, you will have to configure your reports to use the IsManaged=1 field as part of a WHERE clause.