[pgsql-jp: 38115] Re: NpgsqlとODBCによるPostgreSQLへのアクセスエラー

Hiroshi Saito z-saito @ guitar.ocn.ne.jp
2007年 3月 8日 (木) 01:40:28 JST


さいとうです。

念のためですが、
BeginTransactionとCommitの間で「table1」と「table2」の更新まで完了している。
まぁ、当然かとは思いますが。
Access2000では、MDBリンクなどではなくVBAですね。

できましたら、再現できるコード部分・手順があると分かりやすいのですが、、

From: "Nobuaki Inamura"


> 稲村と申します。お世話になっております。
>
> PostgreSQLとACCESSの併用で問題が発生しております。
> お力をお借りしたくメールさせて頂きました。
>
> こちらの環境は以下です。
> DBサーバ:Debian3.1 PostgreSQL7.4(DELL PowerEdge830)
> クライアント1:VB.NET + npgsql0.71 or Npgsql1.0
> クライアント2:Access2000 + ODBC8.02.00.02
>
> (VB.NETのプログラムでは、Npgsqlの接続文字列にPooling=falseとしてidleプロセスが残らないように
> したり、データベースへの変更はすべてトランザクション処理をしています。)
>
> 問題の現象は次の操作によって発生します。
> (操作対象は「table1」と「table2」という2つのテーブルです)
>
> まず、クライアント1から「table1」に対して変更をします。
> この変更によって、「table1」は変更、「table2」には変更点を追加記録(ログ)するようになっています。
> その後、クライアント2から同じように「table1」に対して変更(table2に追加)を行おうとすると、
> 「エラーが発生しました。他のユーザが同じデータに対して同時に変更を試みているので、
> プロセスが停止しました。」
> というエラーで止まってしまいます。
>
> クライアント1とクライアント2を同じユーザで接続してみましたが、やはり同じエラーがでました。
> クライアント2では何回やっても正常に動作が完了します。
> クライアント1で変更されていないレコードに対してはクライアント2からの変更は可能でした。
>
> idleプロセスが悪さをしているのかと思い、全てKillなどして試してみたのですが、
> それでも解消されませんでした。
>
> 考えられる原因ではどのようなものがあるのでしょうか?
> よろしくお願いいたします。
>
> -- 
> Nobuaki Inamura : inamuran36 @ mahikari.or.jp
>
> 





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