The VMware View 5.0 environment in the lab has been running well and has proven itself as an extremely reliable remote access replacement for the old Citrix Presentation Server 4.0 solution I had in the past. However, in an effort to address a licensing issue related to the View App for iPad demo environment, I managed to force both a pool and a single desktop from within that pool into a perpetually stuck state of ‘deleting’. In addition, the VM representing the desktop was gone, but I could see from within vCenter the parent replica for the pool still remained. I spent some time poking at it from several angles including the View Connection Server, the vCenter Server, and the View Composer Server. It became clear that the underlying issue was deeper, in a database perhaps, and couldn’t be resolved using the standard management tools VMware offers.
The issue isn’t an uncommon one and I quickly turned up familiar hits at VMware’s community forums spanning a few different versions of VMware View. The root cause is explained in VMware KB Article 1008658 which applies to View versions 3.x through 5.2.x (this KB article also walks through the steps of manually deleting pae-VMs from the ADAM database as well as manually deleting dubious SVI_rows from various tables in the View Composer database as necessary). Also see Manually deleting linked clones or stale virtual desktop entries from VMware View Manager 4.5 and later at VMware KB 2015112 (which uses the SviConfig.exe View Composer utility and is linked from KB 1008658):
This issue occurs if a table in the database has an incorrect data. It can also occur if the virtual machine name has been changed in the vCenter Server manually after the pool has been created, causing View Composer and vCenter Server to refer to the same virtual machine with different names.
The problem can largely be avoided by managing the View environment with the intended tool – the VMware View Administrator interface as opposed to making changes outside of View, such as using VMware vCenter.
Resolving the issue is achieved by following the detailed in the KB articles above. Follow the steps carefully and slowly in a production View environment and keep in mind that not all steps may be required for your particular situation.