Quantcast
Channel: ColdFusion Servers – Chris Tierney
Viewing all 19 articles
Browse latest View live

IIS 7, ColdFusion Connector, Default Document

$
0
0

Today I setup a new site in IIS 7, added the default document for index.cfm, then ran the ColdFusion connector. That was the wrong thing todo as now I have a “Cannot add duplicate collection entry of type ‘add’ with unique key attribute ‘value’ set to ‘index.cfm’”.

To resolve the issue I removed the line from the web.config file.

<add value="index.cfm" />


Installing ColdFusion on IIS 7

$
0
0

If you install a ColdFusion server under IIS 7 with default options, which is included with Windows 7, you will probably get a 500 error and less hair on your head.

The problem lies with a few IIS options you need to install.

For Windows 7:

  1. Uninstall ColdFusion if you already have it installed
  2. Open Control Panel > Programs
  3. Select “Turn Windows features on or off”
  4. If “Internet Information Service” is not checked, then check it
  5. Check “IIS Metabase and IIS 6 configuration compatibility” under “Web Management Tools” > “IIS 6 Management Compatibility”
  6. Check “ISAPI Extensions” under “World Wide Web Services” > “Application Development Features”
  7. Select “OK” to install these features
  8. Install ColdFusion

Installing ImageCR3 on 64-bit Multi-Instance ColdFusion Server

$
0
0

Update 2013-07-25: Efflare’s domain has expired and their 64-bit product never made it out of beta in years, so this is probably not the best solution to use anymore.

A client of mine uses ImageCR3 to manipulate images server-side. They moved to this a number of years back because at the time CFImage was crashing the server for them and we just haven’t spent the time to go back to it after a few upgrades.

This tag works great after you get it installed. Keyword being “after”.

On 32-bit servers it’s a fairly easy install and uses a C++ interface. However on 64-bit servers ColdFusion communicates with a Java Class.

Here’s the steps I needed to take to finally get this thing working after a few hours of fiddling around with it all. This is for a 64-bit multi-instance ColdFusion install.

  1. Stop all ColdFusion instances
  2. Run the install (my file is cfx_imagecr_3_service_beta_081030.exe)
  3. Install to the path of C:\Efflare\ImageCR3Service (do not install to “Program Files (x86))
  4. Edit the jvm_[instance name].config file in C:\JRun4\bin
    1. Add the following paths to the java.class.path variable
      1. {application.home}/servers/[instance name]/cfusion.ear/cfusion.war/WEB-INF/lib
        1. The reason this is added is due to a “java.lang.NoClassDefFoundError: com/allaire/cfx/CustomTag” error I was getting
        2. Verify that it is either cfusion.ear and cfusion.war or cfusion-ear and cfusion-war
      2. C:/Efflare/ImageCR3Service/imagecr3.jar
  5. In the CF Administrator add a Java CFX Tag named “cfx_imagecr3″ with a class name of “ImageCR3″ (case sensitive)
  6. Start the ColdFusion Instances
  7. Start the Efflare ImageCR3 Service
    1. If you miss this step you will get a “A network error occurred.” error

Hopefully this guide will help you save a few hours.


Notes on Installing Local ColdFusion 10 Beta, ColdFusion Builder 2.0.1 Beta and IIS 7

$
0
0

I recently did a clean install with ColdFusion 10 Beta and ColdFusion Builder 2.0.1 Beta on a Windows 7 SP1 64-bit machine. (This is for a local development environment)

IIS

After installing IIS 7 with defaults and turning on ISASPI filters, I noticed ColdFusion would not initialize. After reading through some notes be sure to turn on these options for IIS 7:

  • .NET Extensibility
  • ASP.NET
  • CGI
  • ISAPI Extensions
  • ISAPI Filters

Web Root

I noticed when installing ColdFusion, the option for where the web root is located has been removed. It’s kind of complicated, so I’ll give you an example of how I changed mine to c:\wwwroot.

  1. I pointed my default IIS site to c:\wwwroot. This is probably not necessary as long as you have another site setup with virtual directory for /CFIDE (C:\wwwroot\CFIDE) and /jakarta (C:\ColdFusion10\config\wsconfig\1). Notice the new jakarta requirement in addition to the standard CFIDE alias.
  2. Copy (or perhaps move) the contents of “C:\ColdFusion10\cfusion\wwwroot” to “C:\wwwroot”. This should include the folders CFIDE and WEB-INF.
  3. Edit the file “C:\ColdFusion10\cfusion\runtime\conf\server.xml”
  4. Copy the “<Context…” open and close element that is currently commented out to the next line uncommented.
  5. You will need to change the docBase to your new webroot, the WorkDir to the absolute path, and the aliases for CFIDE and WEB-INF. Why the aliases are needed in both IIS and this config you’ve got me. But if you leave them out you’ll end up with an error from Apache. Not sure what this is about yet.
    <Context path=”/” docBase=”C:\wwwroot” WorkDir=”C:\ColdFusion10\cfusion\runtime\conf\Catalina\localhost\tmp” aliases=”/CFIDE=C:\wwwroot\CFIDE,/WEB-INF=C:\wwwroot\WEB-INF” ></Context>
  6. Restart your ColdFusion server service.
Thanks to Ryan Anklam’s Blog for providing me with a starting point on this.

ColdFusion Builder 2.0.1 Beta

After I installed ColdFusion Builder 2.0.1 Beta (running as Administrator), I attempted to add the server to the server view. However I ran into the issue where only ColdFusion version 9 was available. After a post to the discussion groups I learned:

  • The Application Server setting should be “CF+Tomcat Bundle” instead of Jrun.
Also there is a difference for enabling the console view on ColdFusion Builder.
  • Be sure to install the ColdFusion Jetty Service during the ColdFusion 10 install to be able to start and stop your ColdFusion service.
  • You no longer need to set the ColdFusion Application Server service to manual.
  • ColdFusion Builder 2.0.1 will now control the service instead of its own instance.
  • Console view works with the service started instead of its own instance.

I still have a lot of playing around to do with this combination, but I hope this helps a few of you out in the mean time.


Missing ColdFusion 9 Solr Collections List

$
0
0

After trying to track down a slow server issue, I noticed that the Solr Collections list in the ColdFusion Administrator did not have the usual list including “core0″. I’m not sure if this list ever existed as this is a new multi-server instance setup by another person. However I did know something was wrong.

So my first step was to locate the collections directory for this instance and delete everything. Wrong thing to do.

Taking a look at the “C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\WEB-INF\cfusion\solr\logsstderr-????_??_??.log” I see I’m now getting “SEVERE: java.lang.RuntimeException: Can’t find resource ‘solrconfig.xml’ in classpath or ‘C:\JRun4\servers\…\cfusion.ear\cfusion.war\WEB-INF\cfusion\collections\…’, cwd=C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\WEB-INF\cfusion\solr” when I run my page script. The script detects if the collection exists; if not then create it; then populate the collection.

So now I’m thinking that the collection list probably exists in an XML config file somewhere, but is somehow corrupted as the ColdFusion Administrator can’t read it.

After doing some searching I find the “core” list in “C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\WEB-INF\cfusion\solr\multicore\solr.xml”. The XML has multiple core children elements under the “solr\cores” path which include the standard “core0″ and my missing collections. Because I can just delete those collections, recreating them problematically later, I decide to delete all core elements except “core0/”. Not sure if I need to restart anything or not, I restart the SOLR service and the ColdFusion instance.

I now see “core0″ in the ColdFusion Collections list as normal and am able to create collections normally as well.


ColdFusion Console Display Terminal Style

$
0
0

One thing I loved about ColdFusion Builder was the console view. But I recently switched from ColdFusion Builder to Sublime Text 2, which doesn’t have that feature. So I needed a solution.

It seemed that running ColdFusion via a local service wouldn’t do the job, but running it from the command line would.

One approach was a simple batch file located on my desktop:

\ColdFusion9\runtime\bin\jrun -start coldfusion

You would then see a scrolling console display and press Crtl-C to stop ColdFusion. It was kind of annoying you’d have to press Y and enter afterwards too when prompting if you wanted to abort the batch file. I would always end up re-sizing the window as well to fit in with my email, Skype and TweetDeck on one dedicated screen.

On option I took note of after installing the Sublime Terminal plugin, was to run it inside Windows PowerShell with a default set of options. This works great and you don’t have to confirm aborting the batch file. I can even label the window.

I have the shortcut link and settings file in a Gist at https://gist.github.com/CFJSGeek/5498377

2013-05-01_1624


Installing Blue Dragon 9.0 Alpha

$
0
0

I have a new project that requires Blue Dragon 9.0 Alpha (.NET). I never used Blue Dragon before and it ended up taking me a few days to get up and running.

First of all there is no documentation and there is practically no discussion around it. So I’m writing this in hopes it helps someone out.

The files I’m using are located at ftp://ftp.newatlanta.com/public/bluedragon/9_0/ .

 

The first step is to install IIS and ASP.NET. You may need to have .NET Framework 3.5 turned on as well.

Windows_Features

 

The second step is to make sure you have .NET Framework v4.0 installed.

 

The third step is to make sure you have an IIS site setup and using the .NET Framework v4.0 in the Application pools.

Application_Pools

 

The fourth step is to run BlueDragon_NET_90_alpha.exe in administrator mode.

At that point in time you’ll find an error message when you run the site:

Example: “Access to the path ‘C:\inetpub\wwwroot\BD Test\App_Data\bluedragon\config’ is denied.”

