diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-19 19:46:13 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-19 19:46:13 +0000 |
commit | 37d583540ae300fa2d9376a11084fb5365e2f7de (patch) | |
tree | 8323b67635dcced9a1d36764081c6cd2bdb968ec | |
parent | 26debd37c9f604ae4e67858c3470d3bc60a3c104 (diff) |
Document how to use database transactions
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@177506 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | doc/database_transactions.txt | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/doc/database_transactions.txt b/doc/database_transactions.txt new file mode 100644 index 000000000..6db81cd77 --- /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. |