Adobe ColdFusion Roadshow Venues : April 27 – May 3

Come join the Adobe team as we continue the series of Roadshows on the East Coast!  Breakfast will be provided, and you’ll hear about the latest road map and direction of Adobe ColdFusion along with more detailed plans over then next couple of years.

The events will be held from 8:30am to 11:00am at hotels in the following locations.

 

April 27 : Boston, MA

Courtyard Boston Downtown

275 Tremont Street

Boston, MA 02116

 

April 30 : Pittsburgh , Pennsylvania

Courtyard Pittsburgh Downtown

945 Penn Avenue Pittsburgh

Pennsylvania 15222

 

May 1: Cleveland,  OH

Cleveland Marriott Downtown at Key Center 

1360 W Mall Dr

Cleveland, OH 44114

 

May 3:  Indianapolis,  IN

Indianapolis Marriott Downtown

350 W Maryland St

Indianapolis, IN 46225

 

Please RSVP with the number of attendees to kishore@adobe.com to reserve your spot.

See you there!

Public beta for Adobe ColdFusion (2018 release) and Adobe ColdFusion Builder (2018 release)

We are pleased to announce the availability of public beta for Adobe ColdFusion (2018 release) and Adobe ColdFusion Builder (2018 release).

The public beta is available on the ColdFusion community portal. If you are new to community portal, watch the video on the portal or read the getting started document for the ColdFusion community portal. Get rewarded for your contribution! Each engagement earns you points.

Click on the “Adobe ColdFusion (2018 release) public beta” banner on the right hand side of the community portal to enter the public beta release area for ColdFusion (2018 release). You will find all the installers, links to documentation, link to report bugs and link to initiate/follow all the discussions on public beta.

As always, we appreciate every contribution you make and provide feedback on this most awaited release of ColdFusion. If there is one thing that ColdFusion (2018 release) is about, then it is about performance. It is not just the runtime performance improvements. We have a brand new offering called the Performance Monitoring Toolset. The Performance Monitoring Toolset is a significant upgrade to the server monitor from previous versions. Then comes the wide array of language improvements that all you ColdFusion developers will love. We now have a solution to Auto Lockdown your production systems with no manual steps. I will stop here and let you explore the goodness by yourself.

Happy testing your favorite platform! See you on the discussion forums of the public beta.

In case you have any questions or concerns around the community portal, please reach out to us at cfcommunityportal@adobe.com.

Security Updates for ColdFusion 2016 and ColdFusion 11 released

This article announces the release of ColdFusion 2016 Update 6 and ColdFusion 11 Update 14.

These updates –

  • address security vulnerabilities mentioned in the security bulletin APSB18-14,
  • upgrade the Tomcat engines & OpenSSL jars, and
  • contain few other bug fixes.

ColdFusion 2016 Update 6

ColdFusion 2016 Update 6 addresses the vulnerabilities mentioned in the security bulletin APSB18-14.
It also includes a Tomcat version upgrade to 8.5.28, OpenSSL upgrade to 1.0.2n and bug fixes in few other areas.
For the security fixes to take effect, ColdFusion should be on JDK 1.8.0_121 or higher. Post update the build number of ColdFusion 2016 should be 2016.0.06.308055.

For detailed installation instructions and the list of bugs fixed with this update, refer this technote.

ColdFusion 11 Update 14

ColdFusion 11 Update 14 addresses the vulnerabilities mentioned in the security bulletin APSB18-14.
It also includes a Tomcat version upgrade to 7.0.85, OpenSSL upgrade to 1.0.2n and fixes in few other areas.
For the security fixes to take effect, ColdFusion should be on JDK 1.7.0_131 or JDK 1.8.0_121 or higher. Post update the build number of ColdFusion 11 should be 11,0,14,307976.

For detailed installation instructions and the list of bugs fixed with this update, refer this technote.

ColdFusion Summit 2018 and Q2 Roadshows

The sixth annual Adobe ColdFusion Summit 2018 would be held from Oct 1st – 3rd 2018 at Hard Rock Casino and Resorts, Las Vegas. The registrations for the same are now open at https://cfsummit.adobeevents.com/.

Pre-Conference Labs would be held at October 1st followed by Full Conference on Oct 2nd & 3rd.

The announce rate is $99 for the Full Conference. It would be valid till April 30th 2018.

Call for Speakers is also open at https://cfsummit.adobeevents.com/speaker-application/.

Also we are trying to cover 4 cities as part of our Q2 Roadshows. The cities and the dates are as below:

  • April 27th – Boston, MA
  • April 30th – Pittsburgh, PA
  • May 1st – Cleveland, OH
  • May 3rd – Indianapolis, IN

