2010-02-25 46 views
1

在使用Ruby OCI8庫連接到Oracle數據庫時,如果在以下腳本之後沒有調用conn.logoff()方法會有什麼後果(如果有)。Ruby OCI8未註銷連接後果

conn = OCI8.new('scott', 'tiger') 
num_rows = conn.exec('SELECT * FROM emp') do |r| 
    puts r.join(',') 
end 
puts num_rows.to_s + ' rows were processed.' 

我問的原因是因爲我們遇到與其他應用程序連接到相同的Oracle數據庫時速度緩慢。

感謝

回答

1

我可以想象,當Ruby進程退出,會話將被自動殺死。

您可以通過查詢v $ session來檢查ruby進程在Ruby退出後是否仍然連接到Oracle。

只給出你的問題中的信息,它真的不可能說什麼可能導致減速 - 有這麼多的變量。

0

如果您不調用conn.logoff(),則即使在ruby進程退出之前它仍被垃圾收集,連接仍然存在。 這個問題已經在ruby-oci8 2.1中解決了,但是它還沒有發佈。