Skip to content
Snippets Groups Projects
Commit 1e19ca56 authored by Tilghman Lesher's avatar Tilghman Lesher
Browse files

Document how to use database transactions

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177506 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent b6d12cb9
No related branches found
No related tags found
No related merge requests found
As of 1.6.2, Asterisk now supports doing database transactions from the
dialplan. A number of new applications and functions have been introduced
for this purpose and this document should hopefully familiarize you with
all of them.
First, the ODBC() function has been added which is used to set up all new
database transactions. Simply write the name of the transaction to this
function, along with the arguments of "transaction" and the database name,
e.g. Set(ODBC(transaction,postgres-asterisk)=foo). In this example, the
name of the transaction is "foo". The name doesn't really matter, unless
you're manipulating multiple transactions within the same dialplan, at the
same time. Then, you use the transaction name to change which transaction
is active for the next dialplan function.
The ODBC() function is also used to turn on a mode known as forcecommit.
For most cases, you won't need to use this, but it's there. It simply
causes a transaction to be committed, when the channel hangs up. The other
property which may be set is the isolation property. Please consult with
your database vendor as to which values are supported by their ODBC driver.
Asterisk supports setting all standard ODBC values, but many databases do
not support the entire complement.
Finally, when you have run multiple statements on your transaction and you
wish to complete the transaction, use the ODBC_Commit and ODBC_Rollback
applications, along with the transaction ID (in the example above, "foo")
to commit or rollback the transaction. Please note that if you do not
explicitly commit the transaction or if forcecommit is not turned on, the
transaction will be automatically rolled back at channel destruction (after
hangup) and all related database resources released back to the pool.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment