Keeping your FusionReactor updated
Note: This blog post is from 2018. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.If you are using FusionReactor (the monitor for CF/Lucee/Tomcat and other Java servers), are you on the latest release, or at least a relatively recent one? You really should be, as new features are added all the time. (I especially love the new "archived metrics" that had been added in 7.2.) I've written in the past about various FusionReactor updates, and would hope to do so in the future. (Here's my category of posts on FR.)
In this post, I want to encourage you to update as well as show you how to do it, whether you have implemented FR using the automated installer, the manual install process (drop in the jar), or are running it within Commandbox. (I also address a mistake you could make when using the automated installer that would leave you NOT completely updated because you missed a step.) But notice that most of the bullet points are about OTHER than actually DOING the update. If that's your focus, jump to that section.
Update: Just a few months after I offered this post, version 8.1 was released (in Jan 2019), and it offers now a notification in the top banner when there is an update, which is nice (but obviates only a couple of points I make below. The rest should apply well into future FR releases.)
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?
- How do I perform the update? Do I just need to run the full installer, or can I update just one file perhaps?
- 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". That lists the various minor point releases and sub-point releases, and what was added or fixed.
Then as a new major version comes out (like will happen with FR 8 and beyond), they'd create a new release notes doc, offering it there, and then also offering a link for folks who may want to find the old one. (Update: Again, version 8 DID come out after this post. Its release notes are here.)
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 protected]), 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, prior to FR 8.1?
Update: As I noted at the outset, FR 8.1 changed things and now offers a notification in the top banner when there is an update. The information below in this section applies to those on earlier FR versions.
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.)
How do I perform the update? Do I just need to run the full installer, or can I update just one file perhaps?
As I noted above, the focus of this post was as much on encouraging you to KEEP updated as much as how to DO the update. That's why this section is in the middle here.
So first, you'll notice the downloads page offers both a full installer and just a jar ("manual installation"). What steps to take next depends on how you installed FR in the first place. (If you're not sure, see the note at the end of this section.)
And if you may be running CF or Lucee within Commandbox, note that offers its own means to update FR, whether automatically or manually. For more see the docs on that.
a) If you did a manual install using only the jar, then you can just update that. For more on using the jar file, such as where to put it (and how you can use that in the future to install FR into an instance without using the installer), see the help offered on that page for the "manual" install approach. Basically you stop your monitored instance (CF, Lucee, Tomcat, etc.), then drop the new jar into where the old one was, deleting that--don't just rename it, then start the instance. You can skip the next few sections and proceed to, What if my instance won't start after I update FR?, or below that.
b) But if you had run the full installer initially (to install FR) , then you should get the updated one and run that now to do an in-place update of FR. That will first update the FRAM instance (FR Administration Manager, the thing at port 8087 by default), and then it will lead you to choose to update any instances in which you have installed FR. You DO have to take steps to do that. (See the next 3 points below.)
Could you also use the approach to "just update the jar"? Yes, but then the FRAM Instance Manager would NOT know that you did that, and the version number shown there for your instance would NOT reflect the actual version, which would get confusing.
Note: If you're not sure which installation approach was used, here's how you can find out.
- First try running localhost:8087 from a browser on the server (or from off the server assuming that port 8087 has been opened for you, as perhaps FR's port 8088 would have been, if that's how you access that.)
Does an FR login appear? If so, that is the FRAM instance that I refer to elsewhere here, and that means you did the full installer.
If an FR page does NOT come up, go to the next step.
- Check if you have a FRAM service defined on the server: on Windows, look for "FusionReactor AM Service", while on Linux or macOS look for a framd service.
If there is a FRAM service, again that indicates you implemented the full installer. If it is not started, does it start? If so, try the URL again.
If the FRAM service is not there, then it would seem you did NOT do the full install, in which case follow the steps for the manual install.
Can I update FRAM and choose NOT to update my monitored instance? (CF/Lucee/Tomcat/etc.)
(This is for those using the FR installer. Those who update FR by just updating the JAR file as discussed 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 peezie.
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. It happens to folks who don't know what I just shared in the previous question and answer. I said you could run the installer to do an in-place update of FR, and that 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 fail to notice that. (Older versions of FR even asked about this before launching the FRAM UI at port 8087, and people would misunderstand the question or decline it.)
So they don't this vital last step--of updating their monitored instance(s). Or maybe they mean to and then 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 javaagent 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 -javaagent 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 [email protected]. 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 content like this from Charlie Arehart:
Need more help with problems?
- Signup to get his blog posts by email:
- Follow his blog RSS feed
- View the rest of his blog posts
- View his blog posts on the Adobe CF portal
- If you may prefer direct help, rather than digging around here/elsewhere or via comments, he can help via his online consulting services
- See that page for more on how he can help a) over the web, safely and securely, b) usually very quickly, c) teaching you along the way, and d) with satisfaction guaranteed
There are no comments for this entry.[Add Comment]