/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.logger.debug(service.getClass().getName() + " starting"); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.logger.debug(service.getClass().getName() + " starting"); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.logger.debug(service.getClass().getName() + " starting"); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.logger.debug(service.getClass().getName() + " starting"); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.logger.debug(service.getClass().getName() + " starting"); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.logger.debug(service.getClass().getName() + " starting"); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
import java.sql.*; public class NotificationTest { public static void main(String args[]) throws Exception { Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://localhost:5432/test"; // Create two distinct connections, one for the notifier // and another for the listener to show the communication // works across connections although this example would // work fine with just one connection. Connection lConn = DriverManager.getConnection(url,"test",""); Connection nConn = DriverManager.getConnection(url,"test",""); // Create two threads, one to issue notifications and // the other to receive them. Listener listener = new Listener(lConn); Notifier notifier = new Notifier(nConn); listener.start(); notifier.start(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.i18NLogger.info_recovery_TransactionStatusManager_1(service.getClass().getName(), Integer.toString(serverSocket.getLocalPort())); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.i18NLogger.info_recovery_TransactionStatusManager_1(service.getClass().getName(), Integer.toString(serverSocket.getLocalPort())); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.i18NLogger.info_recovery_TransactionStatusManager_1(service.getClass().getName(), Integer.toString(serverSocket.getLocalPort())); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); tsLogger.i18NLogger.info_recovery_TransactionStatusManager_1(service.getClass().getName(), Integer.toString(serverSocket.getLocalPort())); _listener.start() ; } catch ( IOException ex ) { tsLogger.i18NLogger.warn_recovery_TransactionStatusManager_2(); } }
/** * The work item to be executed. * * this must be private as it should only be called once. otherwise we leak listener threads */ private void addService( Service service, ServerSocket serverSocket ) { try { _listener = new Listener( serverSocket, service ); _listener.setDaemon(true); if (tsLogger.arjLoggerI18N.isInfoEnabled()) { tsLogger.arjLoggerI18N.info("com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1", new Object[]{service.getClass().getName(), Integer.toString(serverSocket.getLocalPort())}); } _listener.start() ; } catch ( IOException ex ) { tsLogger.arjLoggerI18N.warn("com.arjuna.ats.arjuna.recovery.TransactionStatusManager_2"); } }
tsLogger.logger.debug("PeriodicRecovery: starting listener worker thread"); _listener.start();
tsLogger.logger.debug("PeriodicRecovery: starting listener worker thread"); _listener.start();
tsLogger.logger.debug("PeriodicRecovery: starting listener worker thread"); _listener.start();
tsLogger.logger.debug("PeriodicRecovery: starting listener worker thread"); _listener.start();
tsLogger.logger.debug("PeriodicRecovery: starting listener worker thread"); _listener.start();
tsLogger.logger.debug("PeriodicRecovery: starting listener worker thread"); _listener.start();
tsLogger.logger.debug("PeriodicRecovery: starting listener worker thread"); _listener.start();
public PeriodicRecovery (boolean threaded) { setDaemon(true); initialise(); // Load the recovery modules that actually do the work. loadModules(); try { _workerService = new WorkerService(this); _listener = new Listener(getServerSocket(), _workerService); _listener.setDaemon(true); } catch (Exception ex) { if (tsLogger.arjLoggerI18N.isWarnEnabled()) { tsLogger.arjLoggerI18N.warn("com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery_9", new Object[]{ex}); } } if (threaded) { start(); } _listener.start(); }