Hello everyone.. Thought I would update you on the issues that caused
the "long" thread here.  I'm posting here, because this is NOT about how
to manage communication between MM and ourselves.  Rather, this is
specifically about the technical aspects of what's happening now.

Here goes... (This is a long one!)



** BIG - HUGE - HONKIN' - DISCLAIMER **************************** 
I'm sending out this info for just that purpose.. INFO.  It is NOT
recommended as a way for you to handle your own problems with CF(MX),
nor is this information, in any way shape or form, given at the behest
of, or suggestion from, Macromedia.  These are MY observations and
workarounds.  THEY MAY NOT WORK IN YOUR CASE -- PARTIALLY OR AT ALL, AND
MAY DESTROY DATA, GIVE YOU A HORRIBLE, PAINFUL AND INCURABLE DISEASE,
REMOTELY KILL YOUR PARENTS, GRANDPARENTS AND/OR REMAINING FAMILY WITH
NUCLEAR FALLOUT, AND/OR DRAIN YOUR BANK ACCOUNT, ALONG WITH ANY NUMBER
OF OTHER MORE PAINFUL AFTER-EFFECTS ((c)2002 ADOBE).  You have been
warned.
*****************************************************************





Issue #1:
~~~~~~~~~
Server Spiraling Out Of Control

Symptom:
~~~~~~~~
At irregular intervals, IIS5 will begin to spiral upwards in the number
of "Current Connections", showing that many of them are not dead/dying
properly.  Correspondingly, the number of "Running Requests" of the JRUN
(CFMX) service begin to rise as well, with a "floor" number staying
stable (not dying), yet ever increasing until the CFMX server will stop
responding to CFM file requests at all.

If we restart only IIS, on some occassions CFM files CALLED DIRECTLY
will begin to fail with 404 errors.  However, indirect calls to the same
files will work normally (sometimes).  I.e.,
"http://www.somedomain.com/index.cfm"; fails with a 404, whereas
"http://www.somedomain.com"; works fine (sometimes) (and yes.. there is
ONLY an "index.cfm" file -- no default.xxx or other "home" pages in the
dir).

Workaround:
~~~~~~~~~~~
We have noticed that simply using the PerfMonitor to restart the CFMX
and IIS services does not always work properly.  Sometimes, as mentioned
above, the IIS server simply loses touch with CFMX and delivers bizarre
404 errors, where other times CFMX will simply not respond and the
entire site appears to be offline.  This DOES NOT correspond (as far as
we can tell) in any significant way to whether the page connecting to an
outside datasource.

Therefore, we decided to try simply restarting the "jrun.exe" service
directly using the "cfstop.bat" and "cfstart.bat" files that are located
in the <CFMX Root Dir>\bin directory.  We trigger this restart using
PerfMon and setting "alerts" to make sure that we have no more than 25
"Running Requests" for the JRUN service, and another that runs the
restart if we have more than 125 "Current Connections" to IIS.  These
numbers may seem low.  However, if we do not restart at these points,
either IIS or CFMX will begin to run VERY slowly, or simply not respond
at all.  And since CFMX's Probes stop working when CFMX itself stops
working, a probe is useless.  Besides, CF never does restart itself
properly "... after X unresponsive requests."

Here is the BAT file that is used to restart the JRUN service:

