I don't think spanning a transaction across multiple method calls on the
business tier is a problem as long as all those alls are wrapped in a single
call to the business tier that starts and commits the transaction.

-----Original Message-----
From: Craig Andera [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, May 15, 2002 12:24 PM
To: [EMAIL PROTECTED]
Subject: Re: [ADVANCED-DOTNET] Help Architecting A Middle Tier

> This is really one of the best lists for .Net, thanks
> everyone for all the usefull tips I've been reading the last
> few days. But I've a question about this one. If we don't
> need distributed transactions, even if you have just one SQL
> Server database, and we choose not to use COM+ services how
> can we solve the problem of needing to span one transaction
> across multiple method calls (different classes/methods)?

Don't do this. Your performance and scalability will not be good.
Transactions=locks. Multiple methods=multiple roundtrips to the
database=longer transaction=contention=bad scaling characteristics. This
is an outcome of the speed of light, which is not really in our control.
At least, not mine.

> We'll end up with no business layer at all.

So what? Sorry, but the laws of physics don't care if your system has a
nice OO architecture that conforms to all the Booch-influenced thinking
that we were all trained to throughout the 80s. And more to the point,
neither do your users.

This discussion has raged since the advent of COM+. If you ask me, Tim
Ewald has totally addressed this in his book, which is an absolute
must-read for anyone thinking about writing transactional systems.

If I sound a little hostile or brief, it's nothing directed at anyone.
It's just that I hear the same OO refrain over and over again, and it
just doesn't play in the world of distributed transactions.

You can read messages from the Advanced DOTNET archive, unsubscribe from
Advanced DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to