Ignition, Java & Caching

I was curious … how does Ignition cache files on the client-side?

Let me elaborate … when I launch a project from a remote client for the first time, I’ll get a loading screen. At some point in the loading screen, it’ll state Unpacking # of # or something along those lines. If I shut the project down and reopen it, I won’t get Unpacking # of # … I’m assuming the client runs the project (or package or whatever) from a cached file (or files) … is this a true statement?

If I wanted to empty my cache, how would I go about doing so? Where is the cache typically kept?

I’ve got little to no experience using or developing Java applications, so forgive me if this is simply common knowledge I’m lacking … if you could point me to a good source of reading on the topic, it’d be greatly appreciated.

Thanks in advance!

Yes, the client is running from cached files; it’s set up that way to be more efficient. It’s actually stored in the Java cache (because it uses Java Web Start), and you can clear the java cache by going to Start->Control Panel->Java (in windows) and clicking the Settings… button under the ‘Temporary Internet Files’ section and then the Delete Files… button. This will also remove any desktop links you have to any of your projects (because those are part of the cache).

I have been enlightened … thanks!

Perhaps I can enlighten just a little bit more.

There are actually two places that Ignition Clients and Designers have a cache. The first place is the Java Web Start cache as explained above. In Ignition (as opposed to FactoryPMI, where this was the entire cache) very little is actually stored in this cache. Just the JNLP file, and a tiny little “bootstrap loader” program are stored here.

After the bootstrap loader starts up, it uses a secondary cache, which is stored in a folder called “.ignition” under your user’s home directory (i.e. C:\Documents and Settings\YourName or C:\Users\YourName). This folder holds the ignition bootstrap loader cache. which is much larger. This where all of the “unpacking package #/#” files are stored. We developed this secondary caching system for Ignition to work around some of the limitations of the built-in Java Web Start cache system.

Thank you guys for this post, really clear. I went through it because I am looking for a way to reduce the size of the cache on a Windows RDP Server environment. It runs multiple frontend servers offering RDP connections with Roaming Profiles. The RDP servers are assigned on a round-robin policy. This is how MS offer load balancing.
The user’s home directory (with the .ignition directory) is stored centrally on a shared directory.
I understand that when a user login he is redirected to the “next available” Windows RDP server and his profile is copied locally from the shared directory.
Whatever we tried it’s a more than 100 MB of files going around slowing login process.
Is there a way to select only some packages? I mean the one needed by the application.
Thank you in advance for any advice.

To better support roaming profiles, you can redirect the ~/.ignition cache to a folder that will be local to the machine. To do this, simply put a single text file in the user’s ~/.ignition called redirect.txt and have that file contain the path to a local directory you’d like to use instead, like C:\IgnitionClientCache or something.

2 Likes

Thank you Carl, this sound goods.
It improved the login time of the users.