Initially it looked like a cakewalk to get ColdFusion MX to work with the Oracle thin JDBC driver. Macromedia even has a technote that tells you how to do it. All went smoothly until I tried to update a value in the database. That caused it to hang.
Thus started a search through the web for similar tales. Many places
suggest doing a stack trace using kill -3
(or
kill -QUIT
, which is the same thing). This did not
produce the
expected stack trace
. Maybe JRun disables that feature.
Next step was to try the sledgehammer. kill -BUS
on the process hogging nearly 100% of CPU. This resulted in log
file being written (hs_err_pid11111.log) with lots of information
but no stack trace. All I could see was the class where it was
hanging: coldfusion.sql.Executive.getRowSet. Damn!
A bit of thought led me to wonder if there might be a newer version of the Oracle driver. I was using the 8.1.7 driver, good old classes12.zip. According to Oracle, this is intended for version 1.2. In other words it's ancient. ColdFusion MX 6.1 runs on 1.4.2, in other words something pretty current. A bit of investigation on Oracle's Java Center turned up Oracle9i Release 2 JDBC drivers. A quick look at the release notes told me they are intended for 1.4.
After a download, an upload and a copy, I had ojdbc14.jar in the class path and I restarted the server. Hey presto, everything was working again.
ColdFusion MX Standard Edition doesn't support Oracle directly. It is, however, somewhere between $3,500 and $4,000 cheaper than the the Enterprise Edition, which does.