We've been having serious WiTango (.065, W2K SP3, MS-SQL SP3) stability
issues over the last several days that I think we have finally figured out.

The problem was that every few hours the web site would stop responding.  If
we were sitting in front of a browser when the site started to slow down and
tested it we realized that connections to a particular one of several ODBC
names on the server were hanging.  Even the exact same .taf application
could connect to database A, C, or D but would lock up against database B.
Eventually all the available WiTango threads were busy trying to connect to
database B.  The site would only recover if we killed the WiTango process.
Also, the WiTango events log showed new connections being made to database B
every second - which didn't seem normal.

To make a (very) long story short, here is what looks like was going on:

Using MS-SQL Profiler to trace all WiTango activity on the database we
noticed the following sequence of events:

WiTango issued a strange query to the database: SELECT 1 FROM 30DayTSNI
WHERE 1=0

Then it would close and reopen the database connection.

Then it would issue a query involving SP_TABLES

Then it would perform all the queries related to the page that was loading.

Repeat each second or so.

I assumed that the SELECT query was some kind of check WiTango does to make
sure the database connection is still open.  30DayTSNI is a table in the
suspect database and is the first user table listed.  But, the question was
why did WiTango then drop and recreate the connection?

Answer is that the query returns an error message unless you put [ ]  around
the table name since the table name begins with a number.  So, since the
query returned an error (even though the connection was valid) WiTango must
have thought the connection was broken and disposed of it and created a new
one.

We renamed the table to not start with a number and WiTango appears to be
behaving very nicely again...

So, it seems that if your database has user tables in them that begin with
numbers WiTango can get very unstable.

I think it would be nice if With modified the connection pooling/keep alive
thing to handle this situation properly.

Dave Machin
BenchmarkPortal.com


________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf

Reply via email to