Showing posts with label transactions. Show all posts
Showing posts with label transactions. Show all posts

Sunday, February 19, 2012

dtctest fails and nobody here has any clue why

Hi,
My machine is unable to establish a connection for the purposes of
making distributed transactions. The problem appears to be that my
machine is blocking the machine to which I am trying to connect from
establishing RPC Binding with my machine. Here's a message from my
Event Viewer:
MS DTC is unable to communicate with MS DTC on a remote system. MS
DTC on the primary system established an RPC binding with MS DTC on
the secondary system. However, the secondary system did not create
the reverse RPC binding to the primary MS DTC system before the
timeout period expired. Please ensure that there is network
connectivity between the two systems. Error
Specifics:d:\nt_qxp\com\com1x\dtc\dtc\cm
\src\cso.cpp:1977, CmdLine:
C:\WINNT\System32\msdtc.exe, Pid: 1300
No Callstack (0)
What's curious is that my PC is the ONLY one in our network that has
this problem.
I've run dtctester againat various machines using various DSNs and
ALWAYS get the following:
Error:
SQLSTATE=25S12,Native error=-2147168242,msg='[Microsoft][ODBC SQL
Server Driver]Distributed transaction error'
Error:
SQLSTATE=24000,Native error=0,msg=[Microsoft][ODBC SQL Server
Driver]Invalid cursor state
Typical Errors in DTC Output When
a. Firewall Has Ports Closed
-OR-
b. Bad WINS/DNS entries
-OR-
c. Misconfigured network
-OR-
d. Misconfigured SQL Server machine that has multiple netcards.
To my knowledge, my PC is the only one here (out of hundreds) that
flunks the dtctester.
From all appearances, my PC appears to be configured identically to
those of many other people here who are not experiencing any problems.
Specifically, I've checked all MSDTC registry settings of which I've
read, I've been into Component Services and checked the properties of
anything msdtc related, and I've ensured that the services I need are
actually running. I'm running XP, but I have the firewall turned off,
and have never installed any third party firewall. My network
connectivity is ok. I can see the target machine, and can even access
the database to which I am trying to connect and do whatever I want,
so long as I don't use distributed transactions. The version of msdtc
that I am using is identical to those of everyone else around here.
The latest advice I'm getting is to reinstall XP and hope for the
best. Seems pretty drastic to me, especially seeing how it's no
guarantee! Does anyone out there have any idea what could be causing
this? General consensus is that it is some stupid check box somewhere,
but we've pretty much run out of ideas where to look.
-Dave
I have read dozens of emails and solutions to this and similar issues
and tried them all, and nothing seems to work.Dave, I am having the same problem here. Have you found a resolution to
this. Just curious.
Cory
ccundy
---
Posted via http://www.mcse.ms
---
View this thread: http://www.mcse.ms/message724716.html

dtctest fails and nobody here has any clue why

Hi,
My machine is unable to establish a connection for the purposes of
making distributed transactions. The problem appears to be that my
machine is blocking the machine to which I am trying to connect from
establishing RPC Binding with my machine. Here's a message from my
Event Viewer:
MS DTC is unable to communicate with MS DTC on a remote system. MS
DTC on the primary system established an RPC binding with MS DTC on
the secondary system. However, the secondary system did not create
the reverse RPC binding to the primary MS DTC system before the
timeout period expired. Please ensure that there is network
connectivity between the two systems. Error
Specifics:d:\nt_qxp\com\com1x\dtc\dtc\cm\src\cso.c pp:1977, CmdLine:
C:\WINNT\System32\msdtc.exe, Pid: 1300
No Callstack (0)
What's curious is that my PC is the ONLY one in our network that has
this problem.
I've run dtctester againat various machines using various DSNs and
ALWAYS get the following:
Error:
SQLSTATE=25S12,Native error=-2147168242,msg='[Microsoft][ODBC SQL
Server Driver]Distributed transaction error'
Error:
SQLSTATE=24000,Native error=0,msg=[Microsoft][ODBC SQL Server
Driver]Invalid cursor state
Typical Errors in DTC Output When
a. Firewall Has Ports Closed
-OR-
b. Bad WINS/DNS entries
-OR-
c. Misconfigured network
-OR-
d. Misconfigured SQL Server machine that has multiple netcards.
To my knowledge, my PC is the only one here (out of hundreds) that
flunks the dtctester.
From all appearances, my PC appears to be configured identically to
those of many other people here who are not experiencing any problems.
Specifically, I've checked all MSDTC registry settings of which I've
read, I've been into Component Services and checked the properties of
anything msdtc related, and I've ensured that the services I need are
actually running. I'm running XP, but I have the firewall turned off,
and have never installed any third party firewall. My network
connectivity is ok. I can see the target machine, and can even access
the database to which I am trying to connect and do whatever I want,
so long as I don't use distributed transactions. The version of msdtc
that I am using is identical to those of everyone else around here.
The latest advice I'm getting is to reinstall XP and hope for the
best. Seems pretty drastic to me, especially seeing how it's no
guarantee! Does anyone out there have any idea what could be causing
this? General consensus is that it is some stupid check box somewhere,
but we've pretty much run out of ideas where to look.
-Dave
I have read dozens of emails and solutions to this and similar issues
and tried them all, and nothing seems to work.
Dave, I am having the same problem here. Have you found a resolution to this. Just curious.
Cory

