@Override public void handleFailure(Throwable ex) { if (this.tcpConnection != null) { handleTcpConnectionFailure("Transport failure: " + ex.getMessage(), ex); } else if (logger.isErrorEnabled()) { logger.error("Transport failure: " + ex); } }
@Override public void onFailure(Throwable ex) { if (tcpConnection != null) { handleTcpConnectionFailure("failed to forward " + accessor.getShortLogMessage(message.getPayload()), ex); } else if (logger.isErrorEnabled()) { logger.error("Failed to forward " + accessor.getShortLogMessage(message.getPayload())); } } });
@Override protected void handleTcpConnectionFailure(String errorMessage, @Nullable Throwable ex) { super.handleTcpConnectionFailure(errorMessage, ex); publishBrokerUnavailableEvent(); }
@Override public void afterConnectFailure(Throwable ex) { handleTcpConnectionFailure("Failed to connect: " + ex.getMessage(), ex); }
@Override public void handleFailure(Throwable ex) { if (this.tcpConnection != null) { handleTcpConnectionFailure("Transport failure: " + ex.getMessage(), ex); } else if (logger.isErrorEnabled()) { logger.error("Transport failure: " + ex); } }
@Override public void afterConnected(TcpConnection<byte[]> connection) { if (logger.isDebugEnabled()) { logger.debug("TCP connection opened in session=" + getSessionId()); } this.tcpConnection = connection; connection.onReadInactivity(() -> { if (this.tcpConnection != null && !this.isStompConnected) { handleTcpConnectionFailure("No CONNECTED frame received in " + MAX_TIME_TO_CONNECTED_FRAME + " ms.", null); } }, MAX_TIME_TO_CONNECTED_FRAME); connection.send(MessageBuilder.createMessage(EMPTY_PAYLOAD, this.connectHeaders.getMessageHeaders())); }
@Override protected void handleTcpConnectionFailure(String errorMessage, @Nullable Throwable ex) { super.handleTcpConnectionFailure(errorMessage, ex); publishBrokerUnavailableEvent(); }
@Override public void onFailure(Throwable ex) { if (tcpConnection != null) { handleTcpConnectionFailure("failed to forward " + accessor.getShortLogMessage(message.getPayload()), ex); } else if (logger.isErrorEnabled()) { logger.error("Failed to forward " + accessor.getShortLogMessage(message.getPayload())); } } });
@Override public void handleFailure(Throwable ex) { if (this.tcpConnection != null) { handleTcpConnectionFailure("Transport failure: " + ex.getMessage(), ex); } else if (logger.isErrorEnabled()) { logger.error("Transport failure: " + ex); } }
@Override protected void handleTcpConnectionFailure(String errorMessage, @Nullable Throwable ex) { super.handleTcpConnectionFailure(errorMessage, ex); publishBrokerUnavailableEvent(); }
@Override public void onFailure(Throwable ex) { if (tcpConnection != null) { handleTcpConnectionFailure("failed to forward " + accessor.getShortLogMessage(message.getPayload()), ex); } else if (logger.isErrorEnabled()) { logger.error("Failed to forward " + accessor.getShortLogMessage(message.getPayload())); } } });
private void initHeartbeats(StompHeaderAccessor connectedHeaders) { if (this.isRemoteClientSession) { return; } TcpConnection<byte[]> con = this.tcpConnection; Assert.state(con != null, "No TcpConnection available"); long clientSendInterval = this.connectHeaders.getHeartbeat()[0]; long clientReceiveInterval = this.connectHeaders.getHeartbeat()[1]; long serverSendInterval = connectedHeaders.getHeartbeat()[0]; long serverReceiveInterval = connectedHeaders.getHeartbeat()[1]; if (clientSendInterval > 0 && serverReceiveInterval > 0) { long interval = Math.max(clientSendInterval, serverReceiveInterval); con.onWriteInactivity(() -> con.send(HEARTBEAT_MESSAGE).addCallback( result -> {}, ex -> handleTcpConnectionFailure( "Failed to forward heartbeat: " + ex.getMessage(), ex)), interval); } if (clientReceiveInterval > 0 && serverSendInterval > 0) { final long interval = Math.max(clientReceiveInterval, serverSendInterval) * HEARTBEAT_MULTIPLIER; con.onReadInactivity( () -> handleTcpConnectionFailure("No messages received in " + interval + " ms.", null), interval); } }
@Override public void afterConnected(TcpConnection<byte[]> connection) { if (logger.isDebugEnabled()) { logger.debug("TCP connection opened in session=" + getSessionId()); } this.tcpConnection = connection; connection.onReadInactivity(() -> { if (this.tcpConnection != null && !this.isStompConnected) { handleTcpConnectionFailure("No CONNECTED frame received in " + MAX_TIME_TO_CONNECTED_FRAME + " ms.", null); } }, MAX_TIME_TO_CONNECTED_FRAME); connection.send(MessageBuilder.createMessage(EMPTY_PAYLOAD, this.connectHeaders.getMessageHeaders())); }
@Override public void afterConnectFailure(Throwable ex) { handleTcpConnectionFailure("Failed to connect: " + ex.getMessage(), ex); }
@Override public void handleFailure(Throwable ex) { if (this.tcpConnection != null) { handleTcpConnectionFailure("Transport failure: " + ex.getMessage(), ex); } else if (logger.isErrorEnabled()) { logger.error("Transport failure: " + ex); } }
@Override public void onFailure(Throwable ex) { if (tcpConnection != null) { handleTcpConnectionFailure("failed to forward " + accessor.getShortLogMessage(message.getPayload()), ex); } else if (logger.isErrorEnabled()) { logger.error("Failed to forward " + accessor.getShortLogMessage(message.getPayload())); } } });
@Override protected void handleTcpConnectionFailure(String errorMessage, @Nullable Throwable ex) { super.handleTcpConnectionFailure(errorMessage, ex); publishBrokerUnavailableEvent(); }
private void initHeartbeats(StompHeaderAccessor connectedHeaders) { if (this.isRemoteClientSession) { return; } TcpConnection<byte[]> con = this.tcpConnection; Assert.state(con != null, "No TcpConnection available"); long clientSendInterval = this.connectHeaders.getHeartbeat()[0]; long clientReceiveInterval = this.connectHeaders.getHeartbeat()[1]; long serverSendInterval = connectedHeaders.getHeartbeat()[0]; long serverReceiveInterval = connectedHeaders.getHeartbeat()[1]; if (clientSendInterval > 0 && serverReceiveInterval > 0) { long interval = Math.max(clientSendInterval, serverReceiveInterval); con.onWriteInactivity(() -> con.send(HEARTBEAT_MESSAGE).addCallback( result -> {}, ex -> handleTcpConnectionFailure( "Failed to forward heartbeat: " + ex.getMessage(), ex)), interval); } if (clientReceiveInterval > 0 && serverSendInterval > 0) { final long interval = Math.max(clientReceiveInterval, serverSendInterval) * HEARTBEAT_MULTIPLIER; con.onReadInactivity( () -> handleTcpConnectionFailure("No messages received in " + interval + " ms.", null), interval); } }
@Override public void afterConnectFailure(Throwable ex) { handleTcpConnectionFailure("Failed to connect: " + ex.getMessage(), ex); }
@Override public void afterConnected(TcpConnection<byte[]> connection) { if (logger.isDebugEnabled()) { logger.debug("TCP connection opened in session=" + getSessionId()); } this.tcpConnection = connection; connection.onReadInactivity(() -> { if (this.tcpConnection != null && !this.isStompConnected) { handleTcpConnectionFailure("No CONNECTED frame received in " + MAX_TIME_TO_CONNECTED_FRAME + " ms.", null); } }, MAX_TIME_TO_CONNECTED_FRAME); connection.send(MessageBuilder.createMessage(EMPTY_PAYLOAD, this.connectHeaders.getMessageHeaders())); }