Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Batas Waktu dan Alur Kerja Pemberitahuan Perubahan Data Oracle

Catatan yang Anda simpan di user_change_notification_regs tabel harus dihapus secara eksplisit karena DBMS tidak melacak 'Koneksi JDBC yang menyiapkan koneksi ini masih hidup' yang membutuhkan mekanisme detak jantung. Oleh karena itu ketika server Anda restart, Anda harus secara eksplisit menghapus (membatalkan pendaftaran) catatan tersebut. Ini contohnya.

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);
        } 

Anda cukup meletakkan kode ini di blok statis kelas atau metode inisialisasi yang akan dieksekusi hanya sekali. Jika Anda menyetel batas waktu untuk pendengar, driver sisi server Oracle mengaktifkan mekanisme detak jantung untuk koneksi Anda yang dapat sedikit menurunkan kinerja aplikasi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi Oracle:Replikasi wm_concat

  2. Dimana Patch saya?

  3. Mengirim array nilai ke prosedur Oracle untuk digunakan dalam klausa WHERE IN

  4. SQL Bergabung dengan nilai nol

  5. Oracle sql mengetik melalui dblink