=======
@echo off
cls
REM ==========          RESTART CFMX            ===============
c:
cd \ROOTCFMXDIR\bin
call C:\ROOTCFMXDIR\bin\cfstop.bat
c:\winnt\system32\kill -f jrun.exe
c:\winnt\system32\kill -f jrun.exe
sleep 2
call C:\ROOTCFMXDIR\bin\cfstart.bat
REM ===========================================================
Exit  (interesting that this isn't needed, nor does it work.. So don't
ask me why it's here. :) =======

You may well ask "Why do you kill JRUN.EXE twice?"  Good question!
Because JRUN.EXE is an actual service, we are effectively killing the
old service and opening a new one in a new CMD window (hidden of
course).  We noticed that if we only kill it one time, it will not die.
Therefore, we will end up with dozens of CMD instances, along with
dozens of JRUN.EXE instances by day's end.  We have found that killing
it twice does, indeed, get rid of the old instance, and properly create
only one new instance.

It is important to note that there is no way (at least that I know of)
to cause PerfMon alerts to start themselves, upon a reboot caused
remotely.  So if you're not there to start the alerts manually, they
will not restart the server if they are triggered.

Lastly, we tried adding the CFMX ODBC services to this restart bat
file.. with no consequence other than it taking longer to come back to
life.  So we took them back out.  Currently, this work around causes the
server to go offline for about 10-15 seconds... each time it is
restarted.

Status with Macromedia:
~~~~~~~~~~~~~~~~~~~~~~~
Pending solution.

   -----


Issue #2:
~~~~~~~~~
NTEXT Fields in SQL Database Not Being Returned

Symptom:
~~~~~~~~
One of our clients called and complained that, quite suddenly after
5-1/2 years of things working very smoothly, the "notes" field in the
database results of his site suddenly were GONE!  He'd be HACKED!  Well,
of course, after some careful research, he hadn't been hacked.  Rather,
SQL (or rather CFMX) suddenly stopped returning the data to the forms.

Research Test:

        - Opened individual record via web and viewed it's contents.
        - Sure enough, notes field is blank.
        - Opened SQL Ent Mgr, verified there is data in the field within
the db.
        - Wrote test.cfm page to run queries against the database.
        - Using SELECT query, was able to say the following and get a
recordcount that is proper:

                <CFQUERY NAME="testq" DATASOURCE="mydatasourcenamehere">
                        SELECT          contactid, notes, testfield
                        FROM                    thetableiwant
                        WHERE                   notes not like ''
                </CFQUERY>

          CFOUTPUT of "#testq.recordcount#" shows 15,332 records.
That's correct.  However,
          if we do the following, nothing is returned but a long column
of ">< - 0":

                <CFLOOP QUERY="testq">
                        <CFOUTPUT>
                                >#notes#< - #len(notes)#<br><br>
                        </CFOUTPUT>
                </CFLOOP>
        - We changed the type of the field "notes" within the database
field to be "nvarchar" from "ntext".
        - Voila!  Data is returned normally.
        - We added a new temp field called "testfieldagain" and gave it
an "ntext" type.
        - Added data to a few of the records in the db.
        - Rewrote the query above to pull those records.
        - Recordcount was proper.
        - Data was not returned properly.  I.e., same results as before.
        - Changed type from "ntext" to "nvarchar" and reran query.
        - Voila!  Data was returned normally.


Workaround:
~~~~~~~~~~~
Change all your "ntext" data types to "nvarchar" -- and be CERTAIN to
make them REALLY LONG, otherwise truncating data will most likely occur.

Status with Macromedia:
~~~~~~~~~~~~~~~~~~~~~~~
Pending solution.


   -----


Issue #3:
~~~~~~~~~
Database Oddities Including Disappearing Records and Changing Data

Symptom:
~~~~~~~~
A different client called to say that they were experiencing something
quite odd, and wondered if it had to do with the server's problems with
CFMX.  The issue is that they have entered data into the database --
confirmed that it is there -- and then simply had it change or
disappear.  In some cases it would REappear after some time.  In other
cases it would stay gone or changed.

We confirmed this by going to the site, entering data, and then
refreshing the browser after some time.  And sure enough, the old data
would come back into the results from the database, even after we had
CONFIRMED that it was returning the proper information.

Research:

        - Created a new record via the web.
        - Entered proper data and saved it.
        - Went to main site and looked at data.  Looks great.  No
worries.
        - 15-20 minutes later, refreshed browser - record was GONE.
        - Went back into admin portion of site, re-entered data.
        - Confirmed it was in the main site.  Looked at it, and even
printed it out.
        - 15-20 minutes later, refreshed browser - no such record!
        - Noticed that in both cases, the server had run the restart
(from Issue #1 above).
        - Changed an existing record in website interface.
        - Looked at database (via SQL Ent. Mgr.).  No change to record
-- old info still in record.
        - Looked at main website -- record has new data!
        - Looked back at database -- record has old data!
        - Restart occurred.
        - Refreshed browser -- old data in browser now!
        - Changed record manually using SQL Ent. Mgr.
        - Refreshed browser -- new data is there.
        - Waited..  Restart occurred.
        - Refreshed browser -- new data is STILL there!

Our Conclusion:  Something must be up with database drivers where data
is not truly being committed to database properly.  After restart,
problem occurs storing data or some other database discussion issue.. So
database rolls back to previous state.

Workaround:
~~~~~~~~~~~
None that we can find.  Adding "BEGIN" and "END" transaction statements
doesn't seem to help.  (Suggestions anyone?)

Status with Macromedia:
~~~~~~~~~~~~~~~~~~~~~~~
Pending solution.


   -----


Issue #4
~~~~~~~~~
Use of any form of the word "Select" or "drop" in a text field being
stored in a datasource causes error message.

Symptom:
~~~~~~~~
If you use any form of those words, (i.e., select(ion), or drop(ped))
you get a record storage error from CF.  But the record itself is
actually stored normally.

Workaround:
~~~~~~~~~~~
This is actually a documented issue with CF (notice I didn't say "CFMX")
that was supposed to be fixed in the CFMX release. (See release notes:
http://www.macromedia.com/support/coldfusion/releasenotes/mx/releasenote
s_mx_updater.html#issues).

However, issue is not yet resolved, apparently.  See forum discussion
from my client:
http://webforums.macromedia.com/coldfusion/messageview.cfm?catid=6&threa
did=463648


  -----


So.. I hope this helps, folks.  Just wanted to give you all a heads-up
as to what's going on.  Realize too that I'm working with Mike Collins
from Macromedia on these issues.  He has been great, and has spent quite
a bit of "off" time helping me find the cause of these issues.  I've
given him access to my CFMX Administrator as well as Terminal Services
access to the box in question.

We're working on it!    :)

 
Lee Fuller
Chief Technical Officer
 
 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_talk
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm

Reply via email to