mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	Document how to use database transactions
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177506 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		
							
								
								
									
										29
									
								
								doc/database_transactions.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								doc/database_transactions.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -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. | ||||
		Reference in New Issue
	
	Block a user