DTC Transaction Abort error

We are using MSDTC to handle our transactions and some clients seem to be getting these errors more and more when we went to framework 2.0. Any ideas what could be causing this?

Before in framework 1.1 we would ask our clients to re-register their computer into the domain and/or rename their computer and this worked but it seems like in framework 2.0 it doesn't do the trick. Also, the wrong dns setup causes this too but after trying to fix both things it still doesn't work. I believe this error means either the server has finished the transaction and can't find the client to return the result or the active directory account/computer account is corrupted. Any ideas?

The transaction has already been implicitly or explicitly committed or aborted.


Type: TransactionException
StackTrace:
Server stack trace:
at System.Transactions.Oletx.OletxTransactionManager.ProxyException(COMException comException)
at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()

Previously

For DTC issues, you should try posting on SQL Server Integration Services.

Thanks
Laurentiu

DTC error with concurrent data flows

I have a package that has several data flows that run concurrently after some initial tasks and an initial data flow. I want transactions on each of the data flows and have set the transaction option to Required on the data flows (not on the package itself). I am also using checkpoint restart on the package. A couple things are happening.

1) the first data flow is successful and that releases the several that are waiting. Some of these complete OK but inevitably one or two will fail. The failing data flows will be different from run to run, sometimes one and sometimes two will fail. The error says:

Error: 0xC0202009 at Provider_NF_Code, Delete Provider_NF_Code [130]: An OLE DB error has occurred. Error code: 0x80004005.

An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.".

My hunch is that DTC is getting the transactions mixed up. I think it is committing one just after another data flow has already started work expecting the transaction to still be active. That would explain why the failing data flows are random. Plus, if I set the MaxConcurrentExecutables to 1 the entire package is successful. BUT, why have concurrent tasks if you can't run them concurrently.

2) when the package fails with the DTC problem I restart it with the checkpoint file. I was expecting the package to restart with the failed data flows. Instead, it restarts with the initial data flow (that all the other flows wait for in the package). This data flow has always been successful. It's as if the transactions I have put on the individual data flows are actually placed on a single virtual container that all of them are in, and when down stream data flows fail the entire data flow chain is rolled back and set to restart.

How can I get multiple concurrent data flows to run with transactions?

Why are successful data flows being restarted? Can I get just the failed tasks to restart?

-Gordy

I can't help with why things are failing but regarding restarting using checkpoints you should find this to be of use: http://blogs.conchango.com/jamiethomson/archive/2005/04/20/1324.aspx

Here's a bit more info on checkponts that you might find useful: http://blogs.conchango.com/jamiethomson/archive/2006/01/03/2537.aspx

-Jamie

|||

One other thing, if each of your transactions only contain one task, what's the point in putting it in a transaction?

-Jamie

|||

Each data flow task maintains a different table. The data flows perform inserts, updates and deletes. If one data flow fails the others shouldn't be rolled back, that's why they are in seperate tasks (among other reasons) and seperate transactions. And in order to avoid partially updated tables the data flows are using transactions.

-Gordy

|||

Jamie,

Thanks for your assistance but I disagree with your blog. There is no reason to assume that parallel sequence containers should be rolled back if one of the containers has a failure. The rollback should be based on whether the sequence container(s) finished successfully or not. If tables A, B, and C are in seperate seq containers and A & B finished but C choked, why rerun A & B? However, that said, it seems to be what MS is doing and it is waisting a lot of processing time for me.

So, let's say I want to build 3 houses at the same time. If any has a defect I'll tear it down and start over, but I don't want to tear them all down if just 1 has a defect. Is there a way to use checkpoints with transactions to get this done?

