Pervasive: Pervasiveでトランザクション処理?

DBMSとしてPervasiveを使う場合でも、トランザクションを用いることは可能です。
動作環境の設定で、「ISAMトランザクション」を「Yes」にすれば使えるようになります。
しかし、実際には使われていないケースが多いようです。
私もPervasiveではトランザクションを使いません。
トランザクションを組み込むなら、OracleやMS_SQL_Serverなど、他のDBMSを選択します。

そのこころは?

他の開発者の方々の理由は分かりませんが、私の理由は、これです。
「Pervasiveはページロックするから」
Pervasiveでは、データをページという単位で格納していて、ロックもページ単位で発生することがあるようです。
同一ページに複数レコードのインデックスが入るらしく、 それが原因でトランザクション中に意図しないロックが発生するとか・・・。
例えば、2台で登録モードのバッチを同時に実行すると(タイミングによっては)レコードロックになる、 ということもあり得るそうです。

Pervasiveは、「軽くて扱いやすい」という非常に大きなメリットがあります。
トランザクションを使わなくてもレコードロックを使ったプログラムが作成できる気軽さがあります。
(これについては賛否両論あるのでしょうが、個人的には好意的に捉えています。)
DBMSの選択は、いくつかのポイントを検討してユーザに合うものを選べばよく、 「これが絶対」というのは無いように思います。