je le code suivant:OracleCommand blocs d'exécution si a OracleDependency
OracleConnection conn = new OracleConnection(connString);
OracleCommand command = new OracleCommand("select * from testtable", conn);
conn.Open();
OracleDependency.Port = 2010;
OracleDependency dependency = new OracleDependency(command);
command.AddRowid = true;
command.Notification.IsNotifiedOnce = false;
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
command.CommandTimeout = 1000;
DataTable t = new DataTable();
OracleDataAdapter adapter = new OracleDataAdapter(command);
adapter.Fill(t);
conn.Close();
Ceci est un code très simple qui utilise le service de notification Oracle pour recevoir des notifications concernant les changements de table particuliers.
Mon problème est que lorsque j'appelle adapter.Fill(t);
l'exécution bloque simplement. La commande s'exécute dans une instance s'il n'y a pas de dépendance attachée à celle-ci, donc ce n'est pas la base de données ou les données. Je peux voir l'appel sur l'enregistrement de la base de données en interrogeant la table user_change_notification_regs
et ont également ouvert le port spécifié (2010):
net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST='myIp')(PORT=2010)))?PR=0
Je suis à bout et esprit rand de choses à essayer.