MSDTC (aka Microsoft Distributed Transaction Control) is a piece of software which a lot of people use, but they don’t really know what it does, or how it works.
MSDTC is used by SQL Server and other applications when they want to make a distributed transaction between more than one machine. A distributed transaction is simple a transactions which spans between two or more machines. The basic concept is that machine 1 starts a transaction, and does some work. It then connects to machine 2 and does some work. The work on machine 2 fails, and is cancled. The work on machine 1 needs to then be rolled back.
DTC is for the most part a black box. It just sort of works without much interaction exept for the initial setup.
The only time that DTC needs to be used is when more than one physical computer is going to be involved in an explicet distributed transaction. If you are going from one instance to another on the same server DTC will not be needed. If you are going from one instance to another within a cluster you will want to have DTC available as you may have to go between nodes of the cluster as you have no guarantee that the instances will be on the same physical node.
I hope this helps explain DTC a little bit at least. If you have specific questions about DTC, feel free to post them below and I’ll try and find the answers for you.
I have just been informed that there will be a Lanch Party for the SQLServerPedia.com/Wiki website at PASS on Wednesday the 19th. If you will be attending PASS be sure to swing by Booth 414 (Quest Software’s booth) and pick up your party invite.
Details for the location are on the invite, so be sure and pick one up on Wednesday.
If you haven’t been able to make it to a party that Quest has put on in the past, they tend to go all out.
So you are RDPed into your SQL Server, and you are trying to copy a script from your desktop to the server, or from the server to your desktop. But you can’t for some reason. All you get is what’s in the local buffer.
One option is to log out of the machine and log back in. But this option sucks.
Another option which is much easier is to kill the rdpclip.exe process which is being run by your username on the server you are RDPed into. Then from the Run window relaunch the rdpclip.exe process. This should then allow you to copy the data into the clipboard again, and then paste it on the remote machine.
While dealing with a SQL Server Service Broker issue I needed a quick easy way to see how backlogged the service broker was. So I came up with this little query which is surprisingly effective.
select far_service, state_desc, count(*) messages
group by state_desc, far_service
ORDER BY far_service, state_desc
Hopefuly you find this helpful.
This morning I posted by first article up on SearchWinIT.com called “Does your SQL Server database improve SharePoint performance?“. It is all about getting the most out of your SharePoint environment by getting the most out of your SQL Server.
I’m happy to say that the webcast which I did with Jason Hall on Thursday October 30, 2008 has been archived for after the fact viewing. They say that it is up there for a limited time, so I’m not sure how long it will actually be available for.
You can find the webcast over in Quest Software’s Events section.
A while back I was talking to a Microsoft Support Engineer and he had mentioned that in a high load Service Broker environment such as ours there can be some impressive performance improvement can be achieved by reusing the service broker sessions.
The cost of creating and closing a new conversation for every message is about 4x, while the performance increase when receiving messages is about 10x. Remus Rusanu talks more about the numbers and shows a solution for reusing conversations on his blog posting Reusing Conversations.
I liked Remus’s solution, but an issue that I had with it was that I didn’t want to have a different conversation for each spid. If I used this method I would end up having hundreds of conversations open and I’d need a job to close them. Within our application any number of events can trigger a service broker message to be sent off. We usually have a few hundred threads logging in and out of the database at any one time.
This required that I take Remus’s solution and make it more flexible before moving it into our environment. The solution that I’ve come up with supports a single conversation for each process within our application. And at random intervals those conversations are closed, and new ones are started. Continued »
So yesterday I was asked to setup a few x64 workstations on our ESX server. The Vista x64 machines detected the LSI controller no problem, but the Windows XP machines couldn’t find the controller, and the drivers that VMware included with ESX (3.0.2) were x86 only drivers.
Tomorrow morning at 8am Pacific / 11am Eastern / 4pm London Jason Hall and myself will be talking about how to find out how healthy your SQL Server Enterprise is using both the native tools as well as Quest Software’s Spotlight On SQL Server Enterprise.
Today is the unofficial launch of the new SQLServerPedia.com Wiki. The official launch for the wiki is during PASS, so you have to go to the /wiki folder manually. The SQLServerPedia.com site is run by Quest Software, and the Wiki contains all the information which used to be contained in the KnowledgeXpert product which they used to sell. They are know giving it away for free to the entire SQL Server community.
I could go on all day about it, but forunitely I don’t have to because Brent Ozar already has in his post “The answer to SQL Server training problems“. I highly recommend reading Brent’s post about the site. It gives some great background and tells all about the site. Continued »