[Looking for Charlie's main web site?]

FusionReactor 9.2.1 update released Jan 31 2023: resources and thoughts

If you're using FusionReactor, note that a new 9.2.1 update was released last week, Jan 31, with a couple of bug fixes--including one where you may need to add a JVM arg to prevent an error, in a certain case as I will discuss.

For more, read on.

This is a follow-up to my post offered Jan 24 announcing FR 9.2.0.

The 3 items listed in the FR release notes for 9.2.1

If you visit the release notes page for FR, you will see that the items indicated as changed were these:

  • FR8397 Bug: Fix total requests (last 60 seconds) amount in Web Metrics page.
  • FR8398 Improvement: Add property to disable CF query monitoring for Redis cache when property is set to false (set to true by default).
  • FR8399 Bug: Fix event snapshots no longer being sent to the cloud.

That second item is important, for CF Enterprise users storing CF cached queries in Redis

Though listed as an "improvement", and the issue might affect only a very small class of users, still it's worth noting.

In that post I'd done on 9.2.0 some may recall I mentioned that one of its new features was that the FR "Metrics>CF System Metrics" page was working again after a couple year hiatus (due to a change Adobe had made). I highlighted especially how graphs there like the one showing the number of "cached queries" now "worked" as expected.

Well, an unfortunate side-effect of that may affect those running CF Enterprise, who have set CF to store caching in Redis. In that case, this new FR ability causes CF to fail upon trying to retrieve such cached queries if stored in Redis. The error is:

Error casting an object of type class java.lang.String cannot be cast to class coldfusion.sql.CachedQuery

Other aspects of the error message include phrases like, "coldfusion.sql.CachedQuery is in unnamed module of loader coldfusion.bootstrap.BootstrapClassLoader" and "class java.lang.String cannot be cast to class coldfusion.sql.CachedQuery".

Again, this issue ONLY occurs if you are:

  1. running ColdFusion Enterprise (and perhaps only 2021 or above, as that's all I've heard about and tested so far)
  2. and you have configured Redis as one of the CF Admin caching options
  3. and you have configured the CF Admin caching page to set Redis as the default or have set it at the application-level
  4. and finally have set some CF query to use caching, such as cachedwithin or cachedafter

This is part if the "distributed caching" feature introduced in CF2018 (again, Enterprise only), where the CF Admin (or your app) can be configured to store CF's caching in other than the default ehcache. Other options introduced were memecached, Redis, JCS, and even a "custom" caching solution you could integrate with, then CF2021 added Azure Redis Cache and AWS ElastiCache. See the Adobe docs for more, including how this caching could be enabled at the Admin level and overridden at the application-level.

So far, I am aware only that this FR-related problem is ONLY with ColdFusion cached queries as stored in Redis. I have not heard of (or yet tested) whether the problem happens with memcached or the other caching engines, nor have I tested it with CF2018, nor have I tested it with Lucee. I wanted to get this info out first, and if I learn anything new I will update this post.

Turning off the FR query cache monitoring as a workaround

So back to the problem, what FR 9.2.1 adds is not so much a fix to the problem, but an option allowing you to prevent FR from doing ANY monitoring of ColdFusion cached queries, at least until this problem is addressed otherwise by Adobe or Intergral. Yes, that's a bit of a hammer (if you have any applications configured to store caching in OTHER than Redis). But at least it will prevent the error in that scenario above.

The fix is to add this JVM argument to the JVM args for CF;

-Dfr.coldfusion.monitor.query.enabled=false

To be clear, the value defaults to true (so that FR DOES do query cache monitoring by default, as I noted in my previous blog post). You would set it to false to PREVENT the monitoring, at least until this problem is resolved between Adobe and Intergral (makers of FR).

Of course, such JVM args are added to ColdFusion either via CF's jvm.config file or the CF Admin "Java and JVM" page. In either case, always be VERY careful implementing any such JVM argument. If you make a mistake, you may find that CF won't start (and you would not be able to access the CF Admin then, to undo the change.). I have much more info on dealing with such JVM config changes in other posts here on my site.

Conclusion

If you visit the FR UI (on-prem or in the cloud), you will also be notified of this new update. And that notification will take you to the FR download page, which itself also has a link to the release notes mentioned above. I just point these updates out when I can, to help folks who might miss that info or want more information.

As for performing an update to FR, I did a blog post on that topic in 2018, which still mostly applies well.

If you need help installing the update, or working with FR, or dealing with that issue above (or indeed any aspect of ColdFusion, or Lucee, or using FusionReactor itself), I am available for short-term, remote consulting, with satisfaction guaranteed or you won't pay for the time. See my online calendar link or contact info offered there.

To be clear, I don't work for Intergral, the makers, but I am a LONG-time fan and love helping people know more about it, just as I help folks use it almost daily in my consulting work.

And if you'd like to hear more about using FusionReactor, I've done several hour-long webinars over the years, and those are available as a playlist on my youtube channel. I've also done over 60 FR blog posts.

As always, I welcome comments and corrections to this post.

For more content like this from Charlie Arehart: Need more help with problems?
  • 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
Comments
Copyright ©2024 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting