10.7. Desktops and Pools

10.7.1. How Do I Make a Desktop Available to a User at All Times?
10.7.2. Starting a Desktop Fails With "No suitable Hosts to Start a Desktop for Desktop Provider <Name>" Errors
10.7.3. What Is the Difference Between Personal and Flexible Desktop Assignments?
10.7.4. Oracle VDI Fast Preparation Is Failing
10.7.5. Can I Use Wild Cards in Token Names to Represent a Group of Thin Clients in Order to Assign These Thin Clients to a Pool?
10.7.6. The Audio in My Ubuntu Desktop Is Playing Too Slowly. What Should I Do?
10.7.7. Audio Does Not Play After Changing the Audio Configuration for Oracle VM VirtualBox Hosted Desktops in Oracle VDI Manager
10.7.8. USB Devices Are Not Detected
10.7.9. Smart Cards Are Not Detected When VRDP Is Used
10.7.10. What Are the Differences Between MS-RDP and VRDP?
10.7.11. Cloning Fails if the Sysprep Timezone Setting Does not Match the Host Timezone
10.7.12. Checking the VirtualBox Guest Additions Version
10.7.13. Starting A Desktop Fails With an "Error Getting State" Message
10.7.14. Creating an App-V Repository or Revision Takes a Long Time
10.7.15. Creating or Updating an App-V Repository Fails With a "Failed to Refresh App-V Cache" Message
10.7.16. Creating or Updating an App-V Repository Fails With a "Failed to Login User" Message
10.7.17. Creating an App-V Repository Fails Due to Low Disk Space
10.7.18. Creating an App-V Repository Revision Fails With "An Internal Error Occurred" Message

10.7.1. How Do I Make a Desktop Available to a User at All Times?

Make sure the user's desktop has a personal assignment instead of a flexible assignment. For more about desktop assignment types, see Section 10.7.3, “What Is the Difference Between Personal and Flexible Desktop Assignments?”.

10.7.2. Starting a Desktop Fails With "No suitable Hosts to Start a Desktop for Desktop Provider <Name>" Errors

The error 'No suitable hosts to start a desktop for Desktop Provider Name.' indicates that there were no hosts with sufficient memory in your desktop provider.

Check the available memory on your hosts using Oracle VDI Manager under the Desktop Provider > Hosts tab.

10.7.3. What Is the Difference Between Personal and Flexible Desktop Assignments?

  • Personal Assignment: Like physical computers assigned to users, desktops that are personally (or statically) assigned are owned by these users and are never recycled or available for other users unless an administrator explicitly removes the assignment and re-assigns a desktop to a different user.

  • Flexible Assignment: Desktops that are flexibly (or dynamically) assigned are owned by users only temporarily. Once users log out of their desktops or their desktops are no longer in use, the desktops are recycled and become available for other users. As part of the recycle process, the desktop assignment is removed.

Personal assignments are created when you select a specific desktop in the Oracle VDI Admin GUI and assign it explicitly to a user.

If you assign a user (or a group of users) to a pool, the desktop assignments are created on demand the first time the user requests a desktop (or connects to a desktop). The type of assignment (personal or flexible) depends on the pool settings. You can configure this individually for each pool on the Pool - Settings subcategory (see the Desktop Assignment section).

In addition to the assignment type, you can also specify how each pool is filled with desktops. Here you have the choice to manually import desktops, or to clone desktops automatically from a specified template (see the Cloning subcategory).

When you create a new pool, we provide default settings for the assignment and cloning configurations. For convenience, the pool wizard offers "Manual", "Dynamic", and "Growing" pool types which only differ in their default settings. You can change the pool settings at any point. The pool type is not stored anywhere - it just defines the initial pool settings and is offered as a shortcut. The main differences in the pool types are as follows:

  • Dynamic pool: Desktops are cloned from a template. Flexible desktop assignment is the default.

  • Growing pool: Desktops are cloned from a template. Personal desktop assignment is the default.

  • Manual pool: Cloning disabled (you have to manually fill this pool via importing desktops). Personal desktop assignment is the default.

Recycling of desktops will only happen for flexibly assigned desktops. This is independent from the desktop provider.

10.7.4. Oracle VDI Fast Preparation Is Failing

FastPrep can fail for numerous reasons, but the most common are networking and user permissions. Always ensure that your template (and clones) can correctly resolve the domain name used. Also ensure that the domain and desktop administrators provided have the appropriate permissions.

In the event that FastPrep fails a Windows system error code is usually returned. These error codes can be checked on MSDN:

http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx

Some examples are:

1326 = Logon failure: unknown user name or bad password.

- Check your domain administrator and password

1355 = The specified domain either does not exist or could not be contacted.

- Verify the spelling of your domain and ensure the desktop can resolve the domain name. This is typically caused by incorrect DNS settings. If using Oracle VM VirtualBox NAT networking, ensure the host has the correct DNS server in /etc/resolv.conf.

10.7.5. Can I Use Wild Cards in Token Names to Represent a Group of Thin Clients in Order to Assign These Thin Clients to a Pool?

No, but Oracle VDI defines two special tokens to assign all Sun Ray Clients or all Smart Cards to a pool.

AnySunRayClient.000 is a predefined token to assign all Sun Ray Clients (Sun Ray hardware and Oracle Virtual Desktop Client) together to a pool. The user will get a desktop from the pool if the Sun Ray Client is used without a Smart Card.

AnySmartCard.000 is a predefined token to assign all Smart Cards to a pool. The user will get a desktop from the pool if the Sun Ray Client is used with a Smart Card.

Alternatively, you can create tokens in bulk and have them associated to users by using the Oracle VDI command line as described in Section 5.7.3, “Assigning Tokens to Users”. Then you can make pool assignments based on existing groups of users in your user directory, or groups you would define especially for Oracle VDI installations using Custom Groups.

10.7.6. The Audio in My Ubuntu Desktop Is Playing Too Slowly. What Should I Do?

The alsa driver in the guest desktop tries to autodetect the ac97 hardware clock. This method does not work with Oracle VM VirtualBox ac97 emulation. Sometimes the driver gets results which look sane but are actually not, and calculates the clock frequency based on that, getting a wrong value. The ac97_clock option in alsa_base.conf disables autodetection.

To disable the autodetection:

  1. Run the following in the command line of the Ubuntu desktop.

    # sudo gedit /etc/modprobe.d/alsa-base.conf
  2. Add following line to the end of the alsa-base.conf file.

    options snd-intel8x0 ac97_clock=48000
  3. Restart the desktop.

10.7.7. Audio Does Not Play After Changing the Audio Configuration for Oracle VM VirtualBox Hosted Desktops in Oracle VDI Manager

If you change a desktop's configuration (for example: audio) from Oracle VDI Manager, the changes will not take effect until the desktop has been unregistered/re-registered on an Oracle VM VirtualBox host. Simply restarting the desktop from within will not result in this behavior. To force the unregister/register, choose either Power Off or Shutdown from Oracle VDI Manager and then choose Start.

10.7.8. USB Devices Are Not Detected

Section 5.1.5, “Enabling USB Redirection” has details of how to configure support for USB devices. If USB devices are not detected in a desktop, follow these steps:

  • Check that USB redirection is enabled in the pool.

  • Check that the client supports USB redirection.

    See Section 6.1, “About Desktop Access” for a list of features supported by each client.

  • Check that Sun Ray Clients are using the latest firmware.

    See Sun Ray Client Firmware in the Sun Ray Software Administration Guide for details of how to update the Sun Ray Operating Software on Sun Ray Clients.

  • If the USB device is a USB 2.0 device, check that a USB 2.0 (EHCI) controller is configured in the desktop or template and is enabled in the virtual machine.

  • If MS-RDP is the selected RDP protocol for the pool, ensure the USB redirection component of the Sun Ray Windows connector is installed in the desktop or template.

  • For VMware vCenter or Microsoft Hyper-V desktop providers, check that USB drivers are installed in the template or desktop.

  • For Oracle VM VirtualBox desktop providers:

10.7.9. Smart Cards Are Not Detected When VRDP Is Used

When VRDP is enabled for a pool, users may be unable to access their smart cards in their desktops, for example for PIN authentication or e-mail signing.

In order to use smart cards, the device drivers for the smart card reader must be installed in the desktop. It is best to install the drivers in the desktop template before it is used for cloning in a pool.

10.7.10. What Are the Differences Between MS-RDP and VRDP?

For more detailed information about the differences, refer to the Section 5.1.2, “Choosing Between VRDP and MS-RDP”.

10.7.11. Cloning Fails if the Sysprep Timezone Setting Does not Match the Host Timezone

The Sysprep process removes a template's timezone setting before cloning and uses the default Sysprep setting (GMT) instead. If the virtualization host is in a different timezone than GMT, the mismatch causes cloning to fail. The workaround for this issue is:

  1. Disable cloning in the pool's Cloning tab.

  2. Click Edit in the System Preparation section of the Cloning tab.

  3. In the Edit System Preparation window, change the TimeZone setting from 85 to the appropriate code for your timezone.

    For example, the timezone code for India Standard Time is 190.

  4. Click Save.

  5. Enable cloning in the pool and check if the problem is still reproducible.

10.7.12. Checking the VirtualBox Guest Additions Version

