From 1e19ca567cb42e863a1e63bdea769fcc576b431d Mon Sep 17 00:00:00 2001 From: Tilghman Lesher <tilghman@meg.abyt.es> Date: Thu, 19 Feb 2009 19:46:13 +0000 Subject: [PATCH] Document how to use database transactions git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177506 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- doc/database_transactions.txt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 doc/database_transactions.txt diff --git a/doc/database_transactions.txt b/doc/database_transactions.txt new file mode 100644 index 0000000000..6db81cd770 --- /dev/null +++ b/doc/database_transactions.txt @@ -0,0 +1,29 @@ +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. -- GitLab