Novell is now a part of Micro Focus

AppNote: Delivering Fault Tolerant MSI Applications using ZENworks for Desktops 4.0.1

Novell Cool Solutions: AppNote
By Laurence Pitt

Digg This - Slashdot This

Posted: 20 May 2004

I have been with Novell Consulting in the UK for over five years specialising in the delivery of ZENworks based solutions to customers. Prior to that I worked in most areas of the IT industry but still based around Novell technologies.
If you have any questions you may contact me at:

Table of Contents

Standard MSI Package Source Lists
The Issue
Configuring a Fault Tolerant MSI Application
Conclusion: How it all works

Table of Figures

Figure 1: Package Source Lists
Figure 2: Server Macros
Figure 3: Custom Package Sources


ZENworks for Desktops 4.0.1 includes an option for configuration of fault tolerant delivery of applications. When configured, it ensures that if the local source for an application becomes unavailable (LAN/WAN failure, server going offline), a remote source will be used automatically. With correct configuration, this remote source will always be as close to the user as possible. All this takes place "invisibly".

One issue with fault tolerant application configuration is that it is not very successful with the delivery of applications packaged using MSI (Microsoft Software Installer) technology. This is because the location for the MSI source code is defined separately in the application object and although multiple sources are supported there is no dynamic way of resolving the closest location for the actual MSI source code.

This problem can be overcome in two ways:

  1. Configure separate ZENworks MSI application objects for each application at each location.
  2. Configure the same ZENworks MSI application object for each application, use ZENworks for Servers to replicate it to all sites, and then modify the replicated application.

However, in a large corporate environment, neither of these solutions is practical or viable.

This solution was developed to provide a dynamic method of resolving the closest local location for an MSI application that would allow for replication using ZENworks for Servers and require minimal configuration at each location.

Standard MSI Package Source Lists

In order to use MSI application delivery it is necessary to configure the 'Package Source List' option on the application object; this is shown in Figure 1. The 'Package Source List' uses a UNC path to define where the source code for the MSI application will is located. Ideally this path will always be local to the user and is used for application verification as well as the initial installation.

Figure 1: Package Source Lists

The Issue

It is possible to define multiple 'Package Source Lists' for a single application. This is fine for a smaller ZENworks environment or a single application that is being configured with fault tolerance. Problems occur with larger numbers of MSI applications (as is becoming common), and when the ZENworks environment falls into either of the two following categories:

  1. Many sites and local application containers where the MSI application will need to be created, either with the 'application copy' option in ConsoleOne, or by using ZENworks for Servers Tiered Electronic Distribution (TED). If this is used, then it will be necessary to re-configure the 'Package Source List' for each application, at each site.

  2. There is a single central application container that is replicated to locations in eDirectory. This means that there will only be a few copies of the application but presents the issue that the closest local source will not necessarily be very close to the user accessing the application!

Configuring a Fault Tolerant MSI Application

To configure a fault tolerant MSI application requires some additional configuration on the local authentication servers. Once set, the same configuration can be re-used for as many MSI applications as required, without modification.

This process makes the assumption that the fault tolerant application is being configured to support three package sources. It is simple to expand this number as required.

It should be noted that this process will not work for workstation associated MSI applicaions that have been set to force-run unless the 'run as user if workstation associated' tab is selected. This is because the login script must have run for it to work correctly, and workstation objects do not run login scripts.

The process for creating a fault tolerant MSI application with ZENworks for Desktops 4.0.1 is as follows:

  1. Create the MSI application object in eDirectory.

  2. Identify the next three closest locations for the package source MSI files. For this example we will call them Server1, Server2 and Server3.

  3. Create a text file (e.g. TOLERANT.TXT) on the SYS:\PUBLIC of each application server. This file will contain the commands required to set a DOS variable. This will be used to represent the fault tolerant locations for each server identified in (2). For example:

    DOS SET SERVER1='SLC_Server'
    DOS SET SERVER2='PRV_Server'
    DOS SET SERVER3='ORE_Server'
    **Note: The servers in this list should NOT include the server listed in the SOURCE_PATH macro of the ZENworks MSI application object.

  4. Add the following line to the user's container login script (or profile login script) to include the text file created in (2). Note that the location specified must be a drive mapping and cannot be a UNC path.

    #INCLUDE {location of file}\TOLERANT.TXT
  5. Modify the application object as follows (also shown in Figure 2):
a. Add three macros (PRIMARY, SECONDARY and TERTIARY) to represent three fault tolerant servers.

Figure 2: Server Macros

b. Modify the Package Source Lists (shown in Figure 3) for the application so that it has three additional locations based on the macros set above.

Figure 3: Custom Package Sources

c. IDEALLY: Use ZENworks for Servers TED to replicate the application to all locations.

Conclusion: How it all works

When a user logs into the network, the login script will run; this sets the three custom source variables which will change based on the user location.

When an MSI application is run, these variables are transferred to ZENworks Application macros, and used to create the path for the MSI installation package source list.

When run, the MSI application will attempt to use the path defined in the default SOURCE_PATH application macro. This points to the local source fo the application code. If the local source is unavailable, it will attempt to access the code on each of the servers specified in the 'Package Source List' tab. Access is attempted in the order shown on the tab, this means that automatically the application will resolve the local source, next closest source and so on.

And there you have it. Automatic Fault Tolerant MSI Applications delivered by ZENworks for Desktops.

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions.

© Copyright Micro Focus or one of its affiliates