public static void execute(ExecutablePool pool, String regionFullPath, ClientMetadataService cms) { AbstractOp op = new GetClientPRMetaDataOpImpl(regionFullPath, cms); if (logger.isDebugEnabled()) { logger.debug( "GetClientPRMetaDataOp#execute : Sending GetClientPRMetaDataOp Message: {} to server using pool: {}", op.getMessage(), pool); } pool.execute(op); }
/** * Sets the transaction id on the message */ private void setMsgTransactionId() { if (participateInTransaction() && getMessage().getTransactionId() == TXManagerImpl.NOTX) { getMessage().setTransactionId(TXManagerImpl.getCurrentTXUniqueId()); } }
protected AbstractOp(int msgType, int msgParts) { this.msg = new Message(msgParts, Version.CURRENT); getMessage().setMessageType(msgType); }
public static void execute(ExecutablePool pool, String region, String functionId, ServerRegionFunctionExecutor serverRegionExecutor, byte hasResult, boolean isHA, boolean optimizeForWrite) { AbstractOp op = new ExecuteRegionFunctionNoAckOpImpl(region, functionId, serverRegionExecutor, hasResult, isHA, optimizeForWrite); try { if (logger.isDebugEnabled()) { logger.debug( "ExecuteRegionFunctionNoAckOp#execute : Sending Function Execution Message: {} to Server using pool: {}", op.getMessage(), pool); } pool.execute(op); } catch (Exception ex) { if (logger.isDebugEnabled()) { logger.debug( "ExecuteRegionFunctionNoAckOp#execute : Exception occurred while Sending Function Execution Message: {} to server using pool: {}", op.getMessage(), pool, ex); } if (ex.getMessage() != null) throw new FunctionException(ex.getMessage(), ex); else throw new FunctionException("Unexpected exception during function execution:", ex); } }
logger.debug( "ExecuteRegionFunctionNoAckOp#execute : Sending Function Execution Message: {} to Server using pool: {}", op.getMessage(), pool); logger.debug( "ExecuteRegionFunctionNoAckOp#execute : Exception occurred while Sending Function Execution Message: {} to server using pool: {}", op.getMessage(), pool, ex);
@SuppressWarnings("unchecked") public static ClientPartitionAdvisor execute(ExecutablePool pool, String regionFullPath) { AbstractOp op = new GetClientPartitionAttributesOpImpl(regionFullPath); if (logger.isDebugEnabled()) { logger.debug( "GetClientPartitionAttributesOp#execute : Sending GetClientPartitionAttributesOp Message: {} for region: {} to server using pool: {}", op.getMessage(), regionFullPath, pool); } ClientPartitionAdvisor advisor = (ClientPartitionAdvisor) pool.execute(op); if (advisor != null) { advisor.setServerGroup(((PoolImpl) pool).getServerGroup()); } return advisor; }
if (logger.isDebugEnabled()) { logger.debug("ExecuteFunctionNoAckOp#execute : Sending Function Execution Message:" + op.getMessage() + " to all servers using pool: " + pool); if (logger.isDebugEnabled()) { logger.debug("ExecuteFunctionNoAckOp#execute : Sending Function Execution Message:" + op.getMessage() + " to server using pool: " + pool + " with groups:" + Arrays.toString(groups) + " all members:" + allServers); logger.debug( "ExecuteFunctionNoAckOp#execute : Exception occurred while Sending Function Execution Message:" + op.getMessage() + " to server using pool: " + pool, ex);
if (logger.isDebugEnabled()) { logger.debug("ExecuteFunctionNoAckOp#execute : Sending Function Execution Message:" + op.getMessage() + " to all servers using pool: " + pool); if (logger.isDebugEnabled()) { logger.debug("ExecuteFunctionNoAckOp#execute : Sending Function Execution Message:" + op.getMessage() + " to server using pool: " + pool + " with groups:" + Arrays.toString(groups) + " all members:" + allServers); logger.debug( "ExecuteFunctionNoAckOp#execute : Exception occurred while Sending Function Execution Message:" + op.getMessage() + " to server using pool: " + pool, ex);
logger.debug( "ExecuteRegionFunction#reexecute: Sending Function Execution Message: {} to Server using pool: {} with failed nodes: {}", reExecuteOp.getMessage(), pool, failedNodes);
logger.debug( "ExecuteRegionFunction#reexecute : Sending Function Execution Message: {} to Server using pool: {}", reExecuteOp.getMessage(), pool);
logger.debug( "ExecuteFunction#reexecute : Sending Function Execution Message:{} to Server using pool:{} with groups:{} all members:{} ignoreFailedMembers:{}", op.getMessage(), pool, Arrays.toString(groups), allMembers, serverExecutor.isIgnoreDepartedMembers());
logger.debug( "ExecuteFunction#reexecute : Sending Function Execution Message:{} to Server using pool:{} with groups:{} all members:{} ignoreFailedMembers:{}", reExecuteOp.getMessage(), pool, Arrays.toString(groups), allMembers, serverExecutor.isIgnoreDepartedMembers());
/** * Attempts to send this operation's message out on the given connection * * @param cnx the connection to use when sending * @throws Exception if the send fails */ protected void attemptSend(Connection cnx) throws Exception { setMsgTransactionId(); if (logger.isTraceEnabled(LogMarker.DISTRIBUTION_BRIDGE_SERVER_VERBOSE)) { logger.trace(LogMarker.DISTRIBUTION_BRIDGE_SERVER_VERBOSE, "Sending op={} using {}", getShortClassName(), cnx); } getMessage().setComms(cnx.getSocket(), cnx.getInputStream(), cnx.getOutputStream(), cnx.getCommBuffer(), cnx.getStats()); try { sendMessage(cnx); } finally { getMessage().unsetComms(); } }
logger.debug( "ExecuteFunctionOp#execute : Sending Function Execution Message:{} to all servers using pool: {}", op.getMessage(), pool); logger.debug( "ExecuteFunctionOp#execute.reexecuteForServ : Sending Function Execution Message:{} to server using pool: {} with groups:{} all members:{} ignoreFailedMembers:{}", op.getMessage(), pool, Arrays.toString(groups), allServers, executor.isIgnoreDepartedMembers()); logger.debug( "ExecuteFunctionOp#execute : Sending Function Execution Message:{} to server using pool: {} with groups:{} all members:{} ignoreFailedMembers:{}", op.getMessage(), pool, Arrays.toString(groups), allServers, executor.isIgnoreDepartedMembers());
@Test public void executeWithServerAffinityAndRetryCountGreaterThansTxRetryAttemptThrowsServerConnectivityException() { OpExecutorImpl opExecutor = spy(new OpExecutorImpl(manager, queueManager, endpointManager, riTracker, -1, 10, true, cancelCriterion, mock(PoolImpl.class))); Op txSynchronizationOp = mock(TXSynchronizationOp.Impl.class); ServerLocation serverLocation = mock(ServerLocation.class); ServerConnectivityException serverConnectivityException = new ServerConnectivityException(); doThrow(serverConnectivityException).when(opExecutor).executeOnServer(serverLocation, txSynchronizationOp, true, false); opExecutor.setupServerAffinity(true); when(((AbstractOp) txSynchronizationOp).getMessage()).thenReturn(mock(Message.class)); opExecutor.setAffinityRetryCount(opExecutor.TX_RETRY_ATTEMPT + 1); assertThatThrownBy( () -> opExecutor.executeWithServerAffinity(serverLocation, txSynchronizationOp)) .isSameAs(serverConnectivityException); }
absOp.getMessage().setIsRetry(); int transactionId = absOp.getMessage().getTransactionId();
if (cnx.getServer().getRequiresCredentials()) { getMessage().setMessageHasSecurePartFlag(); long userId = -1; hdos.writeLong(cnx.getConnectionID()); hdos.writeLong(userId); getMessage().setSecurePart(((ConnectionImpl) cnx).encryptBytes(hdos.toByteArray())); } finally { hdos.close(); getMessage().send(false);
@Test public void executeWithServerAffinityWithServerConnectivityExceptionIncrementsRetryCountAndResetsToZero() { OpExecutorImpl opExecutor = spy(new OpExecutorImpl(manager, queueManager, endpointManager, riTracker, -1, 10, true, cancelCriterion, mock(PoolImpl.class))); Op txSynchronizationOp = mock(TXSynchronizationOp.Impl.class); ServerLocation serverLocation = mock(ServerLocation.class); ServerConnectivityException serverConnectivityException = new ServerConnectivityException(); doThrow(serverConnectivityException).when(opExecutor).executeOnServer(serverLocation, txSynchronizationOp, true, false); opExecutor.setupServerAffinity(true); when(((AbstractOp) txSynchronizationOp).getMessage()).thenReturn(mock(Message.class)); opExecutor.setAffinityRetryCount(0); opExecutor.executeWithServerAffinity(serverLocation, txSynchronizationOp); verify(opExecutor, times(1)).setAffinityRetryCount(1); assertEquals(0, opExecutor.getAffinityRetryCount()); }
logger.debug( "ExecuteFunctionOp#execute : Sending Function Execution Message:{} to all servers using pool: {}", op.getMessage(), pool); logger.debug( "ExecuteFunctionOp#execute : Sending Function Execution Message:{} to server using pool:{} with groups:{} all members:{} ignoreFailedMembers:{}", op.getMessage(), pool, Arrays.toString(groups), allServers, executor.isIgnoreDepartedMembers());
absOp.getMessage().setIsRetry();