If you are interested in any of the Roadshows please RSVP to kishore@adobe.com.

 

 

ColdFusion performance issues and troubleshooting

Performance issues are one of the biggest challenges to expect when designing and implementing web applications. Performance problems can disrupt your business, which can result in short and long term loss of revenue.

The ColdFusion support team at Adobe, has dealt with several performance related issues with ColdFusion and a couple of them, around JDK 1.8 as well.

Based on our experience with customers, the major performance issues could be categorized as – CPU hikes, Website crashes, Processing of slow requests, Memory (for example, OutOFMemory, Memory leaks) issues, Error 503/Service unavailable error, Slow performance while running database queries, SecureRandom seed generation on some linux servers, Network latency and likewise.

ColdFusion is a Java-based application server. Any Java-related change directly impacts ColdFusion. With introduction of Java 1.8, ColdFusion had to be optimized for Java 1.8. Even after the optimization, there could be few parameters, that might cause the performance hit on the ColdFusion server.

Let’s discuss about these performance issues, method to trace them, and their possible resolutions, in a bit more detail.

CPU Hike: Hikes in CPU usage are the most common performance issue, which we experienced. Usually, the absence of load and performance testing fails to predict the impact on existing CPU utilization. CPU hike can occur due to various reasons, such as: –

● Out of memory issues
● Excessive Garbage collection
● Slow database query processing
● Network latency
● Linux random number generation
● Security scanner

OutOfMemory
This is the first parameter we must look at, when CPU surges/spikes are seen in your ColdFusion application. We can check the ColdFusion logs for OutOfMemory entries. There are two possible scenarios further.

● OutOfMemoryError: Heap – Generally OutOfMemory:Heap would not only happen because application usage is higher than the upper limit provided. But, it can also happen, because a lower value of heap, than actual usage could slow down the jvm. OutOfMemory could be because GC is not able to claim memory. This could happen because of strong references to stale objects or aggressive load so that before GC cleans up OOM is thrown. The default value for Maximum JVM Heap Size is 1GB in ColdFusion (2016 release). Based on your application’s memory usage, we can update the maximum heap value.You can change the value in ColdFusion Administrator or in jvm.config (ColdFusionXXXX/instance_name/bin).

● OutOfMemoryError: Metaspace: A new flag is available in Java 1.8 (MaxMetaspaceSize), allowing you to limit the amount of native memory used for class metadata.
In metaspace, most allocations for the class metadata are now allocated out of native memory. By default class metadata allocation is limited by the amount of available native memory. Garbage collection of the dead classes and classloaders is triggered once the class metadata usage reaches the “MaxMetaspaceSize”. Proper monitoring & tuning of the Metaspace will obviously be required in order to limit the frequency or delay of such garbage collections. Excessive Metaspace garbage collections may be a symptom of classes, classloaders memory leak or inadequate sizing for your application. If you don’t specify this flag, the Metaspace will dynamically resize depending of the application demand at runtime.

Excessive Garbage collection:
Extra load on a server triggers increased GC and causes CPU spikes. There are four types of Garbage collectors. We must figure out the one, that best suits your application.

For more information on Garbage collections please refer to below documentation:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

By default, ColdFusion uses parallel GC. You can change the values in jvm.config (ColdFusionXXXX/instance_name/bin):

-XX:+UseConcMarkSweepGC
-XX:+UseParallelGC
-XX:+UseSerialGC
-XX:+UseG1GC – This is recommended when heap size is large (At least more than 4GB)

For detailed investigation of memory leaks or out of memory errors, a heap dump analysis can be very useful. Add the following jvm arguments in jvm.config(ColdFusionXXXX/instance_name/bin) to obtain heap dump:
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath= <path_to_dump_file>

If you have JDK installed, run the following command from \jdk\bin directory:
jmap -dump:format=b,file=dump.hprof  where pid is the ColdFusion process id.
You can use Eclipse Memory Analyzer Tool (MAT) to review heap dumps.

Slow Database query processing:
ColdFusion logs (Application, Exception, error log) sometimes indicate whether your queries timeout or not. You can then identify slow queries and fix them.

CF does closes the connections after the timeout. CF reuses the idle/unclosed connections. When required unless the connection is still busy executing some query. If the query execution is taking too long, it has to be a problem with either the application or the database. The idle connections are being re-used, as and when required.

Technical details about the timeout:
We take two parameters in admin for this – Timeout and interval.
CF closes a maximum of 5 timed out connections at each interval. Say for example, If we have 20 open connections with timeout being set to 10 and interval being set to 5, then CF will close:-
0 connections after 5 mins
5 connections after 5 more mins
5 more connections after 5 more mins
5 more connections after 5 more mins
5 more connections after 5 more mins

