[pgsql-jp: 40366] Re: ODBCドライバの設定についてわかりません

toshihideka4316 @ zenrin.co.jp toshihideka4316 @ zenrin.co.jp
2010年 9月 6日 (月) 13:46:34 JST


 片山です。

井上さん、高塚さんご回答ありがとうございました。

> これは「無し」で想定されている動作でなく「文単位]のロールバックの動作
> です。もしかしたらデフォルトの動作と混同されているのではないでしょうか?
デフォルトの動作と勘違いしておりました。
接続文字列protocol=以下の数字は4パターンあって、7.4, 7.4-0 , 7.4-1 , 7.4-2で
すが、7.4と7.4-0が同じ挙動と思い込んでいました。
サーババージョンが8.2.4であるので7.4(デフォルト)は「無し」ではなくて、文単
位で処理されるのですね。

その後文単位について、動作検証を行いました。
エラーとして、以下の2つを試しましたが行単位のロールバックを確認できませんでし
た。(全てのデータがロールバックされている状況)
1.複数レコードのInsert途中にクライアントのプロセスを強制終了
2.ユニークインデックス違反になるようなレコードの挿入
「エラー時」のロールバックとは、どのようなエラーについて述べたものなのでしょ
うか?

ご存知でしたら教えていただけないでしょうか。

以上よろしくお願いします。

> -----Original Message-----
> From: pgsql-jp-bounces @ ml.postgresql.jp 
> [mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of Hiroshi Inoue
> Sent: Friday, September 03, 2010 10:28 PM
> To: PostgreSQL Japanese Mailing List
> Subject: [pgsql-jp: 40365] Re: ODBCドライバの設定についてわかりません
> 
> 井上です。
> 
> (2010/09/03 17:10), toshihideka4316 @ zenrin.co.jp wrote:
> > こんにちは。片山と申します。
> > 
> > 「エラー時のロールバック発行」という項目があるのですが、これらの違いがわ
から
> > ないので教えていただけないでしょうか。
> > 
> > 具体的に困っていること経緯については以下の通りです。
> > 現在サーバ、クライアント共にPostgreSQL8.2.4を使用しており、ODBCドライバ
> > (ver8.2.4)の設定項目「エラー時のロールバック発行」を「無し」を指定した場
合、
> > サーバのメモリ不足が発生しました。
> > 原因調査を進める上でODBCドライバのログを見ましたところ、insert文ごとに
> > savepointが発行されており、これがメモリ不足の原因であると考えています。
> 
> これは「無し」で想定されている動作でなく「文単位]のロールバックの動作
> です。もしかしたらデフォルトの動作と混同されているのではないでしょうか?
> デフォルトの動作はサーバーバージョンが7.4なら全キャンセル、それ以後なら
> 「文単位」のロールバックとなります。
> 
> エラー時のロールバック発行のオプションの違いは次のとおりです。
> 
> 無し:自動的なロールバックは行わず、ロールバックの処理はユーザーに任さ
> れます。
> 文単位:当該のステートメントを自動的にロールバックします。当該トランザ
> クションのそれ以前のステートメントの実行結果は有効なまま残ります。エラ
> ーの種類などによって更に全キャンセルをするかどうかはユーザーの判断に任
> されます。
> 全キャンセル:当該トランザクションを自動的にキャンセルします。
> 
> 
> 




pgsql-jp メーリングリストの案内