Blog

ColdFusion 10 Update 16 prerelease build refreshed
Tue, 10 Mar

Update: Since this post was made, the final version of Update 16 was released and should be used instead.

The ColdFusion 10 Update 16 prerelease build has been refreshed.

For changes please refer this document.

For instructions on how to install this update you can refer this blog post announcing the Update pre-release.

We look forward to your feedback and suggestions.

NB. Users who had applied ColdFusion 10 Update 16 pre-release build earlier, should uninstall and re-apply this update build. The build number after applying this update should be 10,0,16,293399 (PreRelease).

ColdFusion 11 Update 5 prerelease build refreshed
Tue, 10 Mar

Update: Since this post was made, the final version of Update 5 was released and should be used instead.

The ColdFusion 11 Update 5 prerelease build has been refreshed.

For changes please refer this document.

For instructions on how to install this update you can refer the following blog post announcing the Update 5 pre-release: http://blogs.coldfusion.com/post.cfm/coldfusion-11-update-5-prerelease-build-now-available

We continue to look forward to your feedback and suggestions.

NB. Users who had applied ColdFusion 11 Update 5 pre-release build earlier, should uninstall and re-apply this update build. The build number after applying this update should be 11,0,05,293370 (PreRelease).

ColdFusion 10 Update 16 prerelease build available
Fri, 20 Feb

Update: Since this post was made, the final version of Update 16 was released and should be used instead.

ColdFusion 10 Update 16 early access build is now available for your testing and feedback. Please note that this is a test build and should not be used in a production environment.

Refer this document for the list of bugs fixed in this update.

Follow the steps below to apply this update.

  1. Navigate to ColdFusion Administrator -> Server Updates -> Updates.
  2. Under Settings tab, check "Automatically Check for Updates" check box
  3. Change the Site URL to https://cfdownload.adobe.com/pub/adobe/coldfusion/PR/updates.xml. 
  4. Click Submit to save your changes.
  5. Under the "Available Updates" tab, click on the “Check for Updates” button.
  6. "ColdFusion 10 Update 16" should be listed under the "Available updates" tab. 
  7. Click on the "Download and Install" button to install the update.
To apply this update manually, click on this link to download the update jar. To run the downloaded jar, execute the following command:
java -jar <jar-file-dir>/hotfix_016.jar
You should use the JRE used by CF for running the update jar (for standlaone CF, it should be <cf_root>/jre/bin)
For further details on the manual application of the updater follow this help article.

The build number after applying this update should be 10,0,16,293351(PreRelease).

In case, you have configured local site for receiving the update notifications, then please take back up of the URL before changing it to the prerelease URL.

We will look forward to your valuable feedback and suggestions.

ColdFusion 11 Update 5 prerelease build now available
Fri, 20 Feb

Update: Since this post was made, the final version of Update 5 was released and should be used instead.

ColdFusion 11 Update 5 early access build is now available for your testing and feedback.  Please note that this is a test build and should not be used in a production environment.

Refer this document for the list of bugs fixed in this update.

Follow the steps below to apply this udpate.

  1. Navigate to ColdFusion Administrator -> Server Updates -> Updates
  2. Under Settings tab, check "Automatically Check for Updates" check box
  3. Change the Site URL to https://cfdownload.adobe.com/pub/adobe/coldfusion/PR/updates.xml. 
  4. Click Submit to save your changes
  5. Under Available Updates tab, click on “Check for Updates” button.
  6. "ColdFusion 11 Update 5" should be listed under "Available updates". 
  7. Click on "Download and Install" to install the update.
To apply this update manually, click on this link to download the update jar. To run the downloaded jar, execute the following command:
java -jar <jar-file-dir>/hotfix_005.jar
You should use the JRE used by CF for running the update jar (for standlaone CF, it should be <cf_root>/jre/bin)
For further details on the manual application of the updater follow this help article.

The build number after applying this update should be 11,0,05,293351(PreRelease).

In case, you have configured local site for receiving the update notifications, then please take back up of the URL before changing it to the prerelease URL.

Please share your valuable feedback and suggestions.
ColdFusion 11 Update 4 released
Thu, 19 Feb

ColdFusion 11 Update 4 is now available for download.

This update includes bug fixes related to JSON, Imaging, Websockets, Charting, Language and Database.

For the list of bugs fixed in this update and the installation instructions please refer this technote.

For those who have applied the early access release (pre-release) build of Update 4, follow the steps below to reinstall Update 4.

  1. Uninstall Update 4 (PreRelease). 
  2. Reinstate the update URL by clicking on the "Restore Default URL" button in the "Server Updates" section in the ColdFusion administrator.
  3. Switch to the "Available Updates" tab and click on the "Check for Updates" button.
  4. Download and install Update 4.

 


Custom Error + onMissingTemplate + CF + IIS = confusion?? Not Exactly
Mon, 16 Feb

I have seen many customers getting confused in custom error pages and onMissingTemplate feature in ColdFusion and IIS. So I thought of blogging it for the use of larger audience. Before starting let me setup a platform.

Customer Eddard(name assumed) is using ColdFusion10(valid for ColdFusion11 too) configured with IIS. He has setup onMissingTemplate in Administrator of ColdFusion. Now Eddard expects ColdFusion to run this error page(mentioned in onMissinTemplate), let's call it 404.cfm, whenever user hits a page which doesn't exist. But suprisingly his browser is not showing the contents of 404.cfm and instead showing IIS 404 error page which is a static file(html file). After a lot of struggle he finds another confusing behavior that when he access the non existing page from machine where server is running(localhost) then his 404.cfm is getting executed. It's clear from the behavior that there is somehting in IIS which is handling this behavior.

In IIS settings he finds out that in "Site->Error pages->Edit feature settings->Error Responses" 3rd option was selected which says "Detailed error for local requests and custom error pages for remote requests". This option clearly explains that if the request will come from localhost then detailed error page will be executed whereas if the requests will come from Remote server then custom error page will be executed, which explains different behavior.

So Eddard is curious about two things now that what exactly is custom error or detailed error and how will he show his own error page 404.cfm to his users. So Eddard did a further research and found some answers like this. Custom error page is the feature in IIS by which you can tell IIS to execute a particular page based on particular error code. Eddard saw these settings in "IIS->site->error pages". He clicked on 404 and entered a cfm url in "Execute a URL on this site" setting. This URL pointed to the same page 404.cfm. And Bingo, hitting a request to non existing page executed his 404.cfm and contents were displayed as expected. So Eddard defintely know now that how to show his own error page to a user. But he still was thinking about difference between detailed error pages and custom error pages. Another question that came to Eddard was why onMissingTemplate even exists if he has to use custom error page.

Here I will give Eddard some rest and I will explain internal behavior of what all is happening. First of all I will explain custom error vs detailed error. In IIS when you select detailed error, IIS gives the server(ColdFusion) in this case full control of displaying the error message. And with that it also reveals a lot of server information which can be fatal if stolen or misused. So it is always recommended to not use detailed error messages for remote requests on production server. ColdFusion was charmingly executing onMissingTemplate in case of detailed error messages and IIS was dispaying the contents without any problem. But as I explained detailed error messages should not be used in production then how to execute onMissingTemplate. Well for that let me explain custom error messages, IIS asks you to execute a particular custom error page based on the status code. By default it will be IIS static page for all codes, you can see this in "IIS->site->error pages". Now in case of Eddard by default it was IIS static 404 html page mentioned in custom error which is why remote user was not seeing his own error page, remember this option "Detailed error for local requests and custom error pages for remote requests". So if you want your users to see your own custom pages then mention those url's in custom error page against that particular status code.

Since we have a good understanding of detailed error page and custom error page I will explain why onMissingTemplate was not getting executed for custom error page making it useless feature in production environment. What if I tell you it is being executed even in case of custom error page? You will ask then why Eddard's users were not able to see them? That is because IIS is discarding the contents of onMissingTemplate. Yes that's true, onMissingTemplate is not that useless, it is always executed even in case of custom error page. No matter what, if user hits a page which doesn't exist, onMissingTemplate will always be executed. It's just that onMissingTemplate responds with a status code of 404 to IIS. And when custom error page is setup, IIS detects that it's a 404 status code, so it discards the content of onMissingTemplate and executes the page mentioned with it. If it's static page then it will show static content or if it's .cfm url, then it will send the request back to ColdFusion to execute it. So in case of Eddard, 404.cfm page was getting executed twice, once by onMissingTemplate and next time by IIS because in custom error page he has again mentioned the same page. Not exactly a smart choice huh Eddard? A little knowledge is a dangerous thing(Eddard says - so is a lot).

You guys must be thinking what is the right approach then. I will give three scenarios and you can chose any one depending upon your requirements.
1. Custom error page - Simply use custom error page and do not use onMissingTemplate. You have to opt for "Custom error pages" in "IIS->site->error pages->edit feature settings". And give a 404.cfm url against required status code like 404 in "IIS->site->error pages". This cfm will be executed whenever that error has been hit like a user requested for non existing page. The page will not be executed twice since you have not mentioned anything in onMissingtemplate.

2. onMissingTemplate - Do not mention any .cfm url in custom error page rather mention it in onMissingTemplate. This will be useful in case you are not interested in showing contents to remote user rather you are just interested in some monitoring/logging. You can try to output somehting but IIS will discard it anyways and show contents of custom page(static html page by default). But for monitoring/logging purposes it should be fine because onMissingtemplate page will always be executed.

Note: There is a small hack to output content by using onMissingTemplate which you should not use but making you aware is my duty. If you explicitly set the status header as 200 OK using <cfheader> tag in onMissingTemplate, then IIS will never know that an error has occurred. It will always think that the page has properly executed and onMissingTemplate contents will not be discarded by IIS. So why is it a hack, because sending status code 200 OK in actually 404 NOT FOUND page is just wrong, it's like cheating your users in some manner. But yes, this is a way to bypass IIS discarding contents.

3. Custom error page + onMissingTemplate - Use can wisely use this option if you want to do some logging and also want to show contents to remote user only. In onMissingTemplate you give a URL of 404log.cfm and in custom error setting of IIS you give a URL of 404.cfm. So firstly 404log.cfm will be executed and then IIS will execute custom error page that is 404.cfm and will show the contents to user. This is a smart way of handling it.

4. onMissingTemplate(other webserver) - onMissingTemplate has a main advantage here as there are other webservers which are not as smart as IIS to detect error code and execute a custom error page. If you are using them, then without relying on web server's behavior you can simply give 404.cfm in onMissingTemplate and it will be executed and contents will not be discarded.

I hope that explains how to configure your ColdFusion servers and webservers smartly to handle your own error pages.

P.S
- Some customers complains that in CF9 the content of onMissingTemplate was not discarded by IIS. Fellow friends that is because in CF9 we were not returning the status code of 404 from onMissingTemplate so IIS didn't knew that it has to be handled. It was fixed as a part of bug in CF10. And CF10/CF11 behavior is the correct behavior as I explained in a note in point#2
- Thanks to Eddard(if he exists)


Thanks,
Milan.
CF Rocks.

Migrating from ColdFusion 9 to ColdFusion 11
Fri, 13 Feb

Migrating from ColdFusion 9 to ColdFusion 11

Since we have been getting lot of calls/queries around migration these days, I thought it would make sense to make a blog post on it. Now, since Migration is a very broad subject we need to keep in mind the Technology, Hardware, Operating System, Settings, Application Server, Web Server, Code compatibility.

Migrating from ColdFusion 9 to ColdFusion 11 can be done by more than 1 way. In this article we will discuss ways on how to migrate from ColdFusion 9 to ColdFusion 11.

There are 2 ways to migrate from ColdFusion 9 to ColdFusion 11

       1.       Migrate via Car files

       2.       Migrate via migration wizard

Migrate via Car files:

ColdFusion archive files (.car) files can be generated and deployed only if both the version of ColdFusion are in enterprise edition. Out of all the differences between standard and enterprise edition, one of them is that you cannot create a .car file in standard edition (generation of car file feature is available in ColdFusion 11 standard edition now). So, if you have ColdFusion 9 enterprise edition and ColdFusion 11 enterprise edition you can migrate via these method. In the ColdFusion 9 admin page please go to packaging and deployment >> ColdFusion Archives. In the ColdFusion archives page you will find two options

         ·         Deploy an Existing Archive

         ·         Create an Archive

Now, since we are creating the archive file we will select create an archive option. On the Archive name option let us give a name say “test” and click on create. Once the archive is created it will be listed under Current Archive Definition List. In the actions bar please click on the pen icon (refer to the image below):

 