So to close all the connections (as per above calculation), CF will take at least 25 mins to close, all open connections. The maximum limit of closing 5 timeout connections is not configurable and is by design.

The optimized value for timeout can be set 5 and interval to 1. You can configure them further, as per your application requirement. You can change the database timeout value in CF administrator in Advanced settings of Data & Services > Datasources to optimize idle/unclosed connections.

Network latency
If the application code resides and being accessed from a shared drive in ColdFusion Application, network latency can cause slow request processing, resulting in performance issues. This can even cause a server to crash/unresponsive. Its highly recommended to check your internal Network throughput. You can also refer to the information available on below blog:
http://blogs.coldfusion.com/source-code-deployed-on-network-path-identifying-network-latency/

You may try below :
Add the jvm arguments below to speed up the the processing of cfm pages on network/shared location:
-Dsun.io.useCanonPrefixCache=true -Dsun.io.useCanonCaches=true.

Note that 30 sec is default timeout.

This enables canonical cache that caches the canonical path of a file. This helps, when there are a lot of threads waiting to get path from WinNTFileSystem. While accessing files from a network drive, each “getCanonicalPath” would end up going to network and would become quite expensive task. Enabling this cache means that for same file, JVM would never go back to disk (till the time it is in cache) to find its path.

Linux random number generation:
Random number generation and server startup is slow on Unix platforms for some of the servers. This could be because, /dev/random is used in Unix platforms for random number generation.
java.security.SecureRandom is designed to be crypto secure. It provides strong and secure random numbers. SecureRandom should be used when high-quality randomness is important and is worth consuming CPU. We can add the below jvm argument, to get rid of performance issue due to random number generation:
-Djava.security.egd=file:/dev/./urandom

Security scanner:
If you see CPU spikes at some specific time of the day/week, this could be due to a third party security scanner interfering with your ColdFusion application. The scanner hits the server monitoring port 5500 (by default) with 0.0.0.0, which goes to infinite loop and causes server crash.

To fix this issue, we need to modify the jetty.xml at ColdFusionXXXX\cfusion\lib. Change the Server monitoring IP address from 0.0.0.0 to 127.0.0.1 and restart ColdFusion.

Code Cache:
If your program has high codecache memory set via -XX:ReservedCodeCacheSize, you can limit it by disabling code cache flushing. If flushing is disabled, the JIT does not compile methods after the codecache fills up and hence there won’t be CPU hikes. You can add the following jvm argument. This can be used to flush code cache.

XX:-UseCodeCacheFlushing
You can also disable tieredcompilation with below argument:
-XX:-TieredCompilation (Applicable only with Java 1.8. Java versions less than 8 doesn’t have tiered compilation enabled by default.)

Service unavailable error:
503 – Service unavailable is a generic error. Whenever we get this error, the first thing we should check is, whether ColdFusion is started and running or not. In case you experience intermittent 503’s, then its time to investigate the less responsive server, which might be dropping requests. This could be because of Long GC pauses or any reason that could delay response from ColdFusion server. The ColdFusion connector tuning can help us to overcome service unavailable error. Below blog post can be used to tune ColdFusion connector and avoid such errors.
http://blogs.coldfusion.com/coldfusion-11-iis-connector-tuning/

We have also seen some issues because of bugs in few specific update level of java. The best practice would be to keep your ColdFusion Java updated to latest version. Use the below blog to keep your java up to date.
http://blogs.coldfusion.com/installing-and-troubleshooting-java-updates-in-coldfusion/

ColdFusion thread dumps:
ColdFusion thread dumps can be used to analyze New, Runnable, Blocked, Waiting, Timed_Waiting and Running threads.
The issues such as Thread race, Deadlock, Hang IO calls, GC/OutOfMemory exceptions, Infinite Loop can be determined using the thread dumps. Following Blog can be used to take thread dump on a ColdFusion server:
http://blogs.coldfusion.com/taking-thread-dumps-from-coldfusion-server-programmatically/
If you are on CF11 update 12 and CF2016, you can skip copying threaddump.jar. And just use takethreaddump.cfm file to capture the thread dump.

Another issue we have seen in one or two cases, If the performance is impacted by XML parsing, the jvm argument below can fix it:
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true

The other causes of performance issue include:
Lack of proper database SQL tuning & capacity planning
Application specific performance problems
Lack of proper data caching
Excessive data caching
Excessive logging

