Login to participate
Endpoint Management & Virtualization ArticlesRSS

What is Heldpesk 6 BulkProcessing?

vortex0007's picture

BulkProcessing is the name for a process in Helpdesk 6.0 that allows customers to perform multiple actions within Helpdesk 6.x. BulkProcessing is enabled by default. The frequency at which BulkProcessing runs is configured by a Notification Server configuration item named "Process deletions and multiple incident edits." This setting is found on the Notification Server 6.x Configuration Tab by choosing Server Settings > Notification Server Settings > Incident Settings. By default bulk processing runs every 60 seconds. During troubleshooting it might be necessary to manually trigger BulkProcessing. Administrators can do this by opening http://localhost/AeXHD/auto.asmx on the helpdesk server and selecting the BatchJobProcessing then clicking on "Invoke." If BulkProcessing is working properly the value returned should be "True."

It is possible to off BulkProcessing. This is achieved through the Microsoft Windows registry. The value HKLM\Software\Altiris\eXpress\Helpdesk Package\DisableBulkProcessing has a default setting of "true" which can be changed to "false" in order to turn off bulkprocessing. If this setting is made, a reboot of the server will be required. If BulkProcessing is disabled, Helpdesk will continue to record events that require bulk processing in the BatchJob and JobQueue tables, they will however never process. Should the registry setting be changed back to "True," BulkProcessing will trigger immediately and then continue on its original schedule.

When a job is submitted for BulkProcessing, a new row in the Altiris_Incidents.BatchJob table is created. The comment column gives a brief explanation of what the job was for. After the row is written in the Altiris_Incidents.BatchJob table, a new row is added to the Altiris_Incidents.JobQueue table for each contact or incident that needs to be processed. For example assume Helpdesk needs to delete 10 contacts. There will be one row in the Altiris_Incidents.BatchJob table and 10 rows in the Altiris_Incidents.JobQueue table. There are different status levels for the items that appear in these tables. In the JobQueue a status of "s" means the job completed successfully. There might also be "p" for pending or "f" for failed. In the Altiris_Incidents.BatchJob table "a" means active. To figure out what BulkProcessing will do when run, take a look at the Altiris_Incidents.JobQueue table and match up the Altiris_Incidents.BatchJob_id to the items listed in the Altiris_Incidents.BatchJob table.

When there is a problem with BulkProcessing it is helpful to understand that when a BulkProcessing job is triggered, it is assigned a unique BatchJobID. When an item in the Altiris_Incidents.JobQueue table has been marked with a status of "f" which equal failed, the next time BulkProcessing will run, it will never attempt to run these jobs again and the failed jobs will stay in the database. To link the individual tasks back to the BulkProcessing event look in the Altiris_Incidents.JobQueue table, find the record with a status of "f" and make note of the Jobqueue_batchjob_id. Using the jobqueue_batchjob_id, query the BatchJob table for the matching entries.

One example of how this all ties together is when a Contact is marked for deletion but the contact was never deleted. When examining the Altiris_Incidents.Contact table the status of a contact might be marked as X, which means that an attempt to delete the contact using BulkProcessing failed. There is nothing in the Altiris GUI that will allow this deletion attempt to be re-attempted; however changing the status in the Altiris_Incidents.Contact can often properly trigger a successful deletion. Using the SQL statement "update contact set status = ‘I’ where status = ‘x’" will allow the Contact to be viewable in the Helpdesk GUI. A deletion attempt can be re-attempted, which will retrigger BulkProcessing and the contact should be properly deleted. If the deletion fails a second time, manually removing the records from the database will be necessary.