RES Automation Manager: where to store your resources

Several students have asked me in the past where to store their data, on a file share or in the Database store. Before I’m going to give my answer let’s start with the basics.

Resource types

Within RES Automation manager we have 3 resource types:

  1. A single file stored in the data store
  2. A single file located on a file server
  3. RES Automation Manager Resource Package

The first 2 options are speaking for itself. The 3rd option needs more explaining. A resource package is a combination of files that are stored in the data store. Let’s say for example your Microsoft Office 2013 installation DVD can be stored as single package instead of uploading every file individually.

A single file stored in the data store or a Resource Package needs a working RES Automation Manager infrastructure. No additional resources are required. For a single file located on a file server an additional Windows Share and a service account are needed to provide access to the resources.

RES Automation Manager communication model

In figure 1 you can see how the communications works. Only the Management Console and the Dispatchers connect to SQL database, SQL traffic is used. Agents connect only to the Dispatchers. The agents access the IPC$ share on the dispatcher. No SQL traffic is used between Dispatchers and Agents.

The following steps describe how a resource eventually gets on the agent when using the default RES Software Automation Manager configuration.

Figure 1

  1. The resource gets uploaded to the data store.
  2. A job containing a task that needs resources is downloaded to the dispatcher.
  3. The agent contacts the dispatcher to see if there are any jobs to process.
  4. The agent starts processing the tasks in the job.
  5. The job is put on hold when it reaches a task containing the resource.
  6. The agents send a request to download the resource from the dispatcher.
  7. The agent request for downloading will be put on hold by the dispatcher
  8. The dispatcher downloads the resource from the data store to its dispatcher cache where it’s saved until the resource is deleted from the data store.
  9. The agent downloads the resource and continues the job.

Figure 2 shows how the communication works when using a file share. All the agents will contact the file share directly. To access the files stored on the file share you need a service account with enough rights to read and copy the files.

The following steps describe how a resource eventually gets on the agent when using the default RES Software Automation Manager configuration when using a file share.

Figure 2

  1. The resource gets uploaded to the data store.
  2. A job containing a task that needs resources is downloaded to the dispatcher.
  3. The agent contacts the dispatcher to see if there are any jobs to process.
  4. The agent starts processing the tasks in the job.
  5. The job is put on hold when it reaches a task containing the resource.
  6. The agents will download the resource from the file sharing using the service account and continues the job.

The advantages of a file located on a file server

  1. Normal file back-up method is used.
  2. Quick and easy access to the resources, easy editable.

The advantages of a file stored in the data store

  1. Controling the bandwidth that can be used to download resources on to the agent. The networking team will thank you for that.
  2. By using Dispatcher cache timing, availability and duration you can download only the needed software on to the Dispatchers. This is extremely handy in a Multi-Tenant environment where you don’t want all the resources accessible from all the tenants.
  3. You can build a Dispatcher on the go by using a laptop as a Dispatcher. Go to the slow link site and let all the agent’s download the resources from the laptop.

The disadvantages of a file located on a file server

  1. The service account is a single point of failure. As soon as the service account gets disabled, locked out or the password changes. The agents are unable to execute any jobs that require resources.
  2. When the password changes you have to change the password on all your resources (A smart Engineer has of course created a parameter for this action).
  3. The file server needs an up time of 100%. Let’s say you have a recursive job on all your XenApp servers. The job contains resources to perform its tasks after a scheduled reboot. The resources are accessed directly by the agent, and not downloaded to the Dispatchers.
  4. RES Automation Manager doesn’t check the file location actively. If an Engineer replaces a file with a different file name, the task containing the resource will fail. Because the action is performed on the file server, there is no trace of by who and when the change have been made.

The disadvantages of a file stored in the data store

  1. There is more disk space required when saving files in to the data store. All the files are stored in the data store on the database server itself and downloaded to every Dispatcher (depends on your Dispatcher cache timing, availability and duration).
  2. It takes time to upload files to the data store. Making quick changes to an existing Resource Package can take a lot of time. All the files are checked and copied in to the data store.
  3. Convincing your DBA team to have .MSI and .EXE files in his database. Well you are already using SQL authentication?

The answer

Yes it takes up time to add, remove or edit files and we have to convince the DBA team to add more storage to the database. How about when the database is unavilalbe? Sure that will give us trouble, but only when we have to schedule a new job. Not when a job has al ready been scheduled and resources are in the Dispatcher cache. Taking all things in mind I advice my students to store the files in the data store.

If only it was possible to store the resources in different database, like RES Software has done with Workspace Manager. Would that not be the perfect solution?

3 thoughts on “RES Automation Manager: where to store your resources

    1. Basically your blog tells it all. That’s one of the reasons why I don’t like to use shares unless the customer has good reasons not to store the files in the data store. When you export the Building Block and the resource is in the data store you are able to download it and import it completely. No fuss about downloading additional resources. Or using Global Variables to make things work.

  1. Another disadvantage of fileshares comes up when using mutiple domains. For example an hosting company. When using RES resources in the database, those are distributed to dispatchers and agents regardless of the domain they are in. When using fileshares you need the lay trusts between domains and use an service account, making it far more difficult to use.

Leave a Reply

Your email address will not be published. Required fields are marked *