Can I call a stored proc without wrapping it in a transaction?
David Peterson
author
Ranch Hand
Joined: Oct 14, 2001
Posts: 154
posted
0
I'm using Microsoft SQL Server, but this is a general question about calling stored procs via JDBC.
I want to manage transactions within my stored proc (i.e. by placing BEGIN TRAN and COMMIT TRAN around relevant pieces). But whenever I call a stored proc through JDBC it always seems to be wrapped in a transaction - either implicitly with the 'auto-commit' setting turned on, or explicitly using commit().
Is there some way I can call SQL without having it wrapped in a transaction?
David
Reid M. Pinchback
Ranch Hand
Joined: Jan 25, 2002
Posts: 775
posted
0
Databases have two kinds of statements: DML and DDL. DML is always in some form of transaction. Not a Java issue, just the reality of database architecture. Some databases will let you change the transaction isolation level so that different threads of execution can see each other's interim results, but the transactionality is still in effect - the changed isolation level just means that you don't have all the ACID properties.
Reid - SCJP2 (April 2002)
Jeff Albertson
Ranch Hand
Joined: Sep 16, 2005
Posts: 1780
posted
0
By the way, it's usually not a good idea to have a java.sql.Connection's autoCommit property set to true -- that mode is intended for ad hoc SQL console work.
There is no emoticon for what I am feeling!
David Peterson
author
Ranch Hand
Joined: Oct 14, 2001
Posts: 154
posted
0
Thanks for the replies.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.
subject: Can I call a stored proc without wrapping it in a transaction?