In case the above steps does not resolve the issue, please feel free to contact Adobe support (https://helpx.adobe.com/support/coldfusion.html) for analysis of the issue.

Some key points to remember:-

*Please note that, any changes made to jvm.config, would require a ColdFusion service restart.

Jvm.config: ColdFusionXXXX/instance_name/bin
ColdFusion logs: ColdFusionXXXX/instance_name/logs

Reference:
https://dzone.com/articles/java-8-permgen-metaspace
https://dzone.com/articles/top-10-causes-java-ee

Adobe ColdFusion Summit – East in Washington, D.C on April 25

We are excited to announce the third annual Adobe ColdFusion Summit East in Washington, D.C on April 25th.

The conference is on April 25th and we are having two tracks. We have sessions from experts in the community which would cover most of the major features of ColdFusion.

The conference is FREE to attend, just register at the link provided below.

Register Here: http://carahevents.carahsoft.com/Event/Details/48292-adobe

Event Time : 8:30 AM – 4:00 PM

Location: Renaissance Washington, DC Downtown Hotel
999 Ninth Street NW
Washington, DC 20001

The event is complimentary, and breakfast and lunch will be provided.

Detailed Agenda would follow soon.

ColdFusion Roadshow Interest

In 2018, ColdFusion Team will present a series of Breakfast roadshow events in US, India and Europe.

The purpose of these events will be to talk about the new features in the upcoming release as well as the exciting features added in the previous releases.

These events also provide a platform for professional exchange within and across the ColdFusion community in your area. The programme will be made up of interactive sessions giving the information and tools necessary for making your work easy.

At this stage we are attempting to gauge interest in such an event in your area. Please respond to the survey here so that we may ascertain your interest. If you need any more information please drop a mail to me at kishore@adobe.com

ColdFusion Community Portal is now live!

At the Adobe ColdFusion Summit this year, we announced the launch of the new Community portal for ColdFusion developers.

The ColdFusion community portal is a one stop portal for anything ColdFusion. Ask a question, post a blog, showcase your work, post your ColdFusion testimonial or even start a discussion. The Ask a question is linked to Adobe forums where a post will be made on your behalf on the Adobe forums.

You accumulate points for every contribution you make to the community portal. You start as a newbie and move up the ladder based on the points you accumulate. For instance, if you reach the highest level, which is legend, you get incentives such as a free pass to Adobe ColdFusion Summit, including travel (within the US) and accommodation during the event.

Start exploring and start sharing with your fellow developers from the ColdFusion community!

Adobe ColdFusion Summit 2017 Slides

Thanks again to our speakers who devoted a lot of time and energy into the content that was delivered at ColdFusion Summit this year! We received great feedback and have lots of requests for the slide decks and any demo collateral that can be shared. Many of our speakers provided these assets to us, which can be found at the below locations.

Presentation slides can be downloaded here:

https://drive.google.com/drive/folders/12VkhvtlSkl0Wj2ijOq6BSl57qQEA-6ET?usp=sharing

Additional slides/demos are also found here:

https://github.com/GiancarloGomez/ColdFusion-Adventures-With-WebSockets
https://github.com/kevindwright/cf-alexa-http-web-service
https://github.com/mashaHD/PDFDemo
https://github.com/mashaHD/FW1Demo
http://slides.com/mjclemente/sendbetter-cfsummit#/

https://github.com/immanuelnoel/CFSummit_Docker

 

We’ll update this post with any additional slides/demos that are provided to us. If you are a speaker who would like to provide additional demo files, please send us your github link and we’ll post it here.

Happy Thanksgiving!

Elishia

Adobe ColdFusion at Lenox

People are cooking and eating at home more often for their health and for the fun of it, which is good news for Lenox Corporation. The luxury tableware and gift maker is taking advantage of the shift in preferences by upgrading its technologies to target younger audiences who do much of their shopping online.

 

Implementing Adobe ColdFusion Enterprise lets Lenox update apps it has built over the past 19 years and create new apps that enhance e-commerce capabilities. For instance, the company is converting external ColdFusion applications, such as its B2B and supply chain websites, and internal applications including business intelligence tools and its employee intranet.

 

As my developers convert applications, they find new features in Adobe ColdFusion that accelerate and simplify processes,” says Betty Jeitner, Senior Director IT Applications, Lenox Corporation. “At this point, we have yet to discover everything we can do.”

 

Currently, three developers support ColdFusion rapid application development, long-term usage, and system stability. Once they migrate ColdFusion to new hardware, the team will also integrate it with mission-critical software, including Lenox’s Enterprise Resource Planning (ERP) system.  https://adobe.ly/2lumwF7