ColdFusion 11 Update 3 early access is avaiable now!

ColdFusion 11 Update 3 early access build is available for testing and feedback.

The list of bugs fixed and what’s new in this update can be found below.

Issues_Fixed

ReleaseNotes

We always appreciate your valuable feedback.

NOTE: For those users who have already applied update 3, they have to un-install it and re-download the latest build to install it again. The latest build number should be 11,0,03,292024(PreRelease)

 

Introducing IIS application pool ‘Idle Timeout Action’

In this post, we will discuss about the new setting ‘Idle Timeout Action’ introduced with IIS 8.5 web server. Before I start discussing usage of ‘Idle Timeout Action’. I would like to tell what the Idle Timeout is.

IIS provides the administrator with an option of timing out a worker process that is idle for a specified period of time. This is a good option for sites that are not accessed very often because it frees up system resources when the site is idle. The disadvantage is that the next time the site is accessed, the user will need to wait for the worker process to start again.

With IIS 8.5, it provides an option of suspending an idle worker process than terminating it. A suspended worker process remains alive but is paged-out to disk, reducing the system resources it consumes. When a user accesses the site again, the worker process wakes up from suspension and is quickly available. When an idle worker process is terminated, the worker process is shut down and the startup period will be longer when the site is subsequently accessed. The default behavior is to terminate the idle worker process, and the same behavior is used in the previous versions of IIS.

This setting can be changed at the application pool level. But how to check which application pool is being used by the website.

Follow these steps to check application pool name:

1. Open IIS manager.

2. Select website from Connections pane.

3. Click ‘Basic Settings’ from the Actions pane.

4. Check the name of application pool from ‘Edit site’ dialog box.

After checking the application pool name, follow below mentioned steps to change the value of ‘Idle Timeout Action’ property:

1. Navigate to Connections pane > Application Pools.

2. Select <Application Pool Name> and then click Advanced settings from the Actions pane.

3. In Advanced settings dialog box, under Process model, change the value of Idle Time-out Action property to Suspend.

4. Click OK.

 

Reference: http://www.youtube.com/watch?v=hkizFsHDexA

 

 

 

 

 

 

 

How to enable verbose logging at connector level in ColdFusion

Increasing logging verbosity at the connector level can be helpful in quick problem identification and resolution as it can pinpoint where the problem is, when an external web server is being used with  Adobe ColdFusion.

ColdFusion 10 and 11 supports IIS and Apache web server. I will show how to enable verbose logging on both web servers.

When we configure connector with an external web server. ColdFusion creates configuration file and store them at <cf_install_root>/config/wsconfig/<Magic Number>.

IIS

To enable verbose logging at IIS level,

  • Set log_level property value from info to debug, in the isapi_redirect.properties file located at <cf_install_root>/config/wsconfig/<Magic Number>.
  • Restart web server for changes to take effect.

Now, It should start logging verbose information about each and every request served over connector in log file named isapi_redirect.log available in the same configuration directory.

If you have more than one website configured with ColdFusion, each website has its own numbered directory available at <cf_install_root>/config/wsconfig/. You should make the changes only in the intended website.

To ensure the configuration directory for specific website, navigate to IIS Manager > Sites > {Site Name} > Jakarta virtual directory. Right click on jakarta virtual directory and click on explore, it will open connector configuration directory for that specific website.

Apache

To enable verbose logging at Apache level,

  • Set JkLogLevel property value from info to debug, in the mod_jk.conf file located at <cf_install_root>/config/wsconfig/<Magic Number>.
  • Restart web server for changes to take effect.

For Apache, it logs verbose information into a log file named mod_jk.log available in the same configuration directory.

 

 Important Notes:

  • In production environment, verbose logging should not be enable for long span of time as it logs very detailed information which may lead to high memory consumption and it also impacts performance.
  • Before making any changes, you need to ensure you are making changes to the intended connector configuration file.

 

 

ColdFusion 11 Update 1 is available now.

Adobe releases ColdFusion 11 update 1 today.

This update includes important bug fixes for databases listed below.

Bug #3217374

It includes support for Geography, Geometry and HierarchyID data types in SQL Server.

