Keeping your FusionReactor updated
In this post, I want to encourage you to update as well as show you how to do it (and a mistake you could make that would leave you NOT completely updated because you missed a step.)
Here are some common questions I'm often asked as I assist people in using FR. Note the couple of bolded ones, if you are trying to update FR and finding that your instance won't start or is not showing to be updated:
- Can I get the update for free?
- Where do I get the update?
- How do I find out what's new in the update?
- Should I hesitate about applying the very latest FR update as soon as it comes out?
- How would you I know there WAS an update to FR available?
- Do I just need to run the full installer, or can I update just one file perhaps?
- Do I need to restart CF (or Lucee/Tomcat, etc.) for the update to take effect?
- Can I update FRAM and choose NOT to update my monitored CF/Lucee/Tomcat/etc. instance?
- I'm finding FR says it's not updated, but I know I ran the updater!
- What if my instance won't start after I update FR?
- Why do you keep referring to "CF/Lucee/Tomcat/etc."? I thought FR was a CF monitor tool?
Can I get the update for free?
Yes, FR updates are free for those who have bought it on subscription basis. If you buy the perpetual license, you can get it if you have a maintenance subscription, which is included for the first year or can be purchased for subsequent years. Those with a perpetual license who did NOT keep their maintenance updated can also obtain an upgrade at a discount. For more, see the FR web site or email or call them at the contact info offered on the top right of that page.
Where do I get the update?
You can always find the latest installer (and its date and version) at the downloads page at the FR site. Look past the info at the top of the page about getting a trial license key.
Better still, see below for how to also access a page from within FR to get (and find if you need) an update, and if you have current maintenance.
How do I find out what's new in the update?
On that download page, there is always a link offered for the Release notes of the current release. At the time of this writing, the release notes for all the FR7 updates are listed in the FR 7 Release Notes".
Definitely check out each release to learn what is new, as the FR folks are busy keeping it updated, adding features and fixes!
Should I hesitate about applying the very latest FR update as soon as it comes out?
I understand that hesitation. Any of us who have updated our OS, or CF (or any app server), or Java may have experienced problems which were introduced in that "new update" (which was supposed to fix other problems, of course).
I would just say this: the FR folks are highly focused on producing a quality product, including the updates. They put all updates through very rigorous testing. Naturally, there can be a LOT of moving parts in any typical web app deployment, so they may not test some specific situation.
I will add this: if you hit a problem and let them know about it (email email@example.com), they are VERY quick to attend to any problems, whether that means offering a private fix if appropriate, or later a public one.
How would you I know there WAS an update to FR available?
Currently, besides watching that downloads page offered above, you can also access a link from within the FR interface to check on the latest available version.
Use the "FusionReactor" button in the top left corner of your FR display (above the left menu options), and on that choose "About". On that page, you'll see text in gray at the bottom that shows your current version, and then above that is a link "check for FusionReactor updates", which will pass to the FR site your current version and license/maintenance info, and it will report if there's an update for you, and whether it's free. That page should then have links to the downloads, just like the download page whose link I offered above.
And note (very important) that this about page exists in both the FRAM UI (the 8087 port, typically) for those who have implemented FR with the full installer, as well as the FR UI for your monitored instances (the 8088 and later ports).
Those who DO have a FRAM instance should check both the "about" page in their FRAM UI AND that of their monitored FR instances, as they may not both be up to date, for reasons I discuss below.
(The screenshot here is an old one I'd used for a previous blog post on this topic in the FR5 timeframe, but the approach and menu and links are the same even now in FR7. There may be a new approach to managing updates in the future.)
Do I just need to run the full installer, or can I update just one file perhaps?
You can do either, as you may prefer.
You'll notice the downloads page offers both a full installer and just a jar. You can indeed run the full installer to do an in-place update of FR. Doing that will first update the FRAM instance (FR Administration Manager, the thing at port 8087 by default), and then it will lead you to run the update any instances in which you have installed FR.
But in most situations, you can also just drop the offered fusionreactor.jar in place over the current one. For more on using the jar file, such as where to put it (and also showing how you can use it to install FR into an instance even without initial use of the installer and/or FRAM), see the help offered on that page for the "manual" install approach.
Just beware: if you had installed FR using the installer, and you use this approach to "just update the jar", the FRAM Instance Manager will NOT know that you did that, and the version number shown for your instance may NOT reflect the actual version, as would be shown in the "about" page for that instance (see above).
Do I need to restart CF (or Lucee/Tomcat, etc.) for the update to take effect?
Yes, you do. Whether you use the Installer, Instance Manager, or manual jar file update. That said, you don't HAVE to update your monitored app server. You can save that as a later step, as discussed in the next section.
Can I update FRAM and choose NOT to update my monitored CF/Lucee/Tomcat/etc. instance?
(This is for those using the FR installer. Those who update FR by just updating the JAR file (see above) can skip this and the next question.)
Yes, you can update FRAM and choose NOT to update your monitored instance, though beware my warning here and in the next question.
When you run the updater/installer, it walks through the process of updating (and stopping and starting) the FRAM instance (which runs separately from your monitored CF/Lucee/Tomcat/etc. instance).
The last step of the updater/installer asks if you want to update monitored instances. You can say no, such as if you don't want to restart CF (or whatever you are monitoring FR). Then you can later update the monitored instance(s) by visiting the Instance Manager page of FRAM (the FR UI at the 8087 port, by default) and THEN choose to update the monitored instance(s). You will see (on the Instance Manager page) any instances of CF, Lucee, Tomcat or other java servers that FR can monitor. And for any that you have configured for FR, you can see what update level they are currently at.
Then use the "up" arrow on the right of each line of a listed monitored instance, to choose to upgrade it, which will lead you through a couple of screens to confirm you are ready to restart the instance. (You can also check the blue checkbox for more than one at a time, and then click the blue "up arrow" button above the instances, to update several at once.)
FWIW, note that when you update an instance this way, all FR does is stop CF (or Lucee or Tomcat or your Java server). It does not modify it at all. It then updates the FR JAR file that the previous install or update of FR had put in the associated folder for this instance, in the \FusionReactor\Instances\ folder. Then it restarts your instance, and as its JVM configuration points to that folder, the instance comes up now using that updated FR jar file. Easy peasy.
BTW, the first prompt shown (when you DO update an instance) asks if you want to RESTART the instance. Note that saying "no" here would NOT prevent the instance being STOPPED by the updater. It would only prevent it being STARTED again! That's probably not what you want. Again, if you don't want to restart the instance at that time, then don't proceed with the update. Come back and do it later, only don't forget to do that...
I'm finding FR says it's not updated, but I know I ran the updater!
This is a surprisingly common problem. Note in the previous question and answer, I said you could run the installer to do the update, which would update the FRAM (8087 instance) and THEN offer you the option to configure your instances, meaning it would show you the FRAM Instance Manager and let you choose to update each or all listed instances, as I discussed in the last topic.
The problem is that sometimes people either misunderstand (or miss) that question, or they decline it. Or they accept it but then see how the update of the instance would require restarting it (as I discussed in the last topic).
So they pass on doing this last step--of updating their monitored instance(s). And then they may forget about it. And then, your actual CF (or Lucee or Tomcat or other Java instance) that is monitored by FR remains using the OLD version, not the new one.
Recall that I said that the FRAM Instance Manager page lists any instances on the server that can be or are monitored by FR, and for those that ARE configured for FR, it shows the FR version the instance is using. I have seen situations where the FR version for listed instances was FAR BEHIND the version of the FRAM instance (updated by the installer).
So please, don't forget to do this last step of needing to actually update FR within your instance, AFTER running the FR installer.
What if my instance won't start after I update FR?
This can be scary and annoying, of course. You just wanted to update FR, and it was supposed to be easy. But after doing the update, you may find that your instance won't start. You may be tempted to uninstall FR (don't do that, as you will lose all the prior FR logs you have). You may be tempted to restore to some prior snapshot/backup of your server. That would be fine, but perhaps it's not necessary.
First, if you ran the automated installer, note that (as I said in a prior answer) all the updater does is put a new FR jar file into the FR directory for your instance (under /FusionReactor/instances). It does not TOUCH your instance's JVM configuration (that was done when you FIRST implemented FR into the instance, whether manually or by way of the Instance Manager).
So, if your instance won't start, it's not something that FR "did" to your instance. It could be that something ELSE (that was changed recently about your instance) is keeping it from coming up, in which case don't blame FR. Maybe you (or someone) made a change that would not take effect until your instance was restarted. And since the FR update mechanism DOES require the instance to be restarted, it could be that the instance would have failed EVEN WITHOUT FR having been updated. It could be due to some change done days or weeks ago, if your instance had not been restarted in that long.
Here's my suggestion (before you panic and uninstall FR or revert to a snapshot or OS backup): just comment out the FR configuration in your instance's jvm configuration. It's just one (or perhaps two) arguments in the JVM arguments: the javagent and perhaps an agentpath, which would refer to the FR directory and that instance folder I referred to a moment ago.
It's beyond the scope of this blog post for me to elaborate how to do that (and where to find that file) for each CFML and Java server that FR supports. I'm simply sharing this for those that DO understand such things to say that if you REMOVE the -javagent and -agentpath for FR from the JVM configuration, and you restart, and the instance STILL does not come up, then that's further proof that the problem is NOT about FR.
(I'll just caution that even if you DO know how and where to modify the JVM configuration for your instance, do be careful that when removing JVM arguments you don't want to remove needed spaces between remaining arguments or leave any dashes, etc. from the arguments you're removing. It is ALWAYS wise to save a copy of that jvm configuration file before changing it, or keep it open in an editor that allows you to undo your changes.)
If you get really stuck, again you can reach out to them at firstname.lastname@example.org. They are in Germany, but they do try to keep someone monitoring that into later in the day for US hours. I can also offer help, remotely via screen-sharing. For more, see my Consulting page.
Why do you keep referring to "CF/Lucee/Tomcat/etc."? I thought FR was a CF monitor tool?
Finally, I'll take this opportunity to clarify something that may be a surprise to many ColdFusion users. FR is NOT just a monitor for CF (though it can indeed monitor any version of CF, from 6 or above, and though it's probably used by more users of CF than anything else).
It can be used with not only ANY CFML engine (so CF, Lucee, Railo, BlueDragon Server JX) but indeed ANY java application server, including Tomcat, JBoss, Glassfish, Jetty, and so on. See the system requirements page on the FR site for more.
More than that, now that FR (5 and above) is deployed as a javaagent, technically it can be used to monitor any java application at all.
Hope that's helpful to some readers.
There may be some other questions folks may ask as comments here, or that I may think of later. I'll update the entry to reflect those as needed.
For more like this: