PostgreSQL + Npgsql + iBATIS.NETで二層コミット(分散トランザクション)

psqlodbcだと、不明なエラーが出るのでNpgsqlを使うことにした。
(普通は最初からこっち使うんだろうけど。。。)

Npgsql2.2をサイトからダウンロードする。
(Postgresのアプリケーションスタックビルダでダウンロードしても、アセンブリが見つからないから
サイトから直接ダウンロードしました。)

NpgsqlをBINフォルダに入れる。

iBATISのproviders.configで、Npgsqlの設定を以下のようにする。

sqlmap.configに以下の設定




Enlist=True;で、System.Transactionに対応するようになって
二層コミット(分散トランザクション)できるようになるっす。

properties.configに設定する値。








これでTransactionScopeで自動的に分散トランザクションに参加しますっす。
時間がたつとエラーはきます。。。

IBatisNet.DataMapper.Exceptions.DataMapperException: Unable to open connection to "PostgreSql, Npgsql provider V2.0.2.0". ---> System.Runtime.Remoting.RemotingException: オブジェクト '/6a15b01a_b95b_4c4b_8d64_8cc3d5bd67d9/qwg9otzzoa7hkooguxaairxh_10.rem' が切断されたか、サーバーに存在しません。

IISを再起動したら直るんだけど。。。