473,394 Members | 1,671 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

transactions

I wish to do a series of inserts on a sql server database in the context of
a transaction. The inserts will be done as a series of stored procedure
calls. I wish to be able to rollback any inserts should one fail.

A quick google on ".net transactions" and the following page comes up:
http://samples.gotdotnet.com/quickst...nsactions.aspx

It says basically that the class System.EnterpriseServices.ContextUtil is
the chap for the job. However on looking at the EnterpriseServices
namespace, it seems to be full of classes related to COM components. Is
this definately the correct class to use for the job?
Also, the above page describes using the <%@transaction=required%> page
directive in asp.net to set the transaction scope and level. What would
happen if a non asp.net program tried to use transactions? Surely there
must be a programmatic way of doing this too?

Am I barking up the wrong tree with this?

Many thanks
Iain A. Mcleod
Nov 22 '05 #1
3 2210
Iain,

If it is a purely database transaction that you wish to control, I would
recommend ado.net transactions or even transactions within SQL Server to
handle it.

System.EnterpriseServices is what used to be COM+. Actually it is a little
bit more than that - it is in .NET now, and has a few .NET like things in
it. Plus a lot of it is now managed code. One of the things enterprise
services lets you do is to enlist any task (even non - database) into an MTS
transaction. The ASP.NET or even Classic ASP page which has a directive
<%@transaction=required%> specified; is another example of a worker process
that must instantiate a new transaction before it runs. As you might have
already guessed by now, any worker process can enlist itself in a new or
existing transaction.

EnterpriseServices gives you a *lot* more than transactions only. It gives
you instance pooling/creation/queued components/LCEs/Messaging . quite a
long list actually.

What I am driving at is, COM+ and enterprise services are topics that entire
books have been written about. They are a lot more than meets the eye and
yes they are a very powerful concept and should not be ignored - but for
your requirement - check and see if you can satisfy that with ADO.NET
transactions or even SQL Server transactions; before you look at
msdtc/mtc/enterprise services. What's more, there could be many times that
deploying applications that use EnterpriseServices could be a pain the
booty. This might not be an issue for a server, but for desktop client apps
it becomes an unreal hell. I must be clear though - EnterpriseServices rock;
but killing a mosquito with a hand grenade is not the wisest thing to do.

Should you desire, you can find more information on using ADO.NET with
EnterpriseServices in my book - Chapter #12. Another really good book I like
on Enterprise Services is written by Juwal Lowy.

Regards,

- Sahil Malik
You can reach me thru my blog http://www.dotnetjunkies.com/weblog/sahilmalik


"Iain Mcleod" <mc******@dcs.gla.ac.uk> wrote in message
news:uX**************@TK2MSFTNGP15.phx.gbl...
I wish to do a series of inserts on a sql server database in the context of
a transaction. The inserts will be done as a series of stored procedure
calls. I wish to be able to rollback any inserts should one fail.

A quick google on ".net transactions" and the following page comes up:
http://samples.gotdotnet.com/quickst...nsactions.aspx

It says basically that the class System.EnterpriseServices.ContextUtil is
the chap for the job. However on looking at the EnterpriseServices
namespace, it seems to be full of classes related to COM components. Is
this definately the correct class to use for the job?
Also, the above page describes using the <%@transaction=required%> page
directive in asp.net to set the transaction scope and level. What would
happen if a non asp.net program tried to use transactions? Surely there
must be a programmatic way of doing this too?

Am I barking up the wrong tree with this?

Many thanks
Iain A. Mcleod

Nov 22 '05 #2
Thank you Sahil. I thought the com+/mts thingy was a bit of an overkill.
I googled on your suggestion of ado.net transactions and got the following
code:
SqlTransaction objTransaction = objConnection.BeginTransaction();

Perfect: It was indeed the SqlTransaction class I was looking for :-).

I take it that I can use this with stored procedures (anti sqlinjection) as
well as with ad-hoc sql as in the following pseudocode?

try
begin transaction
executeNonQuery (storedproc1, params)
executeNonQuery (storedproc2, params)
commit transaction
catch ex as exception
roll back transaction
end try

Apologies if this seems obvious, I'm a Java programmer learning .net :)

