|
|
| |
DBIx::TransactionManager::Developers(3) |
User Contributed Perl Documentation |
DBIx::TransactionManager::Developers(3) |
DBIx::TransactionManager::Developers - docs for developers
This document describes a document for O/R mapper writer and/or DBIx::* writer.
- my $txn = $tm->txn_scope(%args)
- Create a new DBIx::TransactionManager::ScopeGuard's instance object.
You can pass an optional argument to
%args, to tell the scope guard where the scope
was generated, like so:
package Foo;
use Moose;
sub mymethod {
my $self = shift;
my $txn = $tm->txn_scope( caller => [ caller() ] );
return $txn;
}
package main;
my $obj = Foo->new();
my $txn = $obj->mymethod();
This will allow the guard object to report the caller's
location from the perspective of
"mymethod()", not where
"txn_scope()" was called.
see "DBIx::TransactionManager::ScopeGuard's
METHODS"
- $tm->txn_begin(%args)
- Start the transaction.
"txn_begin" may optionally
take a 'caller' argument. This will allow you to provide caller
information which will be used in
"in_transaction". For example if you
have a wrapper function that calls
"txn_begin", you may want to let the
user think that the caller was one stack above your wrapper.
# use __my__ caller!
$tm->txn_begin( caller => [ caller(0) ] );
- $tm->txn_commit()
- Commit the current transaction.
If the $dbh is in a nested
transaction, TransactionManager doesn't do COMMIT at here. TM just poped
transaction stack and do nothing.
- $tm->txn_rollback()
- Rollback the current transaction.
If the $dbh is in a nested
transaction, TransactionManager doesn't do ROLLBACK at here. TM just
poped transaction stack and do nothing.
- $tm->in_transaction() : Bool
- Returns true if $txn is currently in a middle of a
transaction. While normally you only need to use this value as a boolean,
it actually returns a hashref consisting of 'caller' and 'pid' element.
This will tell you exactly where the currently valid transaction
started.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |