aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2009-02-19 19:46:13 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2009-02-19 19:46:13 +0000
commit37d583540ae300fa2d9376a11084fb5365e2f7de (patch)
tree8323b67635dcced9a1d36764081c6cd2bdb968ec /doc
parent26debd37c9f604ae4e67858c3470d3bc60a3c104 (diff)
Document how to use database transactions
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@177506 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'doc')
-rw-r--r--doc/database_transactions.txt29
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.