Regards
Iain

"Sahil Malik" <co*****************@nospam.com> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Iain,

If it is a purely database transaction that you wish to control, I would
recommend ado.net transactions or even transactions within SQL Server to
handle it.

System.EnterpriseServices is what used to be COM+. Actually it is a little
bit more than that - it is in .NET now, and has a few .NET like things in
it. Plus a lot of it is now managed code. One of the things enterprise
services lets you do is to enlist any task (even non - database) into an
MTS transaction. The ASP.NET or even Classic ASP page which has a
directive <%@transaction=required%> specified; is another example of a
worker process that must instantiate a new transaction before it runs. As
you might have already guessed by now, any worker process can enlist
itself in a new or existing transaction.

EnterpriseServices gives you a *lot* more than transactions only. It gives
you instance pooling/creation/queued components/LCEs/Messaging . quite a
long list actually.

What I am driving at is, COM+ and enterprise services are topics that
entire books have been written about. They are a lot more than meets the
eye and yes they are a very powerful concept and should not be ignored -
but for your requirement - check and see if you can satisfy that with
ADO.NET transactions or even SQL Server transactions; before you look at
msdtc/mtc/enterprise services. What's more, there could be many times that
deploying applications that use EnterpriseServices could be a pain the
booty. This might not be an issue for a server, but for desktop client
apps it becomes an unreal hell. I must be clear though -
EnterpriseServices rock; but killing a mosquito with a hand grenade is not
the wisest thing to do.

Should you desire, you can find more information on using ADO.NET with
EnterpriseServices in my book - Chapter #12. Another really good book I
like on Enterprise Services is written by Juwal Lowy.

Regards,

- Sahil Malik
You can reach me thru my blog
http://www.dotnetjunkies.com/weblog/sahilmalik


"Iain Mcleod" <mc******@dcs.gla.ac.uk> wrote in message
news:uX**************@TK2MSFTNGP15.phx.gbl...
I wish to do a series of inserts on a sql server database in the context
of a transaction. The inserts will be done as a series of stored
procedure calls. I wish to be able to rollback any inserts should one
fail.

A quick google on ".net transactions" and the following page comes up:
http://samples.gotdotnet.com/quickst...nsactions.aspx

It says basically that the class System.EnterpriseServices.ContextUtil is
the chap for the job. However on looking at the EnterpriseServices
namespace, it seems to be full of classes related to COM components. Is
this definately the correct class to use for the job?
Also, the above page describes using the <%@transaction=required%> page
directive in asp.net to set the transaction scope and level. What would
happen if a non asp.net program tried to use transactions? Surely there
must be a programmatic way of doing this too?

Am I barking up the wrong tree with this?

Many thanks
Iain A. Mcleod


Nov 22 '05 #3
Yes you can use it with stored procs. :)

- Sahil Malik
You can reach me thru my blog http://www.dotnetjunkies.com/weblog/sahilmalik


"Iain Mcleod" <mc******@dcs.gla.ac.uk> wrote in message
news:uT*************@TK2MSFTNGP11.phx.gbl...
Thank you Sahil. I thought the com+/mts thingy was a bit of an overkill.
I googled on your suggestion of ado.net transactions and got the following
code:
SqlTransaction objTransaction = objConnection.BeginTransaction();

Perfect: It was indeed the SqlTransaction class I was looking for :-).

I take it that I can use this with stored procedures (anti sqlinjection)
as well as with ad-hoc sql as in the following pseudocode?

try
begin transaction
executeNonQuery (storedproc1, params)
executeNonQuery (storedproc2, params)
commit transaction
catch ex as exception
roll back transaction
end try

Apologies if this seems obvious, I'm a Java programmer learning .net :)

Regards
Iain

"Sahil Malik" <co*****************@nospam.com> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Iain,

If it is a purely database transaction that you wish to control, I would
recommend ado.net transactions or even transactions within SQL Server to
handle it.

System.EnterpriseServices is what used to be COM+. Actually it is a
little bit more than that - it is in .NET now, and has a few .NET like
things in it. Plus a lot of it is now managed code. One of the things
enterprise services lets you do is to enlist any task (even non -
database) into an MTS transaction. The ASP.NET or even Classic ASP page
which has a directive <%@transaction=required%> specified; is another
example of a worker process that must instantiate a new transaction
before it runs. As you might have already guessed by now, any worker
process can enlist itself in a new or existing transaction.

