Rob,

I don't have any experience with what you are doing - but it's on my to-do
list so I am interested in hearing about your problem (and hopefully
solution)

Regarding Witango. I'm not sure how much you know about how it works, but
Witango maintains a pool of persistent ODBC connections. When a thread is
started by an incoming request, and that thread attempts access the
database, it is assigned to one of the active db connections (unless one is
not available, and then it makes a new one). If a Witango server is setup to
handle 20 threads, there can be as many as 20 database connections
maintained, either active or idle. If you have more than one database, then
the number can be even higher.

If Witango establishes a connection to your primary server and then the
switch over to the mirror occurs, Witango will not know that this has
happened. Therefore, the very next Witango request which is given the now
defunct db connection will throw an error regarding the connection failure.
This is proper behavior in that the bad connection will be closed and on the
following request (not the one that got the error) a new connection (now to
the mirror) will be made.

You can disable Witango's db connection pooling feature by setting the
configuration variable "dataSourceLife" to zero. This tells Witango to open
a new db connection for each request. Doing this should give you the
expected behavior, however on busy servers, the overhead in opening a new
connection on each request can be detrimental to the server's performance.

In my opinion, I would either let Witango throw its errors and close down
the useless connections, sure you'll give a handful of people a poor
experience, but it should ultimately work properly. Another idea would be to
restart the Witango service as part of the fail-over activation/deactivation
script. I'm not sure how sophisticated your fail-over mechanism is, but many
have scripting environments where you can easily stop and start NT services.

Hope that helps.

Robert

-----Original Message-----
From: [email protected] [mailto:[email protected]] 
Sent: Monday, April 20, 2009 5:47 PM
To: [email protected]
Subject: Witango-Talk: WiTango with SQL Server 2005 Database Mirroring

Hi, I'm a SQL Server DBA and am investigating using SQL Server 2005's
Database Mirroring for an application we have that uses WiTango.

I apologize in advance because I am not versed in WiTango.

The version we are using is 5.5.  Database connections are made through
ODBC.

What I've done is to set up database mirroring for a database.  Mirroring
failover works correctly at the database level.  I then created a simple C#
app that pulls data as test.   I also substituted the usual ODBC driver with
the Windows the SQL Native Client ODBC wrapper, in which I can specify a
server for the mirror.  The C# app works as expected, and when I failover
the database I the Native Client ODBC redirects to the correct server, and
the application then correctly pulls data from the mirror seamlessly.  I am
monitoring both servers with traces so I can see all login events.

However, when I try same setup through Witango for the same database,
everything works as expected when we are not failed over but after failover
the ODBC connection will not redirect to the mirror server.  While I don't
see a failed login attempt in my trace (I am auditing login failed and
success) ,  I do have a WiTango page that explains the database connection
failed. When I run this with my C# app I again won't see the login failed,
but will see activity on the failover side as expected. 

I've tried to enable logging on the ODBC connection, but I'm not having
sucess (it simply writes out an empty log file).  I believe this output
could be very helpful, but until I can get this logging to work successfully
I don't have much to go on at that level.

One of the developers gave me the .tcf file where the database connections
are made, and one difference between my test apps odbc connection and the
WiTango connection is that the WiTango credentials are encrypted.  I haven't
tried encrypted the credentials in my test app.

Any idea what I might be missing, or something I should look into?  Does
anyone have any experience with Datbasebase Mirroring and WiTango? It would
seem that if the ODBC Native client works for WiTango's usual connection to
the database, and that if it can detect a failover, it should be able to
redirect WiTango as well. 

Thanks,
Rob Trahan

--
This message was sent on behalf of [email protected] at
openSubscriber.com
http://www.opensubscriber.com/messages/[email protected]/topic.html
________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf


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

Reply via email to