You will need to create a directory structure underneath your website directory:

App_Data
-bluedragon
–config
—bluedragon.xml
–work
—cfchart
—cfcollection
—cfdocument
—cflog
—cfschedule
—temp

The bluedragon.xml file is the following:

<?xml version="1.0" encoding="UTF-8"?>
<server>
</server>

 

After you create the directories and file, you will then get the following error:

Object reference not set to an instance of an object.
ConfigurationErrorsException: Could not create NewAtlanta.BlueDragon.Diagnostics.LogTraceListener, NewAtlanta.BlueDragon, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7551335de9fc3c36.

To fix this, you will need to add the app pool’s user and grant is modify or full permissions.

When you add the user, use your machine’s location  (as opposed to the domain), then enter the object name “IIS AppPool\[app pool name]“. For example “IIS AppPool\BD Test”. Then click “Check Names”. This will resolve the name to the app pool name.

App_Pool_User

 

 

This should get you up and running with BlueDragon.NET 9.0 Alpha.

There are currently two patch files in the FTP site. If you run them, you may end up with an error “Could not load type ‘System.ServiceModel.Activation.HttpModule’”. To correct this run this to re-register ASP.NET:

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

IIS URL Rewrite Config for FW/1 SES

$
0
0

SES_Screen_ShotAfter a bit of research, I was never able to find a definitive answer as how to properly set up SES (Search Engine Safe URL’s) to work with FW/1 (Framework 1) using IIS 7.5 and IIS URL Rewrite 2.0.

SES makes turns your URL’s from this:

http://www.mysite.com/index.cfm?action=main.default&ID=0

Into this:

http://www.mysite.com/main/default/ID/0

First of all you may need to install URL Rewrite 2.0 using Microsoft Web Platform Installer. There are other options out there, but I’m using this since it’s simple and nicely integrated.

From the URL Rewrite options screen, add a new rule and select “User-friendly URL” under the “Inbound and Outbound Rules”.

The requested URL should match the pattern using regular expressions. The pattern being:

^(.*)$

Add the conditions that the type is not a file or a directory.

The action type is rewrite and the rewrite URL is:

/index.cfm/{R:1}

Be sure to check “Append query string” and “Stop processing of subsequent rules”

You can also modify your web.config in your web root.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/index.cfm/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

In addition be sure to turn on your SES settings for FW/1 as such in your Application.cfc:

variables.framework = {
	generateSES = true,
	SESOmitIndex = true
};


ColdFusion 11 Will Not Start After Enabling J2EE Session Variables

$
0
0

Update 1/20/2015: Fix is available in the refreshed Full installers. More information on this is available here at:
http://blogs.coldfusion.com/post.cfm/coldfusion-11-installers-refreshed-has-fix-for-server-fails-to-start-on-enabling-j2ee-session-variables-and-installation-on-japanese-os

After some wicked process of elimination at CF Webtools I found out that I was unable to start/restart ColdFusion 11 after enabling J2EE Session Variables in the ColdFusion Administrator.

I went through almost all types of installs thinking it was an issue with the Amazon EC2 server it was on. Thinking this because we have CF11 servers running with J2EE enabled already.

The difference, and the the issue it turns out, is the updated installer that includes update 3 for Windows x64. The original installer doesn’t seem to have this issue.

The underlying issue is whether or not Tomcat persistent sessions were turned on or off. This apparently keeps a session alive during a restart. ColdFusion apparently doesn’t like this if it’s on.

To turn off Tomcat persistent sessions (this seems a little backwards though):

  1. Open {cf instance}/runtime/conf/context.xml
  2. Uncomment <Manager pathname=”” />
  3. Save file and close
  4. Start ColdFusion

This seems to have been an issue on ColdFusion 10 that somehow made its way back to 11.

Thanks to Derrick Anderson with BigTeams for finding this old issue at we3geeks.

I have opened bug ticket 3923565 with Adobe.


Deny URL Patterns With FW/1

$
0
0

Seeing that someone was trying to hit wp-login.php (WordPress login) a few times a minute on one of our servers at CF Webtools we decided to block any PHP requests since this is a ColdFusion server. It wasn’t as easy as I thought. This is a Windows 2008 R2 server running IIS 7.5 and ColdFusion 11.

Sample URL:
http://www.mysite.com/index.cfm/main/mypage/id/68249/id2/wp-login.php

At first I tried using Request Filtering under the “Rules”, “URL” and “Query Strings” tabs. These had no effect.

I then went to URL Rewrite where there was a custom rule to allow index.cfm to be absent from the URL.

<rewrite>
    <rules>
        <clear />
        <rule name="Rewrite FW/1 SES index.cfm">
            <match url="^(?!css|js|fonts)(.*)$" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                <add input="{REQUEST_URI}" pattern="^.*\.(bmp|css|gif|htc|html?|ico|jpe?g|js|pdf|png|swf|txt|xml|ttf|woff|eot)([/?].*)?$" negate="true" />
            </conditions>
            <action type="Rewrite" url="/index.cfm/{R:1}" logRewrittenUrl="true" />
        </rule>
    </rules>
</rewrite>

I then tried adding a rule using the default settings of wildcards. While the test responded okay, the actual page kept processing the URL.

Thanks to Wil Genovese, after switching the regular expressions and enclosing those in parenthesis, “.php” requests were finally denied.

<rule name="No PHP" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{PATH_INFO}" pattern="(\.php)" />
    </conditions>
    <action type="AbortRequest" />
</rule>

2015-05-26_1538


Copy tools.jar When Upgrading Java for ColdFusion

$
0
0

javalogo-81x162I happened to read a post on Adobe’s ColdFusion Facebook page, that references a blog post, that references a pretty obscure tip. ColdFusion really needs to implement this somehow in CF Admin like a configurable directory for this file.

I remember knowing this step, but forgot, because it’s documented in obscure places like in the upgrade notes when ColdFusion releases a patch that officially supports a newer version of ColdFusion.

Anyway, ending my rant, when you upgrade to a new major version of Java (and in my opinion every minor version too) be sure to do the following:

  1. Copy tools.jar from {JDK_Home}/lib to {cf_install_home}/{instance}/lib/
  2. Delete all files from {cf_install_home}/{instance}/stubs/ to get the newly compiled classes.

Only JDK contains the tools.jar file not the jre installation. You don’t have to install JDK on the machine where ColdFusion is installed. You can just have jre on this machine and get tools.jar from any other machine’s JDK installation.


Adobe ColdFusion 11 AWS AMI Converts to Developer Edition

$
0
0

We have a ColdFusion 11 server hosted on Amazon’s Web Service (AWS) Elastic Compute Cloud (EC2). We subscribe to the Adobe ColdFusion 11 license on a monthly basis using the Amazon Machine Image (AMI) Store.

We are still migrating sites to the EC2 instance and it is still in its infancy. What we noticed was that the log files were getting large quite fast with these entries:

License Error.You tried to access the Developer Edition from IP address (0.0.0.0). Already two IP addresses are accessing ColdFusion concurrently. The Developer Edition supports access by any IP address, but only two at a time, apart from the localhost. The additional IP addresses accessing ColdFusion are: 0.0.0.0,0.0.0.0 The specific sequence of files included or processed is: C:\ColdFusion11\Main\wwwroot\CFIDE\administrator\templates\secure_profile_error.cfm”

This meant that only two distinct visitors would be able to view our production sites at any given time. The license is supposed to be a Enterprise level license which can support very large traffic. But instead the license reverted to developer edition without warning.

The way I was able to resolve this issue was to send an email to CFsup@adobe.com. I included my AWS Account number. I also ran this issue by the “Adobe” CFML Slack Channel. Here was the timeline (Central Time):

8:12 PM: Posted issue on CFML Adobe Slack channel
8:21 PM: Emailed CFsup@adobe.com
11:15 PM: Anit Kumar responds to Slack from home
12:10 AM: Anit Kumar responds via email with new .jar file
12:38 AM: Server now on Enterprise license correctly

Here were the steps taken to apply patch:

  1. Navigate to the \ColdFusion11\cfusion\lib and search for “cfusion-req.jar”.
  2. Stop the ColdFusion Service.
  3. Take a backup of this original jar file and delete it. Renaming the jar file, will not help.
  4. Rename the enclosed cfusion-req.jar.123 to cfusion-req.jar and save it on the location mentioned in Step 1.
  5. Start the ColdFusion Service.
  6. Check the Edition by clicking on the System Information (“I” icon on right hand side top).

Anit said we could just apply the patch to the cfusion instance, however we ended up applying it to it and another CF instance while waiting for a response.

When we asked Anit what the issue was, this was his reply:

This was an issue with Amazon side and is very sporadic in nature. We have fixed and merged this in CF2016 AMIs on Amazon.


Lucee 5 ColdFusion Scheduled Tasks

$
0
0

Lucee 5.0 – 5.2.1.9 (current version) has a bug in scheduled tasks that seems to affect both Windows and Linux servers.

When scheduling a task, they end up getting marked as “expired” and never run. Not sure how this issue has made it this far into revisions, but as of this post it’s still an issue.

https://luceeserver.atlassian.net/browse/LDEV-897

You can work around this issue using a cron job by way of curl.

On Windows you can use the Windows Task Scheduler and curl. Curl can be downloaded from https://curl.haxx.se/download.html

6/21/2017 – marked for “NextSprint scheduled”

#lucee, #scheduled-tasks


Finding the ColdFusion 11 Serial Number

$
0
0

Looking for the ColdFusion 11 Serial (License) Number on your existing install? Check out the plain-text file:

./cfusion/lib/license.properties

under the “sn” line


CF Summit 2017 – Part 1

$
0
0

My co-worker at CF Webtools, Wil Genovese, and myself were fortunate to attend the Adobe ColdFusion 2017 Summit this year.

The primary focus of the event was on “Aether”, the next version of ColdFusion, which will be known as “ColdFusion 2018”. The primary topic surrounding Aether was the API Manager, Containerization (Docker), security by default and a new “Application Performance Monitoring Suite”.

20171116_101311

Application Performance Monitoring Suite

I would have to say that the most impressive take-away from this event was the “Application Performance Monitoring Suite” or APM. The current “ColdFusion Server Monitor” has been antiquated for years, causes crashes if you turn on memory profiling and has been rumored to be depreciated in ColdFusion 2016. Our “go-to” product has been the commercial 3rd party “Fusion Reactor” when needed.

This new monitor is an independent service from ColdFusion that can be installed locally or remotely. Adobe’s preference is that you install this on a different instance than your ColdFusion so that you can monitor multiple servers at once and provide a separation of services. The current monitor integrates tightly with the ColdFusion JVM and heap. Additionally, you can now traverse into your running code to see exactly what might be causing an issue.

What’s more is that this new monitor suite will automatically tune your connectors. As of ColdFusion 10, 11, and 2016 you would need to manually tune your connectors if your site metrics needed something larger than the default. If you didn’t get it right or traffic changed considerably, your visitors would end up with a “Service Unavailable” or “Server too busy” error. This service will now monitor key metrics, auto-tune and avoid that from happening.

I’ve heard some grumbling that Adobe should focus on other areas or that you should just use Fusion Reactor. But I have to disagree. Basic metrics is a must-have for any system administrator. Without it, you’re largely taking a shot in the dark. While I recommend Fusion Reactor to anyone, you shouldn’t need to purchase a 3rd party product to support basic functionality and troubleshoot ColdFusion. Fusion Reactor should only be there for more advanced foot-work, such as high performance tuning and automating server troubleshooting.

CF PMS

Performance Management Suite Screen Shot

API Manager

20171117_092301The “API Manager” is a new feature of ColdFusion 2016. Adobe is still promoting it strongly. I think I had 3 personal phone calls from Adobe over the past year try to get me to buy into it. It’s a stand-alone product and only comes with the Enterprise Edition license of ColdFusion.

They put some enhancements into it, primarily “Swagger“. Swagger a popular framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the entire API lifecycle, from design and documentation, to test and deployment. I still have to learn this, but it looks like it takes API development and consumption from a “try and see” approach to a “hey this is what I can do” approach.

As an Amazon Web Services (AWS) partner, I would likely have gone straight for the Amazon API Gateway if your website was on AWS infrastructure. However after some comments made by other presenters, I need to go back and compare services. I am told that the API Manager has quite the advantage.

Containerization (Docker)

docker_facebook_shareThis topic was a little hard to follow. I’ve been aware of Docker for a few years now, but have never seen a good use case to dive in and use it. Adobe, along with other speakers, have promoted using containers going forward. From their perspective it’s easier and more reliable to work it into your SDLC.

Adobe is working towards an official docker image for both ColdFusion and the API Manager, that are “100% customizable”.

Security By Default

ColdFusion 2016 brought us a more secure admin by default. It no longer made the CF Admin available within sites in your webserver, which has been a sore security point for a number of years. Now Aether brings an automated lock down. Currently, the average person following the lockdown guide for the first time takes over 7 hours. Now, when you install ColdFusion, you can check a box (which will likely bring up some additional wizard prompts) and much of the lockdown guide will be implemented. Don’t focus on “much” because some of the guide is overkill that we’ve actually have never implemented on our servers.

Keep in mind that this automated lockdown, which is sorely needed, still requires additional server security work. It’s not entirely a magic button.

Miscellaneous

The “ColdFusion Portal” was officially launched. Adobe sees this as a “one-stop-shop” for community forums, blogs and resources. Each time you contribute, you gain a point, which can be exchanges for benefits such as a ColdFusion Builder license.

Asynchronous and improved OOP has been added to Aether. You’ll see abstract components, final variable, method and components, support for co-variance. Additionally you’ll find multi-threading to be much more suitable in cfscript as opposed to the current thread method. It even returns a promise!

It’s been awhile since CFFiddle was introduced as a preview. I can’t remember if it’s been one, two or more years since it was supposed to be released “soon”. Actually I mostly forgot about it. But it should be a nice environment for collaboratively troubleshoot ColdFusion code on.

Some links that were pointed out are:

Summit In General

20171117_171628

