Database Sessions and Transactions

Steve Holden sholden at
Fri Oct 19 20:00:38 CEST 2001

"DeepBlue" <DeepBlue at> wrote in message
news:tt0os832km0dbb at
> I am working on a CGI program in Python that connects to an Oracle
> I am wondering on how to implement a transaction that belongs to a
> connection so that everything that belongs to the transaction can be
> back.

Maybe this is a semantic thing. What you think of as a "session", I suspect,
the DB-API refers to as a "connection". But Oracle isn't my first( or
second) database platform, so don't take that as gospel.

> In other words, the scope of the rollback is NOT the database connection
> the transaction that is defined from within the database connection.

On any given connection, once you call the commit() method of that
connection every change that has been made using that connection is now
committed to the database, and further interactions take place in a new
transaction. Similarly, if you call the rollback() method, every change made
using that connection since the last commit() or rollback() call will be

> Please note that Python DB API 2 talks of a transaction as belonging to
> scope of the database connection, and not something that can be created
> independently from the Connection.

A transaction is a sequence of interactions with an RDBMS over a single
connection. It is terminated (successfully) by calling commit(), or
(unsuccessfully) by calling rollback(). At this point a new transaction

> Also, I can find no reference in Python DB API 2 to Sessions.  How do we
> manage different sessions/connections?

Perhaps you now have enough information to clarify the difference between a
"session" and a connection, so we can answer your question more fully?


More information about the Python-list mailing list