When you click on the icon, a pop up page will open up where you can select all the settings that you want to migrate (refer to the image below)

After you select all the required settings you can click on close window button. After closing the pop up window, let us click on the build archive button (refer to the image below)


 

When we click on that button, a pop up page opens up where it gives you a summary of the selected settings (refer to the image below)

Please select next after you have reviewed the settings. In the next page, we will be asked to select the .car file. Now, let us create a folder in say “C” drive and name it test. Now, inside the folder let us create a file with extension .car . Let us name it migrate.car. Now, in the page let us browse to the that folder and click on okay and add the file name, the path should look like C:/test/migrate.car (refer to the image below)

Now, let us click on next and we should get a popup message saying “Build Successful” (refer to the image below). 


Click on okay and close the window. Now, let us go to ColdFusion 11 admin page and go to the same place that is  packaging and deployment >> ColdFusion Archives. Let us remember that we have already created the .car file and now we need to deploy it. So we will work on the first option that is deploy an existing archive. Click on the bowser server option and browse to the migrate.car file which we have created earlier. (Refer to the image below)

After entering the path click on deploy button and a pop up window will appear. Click on next and the next page will give you the option to deploy and it will specify the Deploy Locations as well (Refer to the image below)

Once you click on the button deploy, you will get a pop up message saying Deploy successful (Refer to the image below)

 

When you get the above message you have deployed the .car file successfully and with it migration from ColdFusion 9 to ColdFusion 11.

 

Migrate via migration wizard

In case you have a ColdFusion Standard installation or moving to one and both the versions are on the same server, then you need to modify the adminconfig.xml within ColdFusion. The location for adminconfig.xml is \ColdFusion11\cfusion\lib\

Now, if we are trying to migrate from ColdFusion 9 to ColdFusion 11, please follow the below mentioned steps:-

        ·         Navigate to adminconfig.xml for ColdFusion 11 and open it with text editor.

        ·         Change the value from “false” to “true” at

                          <Runsetupwizard>false</runsetupwizard>

                          <Runmigrationwizard>false</runmigrationwizard> and

                          <migratecf9>false</migratecf9>

        ·         Save the file and restart ColdFusion Service.

After restarting the service, you will get the migration wizard. Follow the on-screen instructions to continue.

 

Winner of the Mobile Application Development Contest
Wed, 11 Feb

A few months ago we announced the ColdFusion 11 Mobile Application Development Contest. The entries have now been judged. Thanks to Simon Free and Dave Ferguson for their contributions in judging the winner of the contest.

We got only two final submissions for the contest although many others expressed interest in submitting one.

The two submissions were,

1. Shakesperean Curses by Nicholas Claaszen and

2. CFClient Sampler by Brad Wood

A big round of applause to both Nicholas and Brad for their participation in the contest!

The winner of the contest is Brad Wood for his submission CFClient Sampler.

Congratulations Brad. 

Fulfilling customer requirements by focusing on functionality
Wed, 04 Feb

Since 2004, Promisan has built its management consulting and systems business by creating tools that help clients optimize how they use information. Promisan’s flagship enterprise resource planning (ERP) solution, Prosis, surpasses rival solutions because it has been built using the stable, mature, and powerful Adobe ColdFusion platform. ColdFusion gives Promisan the flexibility to meet changing customer requirements and to integrate with a variety of IT infrastructures

“Adobe ColdFusion is a fantastic application server that outperforms others at a significantly lower cost of ownership. Because it’s based on a J2EE-compliant Java platform, it readily supports Linux, Solaris, Mac, and Windows operating systems. The platform integrates seamlessly into Java and C++ projects—providing outstanding flexibility in the demanding, challenging ERP arena,” says Jorge Armin Mazariegos, co-founder and operations manager at Promisan.

Prosis has helped one global company cut staffing report times from three days to one minute and a recruiting agency to gain real-time insight into job recruiting status. The ERP system has also helped a crude oil distributor cut the time required to refill storage tanks by 67%.

Adobe ColdFusion has allowed Promisan to eliminate nearly all third-party tools for solution development. With ColdFusion, Promisan developers have achieved a sustainable business model for Prosis that can support sites with anywhere from 5 to 5,000 users accessing more than 1,500 normalized database tables.  http://adobe.ly/1BWdfnE