Fix for recent CF11/2016 updates causing failure of CF ODBC services

February 28, 2019
ColdFusion troubleshooter
Legend 41 posts
Followers: 42 people
6

Fix for recent CF11/2016 updates causing failure of CF ODBC services

ColdFusion troubleshooter
Legend 41 posts
Followers: 42 people
February 28, 2019

If you’re considering the recent (Feb 2019) updates to CF11 or CF2016, and you still use the ColdFusion ODBC services feature, beware of a known issue that may keep those two CF ODBC services from running after the update. This issue has plagued some folks since the Sep 2018 updates and does remain in the latest updates from last week (released Feb 22).

Fortunately, the release notes for those latest updates (for CF11 update 17 and 2016 update 9) acknowledge the problem and propose a solution in their “known issues” section (quoted below) which you can apply by hand, either by recovering a needed file from the update backups, or by downloading the file from Adobe.

Note that the issue does not appear to have affected CF2018 users (per the link to past discussion, offered above), and it’s not mentioned as a known issue in the docs for CF2018 update 2.

For CF11

First, here is what’s indicated about this in the known issues for CF11 update 17:

CodFusion 11 ODBC Server service does not start in some cases if the file msvcr71.dll is missing.

Workaround

Copy the file msvcr71.dll from the backup folder CF_HOME/cfusion/hf-updates/hf-11-000<update_number>/backup/db/slserver54/bin to:

[CF_HOME]cfusiondbslserver54bin
[CF_HOME]cfusiondbslserver54admin

If the file does not exist in the backup, download the file and copy it to the locations mentioned above.

For CF2016

And here is what’s indicated in the known issues for CF2016 Update 9:

Issue #1

ColdFusion (2016 release) ODBC Server service does not start in some cases if the file msvcr100.dll is missing.

Workaround

Copy the file msvcr100.dll from the backup folder CF_HOME/cfusion/hf-updates/<update folder>/backup/db/slserver54/bin to:

[CF_HOME]cfusiondbslserver54bin
[CF_HOME]cfusiondbslserver54admin

If the file does not exist in the backup, download the file and copy it to the locations mentioned above.

Closing thoughts, possible future resolution

While the problem was reported by users of those previous Sep 2018 updates to CF11 (update 15) and 2016 (update 7), it was not documented this way until the latest updates (not even in the failed/removed updates from Feb 12, updates 16 and 8, respectively). Even so, it’s reasonable to presume that these steps would work for those somehow choosing to implement only those Sep 2018 updates.

And if it somehow turns out that this issue CAN affect those on CF2018, I would hope to update this blog post to reflect that. I welcome comments below.

Finally, as for an explanation and ultimate resolution to the problem, an Adobe engineer replied when I asked about it in the CF blog about the most recent updates (click “reply” there to see replies to that comment):

Removing the dll files was a recommendation from Data Direct when they provided us new drivers in the last update cycle, so we had to replace the same with newer versions of the dll files. We are following up with data direct on this.

So hopefully some better resolution (to prevent the problem in the first place) will come in time. Until then, the workaround above should help some.

Since this issue has still caught some people off-guard this week (if they missed this as a documented known issue with a fix), I wanted to draw it out here, in case it may help some more likely to see and know about it.

Postscript: Should you still be using ODBC?

Some readers may want to ask why this is even an issue, asserting that “surely the time for ODBC is past”.

I know some orgs who explain that they DO need it and MUST use ODBC still, for “legacy reasons”. But I will say that in my experience it’s rare that there’s a compelling need for it which can’t be offered by some other more recent alternative, whether that’s about a CFML feature, an alternative database drivers, or the like. (And I can help you consider that, if you’re in that boat.)

Are you REALLY still using ODBC? You’re positive?

Ok, so some people really are using ODBC. But I’m telling you, sometimes people are running the CF ODBC services when they really, truly do NOT need to be running those CF ODBC services at all. Let me explain.

I help people daily in installing updates and new versions of CF, and when they see the offer in the CF installer to enable the ODBC services, I also ask if they really need it, and if they say “yes”, I ask why. Usually they think I’m asking a stupid question, and they answer “because we use CF to talk to databases”. This often reflects a long-held misunderstanding on their part.

So I will ask if we can look at their previous CF installation Admin to see its datasource setup, or some other CF installation they may have (or if nothing else, the neo-datasource.xml file from a previous install, if that may be all they have). And we nearly always see that all they have for datasources are ones for MySQL, SQL Server, Oracle, or the like. Those do NOT use ODBC. They use JDBC. It’s an understandable point of confusion. And in that case, they do NOT need the CF ODBC services.  They do not need to install them, or if installed they can stop the services and set them to “manual” (in the Windows Services panel).

It’s indeed true that CF used to use ODBC for all database connectivity–prior to CF6, released in 2002(!), but since CF6, the default means for most CF database processing has been instead JDBC (and it’s transparent to us in CFML and indeed in the Admin).

That said, there is indeed still support for ODBC in the CF Admin Datasources page (in CF2018, even) with the available an “ODBC socket” driver type. So yes, ODBC can be used, and these ODBC services support that (and the Microsoft Access driver type, I believe). And some swear they still need it.

But really, ODBC support is hanging on by a thread. It really is past time to seek alternatives, if you do feel you MUST rely on it. Just a word to the wise. (I do not work for Adobe or represent their opinions or future plans.)

Comments (6)
2019-02-28 20:04:06
2019-02-28 20:04:06

I just updated to CF 2018 from CF 11 (developer). The ODBC Agent and Server will not start. When I try to start them, I get “The CF 2018 ODBC Agent Service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.” I have a Microsoft Access database with all my data in it but can’t access it (in Dreamweaver) because the services won’t start. What can I do to get them to start and stay started or is there another or better way to access the data?

Brenda

Like
(1)
>
Brenda Bowling
's comment
2019-03-27 21:40:49
2019-03-27 21:40:49
>
Brenda Bowling
's comment

Brenda, sorry I missed this. Do you still have the problem? Since you say that this has happened on an upgrade from CF11 to 2018 (as opposed to an update *of* CF2018), it could be simply that you left the CF11 ODBC services in place, and ALSO have the CF2018 ODBC services.

If so, can you confirm if it matters whether the CF11 ones are started or not, regarding whether the CF2018 ones will start? If that’s the case, it’s perhaps simply that they are both using the same ports. If so, it could be that you had CF11 stopped when CF2018 was installed, in which case CF2018 assumed it could use the default ports that CF2016 also assumed to use.

Let us know where things stand, and then we can talk about how to resolve it.

Or if it IS that things were working in CF2018 until you did an update, then that may be like the problem discussed in this post about what happened to folks in CF11 and 2016.

Like
>
Phill Nacelli
's comment
2019-03-01 02:46:45
2019-03-01 02:46:45
>
Phill Nacelli
's comment

Phil, I’m not understanding. I pointed out in the post how this was indeed recognized in the “fixed issues” of the latest updates. Or am I misunderstanding you here?

Like
2019-02-28 14:10:25
2019-02-28 14:10:25

Hey Charlie Arehart,

Great post!  Do you have any good and safe resources for disabling and or removing the ODBC Agent and Server in an existing CF Installation for those folks who may want to “cut the cord”?

Best buddy,

Phill

Like
(1)
>
Phill Nacelli
's comment
2019-03-01 02:44:02
2019-03-01 02:44:02
>
Phill Nacelli
's comment

Hi, Phil. Well, as I noted, one could just stop it and set the service to be disabled.

Or one could use windows to remove them if you really wanted to. For CF11:

1. Open the command prompt using Run as Admin.

2. Run these commands:

a) sc delete “ColdFusion 11 ODBC Agent”

b) sc delete “ColdFusion 11 ODBC Server”

There is also the option to delete them using cfml, using cf’s admin API. It that interests anyone, see the last several comments (from June 2014 to Dec 2017) here:

https://coldfusion.adobe.com/discussion/1505656/

Like
Add your comment