@Override public void readerIdle() { AccessController.doPrivileged((PrivilegedAction<Object>) () -> { getEventLogger().message(ConnectionMessages.IDLE_CLOSE("", false)); getNetwork().close(); return null; }, getAccessControllerContext()); }
@Override public Void run() { String closeCause = getCloseCause(); getEventLogger().message(isOrderlyClose() ? ConnectionMessages.CLOSE(closeCause, closeCause != null) : ConnectionMessages.DROPPED_CONNECTION()); return null; } });
@Override public void onMessageEnqueue(final ServerTransaction transaction, final EnqueueableMessage<? extends StorableMessageMetaData> message) { StoredMessage<? extends StorableMessageMetaData> handle = message.getStoredMessage(); long messageSize = handle.getContentSize() + handle.getMetadataSize(); long newUncommittedSize = _uncommittedMessageSize.get() + messageSize; if (newUncommittedSize > _maxUncommittedInMemorySize) { handle.flowToDisk(); if (!_reported) { _eventLogger.message(_logSubject, ConnectionMessages.LARGE_TRANSACTION_WARN(newUncommittedSize, _maxUncommittedInMemorySize)); _reported = true; } if (!_uncommittedMessages.isEmpty()) { for (TransactionDetails transactionDetails : _uncommittedMessages.values()) { transactionDetails.flowToDisk(); } } } else { _uncommittedMessageSize.addAndGet(messageSize); TransactionDetails details = _uncommittedMessages.computeIfAbsent(transaction, key -> new TransactionDetails()); details.messageEnqueued(handle); } }
@Override public boolean validateConnectionCreation(final AMQPConnection<?> connection, final QueueManagingVirtualHost<?> virtualHost) { String connectionVersion = connection.getClientVersion(); if (connectionVersion == null) { connectionVersion = ""; } boolean valid = true; if (!connectionMatches(virtualHost, VIRTUALHOST_ALLOWED_CONNECTION_VERSION, connectionVersion)) { if (connectionMatches(virtualHost, VIRTUALHOST_LOGGED_CONNECTION_VERSION, connectionVersion)) { virtualHost.getBroker().getEventLogger().message(ConnectionMessages.CLIENT_VERSION_LOG(connection.getClientVersion())); } else if (connectionMatches(virtualHost, VIRTUALHOST_REJECTED_CONNECTION_VERSION, connectionVersion)) { virtualHost.getBroker().getEventLogger().message(ConnectionMessages.CLIENT_VERSION_REJECT(connection.getClientVersion())); valid = false; } } return valid; }
virtualhost.getStoreTransactionOpenTimeoutWarn(), notificationRepeatPeriod, serverTransaction::getTransactionStartTime, age -> eventLogger.message(getLogSubject(), ConnectionMessages.OPEN_TXN(age)) )); virtualhost.getStoreTransactionIdleTimeoutWarn(), notificationRepeatPeriod, serverTransaction::getTransactionUpdateTime, age -> eventLogger.message(getLogSubject(), ConnectionMessages.IDLE_TXN(age)) ));
@Override public Object run() { getEventLogger().message(ConnectionMessages.IDLE_CLOSE("Current connection state: " + _state, true)); getNetwork().close(); return null; } }, getAccessControllerContext());
@Override public void readerIdle() { AccessController.doPrivileged((PrivilegedAction<Object>) () -> { _connection.getEventLogger().message(ConnectionMessages.IDLE_CLOSE("Current connection state: " + _connection.getConnectionDelegate().getState(), true)); getNetwork().close(); return null; }, getAccessControllerContext()); }
@Override public int tick(final long currentTime) { int nextTick = getTimeToNextTick(currentTime); if(nextTick <= 0) { if (isProtocolEstablished()) { _aggregateTicker.removeTicker(this); _network.removeSchedulingDelayNotificationListeners(this); } else { LOGGER.warn("Connection has taken more than {} ms to send complete protocol header. Closing as possible DoS.", _allowedTime); _broker.getEventLogger().message(ConnectionMessages.IDLE_CLOSE("Protocol header not received within timeout period", true)); _network.close(); } } return nextTick; }