Silently Prefetch Large Download

(imported topic written by dlimanov)

Hello,

I’m wondering if anyone knows a way for a BESClient to silently download a large file (think Win7 SP1 large)
prior
to showing the action message to the user. So I was hoping something like could happen:

  • machine is found to be relevant;

  • fixlet silently prefetches necessary file to user’s Download directory, no user message/UI is shown;

  • once completed, action message is shown;

  • user takes action, without needing to wait for a lengthy download, installation takes place;

We’ve not deployed large payloads with TEM before and it was never a problem, but with few SP1 deployments it took a really long time to download the payload and I was wondering if there was a way to do the heavy lifting behind the scenes and improve user experience.

Thanks, and apologies if this is trivial.

(imported comment written by Tim.Rice)

Do it as a Two Step process.

Create a Task that will download the file and move it to a location that will not be cleared by IEM (C:\Temp?)

Create a second Fixlet to install the package that becomes relevant once the file from the first Task exists.

(imported comment written by dlimanov)

Hi Tim,

Thanks much for the reply. I guess that’s one way of doing it, albeit an extra step… I was really hoping there was something in the TEM client that allowed this out of the box, but I guess not.

Thanks again!

(imported comment written by Tim.Rice)

You can try the “Start client downloads before constraints are satisfied?” option under the “Execution” tab.

If you make sure that the start is far enough in the future that the files can be downloaded, it might give you what you want.

(imported comment written by Tim.Rice)

Depending on the size of the file you want to download you may need to adjust the


_BESClient_Download_PreCacheStageDiskLimitMB
” client setting.

Visit “
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli+Endpoint+Manager/page/Configuration+Settings
” for information about the setting.

(imported comment written by dlimanov)

Thanks Tim!

Do you know if these settings can be set dynamically within an action? I’d love to set the PreCacheStageDiskLimitMB and
_BESClient_Download_Direct
right in the action and not individually, pre-deployment.

Thanks!

(imported comment written by Tim.Rice)

If you think about the sequencing a bit, what you are proposing might not work.

The Prefetch is supposed to happen BEFORE the Action script is scheduled to run. The Agent “pre-processes” the Action script looking for DOWNLOAD/PREFETCH commands but ignores everything else until it’s time to run the script. Until the Setting command in the script is actually run, the client will only have 250MB of pre-cache space to allocated.

I don’t think you could even put them together in a Baseline, same problem.

Just set the setting without notifying anyone on the Endpoint. No messages. The client will process the command silently in the background and when you then schedule your big action it will be able to pre-cache the required file. If you then want to reset the Pre-Cache size back to it’s default, just delete the setting (or better yet, leave it for the next time you need it).

(imported comment written by dlimanov)

Ok, I got the PreCache setting and enable it globally and silently, but I would love to be able to specify direct download setting straight from the action itself. This way SP1 download can occur from the MS itself, and not from relays internally, hence reducing the load. Is is possible to set the client setting within the action itself? I think it’s a registry entry, just not sure if this is something you can do dynamically straight from the action itself.

Thanks!

(imported comment written by dlimanov)

Nevermind, got it figured out.

(imported comment written by Tim.Rice)

Just for reference, for anyone else looking for it, the setting for “Direct Download” is referenced in the URL I provided above …

_BESClient_Download_Direct = 1

Cases where this setting will be useful are fairly limited. I usually prefer to have a well designed Relay structure and let the Relays handle the distribution of the patches. It tends to save on bandwidth on the Internet connection unless all your Endpoints are scattered around the Internet with no local Relays.

(imported comment written by dlimanov)

Exactly what Tim wrote, and to add the setting to the action, you can use the following command (in this case I’m changing the BESClient Download Cache to 2Gb):

setting “_BESClient_Download_PreCacheStageDiskLimitMB”=“2048” on “Mon, 14 Jul 2014 18:21:42 +0000” for client

(imported comment written by jgstew)

I believe we set our precachestagedisklimitmb to 20gb and our downloadcache limit to 10gb. We deploy tons of software and most clients have plenty of hard drive space.

I’m not certain why you would want your clients to download SP1 directly from MS instead of from your relays unless they are clients outside of your LAN.