/** * First, stop recovery manager, transaction status manager, and transaction reaper. Then, remove transactional driver from * jdbc driver manager's list. * * @param servletContextEvent containing the ServletContext that is being destroyed */ @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { LOGGER.fine("Disabling Narayana"); TransactionReaper.terminate(false); TxControl.disable(true); RecoveryManager.manager().terminate(); Collections.list(DriverManager.getDrivers()).stream().filter(d -> d instanceof TransactionalDriver).forEach(d -> { try { DriverManager.deregisterDriver(d); } catch (SQLException e) { LOGGER.log(Level.WARNING, e.getMessage(), e); } }); }