Oracle
 sql >> база данни >  >> RDS >> Oracle

Време за изчакване и работен процес на известието за промяна на данни на Oracle

Записите, които сте запазили в user_change_notification_regs таблицата трябва да бъде изтрита изрично, тъй като СУБД не следи това „JDBC връзката, която подготви тази връзка, е все още жива“ което изисква механизъм за сърдечен ритъм. Следователно, когато вашият сървър се рестартира, трябва изрично да изтриете (дерегистрирате) тези записи. Ето един пример.

try (Connection conn = ConnManager.getConnection();) {
         if (conn.isWrapperFor(OracleConnection.class)) {

                try (OracleConnection oracleConnection = conn.unwrap(OracleConnection.class);
                        Statement stmt = oracleConnection.createStatement()) {
                    ResultSet rs = stmt.executeQuery("select regid,callback from USER_CHANGE_NOTIFICATION_REGS");

                    while (rs.next()) {
                        long regid = rs.getLong(1);
                        String callback = rs.getString(2);
                        ((OracleConnection) stmt.getConnection()).unregisterDatabaseChangeNotification(regid, callback);
                    }
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(TableBase.class.getName()).log(Level.SEVERE, null, ex);
        } 

Можете просто да поставите този код в статичен блок на клас или инициализиращ метод, който ще бъде изпълнен само веднъж. Ако зададете таймаут за слушателя, драйверът от страна на сървъра на Oracle активира механизма за сърдечен ритъм за вашата връзка, което може леко да намали производителността на приложението.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. APEX:Пренасочване след влизане към страница с аргументи

  2. Някакви недостатъци на битовите флагове в колоните на базата данни?

  3. извършване на изчисления върху данни в табличен тип

  4. Как мога да преброя броя на думите в низ в Oracle?

  5. Скрити функции в Oracle