Bug #3785178

When a cfstoredproc executes an SQL statement in an Oracle PLSQL statement that returns many empty values for a varchar2 data type  column it becomes extremely slow. This issue was observed in ColdFusion 11.  After applying this update, I have noticed significant improvement in the performance .

Bug #3759846

In ColdFusion 11, there was issue while creating ODBC Socket data source on windows platform. It does not allow you to create the ODBC Socket data source.

For more details refer tech note article.

How to change/upgrade JDK version of ColdFusion server

In this blog, we will discuss how to upgrade the latest minor version of JDK(Java Development Kit) of the ColdFusion server. ColdFusion can run only on top of JDK or JRE with Server VM. Oracle also started providing separate download links for JRE and Server JRE. ColdFusion only works with JDK or Server JRE and not with Client JRE [For more details refer article].
 
ColdFusion 10 and 11 can be installed in two modes:
  • Standalone installation
  • Deployment on JEE servers (IBM Websphere, Oracle Weblogic, JBoss etc.)
If ColdFusion server is deployed on any JEE application server, then documentation for respective application server should be followed in order to change the JDK of the underlying application server.
In standalone installation, there are two ways to change the JDK or Server JRE of ColdFusion server:
 
  1. Using ColdFusion administrator console.
  2. By changing the JDK or Server JRE path from the jvm.config file.
 
1. Using ColdFusion administrator console.
 
  • Download the latest minor version of the supported JDK or Server JRE.
  • Install the JDK or Server JRE.
  • Navigate to ColdFusion Administrator > Server Settings > Java and JVM section.
  • Browse the path to the JDK or Server JRE from the “Java Virtual Machine Path” textbox which you intended to use with ColdFusion.
  • Click “Submit Changes”.
  • Restart the ColdFusion Application service.
 
 
2. By changing the JDK or Server JRE path from the jvm.config file
  • Download the latest minor version of the supported JDK or Server JRE.
  • Install the JDK or Server JRE.
  • Open jvm.config file located at <cf_install_root>\cfusion\bin.
  • Change the value of java.home to the JDK or Server JRE path. [For example: C:\\Program Files\\Java\\jdk1.7.0_25\\jre or C:/Program Files/Java/jdk1.7.0_25/jre]
  • Save the changes to the jvm.config file.
  • Restart the ColdFusion Application service.

 

Important Note:
  • It is not recommended to change the JDK version on the production servers without any prior testing in the staging environment.
  • Any SSL certificates added to the previous JDK will also need to be re-added to the new JDK(cacerts) file.
  • JDK or Server JRE location used, should be correct, otherwise ColdFusion server will not start.
    • If JDK is being used, then path should point till JRE directory available inside JDK home directory. For example, JDK installed directory is C:\Program Files\Java\jdk1.7.0_25, then the path which should be used used in ColdFusion would be C:\\Program Files\\Java\\jdk1.7.0_25\\jre or C:/Program Files/Java/jdk1.7.0_25/jre.
 
 
 
 
Please leave your comments and queries about this post in the comment sections in order for me to improvise my skills.

Difference between Server JRE and Client JRE

In this blog, we will discuss how Server JRE differs from Client JRE. It will also give insight as when to prefer Server JRE over Client JRE or the other way around. 

As per the second chapter of ‘The Java HotSpot Performance Engine Architecture‘: The JDK includes two flavors of the VM — a client-side offering, and a VM tuned for server applications. These two solutions share the Java HotSpot runtime environment code base, but use different compilers that are suited to the distinctly unique performance characteristics of clients and servers. These differences include the compilation policy, heap defaults and inlining policy.

To understand it in a nut-shell read the following descriptions:
Server JRE: It is used to deploy long-running java applications on server. It provides the fastest possible operating speed. It has been specifically fine tuned to maximize peak operating speed. It has highly aggressive algorithms to optimize the runtime performance of java application. It also includes variety of monitoring tools.
Client JRE: It is used to run java applications on the end-users systems. It contains everything to run the java applications. It can start up faster and requires a smaller memory footprint.





Please leave your comments and queries about this post in the comment sections in order for me to improvise my skills.