EnterpriseServices gives you a *lot* more than transactions only. It
gives you instance pooling/creation/queued components/LCEs/Messaging .
quite a long list actually.

What I am driving at is, COM+ and enterprise services are topics that
entire books have been written about. They are a lot more than meets the
eye and yes they are a very powerful concept and should not be ignored -
but for your requirement - check and see if you can satisfy that with
ADO.NET transactions or even SQL Server transactions; before you look at
msdtc/mtc/enterprise services. What's more, there could be many times
that deploying applications that use EnterpriseServices could be a pain
the booty. This might not be an issue for a server, but for desktop
client apps it becomes an unreal hell. I must be clear though -
EnterpriseServices rock; but killing a mosquito with a hand grenade is
not the wisest thing to do.

Should you desire, you can find more information on using ADO.NET with
EnterpriseServices in my book - Chapter #12. Another really good book I
like on Enterprise Services is written by Juwal Lowy.

Regards,

- Sahil Malik
You can reach me thru my blog
http://www.dotnetjunkies.com/weblog/sahilmalik


"Iain Mcleod" <mc******@dcs.gla.ac.uk> wrote in message
news:uX**************@TK2MSFTNGP15.phx.gbl...
I wish to do a series of inserts on a sql server database in the context
of a transaction. The inserts will be done as a series of stored
procedure calls. I wish to be able to rollback any inserts should one
fail.

A quick google on ".net transactions" and the following page comes up:
http://samples.gotdotnet.com/quickst...nsactions.aspx

It says basically that the class System.EnterpriseServices.ContextUtil
is the chap for the job. However on looking at the EnterpriseServices
namespace, it seems to be full of classes related to COM components. Is
this definately the correct class to use for the job?
Also, the above page describes using the <%@transaction=required%> page
directive in asp.net to set the transaction scope and level. What would
happen if a non asp.net program tried to use transactions? Surely there
must be a programmatic way of doing this too?

Am I barking up the wrong tree with this?

Many thanks
Iain A. Mcleod



Nov 22 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: Christopher J. Bottaro | last post by:
Hi, Why is there no support for explicit transactions in the DB API? I mean like transaction() to start the trans and commit() and rollback() would end the trans or something. The reason why I...
7
by: Richard Maher | last post by:
Hi, I am seeking the help of volunteers to test some software that I've developed which facilitates distributed two-phase commit transactions, encompassing any resource manager (e.g. SQL/Server...
3
by: Iain Mcleod | last post by:
I wish to do a series of inserts on a sql server database in the context of a transaction. The inserts will be done as a series of stored procedure calls. I wish to be able to rollback any...
6
by: Terri | last post by:
I have a table called Transactions with 3 fields: ID, Date, and Amount. Each ID can have multiple transactions in one particular year. An ID might not have had any transactions in recent years. ...
9
by: TD | last post by:
I am trying to add transactions to my code. The original code worked fine until I followed an example to setup transactions, now the code does strange things, but no error messages. Could...
11
by: Mike P | last post by:
I've been using C# transactions for a while and had no problems with them. Using try catch blocks I can trap basically all possible errors and rollback all necessary data. Over the last few...
1
by: mark | last post by:
In Java, you can use JBoss or similar to host EJB that will manage your transactions for you. You could, of course, write your own transactions using JDBC. In .NET, we can specify our own...
0
radcaesar
by: radcaesar | last post by:
Customer Table ID Name Address City Phone 1 Vijay Stores 6,Gandhi Road Pondy 0413-276564 2 Ram Stores 3, MG Road, Pondicherry 0413-29543756 3 Balu Papers 3, RG...
2
by: Sridhar | last post by:
Hi, I am trying to implement sql transactions. But I am not knowing how to do that. I created a data access layer which contains methods to select/insert/update tables in a database. I have also...
12
by: Rami | last post by:
I have some requirement for an automated payment system. The system has four machines setup as follows: 1- Two machines have a clustered database. 2- Two machines have a .net business logic...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.