Customer Service, It Mirrors Your Attitude

I use Evernote to type up my blog posts and as a scratch pad for blog ideas. Sometimes ideas get lost deep in Evernote never to be seen again. Today I was digging through to see what notes I had started and to see if I could put together a blog post and I found this little note. It's a funny experience I had a year and a half ago at the doctors office.

From December 2011: The other day I was at the doctors office to have my pre-surgery physical and blood tests completed. The lab tech was an slightly older woman whom was in a particularly foul mood. The new fax machine was causing all sorts of problems and she was expected to make it work without instructions. She's a nurse, not a fax repairman Jim!

In my youth I was a Navy Corpsman and I have a lot of experience doing blood draws. I know this truth to be a fact, you never want the person with the needle to be mad, upset, angry or whatever. Seeing her mood and fearing for the safety of my arm I immediately employed humor and empathy for her frustrations with technology. Not being a fax machine repairman myself I couldn't fix the stupid thing. But I could joke with her about it and share that with her that I work in the IT industry and I can understand the frustrations of these 'darn machines.' After joking with her for a few minutes she began to relax, smile and laugh thus saving my arm from being a Human Stress Relief Pincushion.

When she was done we were both laughing and enjoying life again. Best of all, my arm survived the experience.

A positive attitude goes a long ways and can be a self-defense mechanism.

ColdFusion on Java 1.7

Here at CF Webtools we do a fair amount of hosting and as such I do a large amount of server updates and patching including Windows, Linux and ColdFusion updates. Back in February of 2013 Adobe updated ColdFusion 9 and 10 so those versions will run on Java 1.7 (Java 7). In the following months since then I have not heard much noise or praise from anyone upgrading their servers to Java 1.7. Over the past few weeks I've been making a concerted effort to get our ColdFusion 9 and 10 servers running on Java 1.7. Mainly for security reasons because Java 1.6 has surpassed End of Life as of March 2013.

A few notes up front:
At CF Webtools the ColdFusion 9 servers are all ColdFusion 9.0.1 on Windows servers unless otherwise noted. This article refers to that version and ColdFusion 10. This article by Adobe gives you a matrix of Cumulative Updates for ColdFusion 9 versions. The Java version I am referring to in this article is Java 1.7.0_25 unless otherwise noted.

Why has it taken 6 months to do the update? Mainly compatibility testing. Some of the servers are shared hosting and and there is a lot code to test to make sure it still works. I had to verify that either no java based extensions were being used or that if there was that these worked. And I was hoping to let others be the Guinea pigs. :)

We are able to say that ColdFusion 9.0.1 and ColdFusion 10 are working great on Java 1.7. With ColdFusion 10 I had zero issues at all getting up and running. I installed the new Java version on the server and edited the jvm.config file to point to that version. Note that I had already updated ColdFusion to the latest updates and patches and it's only the Java side that I hadn't updated.

However, with ColdFusion 9.0.1 I had trouble getting CF to start after switching to Java 1.7. Of course I first tried this upgrade on our dev servers so I didn't interrupt our client's businesses. The details of the error when ColdFusion failed to start were lacking completely just "Error loading: C:/Java/jdk1.7.0_25\jre\bin\server\jvm.dll" and nothing else. No additional detail in any ColdFusion logs and not in any Windows logs. This perplexed me. It wasn't until much later and a few cans of cold caffeine that I noticed at the very bottom of the "Cumulative hot fix" instructions this little note:

Note:You could get the following error when starting a ColdFusion instance configured with JDK 1.7:

"MSVCR100.dll is missing."

To resolve this issue, copy msvcr100.dll from {JDK Home}\jre\bin to {ColdFusion-Home}\runtime\bin.

Well I wasn't getting "that" error. I wasn't getting any error details. So on a whim and with high hopes I copied the referenced DLL into the referenced "bin" folder and tried again. This time ColdFusion 9 started. Great! Now for some caveats in Adobes instructions. The resolution they provide is very correct for the "Server Configuration" installation mode. However, for "Enterprise Multiserver Configuration" mode the correct location is "{ColdFusion-Home}\bin." Typically if you went with the installation defaults this is C:\JRUN4\bin. Your server installation location may differ. Once you copy this DLL it will allow ALL your instances on ColdFusion 9.0.1 to start.

Now to add to the confusion. While updating our production servers I decided to wait until I tried starting ColdFusion 9 once just to see if I needed that DLL. All but one server needed me to copy that DLL into place. That has me a tad perplexed. I'm still not sure why all but one needed that DLL copied. This particular server is ColdFusion 9.0.1 Standard. It's not only the Standard edition server that we have so it's not just Standard vs. Enterprise.

I should also mention that we do have a server with ColdFusion 9.0.1 running on Linux and I did not experience any issues upgrading that server to Java 1.7. This DLL issue is Windows only.

Well whatever the cause the good news is we do have our ColdFusion 9 and 10 servers running on Java 1.7 now. So far there have not been any anomalies to report. All I can gather is that if you try to upgrade to Java 1.7 make sure your ColdFusion version is updated to the point that it will run on Java 1.7 and then if it does not start for any reason try copying that DLL into place. That may be all that is needed.