Ufitzi, here's my take on the situation. I have some
background info (to make sure we're on the same page) and then
something for you to try that may really help with your problem.
You had said, "As soon as I remove the clientstorage
attribute from the Application.cfm file, the site breaks." That
would be because the CF Admin is still set to use the old DSN as
the default. The admin page on client variables has 2 purposes: to
let you define DSNs to server as client var repositories, and to
name which should be the default if code doesn't set it itself
(like you did when you set the clientstorage attribute).
So you did step 1, added a new DSN. Then you skipped step 2
(set it as the default) and used code instead to set the
clientstorage, first to use cookies, then to use the new DSN. When
you removed it, you went back to using the old DSN, as it's still
set as the default.
You could finish step 2, telling the Admin to use the new DSN
as the default client storage. That should make the one (and all)
apps work.
But your concern that "only 1 app breaks" using the old DSN
is indeed curious. There's little reason for that. They would all
access the DSN the same way, if all on the same server and using
the same DSN for their client storage repository. I would challenge
you to test to make SURE that the "other" apps really don't have
their own clientstorage defined. It sure sounds like they do, and
that they're not using the "bad" old one.
It can be tough to confirm, because a number of things could
throw you off. First, the apps may be using application.cfc, rather
than application.cfm. In that case, the latter is ignored and you
have to look in the application.cfc for what's really controlling
things. Second. either way, the code could be including (or
invoking) another application.cfm or .cfc after the code you see
that's setting (or not) the clientstorage attribute. You need to be
sure you have confirmed that's not the case.
But here's some good news: there's no documented to confirm
what a given app is using for its clientstorage, but there is an
unsupported way:
<cfdump
var="#Client.getPersistSettings().get("clientstorage")#">
Of course, that needs to be run in the scope of whatever app
whose client storage you are trying to check. Be careful about
mistakenly running it in some test directory outside of the app's.
Let us know if any of this helps.
/Charlie (troubleshooter, carehart. org)