The summit was hosted at the Mirage hotel in Vegas. The hotel was quite nice, outside the mold and mildew infused caulk in the bathtub (come on Mirage, my $135/night fee should have covered some bleach). Being on the strip, it saved on potential transportation expenses that add up quickly if you want to explore what the strip has to offer. Next year it will be at the Hard Rock Hotel which is off-strip. I stayed there less than a year ago and those travel expenses added up. Although I wonder if different places might be better, Vegas does provide ample accommodations, transportation and venue support to bring everything together smoothly. You just have to try and not donate too much money to the slots!

20171116_183507(0)I only went to the main conference for two days and not the pre-conference. But they had awesome complimentary breakfast and lunch. Thank you to the food sponsors! Thursday night they had a complimentary drink and food hangout at one of the inside bars. Drinks were okay and food not that great – but I’m not complaining. Got to hang out with a few people for a bit. The organizer was even kind enough to turn down the music a bit so we could talk.

Each event room had plenty of sitting room behind long tables to use your laptops on. Only the first couple of rows in most of the rooms had power though. I suggest improving that. Each room had two large screens and the audio systems were bar none.

The WiFi was probably as well as could be expected inside the confines of WiFi limitations. One vendor noticed that WiFi was awesome right until the general session let out. Then you saw everyone checking their phones and the WiFi connection pretty much just stopped working.

Overall there were more than 400 attendees. I did hear that they had something like 550 registered, but after the shooting a few months back at a concert venue, many cancelled.

20171117_101210I had full access to Adobe engineers and event sponsors who had booths. I’ll cover that in a later post.

I learned a lot. It got me away from the daily “grind”. And I got to network with some people that I wouldn’t have got the chance to otherwise. I’ll be inclined to go back in following years. It even helped that I won an Apple TV from Mura CMS.

Stay tuned for part 2.

Slides: http://blogs.coldfusion.com/adobe-coldfusion-summit-2017-slides/


CF Summit 2017 – Part 2

$
0
0

Starting from Part 1 of my “CF Summit 2017” series I will dive into some of my conversations with Adobe and more “Application Monitoring Suite” details.

The Adobe Team

20171117_101210Let me start out by saying that I know a number of people, myself included, enjoyed having the ColdFusion engineering team on-site at the conference. I want to thank them for the long trip from India which appears to be at least a 24 hour trip one-way. I could barely stand the 3 hour cattle flight from Omaha on Southwest. Those seats were great when I was a kid half my current size – but they never seemed to take into account that American adults actually sit in those seats too!

I spent a bit of time speaking with Anit Kumar, the Technical Support Manager, who was very welcoming of what I had to say. A number of people also wanted his attention, so I also spoke a bit to Vamseekkrishna Nanneboina, the Quality Engineering Manager.

One of the key factors that we discussed was getting bugs fixed and implemented. I brought up that when bugs were fixed, they normally ended up in just the current version or the next version coming out. I explained how many of our customers rely upon the core support of ColdFusion editions they purchase and can’t budget in continuous upgrades, no matter how much they’d like to. He explained that sometime bug fixes just can’t be implemented into certain versions without breaking other things or having to change out libraries, causing even more of a mess. We agreed that additional transparency on the bug resolution process was necessary. Otherwise people just wait and wait with flared tempers after bugs just stall in the Bug Tracker. I think if people understand why an item just cant be fixed for a specific version, they’ll be much more willing to find another solution without grief.

I did express my gratitude that Adobe has improved their bug responsiveness on their end. I see this as slow but steady progress.

One related item I spoke to was additional quality assurance was needed for releasing a version of ColdFusion. The general rule around here is to wait a few versions before considering using it. It never seems to fail that there are some major issues once it starts getting implemented in real-life scenarios.

Anit sought to make sure that I was part of the pre-release program so that I can test out the server before it hits beta. However, as much as I’d like to help out, it’s pretty hard to fit in the time to bring up a full fledged system to test out some of our customers app. I find it hard some days just to get through all my email.

Once thing that Anit would really like to see is shipping off copies of applications with databases to them so the QA department can test real-life applications against new versions. In theory this is a great idea. They are even willing to sign whatever non-disclosure statements necessary. However, I foresee most customers pretty reluctant to ship off their lifeline to another company, let alone across the world. However if you’d like to help them out, they would love your help.

I also expressed how much I enjoyed seeing the Application Performance Monitor coming out with the ability to do auto-tuning.

You could see the attentiveness of the Adobe ColdFusion Engineering staff. They seemed very interested in what Wil and myself had to say both in the sessions and out in the hall. They also showed great pride in the new APM Suite.

Application Performance Monitoring (APM) Suite – more details

I’ll be writing based upon some of my notes from a presentation by one of the ColdFusion Engineers, Mayur Jain. He went pretty quick, so my notes are a bit lacking.

20171117_102052

