I just replaced a poll that I had been hosting on my site for a few months now, I left it online longer than most polls because I wanted to at least 1000 responses (which I now have). The poll asked “What is most compelling about CFMX 6.1?” and gave 5 possible answers. 49% picked “Increased performance” as most compelling, no surprise there. But what did surprise me is that “Multiple instances” and “Enhanced ” pretty much tied for 2nd place (with 16% and 15% respectively), I’d have expected “Multiple instances” to rank far higher.
So, are you using multiple instances? And if not, why? I know that cost is a factor, ColdFusion Enterprise costs more, and so for many of you that may very likely be the reason. But lots of you do indeed own ColdFusion Enterprise, are you not installing ColdFusion on top of J2EE? And again, if not, why? Please share.

11 thoughts

  1. I think there are a couple of reasons:
    1) Cost, as you noted. With the increased cost of MX vs. CF just a couple of years ago coupled with the increased competition from New Atlanta (BlueDragon) and tighter IT budgets, companies need to have a more compelling reason than whitepapers and CFUG presentations to upgrade. Don’t misunderstand, I understand where the increased costs are coming from (this isn’t your daddy’s ColdFusion), but price is starting to become a critical factor. Just a couple of years ago, my boss would have never hesitated at the price when I told him we needed to upgrade. However, this go-around, I had to create cost-benefit analysis charts and stuff to prove it was worth the cost to our small company.
    2) Between you, Brandon Purcell, Sean Corfield, Christian Cantrell, and many other Macromedia employees, you’ve certainly disseminated enough "how to" articles, but I still haven’t seen a compelling real world case to justify the extra work involved in maintaining multiple instances. One thing I’ve found out as an MX for J2EE for JRun user for well over a year now, the administration of MX/JRun is infinitely more complex than CF 5 and below. I am still highly frustrated at the lack of real good documentation for JRun. I shouldn’t have to rely on Brandon Purcell’s unbelievable blog to glean tips on how to setup/test/administer my JRun/MX installation. Our web site is clustered, with one MX instance one each of two web servers. I couldn’t fathom doubling that number (2 on each) "just because I can."
    Sorry for the long post, but this has come up a couple of times, and I’ve been looking to be convinced that I’ve missed something by not using multiple instances. I’ll definitely be watching these comments.

  2. I completely agree with you on some of the points your raised. Cost is increasingly proving to be a sore point. Where I work, techies like us are getting edgy because we are always told we spend money on technology for technology sake; every new tech spending get much scrutiny than a CIA scoping a terrorist suspect ;-).
    I was able to get to CFMX6.1 all because we already have a CFMX6 license (free upgrade). Unless I get another free upgrade, CF server would be a no go area for sometime to come. And sincerely, I am being tempted by Blue Dragon.
    For multiple instances, the question we should ask ourselves is not if we should have it but why we should. For a company with a single intranet/web site, multiple instances wouldn’t be of too much benefit.
    However, for security reasons, which I have painfully discovered, multiple instances is a MUST for ISPs hosting commercial cf sites. Else, you could be asking for a truck load of trouble.

  3. Ditto on the multiple instances front. It seems like a valuable feature, however without much information out there about JRun Administration and performance tuning for it in general. I still think of it as a "gee, wow" feature, really. Perhaps if there were a real world example of it out there, and better documentation / easier way to do it (sys admins don’t seem to be able to grasp the changes between 5 and 6), then I think it’s something I’d take more seriously.
    We’re still at step one, which is trying to get past problems of getting 6.1 to run dependably for more than a day on our cluster under load on the same hardware that CF 5 did/does, unfortunately.

  4. My employer runs a cluster of 4 webservers running windows 2000 server. We just finished migrating to CF MX 6.1 and completely overlooked this ability because frankly porting all the code over was a pretty big task all by itself and even if we understood the multiple instances issue we would probably go in two or more steps. Now that we’ve finished maybe we would take a look at running multiple instance on the same box if we understood it better.
    We’ve gotten to 4 servers by "throwing another box" at the performance problem as our loads have increased. An interesting point of education, or analysis, would be an answer to this question. And before I ask it, I understand that every situation is different but assuming optimal code (code which is efficient as one can make it) at some point as load increases we are all confronted with a performance issue. So what is the best way to deal with it given increasing loads from a cost perspective and a performance perspective? In other words, is a shop like ours better adding a fifth webserver (box) or would it behoove us to convert our existing infrastructure so that each box could in essence become N number of instances to spread the load? It seems almost counter intuitive to me that two instances on the same machine could be more efficient than two instances on two dedicated machines, but I’m keen to understand this issue because this to me would be a very compelling reason to work with multiple instances. I’m not sure I am asking the question correctly, but I think all I’m trying to understand is if we can use multiple instances to cluster on a single machine the same way we do using multiple machines, and is this an viable approach to dealing with load based performance issues.

  5. One other thing that I didn’t mention in my original post is that one huuuuuge limitation of running multiple instances (or even a cluster of 2 servers with one MX instance on each, as is my case) is the inability to replicate Session-based CFCs. That was a tremendous shortcoming of the MX release, and caused us a great deal of additional development effort because we now had to implement Memento patterns across our application to pass data in to static CFCs on each box. What a pain, and one that *has* to be at the top of the Blackstone enhancement list if you are going to continue to promote multiple instance of MX. (And yes, I’ve entered this in to the wish list already!!)

  6. In terms of the Multiple Instance feature, I think one thing to keep in mind is that there are a lot of CF/IIS environments out there. A lot of administration went into not only the CF side, but also the IIS side. There is a lot of additional work that needs to be done when moving those settings from IIS to JRun.
    We ran across this problem when setting up our dev environment. We wanted Development and Staging on the same box, running under two instances, but a lot of our legacy code relies on various IIS settings. I’m sure we’ll make use of multiple instances eventually, but not until we get a fleeting moment to rewrite that code.

  7. – We DO use multiple instances and is a HUGE benefit…but we had some configuration issues with the underlying JRun. Overall it’s awesome once you get out all the kinks.
    – The CFMX / Jrun install is messy. Need more flexability in regards to the d

  8. Some action items for me …
    1) Better education as to the why’s and how’s.
    2) Simpler integration.
    3) Greater visibility into future JRun plans.
    I’ll pass these on to the team.

  9. I think people mistook "most compelling reason to upgrade" for "what made you happiest in MX 6.1. I could be wrong… in which case I suppose that the vote numbers reflect that a lot of developers don’t (or didn’t when they took the survey) understand the real significance of the ability to run multiple instances. The new <CFMAIL> functionality is nice and the performance increases are amazing, but the performance increases are really making up for something that’s been a horrible performer in CF for far too long. How many people are really using all of the new features in <CFMAIL>? My guess is that there aren’t THAT many – not in all of their apps. and most of their pages. Running multiple instances can potentially improve the performance of EVERY page in EVERY application out there… as well as offering all the other benefits (multiple environments on one box, failover, etc.). Maybe everyone who replied to your blog did understand the question and is aware of the significance of multiple instances, but are running CF Pro rather than Enterprise? Just grasping for explanations here.

  10. I was wondering if any future coldfusion releases would include "session on end" in the application.cfm. Every other web app supports it except ColdFusion. I know you can import J2ee session vars and fire off a java class to do session on end, but why is this not available with in ColdFusion.

  11. Stacy, In response to the statment " Is Jrun going to be enhanced? It could use some serious improvements. Our Java folks loathe working with it…useability issues." I would be interested in hearing why they do not like working with JRun. I have worked with Websphere, Weblogic, SunOne, Tomcat and others. I haven’t found an easier J2EE server than JRun and I find myself frustrated with the other appservers on the market. Maybe I have just been using JRun too long.

Leave a Reply