2009-04-26 5 views
3

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로 발견

문제 해결 목록을 확인 후, 나는 오라클 DBA로 연결되어 있고 변경이 발생하는 경우 (user_change_notification_regs * FROM를 선택)을 통보해야한다는의 IP adresses를 확인했습니다. 알림 요청은 VM이 아닌 실제 시스템에서 시작되었지만 어떤 이유로 인해 IP 주소는 VMWare 가상 네트워크 어댑터를 가리 킵니다. 해당 가상 네트워크 어댑터를 사용하지 않도록 설정 한 후에는 모든 것이 올바르게 작동해야합니다.

+0

저는 파이썬 프로그램에서 비슷한 문제가 있습니다. 그것은 잠시 동안 일한 다음 일을 그만 두었습니다. 나는 단서를 발견하면 대답으로 업데이 트됩니다. –

답변

2

documentation에서 문제 해결을 실행 했습니까?

+2

문서 링크가 유효하지 않습니다. – Thought

0

대체 방법으로 oracletabledependency 구성 요소를 사용할 수 있습니다. 에서 찾을 수 있습니다. Tabledependency.codeplex.com

일단 인스턴스가 생성되면 모든 테이블 레코드가 수정됩니다.

관련 문제