Environment
Novell ZENworks 10 Configuration Management with Support Pack 2 - 10.2 Installation - Server
Situation
ZCM update pre-global actions will occasionally be queued to a server that has not yet downloaded the content. When this happens the install will fail with the error: "an unexpected error occurred during the zone-wide pre-install actions. Check the loader-messages.log for details."
Resolution
After downloading the update, verify that the install has been downloaded to all servers by using the following query from the database console:
Oracle:
select serveruid, syncstate from zcontentsyncstate where contentuid in (select zuid from zsystemupdatecontent where systemupdatecommand in (select zuid from zsystemupdatecommand where zsystemupdatecommand.updateuid = 'F21B64B2105AE69C883DF8FE135E7E23')) group by serveruid, syncstate
select serveruid, syncstate from zcontentsyncstate where contentuid in (select zuid from zsystemupdatecontent where systemupdatecommand in (select zuid from zsystemupdatecommand where zsystemupdatecommand.updateuid = 'F21B64B2105AE69C883DF8FE135E7E23')) group by serveruid, syncstate
Sybase / SQL Server:
select serveruid, syncstate from zcontentsyncstate where contentuid in (select zuid from zsystemupdatecontent where systemupdatecommand in (select zuid from zsystemupdatecommand where zsystemupdatecommand.updateuid = 0xF21B64B2105AE69C883DF8FE135E7E23)) group by serveruid, syncstate
select serveruid, syncstate from zcontentsyncstate where contentuid in (select zuid from zsystemupdatecontent where systemupdatecommand in (select zuid from zsystemupdatecommand where zsystemupdatecommand.updateuid = 0xF21B64B2105AE69C883DF8FE135E7E23)) group by serveruid, syncstate
Additional Information
Note that this only applies pre-10.3, as the System Update mechanism has been changed in that release.
Query to find out which server processed the pre-global actions
Query to find out which server processed the pre-global actions
Sybase / SQL Server:
select Name, Path, ZUID from zZENObject where zuid in (select b.processingUID from zQueue b, (select max(lastAccessTime) as lastAccessTime from zQueue where type = 'system.update.global.pre' and processingUID is not null) a where b.lastAccessTime = a.lastAccessTime)