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
