Informixからデータを受け取り、Oracleのテーブルに挿入して元のテーブルのフラグを更新する単純なデータインポータ/アップデータに問題があります。設定は2つのコミットが、私はそれを扱うことができない1が、更新されたテーブルが2つのデータベースであり、単一のコミットので、それは忘れて(特定のOracleエラーを停止するために必要なこのInformixに接続されたOracleのリモートエージェントエラーへのRPC接続が失われました
Pro*C program calls a PL/SQL procedure
The procedure
opens a cursor on Informix,
loops through each row
insert the data into an oracle table
commit
update the "new data" flag in Informix (i.e. stop a re-import)
commit
です)。 このコードは、ソース表の少数のレコード(5-10)に対して正常に機能しますが、> 1000の場合には転倒します。Oracleログ・ディレクトリのアラート・ログには、「リモート・エージェントへのRPC接続の切断」というエラーが表示されます。 Informixディレクトリには対応するエラーはないため、ドライバに問題があると思われます。私たちは、Red HatのunixODBCドライバでOracle 10.2を使用しています。
回避策や修正方法はありますか?このエラーメッセージに関する有益な情報はないようです。ほとんどのページは、「Oracleの問題ではありません」という行に沿って何かを言います。
オラクルのデフォルト動作は、明示的に閉じられるまでカーソルを開いたままにしておき、それをシミュレートするためにドライバがInformixのカーソルをオープン/再オープンしている可能性があります。私は最終的にこの問題を回避するために、PL/SQLテーブルをバッファとして使用して、コミット回数を減らすことができました(100時間短縮)。 それでも問題はなぜ起こったのか説明していません... –