ORACLE 10.2データベースへのOracle接続があり、テーブルの変更をリスンする必要があります。接続のユーザーには特権 "CHANGE NOTIFICATION"が与えられました。OracleDependencyがイベントを起動しない
リスニングは、以下の方法で初期化されています。私は、観測されたテーブルに行を挿入してコミットすると
private OracleDependency SubscribeToTable(string tableName)
{
string sql = "select * from " + tableName;
var cmd = new OracleCommand(sql, this.connection) { AddRowid = true };
var dep = new OracleDependency(cmd);
cmd.Notification.IsNotifiedOnce = false;
dep.OnChange += this.dep_OnChange;
cmd.ExecuteNonQuery();
return dep;
}
、イベントdep_OnChangeが解雇されることはありません。何が間違っているのですか?
UPDATE:すべてがOKであることが判明
トラブルシューティングのリストをチェックした後と、私は、OracleのDBAとして接続し、変更が発生したとき(USER_CHANGE_NOTIFICATION_REGS * FROMをSELECT)に通知しなければならない、そのIP住所がチェック。何らかの理由で、IPアドレスがVMWare仮想ネットワークアダプタを指していましたが、通知要求はVMではなく物理マシンから開始されました。その仮想ネットワークアダプタを無効にした後は、すべてが正常に動作するように動作します。
私はPythonプログラムで同様の問題を抱えています。それはしばらくの間働いて、次に動作を停止しました。私は手がかりを見つけたら答えを更新します。 –