Search in sources :

Example 1 with Ticker

use of org.apache.qpid.server.transport.network.Ticker in project qpid-broker-j by apache.

the class AbstractAMQPConnection method registerTransactionTickers.

@Override
public void registerTransactionTickers(final ServerTransaction serverTransaction, final Action<String> closeAction, final long notificationRepeatPeriod) {
    NamedAddressSpace addressSpace = getAddressSpace();
    if (addressSpace instanceof QueueManagingVirtualHost) {
        final QueueManagingVirtualHost<?> virtualhost = (QueueManagingVirtualHost<?>) addressSpace;
        EventLogger eventLogger = virtualhost.getEventLogger();
        final Set<Ticker> tickers = new LinkedHashSet<>(4);
        if (virtualhost.getStoreTransactionOpenTimeoutWarn() > 0) {
            tickers.add(new TransactionTimeoutTicker(virtualhost.getStoreTransactionOpenTimeoutWarn(), notificationRepeatPeriod, serverTransaction::getTransactionStartTime, age -> eventLogger.message(getLogSubject(), ConnectionMessages.OPEN_TXN(age))));
        }
        if (virtualhost.getStoreTransactionOpenTimeoutClose() > 0) {
            tickers.add(new TransactionTimeoutTicker(virtualhost.getStoreTransactionOpenTimeoutClose(), notificationRepeatPeriod, serverTransaction::getTransactionStartTime, age -> closeAction.performAction(OPEN_TRANSACTION_TIMEOUT_ERROR)));
        }
        if (virtualhost.getStoreTransactionIdleTimeoutWarn() > 0) {
            tickers.add(new TransactionTimeoutTicker(virtualhost.getStoreTransactionIdleTimeoutWarn(), notificationRepeatPeriod, serverTransaction::getTransactionUpdateTime, age -> eventLogger.message(getLogSubject(), ConnectionMessages.IDLE_TXN(age))));
        }
        if (virtualhost.getStoreTransactionIdleTimeoutClose() > 0) {
            tickers.add(new TransactionTimeoutTicker(virtualhost.getStoreTransactionIdleTimeoutClose(), notificationRepeatPeriod, serverTransaction::getTransactionUpdateTime, age -> closeAction.performAction(IDLE_TRANSACTION_TIMEOUT_ERROR)));
        }
        if (!tickers.isEmpty()) {
            for (Ticker ticker : tickers) {
                getAggregateTicker().addTicker(ticker);
            }
            notifyWork();
        }
        _transactionTickers.put(serverTransaction, tickers);
    }
}
Also used : LinkedHashSet(java.util.LinkedHashSet) AccessControlContext(java.security.AccessControlContext) SocketAddress(java.net.SocketAddress) Date(java.util.Date) LoggerFactory(org.slf4j.LoggerFactory) SaslSettings(org.apache.qpid.server.security.auth.sasl.SaslSettings) SettableFuture(com.google.common.util.concurrent.SettableFuture) ConnectionMessages(org.apache.qpid.server.logging.messages.ConnectionMessages) ContextProvider(org.apache.qpid.server.model.ContextProvider) TransactionObserver(org.apache.qpid.server.txn.TransactionObserver) AmqpPort(org.apache.qpid.server.model.port.AmqpPort) Map(java.util.Map) Port(org.apache.qpid.server.model.Port) LocalTransaction(org.apache.qpid.server.txn.LocalTransaction) Collection(java.util.Collection) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) PrivilegedAction(java.security.PrivilegedAction) InetSocketAddress(java.net.InetSocketAddress) List(java.util.List) Principal(java.security.Principal) Transport(org.apache.qpid.server.model.Transport) NamedAddressSpace(org.apache.qpid.server.model.NamedAddressSpace) AccessControlException(java.security.AccessControlException) ConnectionLogSubject(org.apache.qpid.server.logging.subjects.ConnectionLogSubject) AccessController(java.security.AccessController) TaskExecutor(org.apache.qpid.server.configuration.updater.TaskExecutor) StatisticsGatherer(org.apache.qpid.server.stats.StatisticsGatherer) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) ListenableFuture(com.google.common.util.concurrent.ListenableFuture) FlowToDiskTransactionObserver(org.apache.qpid.server.txn.FlowToDiskTransactionObserver) ConfiguredObject(org.apache.qpid.server.model.ConfiguredObject) HashMap(java.util.HashMap) EventLogger(org.apache.qpid.server.logging.EventLogger) LogSubject(org.apache.qpid.server.logging.LogSubject) ConnectionPrincipal(org.apache.qpid.server.connection.ConnectionPrincipal) AuthenticatedPrincipal(org.apache.qpid.server.security.auth.AuthenticatedPrincipal) FixedKeyMapCreator(org.apache.qpid.server.util.FixedKeyMapCreator) AbstractConfiguredObject(org.apache.qpid.server.model.AbstractConfiguredObject) TaskExecutorProvider(org.apache.qpid.server.model.TaskExecutorProvider) EventLoggerProvider(org.apache.qpid.server.logging.EventLoggerProvider) NetworkConnection(org.apache.qpid.server.transport.network.NetworkConnection) LinkedHashSet(java.util.LinkedHashSet) Session(org.apache.qpid.server.model.Session) Ticker(org.apache.qpid.server.transport.network.Ticker) ServerTransaction(org.apache.qpid.server.txn.ServerTransaction) Logger(org.slf4j.Logger) Action(org.apache.qpid.server.util.Action) Iterator(java.util.Iterator) Broker(org.apache.qpid.server.model.Broker) State(org.apache.qpid.server.model.State) SubjectDomainCombiner(javax.security.auth.SubjectDomainCombiner) Protocol(org.apache.qpid.server.model.Protocol) Connection(org.apache.qpid.server.model.Connection) Subject(javax.security.auth.Subject) AtomicLong(java.util.concurrent.atomic.AtomicLong) Futures(com.google.common.util.concurrent.Futures) QueueManagingVirtualHost(org.apache.qpid.server.virtualhost.QueueManagingVirtualHost) QueueManagingVirtualHost(org.apache.qpid.server.virtualhost.QueueManagingVirtualHost) EventLogger(org.apache.qpid.server.logging.EventLogger) Ticker(org.apache.qpid.server.transport.network.Ticker) NamedAddressSpace(org.apache.qpid.server.model.NamedAddressSpace)

Aggregations

Futures (com.google.common.util.concurrent.Futures)1 ListenableFuture (com.google.common.util.concurrent.ListenableFuture)1 SettableFuture (com.google.common.util.concurrent.SettableFuture)1 InetSocketAddress (java.net.InetSocketAddress)1 SocketAddress (java.net.SocketAddress)1 AccessControlContext (java.security.AccessControlContext)1 AccessControlException (java.security.AccessControlException)1 AccessController (java.security.AccessController)1 Principal (java.security.Principal)1 PrivilegedAction (java.security.PrivilegedAction)1 Collection (java.util.Collection)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 LinkedHashSet (java.util.LinkedHashSet)1 List (java.util.List)1 Map (java.util.Map)1 Set (java.util.Set)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)1