Skip to main content
ryanc59953350
Participant
March 2, 2020
Question

Does the latest version of ColdFusion Standard allow multiple (hundreds) of concurrent websites?

  • March 2, 2020
  • 1 reply
  • 1358 views

I am helping a client update their existing ColdFusion 8 server environment to ColdFusion 2018. They currently run many (hundreds) of websites through a single instance of ColdFusion 8 Standard Edition on Windows Server. Is this model still supported by ColdFusion 2018 Standard Edition, or does this require an Enterprise Edition license to do so?

 

Aside from all of the obvious changes to code required to make the upgrade (there will be a development and staging environment setup to test everything before the new servers go live), the client is worried that the license for Standard Edition may not cover their specific use case any longer.

 

Can someone shed some light? I cannot find the answer here nor through the official license documentation. Perhaps I'm misinterpreting it, but it doesn't appear to touch on this specific use case.

This topic has been closed for replies.

1 reply

Charlie Arehart
Community Expert
Community Expert
March 2, 2020

Kindred, so let's be clear: you are asking if CF can handle multiple hundreds of web SITES, not users (though that can be implied also). And you ask if there's a change from CF8 to CF2018 Standard that may affect that.

 

First, you don't say if the CF8 was Standard or Enterprise. That could be helpful to know.

 

Second, on the surface, no, there's no reason to think or assert that somehow CF 2018 Standard can't handle "multiple  hundreds of web sites", if CF8 was able.

 

Then again, I'm sure you're moving from an old box to a new one, right? And probably from an old OS to a new one, right? And perhaps even updating the DB you use? And of course your web server version will likely change. Was it Windows and IIS? Linux and Apache? or some other combination?

 

I ask all this because ALL these factors could just as readily lead you to find that your "move" fails--but not because of CF, so do be careful when trying to understand when things might go amiss. It's easy to blame CF.

 

Now, back to the question of whether CF8 was Enterprise or Standard: if it was Enterprise, and you are moving to CF2018 Standard, there's no aspect specific to that change which will make it that new CF implementation can't "handle as many web sites". But there is an aspect of that which may affect whether it can handle "as many users".

 

CF Standard differs from Enterprise in at least one key matter that relates to that: Standard implements something called the "enterprise feature router", by which CF essentially single-threads access to certain tags, like cfdocument (for creating PDFs) and some more. What this means is that while ONE request is processing a CFDOCUMENT, no OTHER request that wants to use that tag will be allowed to run, until that first one completes. Often there's no problem, but if ever a given CFDOCUMENT hangs up, and other frequently run requests want to ALSO use that tag, that can suddenly make CF seem to be "hung up", if all available request threads (set in the CF Admin "max simult requests" setting) get used up waiting on that CFDOCUMENT.

 

But back to the question solely of SITES, no, there's no difference in CF Std or Enterprise (or 2018 vs 😎 about how many "sites" CF can handle. Of course, such sites are setup in the web server (like IIS or Apache), and then CF is connected to those sites (with the wsconfig tool, which looks nearly identical in CF2018 to what it did in CF8). But there is no limit to how many "sites" CF can be configured to run.

 

I WILL note, however, that since CF10, there is a change in CF with respect to how that web server connector configuration works. There is a new need to properly TUNE these connectors (especially for use with IIS, but also with Apache). There are two key factors: one being how many sites use a given connector (in terms of some settings in a workers.properties file for each connector)--and then also another need to configure a CF setting relative to how MANY connectors there are and how they are configured (in terms of a maxthreads setting for the AJP connector within the server.xml file). 

 

In CF10 and 11, the default settings for these things basically only suited a single-site setup out of the box. And in CF2016 and above, the defaults are confgured to suite a two-site setup. Once you have many sites using a given connector, or of you decide to create many connectors, then there are very different settings that are needed. This info is covered in a blog post that Adobe shared back in 2014, relative to CF11. The info shared then is as relevant today (in 2016 and 2018) as then, other than this change in the default values. You will want to read that blog post (which is a bit of a mess, sadly), as well as some of the many comments that were shared. It's here:

 

https://coldfusion.adobe.com/2014/05/coldfusion-11-iis-connector-tuning/

 

Or I will say that if you have trouble deciphering it, or setting things up, I can help do it, on a consulting basis, remotely, and any day this week or in weeks to come, if you'd like such help. More at carehart.org/consulting.

 

Or you can ask questions here, and others may well chime in with more info, whether on things I shared or still other matters for you to consider. Hope that's helpful.

/Charlie (troubleshooter, carehart. org)
Charlie Arehart
Community Expert
Community Expert
March 2, 2020

I just thought of one more thing: you say your client is concerned as much about "licensing". To be clear, there's nothing in the CF license (in CF8 or CF2018 or in between) that relates to how many "sites" CF can run (in Standard or Enterprise).

 

It's worth nothing that most of the recent CF versions have indicated how CF is licensed "per core" (with CF Standard supporting up to 2 cores, per license purchased, and Enterprise supporting up to 8 cores, per license purchased), where you are expected to buy the right "number" of licenses for your machines number of cores. 

 

BTW, one can view the license for any CF version via the license.html file stored in the root of your CF instance, or some can be found online also. More in a blog post I did here.

 

Next, while it's NOT new compared to the license in CF8, do note that the CF license has always had limitations about how CF may be used, especially with an assertion against operating as a "service bureau".

 

In the recent EULA's, it says you are restricted from:

 

"(a) using the Software on behalf of third parties; (b) renting, leasing, lending, or granting other rights in the Software including rights on a membership or subscription basis; (c) providing use of the Software in a computer service business, third party outsourcing facility or service, service bureau arrangement, time sharing basis, or as part of a hosted service; or (d) using any component, library, or other technology included with the Software other than solely in connection with its use of the Software.".

 

In the CF9 license, the oldest I could find, it prohibits:

 

"(a) using the Software on behalf of third parties; (b) renting, leasing, lending or granting other rights in the Software including rights on a membership or subscription basis; (c) providing use of the Software in a computer service business, third party outsourcing facility or service, service bureau arrangement, time sharing basis, or as part of a hosted service; or (d) using any component, library, or other technology included with the Software other than solely in connection with its use of the Software. Notwithstanding the foregoing, with respect to a Production Software License only, Licensee is permitted to host the Software (including the accompanying Macromedia JRun Software) for use by persons other than Authorized Users."

 

The reason I bring all this up is that there have been instances in the past year or so of people reporting here that Adobe sales folks sent them a "survey" offering to "help them", which asked questions that helped determine if they were offering web sites that made money using CF to serve such sites, which they (these Adobe sales folks) asserted were operating as a "saas model" and which they felt violated the "service bureau" limit above. That's in the old ones and new ones.

But what's new are these occasions of some folks (but not everyone) being chased down for violating this term, and negotiating an annual license instead of the perpetual one (sometimes for numbers they found acceptable, or as often not).

 

And of course, that's led some to choose to leave CF, or try to move to Lucee, etc.--but I will add that some of the folks hit with this learned that if they switched to running their CF with a host, then their HOSTING company's license DID allow them to operate such a saas business. 

 

To be clear, I am not a lawyer. But since you mention licensing, and having hundreds of sites And this whole matter was covered in considerable detail in a very long thread last year, here.

 

Your client will want to at least be aware of this situation.

/Charlie (troubleshooter, carehart. org)
ryanc59953350
Participant
March 3, 2020

Hi Charlie,

 

You have provided a fantastic amount of information here that fully satisfies my original question about the number of websites a single instance of ColdFusion 2018 Standard can support. The other factors (number of concurrent users, web server in use, memory, connector, etc) will all get addressed during testing, so there are no worries there.

 

The reason this came up is because the client attempted to upgrade to CF10 Standard Edition several years ago and found that it immediately buckled under the load. This was likely due to other factors, such as the underlying Java runtime's memory limitations or other platform specific factors, and not CF10 itself as you touched upon.

 

I do want to point out that I did state that the client is running ColdFusion 8 Standard Edition in the second sentence of my original post.

 

I find the mention of users moving to Lucee an interesting topic as well. This client also attempted to move to Lucee and found that the Lucee platform is not well suited to running concurrent websites without a full rewrite of their underlying systems. It's too involved for this post to get into, but the bottom line was that Lucee doesn't support adding sites without restarting the service unless you setup your web server to proxy all requests to one main web context in Lucee and then have Lucee determine which website should respond to the request. While this would have been fine in some cases, their specific setup required a full rewrite of how all of their systems work to support this model and it was deemed cost prohibitive.

 

Thank you again for your help!