When troubleshooting problems with desktops, it is worth checking the version of Oracle VM VirtualBox guest additions installed in a desktop. The guest additions version can be checked in Oracle VDI Manager and on the command line, but only while the desktop or template is running.

In Oracle VDI Manager:

  1. Go to Pools and select a pool.

  2. Go to the Desktops or Templates tab and select a desktop or template.

  3. Click the Virtual Machine link.

    The guest additions version is shown on this page.

On the command line:

  • Use the vda desktop-show desktop command to display the guest additions version for a desktop.

  • Use the vda template-show template command to display the guest additions version for a template.

To determine the desktop or template, see Section 9.1.1, “Obtaining the ID of a Desktop” and Section 9.2.1, “Obtaining the ID of a Template”.

10.7.13. Starting A Desktop Fails With an "Error Getting State" Message

It can occur that a desktop fails to start, and the following message is shown in the Cacao logs:

FINER: thr#7620 THROW com.sun.vda.service.api.ServiceException: Error getting
state for desktop 'Win700000016' on host 'vdi1.example.com'.
        at com.sun.vda.service.vbox.VBDesktop.start(VBDesktop.java:1299)
        at com.sun.vda.service.vbox.VBDesktop.start(VBDesktop.java:1276)
....

The problem is caused by an existing registered virtual machine (VM) that has the same name as the desktop that failed to start, but for some reason the existing VM is inaccessible.

The solution is to unregister the inaccessible VM, as follows:

  1. Log in as the VirtualBox user (typically root) on the VirtualBox host that hosted the failed desktop.

  2. Use the VBoxManage list vms command to list all the registered VMs on the host, for example:

    # VBoxManage list vms
    "Win700000013" {a7aeff15-f6fb-4c10-bbf4-499bb568c551}
    "<inaccessible>" {15a0fdd9-69cb-4de2-b4a9-954633917f82}
    "Win700000008" {405b5579-793b-4e80-9f60-0b2df73ebadc}
    "Win700000019" {c47d23dc-875f-45c3-820d-bf64d013019f}
    

    The output shows lists the VM name in quotes, for example "Win700000013" and the UUID of the VM in curly brackets, for example {a7aeff15-f6fb-4c10-bbf4-499bb568c551}. Inaccessible VMs display <inaccessible> instead of the name, as shown in the example above.

  3. Unregister all inaccessible VMs.

    Use the VBoxManage unregistervm UUID command to unregister the VM, for example:

    # VBoxManage unregistervm 15a0fdd9-69cb-4de2-b4a9-954633917f82

After you have deleted the inaccessible VMs, you should be able to start the failed desktop.

10.7.14. Creating an App-V Repository or Revision Takes a Long Time

The time it takes to create or update an App-V repository can be affected by the size of the disk used for the App-V repository and by whether the App-V user has a Windows roaming profile.

App-V Repository Disk Size

By default, the size of the disk used for the App-V repository (or repository revision) is one terabyte (TB).

If you use Sun ZFS storages and Oracle VM VirtualBox on Oracle Solaris platforms, it can take a long time to copy the App-V volume between storages.

You can improve the time it takes to copy the the App-V volume, by specifying the size of the disk with the disk-size property when you create the App-V repository. For example, to specify a disk size of 500 gigabytes (GB):

/opt/SUNWvda/sbin/vda template-appv-create -p name=MyAppv,pool=MyTemplates,\
admin=Administrator,appv-username=appv-user,customization-type=fastprep,\
windows-release=win7,domain=example.com,domain-admin=Administrator,disk-size=500 4

You can only specify the disk size on the command line and only when you create the repository. The minimum disk size is one GB.

App-V User and Roaming Profiles

If the configured App-V user has a Windows roaming profile, the profile has to be downloaded to the staging desktop and this can signifiicantly increase the time it takes to create or update an App-V repository.

For the best performance, ensure that the App-V user does not have a roaming profile. You might want to define an App-V user in Active Directory specifically for Oracle VDI. To change the App-V user, see Section 9.4.5, “Creating a Revision to an App-V Repository”.

10.7.15. Creating or Updating an App-V Repository Fails With a "Failed to Refresh App-V Cache" Message

If you create or update an App-V repository and it fails with a "Failed to refresh App-V cache" message, this can be due to the following reasons:

  • The configured App-V user is not a member of the App-V group in Active Directory.

  • The configured App-V user has a Windows roaming profile.

  • The operation to refresh the App-V cache took too long and timed out.

If this happens, check the Cacao logs, see Section 8.5.4, “Checking the Oracle VDI Log Files”.

If the operation to refresh the App-V cache refresh timed out, the Cacao logs contain messages like the following:

com.sun.vda.vbox.ws.impl.Machine42Impl executeProcess
WARNING: thr#749 Process timed out
com.sun.vda.service.vbox.AppVGuestExecution logCommandResult
FINE: thr#749 Remote command C:\refreshcache.bat 
      [C:\VDI_APPV] on  desktop appvrpo12345678 exited with -1.

Checking the App-V User

If the App-V user is not a member of the App-V group, the Cacao logs contain messages like the following:

com.sun.vda.vbox.ws.impl.Machine42Impl executeProcess 
WARNING: thr#8288 Process exited with code: 1 status: + TerminatedNormally
com.sun.vda.service.vbox.AppVGuestExecution logCommandResult
FINE: thr#8288 Remote command C:\refreshcache.bat
      [C:\VDI_APPV] on desktop appvrpo123456782 exited with 1.
stdout: Querying Servers
Refreshing Servers
Refreshing Server AppVMgmtServer
sftmime REFRESH SERVER:AppVMgmtServer failed

If this happens, check the user name and password of the App-V user is correct both in Active Directory and in your App-V repository configuration.

If the configured App-V user has a Windows roaming profile, the profile has to be downloaded to the staging desktop. This can significantly increase the time it takes to create or update an App-V repository and can result in timeouts.

For the best performance, ensure that the App-V user does not have a roaming profile. You might want to define an App-V user in Active Directory specifically for Oracle VDI. To change the App-V user, see Section 9.4.5, “Creating a Revision to an App-V Repository”.

Increasing the Timeout

If there are no issues with the App-V user, the solution is to increase the timeout for refreshing the App-V refresh cache and create the App-V repository again. The default timeout is 10 minutes.

To increase the timeout, run the following command:

/opt/SUNWvda/sbin/vda settings-setprops -p appv.refresh.timeout=mins

For example:

/opt/SUNWvda/sbin/vda settings-setprops -p 15

10.7.16. Creating or Updating an App-V Repository Fails With a "Failed to Login User" Message

If you create or update an App-V repository and it fails with a "Failed to login user" message, this can be due to the following reasons:

  • The VirtualBox guest additions installed in the template used to create the App-V repository were not installed with the /with_autologon switch.

  • The system preparation failed and the staging desktop was unable to join the domain.

If this happens, reinstall the guest additions in the template used to create the App-V repository and check that the specified system preparation configuration is correct.

10.7.17. Creating an App-V Repository Fails Due to Low Disk Space

If you create an App-V repository and it fails, this can be due to low disk space on the C: drive.

If this happens, check the Cacao logs, see Section 8.5.4, “Checking the Oracle VDI Log Files”.

If low disk space was the cause of the problem, the Cacao logs contain messages like the following:

Found App-V cache on D:
Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: APPV_CLONE01
Volume 3 is the selected volume.
Virtual Disk Service error:
Assigning or removing drive letters on the current boot or pagefile volume is not allowed.

In Microsoft Windows, the default setting for virtual memory management is Automatically manage paging file size for all drives. If the disk space in the desktop template is low, this can cause Windows to store the paging file on the App-V repository disk and this might result in a failure to clone the staging desktop or to create the App-V disk.

The solution is to ensure that the desktop template has adequate free disk space. Alternatively, you can customize the virtual memory management settings in the desktop template so that either no paging file is used or the paging file is sized so that it can be stored on the C: drive.

10.7.18. Creating an App-V Repository Revision Fails With "An Internal Error Occurred" Message

If you create a revision to an App-V repository and it fails with an "An Internal Error Occurred" message, this can be because the trust relationship between the staging desktop used for the App-V Repository and primary domain has failed. If this happens, Oracle VDI cannot run the required commands as the App-V user from the primary domain.

If this happens, check the Cacao logs, see Section 8.5.4, “Checking the Oracle VDI Log Files”.

If a failure in the trust relationship was the cause of the problem, the Cacao logs contain messages like the following:

Caused by: org.virtualbox_4_2.VBoxException: VirtualBox error: 
        VERR_UNRESOLVED_ERROR (0x80BB0005)
        at org.virtualbox_4_2.IProcess.waitFor(IProcess.java:187)
        at com.sun.vda.vbox.ws.impl.Machine42Impl.executeProcess(Machine42Impl.java:1430)
        ... 16 moreq  

The VirtualBox log files for the staging desktop might contain the following:

00:04:27.666559 ERROR [COM]: aRC=VBOX_E_IPRT_ERROR (0x80bb0005) 
aIID={dfa39a36-5d43-4840-a025-67ea956b3111} aComponent={GuestProcess} 
aText={VERR_UNRESOLVED_ERROR}, preserve=false         

The only solution is to create a new App-V repository. You can modify group policy settings to prevent this error from occurring, see Section 10.8.7, “The Trust Relationship Between a Windows Desktop and the Domain Controller Fails”.