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