# Transactions with multiple databases

**URL:** <https://www.ruby-forum.com/t/transactions-with-multiple-databases/52068>\
**Category:** Rails\
**Created:** [January 10, 2006, 5:41pm UTC](https://www.ruby-forum.com/t/transactions-with-multiple-databases/52068 "2006-01-10T17:41:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Petr\_Cervinka](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ac8455/32.png) [@Petr\_Cervinka](https://www.ruby-forum.com/u/Petr_Cervinka)\
**Post date:** [January 10, 2006, 5:41pm UTC](https://www.ruby-forum.com/t/transactions-with-multiple-databases/52068/1 "2006-01-10T17:41:38Z")

</div>

hi,  
i have problem with transactions and multiple databases.

Object1 and Object2 are two different models/databases with different  
connections, when i use only  
one model:

Object1.transaction do  
object1.value1 = “123456”  
object1.save  
do\_some\_error  
end

it’s ok, error is produced, nothing is commited and database is  
unchanged.

when i use 2 models, described at  
[http://wiki.rubyonrails.com/rails/pages/HowToUseTransactions:](http://wiki.rubyonrails.com/rails/pages/HowToUseTransactions:)

Object2.transaction do  
Object1.transaction do  
object1.value1 = “123456”  
object1.save  
do\_some\_error  
end  
end

- error is produced, but object1 is commited and database is changed
- imho transaction is active(autocommit false) only for Object2  
connection
- ruby-1.8.4, rails-1.0, dbriver is oci

any idea about this ?

thanks, peter

---

<div class="post-metadata">

**Author:** ![Petr\_Cervinka](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ac8455/32.png) [@Petr\_Cervinka](https://www.ruby-forum.com/u/Petr_Cervinka)\
**Post date:** [January 10, 2006, 9:14pm UTC](https://www.ruby-forum.com/t/transactions-with-multiple-databases/52068/2 "2006-01-10T21:14:05Z")

</div>

The Agile Book addresses just this situation and advises against using  
ActiveRecord for updating multiple databases concurrently. What you are  
doing is a simulation of a true multiple database transaction.

---

<div class="post-metadata">

**Author:** ![Petr\_Cervinka](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ac8455/32.png) [@Petr\_Cervinka](https://www.ruby-forum.com/u/Petr_Cervinka)\
**Post date:** [January 10, 2006, 10:20pm UTC](https://www.ruby-forum.com/t/transactions-with-multiple-databases/52068/3 "2006-01-10T22:20:25Z")

</div>

On 11/01/2006, at 5:40 AM, Petr Cervinka wrote:

> hi,  
> i have problem with transactions and multiple databases.

For transactions across multiple databases to work right you need two-  
phase commit support. Rails doesn’t have two phase commit support, so  
even if it did work it wouldn’t do what you expect.

–  
Phillip H.  
removed\_email\_address@domain.invalid
