Thursday, March 7, 2013

Relocated Third-Party JAR files - Saved 348MB

So...last August I am in Italy "living the dream" (a.k.a working while on vacation) and I am trying to replicate some application changes to our production server over a pretty slow wireless connection.

Didn't matter whether I was on my TIM SIM Card with the MiFi or using the WiFi provided by the villa (I love saying that!)...replicating the production application was so bad that some of the application was corrupted and I needed to act quickly to fix it.

Not a good thing at all.  Nerve wracking.


Part of the reason for the issue was that we stored our application's third-party JAR files in the NSF.  This made the application size quite large and during replication over a poor network it caused some problems.

In my previous existence as a corporate developer I always recommended keeping everything within the NSF as much as possible.  Application portability was valued above all in that environment for me.

Nowadays I work on a publicly available hosted XPage application.  Given the different process requirements I live with now, application portability is much less of a priority while ensuring accurate production updates is truly mission-critical.

Solution:  I removed all of the third party JAR files from the NSF and relocated them to the servers' hard drives within the JVM ext folder.

Replication over  a low quality connection was instantly improved.

Moving those files to the JVM ext folder means that no Java permissions needed to be changed and the size of the NSF dropped by 340MB.  Since this is a design template, that savings is multiplied by the number of customer NSF files we create.

Saving space was not the primary goal but using less is a nice bonus.

The downside?  Domino server upgrades will require a little more thought and, of course, new server deployments take a bit more effort.  Given that our failover strategy has been successfully tested, our DR plan is in place and that we do not deploy new servers at the drop of a hat...this was an easy decision to make.

This solution clearly will not work in all Domino environments but food for thought.