A5:SQL Mk-2

開発のこと、日々のこと

Firebirdのトランザクション

ホーム フォーラム A5:SQL Mk-2掲示板 Firebirdのトランザクション

  • このトピックには2件の返信、2人の参加者があり、最後にエジサポにより6年、 4ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #2406 返信
    エジサポ
    ゲスト

    いつも有用させていただいております。
    専用接続設定にてFirebirdに接続しておりますが、SELECT文を実行したのみでも自動的にトランザクションが開始されてしまいます。
    トランザクションが開始されないようにできないでしょうか?
    もしくは、一定以上操作がない場合に自動的に切断する機能はありませんでしょうか?

    #2467 返信
    松原正和
    キーマスター

    エジサポさんこんにちは。

    はい、確かに、Interbase/FirebirdではSELECTを実行しただけでトランザクションが開始してしまいます。

    これは、内部的に使用しているDevart社のUniDACの仕様によるものです。おそらく、分離レベルとの兼ね合いによるものと思われますが、他のデータベースへは自動でトランザクション開始したりしないのに少し不思議ですね。

    とりあえず、Interbase/FirebirdではSELECTを実行しただけでトランザクションが開始してしまうのは、制限ということにさせてください。

    あと、一定操作がない場合自動的に切断というのは、それはそれで問題があるようにも思えるのですが、何か意図があるのでしょうか?。

    • この返信は6年、 4ヶ月前に松原正和が編集しました。
    #2565 返信
    エジサポ
    ゲスト

    松原さま、ご回答ありがとうございます。
    お礼が遅くなりまして申し訳ありません。

    一定時間無操作で自動的に切断したい意図ですが、
    トランザクションを放置した場合、その間の他のDB更新が多ければ多いほどトランザクションを終了した際に実行される永続化処理(もしくはガベージコレクションかも)が非常に高負荷となります。
    その間はまともに使える状況ではなくなってしまうため、SELECTでのトランザクション開始が制御できない場合は自動的に切断できないかと思った次第です。
    ODBC経由で接続すればよい話かもしれませんが。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: Firebirdのトランザクションで#2565に返信
あなたの情報:




コメントは受け付けていません。