ColdFusion 10 - Error instantiating a COM object
Copy link to clipboard
Copied
My company offers a ColdFusion website that includes a GIS mapping component written with COM Objects.
We have successfully implemented this product on
Windows Server 2008 R2 64 BIT
IIS 7.5
ColdFusion 9 32 bit version
However, setting up a new production server with ColdFusion 10 32 bit (assuming I need to stay in 32 bit framework to call COM objects) - my site cannot activate the COM object.
We have 4 COM objects that are used in the site, and none of them work.
Is there a configuration setting that I need to adjust in CF10 to enable COM object support?
Copy link to clipboard
Copied
A little followup on this, but I just tested CF 9.0.2, which is now the version that you can get from Adobe, and it does not instantiate my object.
I'm running CF 9.0.1 on my current production server, and the COM object works.
Java VM versions:
1.6.0_14 -> the old CF installer, works
1.6.0_17 -> the patched 9.0.1 version, works
1.6.0_29 -> the version with 9.0.2 installer released by Adobe a few days ago - does not work
I'm not sure what the version is for CF10, I have to reinstall, but I know it doesn't work.
In the past I learned that 32 bit com support was limited by the Java VM, I'd like to run CF10, but run Java VM 1.6.0_17 - does anyone know if this is possible?
Copy link to clipboard
Copied
@ Aopile. Just wondering if you've made any other attenpts / progress at getting COM to work in CF10? I'm building a new server and would rather go to 10 than 9. Also, regarding COM only being available in 32 bit, I've heard that j-integra recently started working on a 64 bit version. This would allow CF 64 bit to support COM.
Copy link to clipboard
Copied
Just to warn you, the latest version of CF 9.0.2 also does not instantiate COM objects. See below* if you want to learn more about what you can do regarding this.
In regards to the issue at large, I have not made much progress, but I have been in contact with Adobe Engineers over the issue, and am hopeful for either a resolution or a firm commital from them that they are abandoning COM object support.
If you are using the built-in webserver rather than IIS, then the 32 Bit CF should instantiate a COM object on a 64 Bit server, with an adjustment to your java.config file found here:
http://blogs.coldfusion.com/post.cfm/coldfusion-9-0-2-is-now-publicly-available#respond
1.Go to <ColdFusion_home>/bin directory and open Jvm.config
2.For CF 9.0.2 Replace java.library.path with java.library.path={application.home}/../lib,{application.home}/../jintegra/bin,{application.home}/../jintegra/bin/international,{application.home}/../lib/oosdk/classes/win
3.For CF 10 Replace java.library.path with {application.home}/jintegra/bin,{application.home}/jintegra/bin/international,{application.home}/lib/oosdk/classes/win
4.Restart the server
I have yet to confirm that this will work using the BIWS, because ultimately I need a solution that will work using IIS, as the BIWS is generally not used in a production environment. I'm also not sure how BIWS works in regards to SSL certificates and HTTP to HTTPS redirects that we use.
I ended up running on a 32 Bit server (Windows Server 2008) - everything works as is with no trouble with CF9.0.2 and CF10. This is what I ended up doing for the production server I had to get into place recently which started this whole mess for me.
As an aside to anyone from Adobe who may be reading this, I was just working with a potential customer for our product yesterday, who really likes our software but was concerned about having to run it on a 32 bit server, as all new servers they bring online are Windows Server 2008 R2, which is only available in a 64-Bit release. So, this issue with CF9 and CF10, may lose me AND Adobe a potential customer, as this user would have no need for CF if they are not buying my company's product.
* You can no longer purchase CF9 at all from the store. To get CF9, you have to buy CF10, and then pay a fee to downgrade it to CF9 directly through Adobe sales (which is a pain since you cannot directly call a sales person, you get put into a call bank and have to re-explain your situation every time or ask for who you had before, who will then have to call you back. Best hope you are at your desk when that call comes in). The sales representative I spoke with wasn't really sure if a new serial number would work on the old CF9.0.0 installer, which I still have and would need to use for COM object support. So I'm not even sure if this is an option for me or not.
This has been generally a bad experience for me, after I have stuck up for ColdFusion so much over the past 11 years with the decision makers in my company.
Copy link to clipboard
Copied
When search regarding COM and CF on a 64 bit system, I found a couple posts suggesting that railo may support COM in 64 bit. I'll stick to cf9 32 bit for now and will investigate railo when I have more time.
Copy link to clipboard
Copied
Since you're loosing clients over this, I thought I'd keep you posted on my progress. The easyPDF support team suggested that I look into the Jacob Bridge. I found a couple other references to is such as: http://blog.kukiel.net/2009/10/coldfusion-9-on-windows-server-2008.html
JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native calls to the COM libraries. JACOB runs on x86 and x64 environments supporting 32 bit and 64 bit JVMs
Copy link to clipboard
Copied
I installed Railo this morning, and after wrestling with the necessary adjustments in IIS to get it to work, I saw this error:
C:\Windows\System32\jacob.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
So, yeah, I'm still stuck.
CF9 32 bit will work as long as you have the old installer (9.0.0). Could you let me know that if you get a new serial number for CF9.0.2 from Adobe sales if it works on the old installer?

