Itemnotfound exceptions filling the queues

Article:TECH35771  |  Created: 2005-11-15  |  Updated: 2011-09-12  |  Article URL http://www.symantec.com/docs/TECH35771
Article Type
Technical Solution


Issue



ItemNotFound Exceptions are filling the queues and the a.log files because there are packages or policies on client computers sending status events for items that no longer exist on the Notification Server.

The effect of this can vary from being a small annoyance in the logs (see below for an example log entry) to hindering the performance of Notification Server. Depending on how many clients have expired packages and how many packages there are.

Date: Oct 24 15:39:36:000
Source: Altiris.NS.ClientMessaging.FileDispatcher.ProcessFileCallback
Description: Unable to process the file "D:\Program Files\Altiris\Notification Server\NSCap\EvtQFast\Process\nse6F36.tmp" Moving to "D:\Program Files\Altiris\Notification Server\NSCap\EvtQFast\Bad\ItemNotFoundException\5f85fbee-77ca-43ce-a217-c98c264953e3.nse". Reason: Unable to load the target item for the client message. (Guid: "{a10785a6-072a-43cc-b4f4-4d5562920efe}")

Date: Oct 24 15:39:32:000
Source: Altiris.NS.LegacyInterop.ItemMessageDispatcherService.Dispatch
Description: ItemMessageDispatcherService::Dispatch  ( Unhandled exception.  Type=Altiris.NS.Exceptions.AeXItemNotFoundException Msg=Unable to load the target item for the client message. (Guid: "{a10785a6-072a-43cc-b4f4-4d5562920efe}") Src=Altiris.NS.5xInterop
StackTrace=
   at Altiris.NS.LegacyInterop.ItemMessageDispatcherService.Dispatch(String message, Boolean useFilename) )


Environment



Notification Server 6.0
Patch Management packages
Software Delivery Packages
Any package that is removed from the Notification Server before it is removed from the clients.


Cause



This happens when a client has a package that no longer exists on the server. It will send status events for the package until the time that the client is set up to delete the package.

This could happen because a Software Delivery Package or Patch Management Package was deleted from the server before all of the client machines had removed the package.

Note: This can also occur for a short period if an Application Metering policy has been deleted.  There is not a need for a resolution to this as the problem will resolve itself as client check in and update there configuration.

This has also been seen with Task Synch status events from Software Delivery Solution, in that case upgrading to the latest version including all current hot fixes will resolve the issue.


Solution



See article TECH13850 for information on how to keep this from happening in the future. Advisory: The clients will continue to hit the NS for requests of the deleted Software Update Task for about 2 weeks before giving up. The following will help alleviate this pummel on the NS in the meantime.

To help alleviate the load on the server and make things easier to clean up on the clients, make the following configuration change to the Notification Server then do the steps below. In the Notification Server 6.0.5287 (SP2) console, go to the Configuration tab > Server Settings > Notification Server Settings > Advanced Settings and uncheck the AeX SWD Status option. In Notification Server 6.0.6074 (SP3) version, this option was moved to the Configuration tab > Altiris Agent > Altiris Agent Configuration > Global Altiris Agent Settings (Events tab). This will stop the Notification Server from processing these events and can improve performance if the server is being hit hard with these events. 

The first step is to evaluate some of the files that are going into the <Install Directory>:\Program files\Altiris\Notification Server\NSCap\Evtqfast\bad\Itemnotfoundexception folder. Open the files one at a time and make a note of all the different PackageGUID and Resource GUIDs. There may be many clients or many packages, but as you work your way through the files you should start to see commonalities in the GUIDs you find. 

If everything is coming from a single or small group of ResourceGUIDs, run the following in SQL Query Analyzer to find the names of the machines that are sending the data. 

SELECT name FROM item WHERE GUID = '{ResourceGUID}'

If there is only a small group of computers reporting then the quickest way to resolve this would be to uninstall the agent, remove any remaining folder structure then install again.

If the PackageGUIDs are where you are seeing commonalities then you could use the following script to delete the packages from the client machines. This script will clear the queue on the client, and delete the problem packages from the client computers

Note: the Red Italicized items in the following script will need to be modified to match the environment.

 

----------------------------------------
Batch Script
----------------------------------------
@echo off 
c:
if exist C:\"program files"\altiris\"altiris agent" goto a0
goto a1
:a0
cd\"program files"\altiris\"altiris agent"\Queue
:a1
cd\
if exist C:\"program files"\altiris\"altiris agent"\Queue\NotificatonServerFolder erase /Q C:\"program files"\altiris\"altiris agent"\Queue\NotificatonServerFolder \*.*
if exist C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUID of problem package} erase /Q C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUID of problem package}\*.*
if exist C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUID of problem package} rmdir /s /q C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUIDof problem package}

----------------------------------------

The following section can be repeated if there are multiple GUID folders that need to be removed.

if exist C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUID of problem package} erase /Q C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUID of problem package}\*.*
if exist C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUID of problem package} rmdir /s /q C:\"program files"\altiris\"altiris agent"\"Software Delivery"\{GUID of problem package}
This will then need to be saved as a batch file and pushed out to the client computers that are affected, if they can be identified, or all agents if it appears to be spread across all computers. This can be pushed using any method available such as Login Script, Notification Server, or Deployment Server.

 

VBScript to delete all ItemNotFound packages from clients

The attached file DeleteItemNotFound.zip contains a .VBS script that will read the agent installation path and the configured Notification Server and delete each Software Delivery folder specified within the associated data file.  To use this file do the following:

  1. Extract the files to a location for distribution 
  2. Edit the data file delete.txt and add in the GUID of the problem package in the format {00000000-0000-0000-0000-000000000000}
  3. Create a Software Delivery Package containing the two files.
  4. Define the program command line as:
    • %windir%\system32\wscript.exe delINF.vbs
    • Set the Run with rights to System Account
    • Set the Program can run to Whether or not a user is logged on
    • Disable User Input Required

  5. Save your package
  6. Create a task that sends this to all managed computers.

Update!

Use the attachment DeleteItemNotFound_SMP7.zip if you are experiencing this issue with version 7.


Attachments

DeleteItemNotFound.zip (922 Bytes)
DeleteItemNotFound_SMP7.zip (952 Bytes)



Legacy ID



3861


Article URL http://www.symantec.com/docs/TECH35771


Terms of use for this information are found in Legal Notices