This new monitor is an independent service from ColdFusion that can be installed locally or remotely. Adobe’s preference is that you install this on a different instance than your ColdFusion so that you can monitor multiple servers at once and provide a separation of services. The current monitor integrates tightly with the ColdFusion JVM and heap.

Not only will you be able to monitor your ColdFusion instance, but you can monitor multiple instance at the same time. It will automatically determine your setup and take into account clusters.

20171117_102515

The APM is broken up into four parts:

20171117_102608

1. Auto Connector Tuning

The APM will automatically tune connector pool sizes with optimal settings based upon historical analysis. This is done without restarting the web server.

They also mentioned alerts and notifications. I’m assuming you can get emailed when a certain metric goes outside of a threshold.

20171117_103041

2. System

He showed off something about global filters. Seemed interesting at the time, but don’t remember much about it.

It looks at the CF node, JVM metrics, CPU metrics and file system metrics.

20171117_104019

3. Advanced Server Monitor

You will be able to pull up dashboards with modern metric graphs and displays for real-time and historical analysis.

It looks at the application, database, external resources (API, REST, Web Services)

20171117_102206

4. Profiling

20171117_102217

You will be able to analyze multiple thread dumps by comparing them. These will help determine root causes of issues and can be user or even driven. There’s even a thread stack analysis that allows you to see deadlocked and blocked threads.

There’s also code profiling that allows you to see stack traces of your running code. You can even see how much time was spent on each tag and UDF or even how much memory was used for various scoped variables. You can see analytics for requests based on memory and time and see reports such as most frequently run templates.

Lastly you dump the heap for analysis.

 

Stay tuned for part 3!

Slides: http://blogs.coldfusion.com/adobe-coldfusion-summit-2017-slides/

20171121_185456.gif

ColdFusion Docker Image Released

$
0
0

CFDockerTweet

On April 25, 2018, Adobe released the long awaited, official, Docker Image for ColdFusion 2016! ColdFusion 2018’s image is in the works.

I am excited about this primarily for two reasons:

#1 Development: we can create a docker image that can possibly be passed around to developers either as general use or specific to a customer’s setup. This has the potential to speed up “ramp-up time” for developers when beginning a new client workload.

#2 Fix AWS AMI’s: The current AMI solution on AWS is bleak. You’re limited to operating systems that are either the wrong flavor of Linux for you or an outdated Windows Server version. You are also stuck with the inability to upgrade the OS or ColdFusion. I’m hoping this makes its way into the AWS container library that you can lease month-to-month, both in the Standard and Enterprise flavors.

docker-cloud-serversAdobe choose the JFrog container repository over Docker Hub “due to licencing and distribution issues”. This seems to be a common theme with Adobe, but at least it’s out there. You can find these repos at https://bintray.com/eaps/coldfusion.

As of 4/26/2018, you will find the following images:

  • ColdFusion Server (2016)
  • ColdFusion Addons (2016)
  • ColdFusion API Manager (2016)
  • ColdFusion API Manager Addons (2016)

The “ColdFusion Server” contains the “barebones” only. It runs the bundled “built-in” web server (normally port 8500).

You’d then normally want to connect Apache or IIS to ColdFusion using wsconfig. However that’s not possible, in the common sense, here. The reason being is that you’re in a container that has no real access to the outside space, including your webserver services.

So in this case you’ll need to treat this as a distributed setup. You’ll need to copy some files, including wsconfig, onto your Apache file system – likely in another container. From there you’ll run wsconfig and connect it to the “remote” ColdFusion instance. There are some basic instructions at http://blogs.coldfusion.com/setting-up-coldfusion-in-distributed-envionment/ and Adobe says they will work on an official instruction set. I also plan on posting my own instructions. I don’t think this will work with IIS without a hack, but this is definitely something I’d want. The majority of web servers we maintain are IIS.

When you run the ColdFusion container, you are able to pass in a limited set of environment variables. They range include items such as password, secure profile, external session info, addons, and a startup script.

However, as far as I know, not all admin functions are available via the API. One of the major benefits of running containers is to have a disposable environment that can easily be recreated. In order to do this, you must be able to script out all your configuration. I would also like to see all settings be available in the environment variables as that’s what it’s intended for. Using a script is more or less a hack that needs additional maintenance.

The setup script will be a .CFM file that calls the admin object. Here you will script items such as datasources.

The “ColdFusion Addons” container runs SOLR and PDF services. The “.NET” service will not exist as it is a Linux container. I would have preferred separating out the services though due to the container pattern of one service per container. This extends the ColdFusion container.

According to Adobe, they are not going to create a Windows container at this point due to performance issues they saw. But the great thing about Docker on Windows is that it’s capable of running both Windows and Linux containers. It’s very rare that I need to run .NET, however that does leave my 2 points out in the cold if a customer uses it.

In conclusion, I look forward to testing this out and perhaps implementing this solution where it makes sense.

Purchasing Adobe ColdFusion

$
0
0

Are you in the market or considering purchasing Adobe ColdFusion’s full or upgrade license?

While you always have the option of going straight to Adobe, I recommend purchasing through a reseller. You will typically see a 5% discount and up to 25% depending on the sale.

Do you need help with installation, upgrades, or troubleshooting? Contact me at CF Webtools to hire ColdFusion experts and get where you are going. I will be happy to discuss your situation and give you advice up-front.

Integral

Integral is a great business headquartered in Germany and has regional offices in the UK and the USA. They are the parent company of FusionReactor, and their representative at the ColdFusion conferences is always very helpful and knowledgeable. They have a dedicated ColdFusion software store at:

buy-adobe-software.com

They typically have about a 5% discount and typically offer a 10% discount on their FusionReactor Application Performance Monitor when purchased together as a 1-year subscription.

I highly recommend a FusionReactor Standard Edition at a minimum for tunning and debugging. Especially useful when troubleshooting performance issues or crashes. Their Enterprise and Ultimate editions are even better while logging data to the cloud.

The Adobe ColdFusion release cycle is about once every 2-3 years. If you are about two years into the release cycle, I recommend purchasing the “Platinum Support” option. Not only will this provide you with 1 year of support, but it will provide you a perceived 50% discount on the next upgrade that is “pre-paid”. Meaning you automatically receive the next major version of ColdFusion. Purchasing within 1-2 years can be a gamble depending upon if you expect to use support. This support package is good only for a 1-year term, however the upgrade key remains available even if you do not upgrade within that support subscription period.

Atypical Upgrade Discounts

FusionReactor will also sometime offer a 25% discount on editions that would be normally full price if you are past the previous year’s installation. Typically you can upgrade from the previous edition for about a 50% discount. However, anything older than the previous edition requires a full purchase. A commitment to subscribe to FusionReactor for one year used to be the requirement, but is currently no longer required.

Q1 2023 Discount Link: https://www.fusion-reactor.com/blog/news/coldfusion-hot-sale/ (good until the end of Feb 2023)

Coalesce Solutions

Coalesce Solutions is headquartered in Memphis, TN, and is an alternative to Integral. I met them at the last ColdFusion conference, and they were very helpful. We use their AWS Marketplace solutions as needed for AWS EC2 instances. I do not have first-hand experience with their ColdFusion licensing options, but they do have a store available at:

getcoldfusion.com

Their full and upgrade pricing is similar to Integral’s.

#coldfusion-2

Adobe ColdFusion Log Verboseness

$
0
0

Server logs in ColdFusion are a must-have resource to help you tune, monitor, and troubleshoot your servers. But what happens when there is too much information? By default, the maximum file size is 5MB. Once it hits that size, it rolls into an archive file, appending a number to the filename. By default, up to 10 archives are stored before they are deleted upon the next archive. Based upon observations on ColdFusion 2021, the size limitation is ignored for “coldfusion-out” and “coldfusion-error” rolling over into archives around 20MB.

Example of coldfusion-out.log directory listing and its archives.
ColdFusion 2021 Debugging & Logging Settings UI

But what if there’s so much information being logged that the logs become relatively useless? A prime example is “HTTP request” logging in coldfusion-out.log on a site that actively uses a third-party API. All you see are HTTP requests.

Example coldfusion-out.log HTTP request entry:

Jun 26, 2023 07:09:56 AM Information [ajp-nio-127.0.0.1-8012-exec-105] - Starting HTTP request {URL='https://apisite.com', method='GET'}
Jun 26, 2023 07:09:56 AM Information [ajp-nio-127.0.0.1-8012-exec-105] - HTTP request completed  {Status Code=200 ,Time taken=137 ms}

You can change the “priority” variable value in the neo-logging.xml configuration files located in cf_root/lib (ex: C:\ColdFusion2021\production\lib\neo-logging.xml). This limits the logged messages based on message severity (type). Unfortunately, this setting is not documented or in the UI. You will need to restart ColdFusion for this setting to take effect.

Logging verboseness in neo-logging.xml

Your options include the following:

  • information (default)
  • warning
  • error
  • fatal

I recommend changing the value to “warning”. Just remember, this will change all your logs.

Thanks to “cflog & fox server log level” thread comments on Adobe Support Community for leading me to the answer.

I was also made aware by Nimit Sharma on the ColdFusion #Adobe Slack Channel that you can disable HTTP logging for the http.log file. However, I do not believe this stops HTTP logging on the “coldfusion-out.log” file. If you are interested in this still, you can go to “Dugging and Logging” > “Log Files” in the ColdFusion Administrator (v2021), and in the actions column, press the disable logging button next to http.

#cfhttp, #coldfusion-application-server, #log

Viewing all 19 articles
Browse latest View live