Actually, bound sessions allow you to share the transaction space among two
connections but doesn't give you concurrent access to it. If you try to
execute a batch on a connection while the other is actively doing something
within the transaction the server will return an error saying that the
transaction context is in use.
COM+ is the only solution I know of for this scenario. Even with COM+/DTC
you'll see some serialization around the transaction. In ADO.NET 2.0 + SQL
Server 2005 you can mix MARS plus asynchronous command execution to submit
two requests concurrently within the same transaction; however, note that in
that case you won't get parallelism in the server; multiple MARS sessions
within a connection are interleaved, not executed in parallel.
--
Pablo Castro
Program Manager - ADO.NET Team
Microsoft Corp.
This posting is provided "AS IS" with no warranties, and confers no rights.
"Angel Saenz-Badillos[MS]" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> As long as both connections are to the same instance of Sql Server you can
> use sp_bindsession to get this behavior without having to use distributed
> transactions.
> http://msdn.microsoft.com/library/de...ba-bz_9ini.asp
>
> Hope this helps.
> --
> Angel Saenz-Badillos [MS] Managed Providers
> This posting is provided "AS IS", with no warranties, and confers no
> rights.Please do not send email directly to this alias.
> This alias is for newsgroup purposes only.
> I am now blogging about ADO.NET: http://weblogs.asp.net/angelsb/
>
>
>
>
> "Dumitru Sbenghe" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
>> Given the current status of ADO.NET (version 1.1), you can not do what
>> you
>> want. Because the SqlClient provider permit only one command running on a
>> given connection at a time, the only solution will be a distributed
>> transaction coordinator + 2 connections with 2 commands executed
>> concurrently aka ES/COM+ in .NET . or wait until ADO.NET 2.0 will be
>> released
, version which will permit this behavior.
>>
>>
>>
>> Dumitru
>>
>>
>> "Shawn B." <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>> > Greetings,
>> >
>> > I have two SqlCommands objects that each need to execute concurrently
> but
>> > I
>> > want them both to be a part of the same transaction.
>> >
>> > What I'm doing is created one SqlCommand and Beginning a transaction.
>> >
>> > I have another SqlCommand that is being executed from within an
>> > Asynchronous
>> > delegate that needs to participate in the same transaction. The
>> > problem
>> > is
>> > that I get the infamous exception stating that the connection is
>> > already
>> > in
>> > use.
>> >
>> > COM+ is not an answer here.
>> >
>> > What I want to know is if there is a way to make this work correctly
> using
>> > only ADO.NET?
>> >
>> >
>> > Thanks,
>> > Shawn
>> >
>> >
>>
>>
>
>