As I said above, concurrent processing seems to get DTC confused and a transaction that a parallel task was going to join gets comitted leaving it without a trans.

-Gordy

|||

Gordon,

I don't think I was trying to say that would always be the case - just in that particular "for instance". Mind you, it was a long time ago so I might be wrong :)

-Jamie

Friday, February 17, 2012

DTC Error

Hi all,
I built an ASP.Net application. The asp .net application uses distributed
transactions. I add "Transaction='Required'" for every data processing pages
and use "ContextUtil.SetComplete()" or "ContextUtil.SetAbort()" to commit or
abort the transaction.
When the IIS Server and SQL Server are on the same machine, this is no
problem. But when the
IIS server and SQL server are on different machines, error will occurs and
saying that "DTC can not support remote/network transactions".
How the solve this problem?
Thanks!
KevinIf you are running Win2K3, DTC is disabled for network access by default.
Check out:
How to enable network DTC access in Windows Server 2003
http://support.microsoft.com/default.aspx?scid=kb;en-us;817064
Good luck.
Anthony Thomas
"Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
news:einMubSJFHA.2736@.TK2MSFTNGP09.phx.gbl...
Hi all,
I built an ASP.Net application. The asp .net application uses distributed
transactions. I add "Transaction='Required'" for every data processing pages
and use "ContextUtil.SetComplete()" or "ContextUtil.SetAbort()" to commit or
abort the transaction.
When the IIS Server and SQL Server are on the same machine, this is no
problem. But when the
IIS server and SQL server are on different machines, error will occurs and
saying that "DTC can not support remote/network transactions".
How the solve this problem?
Thanks!
Kevin|||Thanks Thomas,
Actually I have already installed Network DTC.
The IIS Machine is WindowsXP, the SQL machine is Windows2003, the two
machines belong to different domain. Do I need to setup something?
Thanks
Kevin
"Anthony Thomas" <ALThomas@.kc.rr.com> дÈëÏûÏ¢ÐÂÎÅ:u9Kfi4SJFHA.2980@.TK2MSFTNGP10.phx.gbl...
> If you are running Win2K3, DTC is disabled for network access by default.
> Check out:
> How to enable network DTC access in Windows Server 2003
> http://support.microsoft.com/default.aspx?scid=kb;en-us;817064
> Good luck.
> Anthony Thomas
>
> --
> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
> news:einMubSJFHA.2736@.TK2MSFTNGP09.phx.gbl...
> Hi all,
> I built an ASP.Net application. The asp .net application uses distributed
> transactions. I add "Transaction='Required'" for every data processing
> pages
> and use "ContextUtil.SetComplete()" or "ContextUtil.SetAbort()" to commit
> or
> abort the transaction.
> When the IIS Server and SQL Server are on the same machine, this is no
> problem. But when the
> IIS server and SQL server are on different machines, error will occurs and
> saying that "DTC can not support remote/network transactions".
> How the solve this problem?
> Thanks!
> Kevin
>|||That little piece of info would have been helpful.
Here is a way to handle non-domain communication.
HOWTO: Enable DTC Between Web Servers and SQL Servers Running Windows Server
2003
http://www.support.microsoft.com/?kbid=555017&SD=tech
I know I've seen articles on how to set this up between two different
domains, same forest and different forests, but can't find it at the moment.
However, the following may prove useful to you as well,
How To Troubleshoot MS DTC Firewall Issues
http://support.microsoft.com/default.aspx?scid=kb;en-us;306843
Good luck.
Anthony Thomas
"Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
news:Oe7mPtUJFHA.1172@.TK2MSFTNGP12.phx.gbl...
Thanks Thomas,
Actually I have already installed Network DTC.
The IIS Machine is WindowsXP, the SQL machine is Windows2003, the two
machines belong to different domain. Do I need to setup something?
Thanks
Kevin
"Anthony Thomas" <ALThomas@.kc.rr.com>
дÈëÏûÏ¢ÐÂÎÅ:u9Kfi4SJFHA.2980@.TK2MSFTNGP10.phx.gbl...
> If you are running Win2K3, DTC is disabled for network access by default.
> Check out:
> How to enable network DTC access in Windows Server 2003
> http://support.microsoft.com/default.aspx?scid=kb;en-us;817064
> Good luck.
> Anthony Thomas
>
> --
> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
> news:einMubSJFHA.2736@.TK2MSFTNGP09.phx.gbl...
> Hi all,
> I built an ASP.Net application. The asp .net application uses distributed
> transactions. I add "Transaction='Required'" for every data processing
> pages
> and use "ContextUtil.SetComplete()" or "ContextUtil.SetAbort()" to commit
> or
> abort the transaction.
> When the IIS Server and SQL Server are on the same machine, this is no
> problem. But when the
> IIS server and SQL server are on different machines, error will occurs and
> saying that "DTC can not support remote/network transactions".
> How the solve this problem?
> Thanks!
> Kevin
>|||Thomas,
Thanks for your reply, I solved my problems!
Kevin
"Anthony Thomas" <ALThomas@.kc.rr.com> дÈëÏûÏ¢ÐÂÎÅ:%230JYHoXJFHA.3596@.TK2MSFTNGP14.phx.gbl...
> That little piece of info would have been helpful.
> Here is a way to handle non-domain communication.
> HOWTO: Enable DTC Between Web Servers and SQL Servers Running Windows
> Server
> 2003
> http://www.support.microsoft.com/?kbid=555017&SD=tech
> I know I've seen articles on how to set this up between two different
> domains, same forest and different forests, but can't find it at the
> moment.
> However, the following may prove useful to you as well,
> How To Troubleshoot MS DTC Firewall Issues
> http://support.microsoft.com/default.aspx?scid=kb;en-us;306843
> Good luck.
> Anthony Thomas
>
> --
> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
> news:Oe7mPtUJFHA.1172@.TK2MSFTNGP12.phx.gbl...
> Thanks Thomas,
> Actually I have already installed Network DTC.
> The IIS Machine is WindowsXP, the SQL machine is Windows2003, the two
> machines belong to different domain. Do I need to setup something?
> Thanks
> Kevin
>
> "Anthony Thomas" <ALThomas@.kc.rr.com>
> дÈëÏûÏ¢ÐÂÎÅ:u9Kfi4SJFHA.2980@.TK2MSFTNGP10.phx.gbl...
>> If you are running Win2K3, DTC is disabled for network access by default.
>> Check out:
>> How to enable network DTC access in Windows Server 2003
>> http://support.microsoft.com/default.aspx?scid=kb;en-us;817064
>> Good luck.
>> Anthony Thomas
>>
>> --
>> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
>> news:einMubSJFHA.2736@.TK2MSFTNGP09.phx.gbl...
>> Hi all,
>> I built an ASP.Net application. The asp .net application uses distributed
>> transactions. I add "Transaction='Required'" for every data processing
>> pages
>> and use "ContextUtil.SetComplete()" or "ContextUtil.SetAbort()" to commit
>> or
>> abort the transaction.
>> When the IIS Server and SQL Server are on the same machine, this is no
>> problem. But when the
>> IIS server and SQL server are on different machines, error will occurs
>> and
>> saying that "DTC can not support remote/network transactions".
>> How the solve this problem?
>> Thanks!
>> Kevin
>>
>|||Want to share. I'm curious how you solved it.
Thanks.
Anthony Thomas
"Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
news:uYQjZDeJFHA.484@.TK2MSFTNGP15.phx.gbl...
Thomas,
Thanks for your reply, I solved my problems!
Kevin
"Anthony Thomas" <ALThomas@.kc.rr.com>
дÈëÏûÏ¢ÐÂÎÅ:%230JYHoXJFHA.3596@.TK2MSFTNGP14.phx.gbl...
> That little piece of info would have been helpful.
> Here is a way to handle non-domain communication.
> HOWTO: Enable DTC Between Web Servers and SQL Servers Running Windows
> Server
> 2003
> http://www.support.microsoft.com/?kbid=555017&SD=tech
> I know I've seen articles on how to set this up between two different
> domains, same forest and different forests, but can't find it at the
> moment.
> However, the following may prove useful to you as well,
> How To Troubleshoot MS DTC Firewall Issues
> http://support.microsoft.com/default.aspx?scid=kb;en-us;306843
> Good luck.
> Anthony Thomas
>
> --
> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
> news:Oe7mPtUJFHA.1172@.TK2MSFTNGP12.phx.gbl...
> Thanks Thomas,
> Actually I have already installed Network DTC.
> The IIS Machine is WindowsXP, the SQL machine is Windows2003, the two
> machines belong to different domain. Do I need to setup something?
> Thanks
> Kevin
>
> "Anthony Thomas" <ALThomas@.kc.rr.com>
> дÈëÏûÏ¢ÐÂÎÅ:u9Kfi4SJFHA.2980@.TK2MSFTNGP10.phx.gbl...
>> If you are running Win2K3, DTC is disabled for network access by default.
>> Check out:
>> How to enable network DTC access in Windows Server 2003
>> http://support.microsoft.com/default.aspx?scid=kb;en-us;817064
>> Good luck.
>> Anthony Thomas
>>
>> --
>> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
>> news:einMubSJFHA.2736@.TK2MSFTNGP09.phx.gbl...
>> Hi all,
>> I built an ASP.Net application. The asp .net application uses distributed
>> transactions. I add "Transaction='Required'" for every data processing
>> pages
>> and use "ContextUtil.SetComplete()" or "ContextUtil.SetAbort()" to commit
>> or
>> abort the transaction.
>> When the IIS Server and SQL Server are on the same machine, this is no
>> problem. But when the
>> IIS server and SQL server are on different machines, error will occurs
>> and
>> saying that "DTC can not support remote/network transactions".
>> How the solve this problem?
>> Thanks!
>> Kevin
>>
>|||Hi Thomas,
I add the following registry values, set the firewall to allow ports form
5000~5020 & 135, and then restart both computers.
Ports : REG_MULTI-SZ : 5000-5020
PortsInternetAvailable : REG_SZ : Y
UseInternetPorts : REG_SZ : Y
These information are all in the articals you have mentioned.
Kevin
"Anthony Thomas" <ALThomas@.kc.rr.com> дÈëÏûÏ¢ÐÂÎÅ:O7pSP6jJFHA.3484@.TK2MSFTNGP12.phx.gbl...
> Want to share. I'm curious how you solved it.
> Thanks.
> Anthony Thomas
>
> --
> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
> news:uYQjZDeJFHA.484@.TK2MSFTNGP15.phx.gbl...
> Thomas,
> Thanks for your reply, I solved my problems!
>
> Kevin
> "Anthony Thomas" <ALThomas@.kc.rr.com>
> дÈëÏûÏ¢ÐÂÎÅ:%230JYHoXJFHA.3596@.TK2MSFTNGP14.phx.gbl...
>> That little piece of info would have been helpful.
>> Here is a way to handle non-domain communication.
>> HOWTO: Enable DTC Between Web Servers and SQL Servers Running Windows
>> Server
>> 2003
>> http://www.support.microsoft.com/?kbid=555017&SD=tech
>> I know I've seen articles on how to set this up between two different
>> domains, same forest and different forests, but can't find it at the
>> moment.
>> However, the following may prove useful to you as well,
>> How To Troubleshoot MS DTC Firewall Issues
>> http://support.microsoft.com/default.aspx?scid=kb;en-us;306843
>> Good luck.
>> Anthony Thomas
>>
>> --
>> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
>> news:Oe7mPtUJFHA.1172@.TK2MSFTNGP12.phx.gbl...
>> Thanks Thomas,
>> Actually I have already installed Network DTC.
>> The IIS Machine is WindowsXP, the SQL machine is Windows2003, the two
>> machines belong to different domain. Do I need to setup something?
>> Thanks
>> Kevin
>>
>> "Anthony Thomas" <ALThomas@.kc.rr.com>
>> дÈëÏûÏ¢ÐÂÎÅ:u9Kfi4SJFHA.2980@.TK2MSFTNGP10.phx.gbl...
>> If you are running Win2K3, DTC is disabled for network access by
>> default.
>> Check out:
>> How to enable network DTC access in Windows Server 2003
>> http://support.microsoft.com/default.aspx?scid=kb;en-us;817064
>> Good luck.
>> Anthony Thomas
>>
>> --
>> "Kevin Dai" <Kevin_Dzy@.Hotmail.com> wrote in message
>> news:einMubSJFHA.2736@.TK2MSFTNGP09.phx.gbl...
>> Hi all,
>> I built an ASP.Net application. The asp .net application uses
>> distributed
>> transactions. I add "Transaction='Required'" for every data processing
>> pages
>> and use "ContextUtil.SetComplete()" or "ContextUtil.SetAbort()" to
>> commit
>> or
>> abort the transaction.
>> When the IIS Server and SQL Server are on the same machine, this is no
>> problem. But when the
>> IIS server and SQL server are on different machines, error will occurs
>> and
>> saying that "DTC can not support remote/network transactions".
>> How the solve this problem?
>> Thanks!
>> Kevin
>>
>>
>