Sebelumnya ada baiknya mengucap terimakasih kepada Ari dan Edwin yang sudah 
menolong di permasalah pertama tadi. Next, saya melakukan pembuktian 
transaction object pada Ruby on Rails :

Sumarry:
Saya membuka 2 windows DOS untuk membuktikan kebenaran transaction support di 
ruby on rails. Masing-masing windows memiliki time execution yang  
berbeda-beda. Berikut penjelasannya.
 
-----------------------
Window DOS 1
-----------------------

F:\ruby\tiesto>ruby test/unit/barang_terpesan_test.rb
Loaded suite test/unit/barang_terpesan_test
Started
.
Finished in 42.078 seconds.

1 tests, 0 assertions, 0 failures, 0 errors


---------------------------
Windows DOS 2
---------------------------

F:\ruby\project_dev>ruby test/unit/barang_terpesan_test.rb
Loaded suite test/unit/barang_terpesan_test
Started
.
Finished in 42.125 seconds.

1 tests, 0 assertions, 0 failures, 0 errors


-----------------------------------
SCRIPT di barang_terpesan_test.rb
-----------------------------------

require File.dirname(__FILE__) + '/../test_helper'

class BarangTerpesanTest < Test::Unit::TestCase
fixtures :barang_terpesans


  def test_what
      barang = BarangTerpesan.find(:first)   

      BarangTerpesan.transaction do
        barang.proses_modifikasi
      end
  end
 
end


----------------------------------------------
SCRIPT di BarangTerpesan.rb (Active Record)
----------------------------------------------
class BarangTerpesan < ActiveRecord::Base

def proses_modifikasi

#dikasih delay
for x in 1..100000000
end
         
update_attributes(:jumlah => jumlah-1)

end


-------------------------
KONDISI TABLE SEBELUM ACTION
-------------------------

----------------------
ID | BARANG | JUMLAH |
----------------------
1  | ABC01  |  10    | 
----------------------


Setelah kedua windows itu dijalankan, hasilnya :

--------------------------------------------------
KONDISI TABLE SETELAH 2 EKSEKUSI BERSAMAAN
--------------------------------------------------

----------------------
ID | BARANG | JUMLAH |
----------------------
1  | ABC01  |  9    | 
----------------------

Ini tidak sesuai dengan kaidah database seharusnya 10 - 1 -1 = 8, bukan 9. 
Padahal saya sudah menaro BarangTerpesan.transaction.


Gimana teman-teman ada solusi atau saran?


Thank You
Reinhart
http://teapoci.blogspot.com


      
____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

Kirim email ke