Hmmm...that doesn't sound right. :-(
MSDTC (Microsoft Distributed Transaction Coordinator) is responsible for
managing atomic transactions across multiple server. SQL can't do this
on its own because it only knows about the transaction context of
transactions in its own process space. So if you're trying to run a
transaction (ie. a single atomic operation) that involves multiple
servers you need some external "manager", that is DTC.
For a web server to talk to a database it needs to know what SQL server
the database lives on. At a minimum, a SQL client (including a
connection from a web server) needs the 1) server name, 2) the database
name and 3) the connection method (which will be either a flag to say
"use a trusted connection with the current security context", otherwise
knows as "trusted connection" or a username/password pair for the older
style SQL authentication). MSDTC cannot help you figure out where the
database lives.
But at the same time, you don't need to know which physical node is
hosting the instance of SQL. All you need to know is the name of the
virtual server (which can run on any configured node in the cluster).
The IP address for the virtual server is mapped to the appropriate node
(courtesy of MSCS) and all comms to the virtual SQL server are routed to
the appropriate physical node.
There is an option in SQL 2000 for "adding" a SQL instance to Active
Directory, which, as far as I'm aware, publishes the SQL instance in the
LDAP directory so that you can "find" the SQL instance by querying AD
with LDAP. But I've never bothered with this and haven't heard of
anyone who has. It has never sounded like Microsoft's best idea to me
and I can't really see any benefit in it.
HTH.
--
*mike hodgson* |/ database administrator/ | mallesons stephen jaques
*T* +61 (2) 9296 3668 |* F* +61 (2) 9296 3885 |* M* +61 (408) 675 907
*E* mailto:mike.hodgson@mallesons.nospam.com |* W*
http://www.mallesons.com [quoted text, click to view] C-Ya wrote:
>Well guys, like magic it now works. I did do a lots of things so I probably
>fixed it. Both instances will fail over to the other server and then
>fail-back. I problem down.
>
>Now I have another question. I have been told that I can have my web servers
>make calls to the MSDTC, and it will pass the data back and forth to the
>instances of SQL. This way my web servers don't have to know which instance
>of SQL the database they need is in. Correct ??? If so where can I find
>information on how to run it this way. Web sites, books, anything will help
>
>Thanks
>
>"joe." wrote:
>
>
>
>>A few thoughts:
>>1. Have you tried a manual failover/move of your default instance without
>>shutting down the machine?
>>2. Anything interesting in the event logs?
>>3. Do you have enough memory on server 1 to accomodate the default instance
>>after the named instance is up and running?
>>
>>
>>joe.
>>
>>
>>"C-Ya" <C-Ya@discussions.microsoft.com> wrote in message
>>news:283188D9-B426-4DD2-9ED3-2B3105438F9D@microsoft.com...
>>
>>
>>>I have multiple (2) instances of sql 2000 running on my windows 2003
>>>cluster.
>>>I have the default instance owned by server1 and a named instance owner by
>>>server 2. If I shutdown server 1 then my default instance fails over to
>>>server2. Now server two is running both. (no problem). If I shutdown
>>>server
>>>2 then my named instance fails over to server1, but my default instance
>>>fails
>>>and will only come up when server2 is back online. I have check all
>>>dependencies. The physical disks, the SQL IP Address, and the SQL Network
>>>Name stay online, just the SQL Server (and stuff dependant on it) fail.
>>>This
>>>is a new installation (just a few days old)
>>>
>>>Should I have done two named instances instead of a default and a named?
>>>
>>>One more bit of info. There is no problem with my Cluster Group or my DTC
>>>Group failing over or failing back.
>>>
>>>
>>
>>