@Override public void cmdExecute(final Message clientMessage, final ServerConnection serverConnection, final SecurityService securityService, long start) throws IOException { logger.error("{}: INVALID message type with tx: {} from {}", new Object[] {serverConnection.getName(), Integer.valueOf(clientMessage.getTransactionId()), serverConnection.getSocketString()}); writeErrorResponse(clientMessage, MessageType.INVALID, serverConnection); }
/** * checks to see if this thread needs to masquerade as a transactional thread. clients after * GFE_66 should be able to start a transaction. * * @return true if thread should masquerade as a transactional thread. */ protected boolean shouldMasqueradeForTx(Message clientMessage, ServerConnection serverConnection) { return serverConnection.getClientVersion().compareTo(Version.GFE_66) >= 0 && clientMessage.getTransactionId() > TXManagerImpl.NOTX; }
private void writeReply(Message msg, ServerConnection servConn, int batchId, int numberOfEvents) throws IOException { Message replyMsg = servConn.getResponseMessage(); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setTransactionId(msg.getTransactionId()); replyMsg.setNumberOfParts(2); replyMsg.addIntPart(batchId); replyMsg.addIntPart(numberOfEvents); replyMsg.setTransactionId(msg.getTransactionId()); replyMsg.send(servConn); servConn.setAsTrue(Command.RESPONDED); if (logger.isDebugEnabled()) { logger.debug("{}: rpl tx: {} batchId {} numberOfEvents: {}", servConn.getName(), msg.getTransactionId(), batchId, numberOfEvents); } }
@Override public void cmdExecute(final Message clientMessage, final ServerConnection serverConnection, final SecurityService securityService, long start) throws IOException { // requiresResponse = true; NOT NEEDED... ALWAYS SEND ERROR RESPONSE logger.fatal("{}: Unknown message type ({}) with tx: {} from {}", new Object[] {serverConnection.getName(), MessageType.getString(clientMessage.getMessageType()), Integer.valueOf(clientMessage.getTransactionId()), serverConnection.getSocketString()}); writeErrorResponse(clientMessage, MessageType.UNKNOWN_MESSAGE_TYPE_ERROR, serverConnection); // responded = true; NOT NEEDED... ALWAYS SEND ERROR RESPONSE }
/** * Sets the transaction id on the message */ private void setMsgTransactionId() { if (participateInTransaction() && getMessage().getTransactionId() == TXManagerImpl.NOTX) { getMessage().setTransactionId(TXManagerImpl.getCurrentTXUniqueId()); } }
protected void writeReply(Message origMsg, ServerConnection serverConnection) throws IOException { Message replyMsg = serverConnection.getReplyMessage(); serverConnection.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(1); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(okBytes()); replyMsg.send(serverConnection); if (logger.isTraceEnabled()) { logger.trace("{}: rpl tx: {}", serverConnection.getName(), origMsg.getTransactionId()); } }
@Override protected void writeReply(Message origMsg, ServerConnection serverConnection) throws IOException { Message replyMsg = serverConnection.getReplyMessage(); serverConnection.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(1); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(okBytes()); replyMsg.send(serverConnection); if (logger.isTraceEnabled()) { logger.trace("{}: rpl tx: {}", serverConnection.getName(), origMsg.getTransactionId()); } } }
private static void writeContainsKeyResponse(boolean containsKey, Message origMsg, ServerConnection servConn) throws IOException { Message responseMsg = servConn.getResponseMessage(); responseMsg.setMessageType(MessageType.RESPONSE); responseMsg.setNumberOfParts(1); responseMsg.setTransactionId(origMsg.getTransactionId()); responseMsg.addObjPart(containsKey ? Boolean.TRUE : Boolean.FALSE); responseMsg.send(servConn); }
protected static void writeErrorResponse(Message origMsg, int messageType, ServerConnection serverConnection) throws IOException { Message errorMsg = serverConnection.getErrorResponseMessage(); errorMsg.setMessageType(messageType); errorMsg.setNumberOfParts(1); errorMsg.setTransactionId(origMsg.getTransactionId()); errorMsg.addStringPart( "Invalid data received. Please see the cache server log file for additional details."); errorMsg.send(serverConnection); }
protected static void writeErrorResponse(Message origMsg, int messageType, String msg, ServerConnection serverConnection) throws IOException { Message errorMsg = serverConnection.getErrorResponseMessage(); errorMsg.setMessageType(messageType); errorMsg.setNumberOfParts(1); errorMsg.setTransactionId(origMsg.getTransactionId()); errorMsg.addStringPart(msg); errorMsg.send(serverConnection); }
private static void writeSizeResponse(Integer sizeCount, Message origMsg, ServerConnection servConn) throws IOException { Message responseMsg = servConn.getResponseMessage(); responseMsg.setMessageType(MessageType.RESPONSE); responseMsg.setNumberOfParts(1); responseMsg.setTransactionId(origMsg.getTransactionId()); responseMsg.addObjPart(sizeCount); responseMsg.send(servConn); }
private static void writeContainsKeyResponse(boolean containsKey, Message origMsg, ServerConnection servConn) throws IOException { Message responseMsg = servConn.getResponseMessage(); responseMsg.setMessageType(MessageType.RESPONSE); responseMsg.setNumberOfParts(1); responseMsg.setTransactionId(origMsg.getTransactionId()); responseMsg.addObjPart(containsKey ? Boolean.TRUE : Boolean.FALSE); responseMsg.send(servConn); }
protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection serverConnection, PartitionedRegion pr, byte nwHop) throws IOException { Message replyMsg = serverConnection.getReplyMessage(); serverConnection.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(1); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(new byte[] {pr.getMetadataVersion(), nwHop}); replyMsg.send(serverConnection); pr.getPrStats().incPRMetaDataSentCount(); if (logger.isTraceEnabled()) { logger.trace("{}: rpl with REFRESH_METADATA tx: {}", serverConnection.getName(), origMsg.getTransactionId()); } }
protected static void writeCommitResponse(TXCommitMessage response, Message origMsg, ServerConnection servConn) throws IOException { Message responseMsg = servConn.getResponseMessage(); responseMsg.setMessageType(MessageType.RESPONSE); responseMsg.setTransactionId(origMsg.getTransactionId()); responseMsg.setNumberOfParts(1); if (response != null) { response.setClientVersion(servConn.getClientVersion()); } responseMsg.addObjPart(response, false); servConn.getCache().getCancelCriterion().checkCancelInProgress(null); if (logger.isDebugEnabled()) { logger.debug("TX: sending a nonNull response for transaction: {}", new TXId((InternalDistributedMember) servConn.getProxyID().getDistributedMember(), origMsg.getTransactionId())); } responseMsg.send(servConn); origMsg.clearParts(); }
protected void writeReply(Message origMsg, ServerConnection servConn, boolean entryNotFound, VersionTag tag) throws IOException { Message replyMsg = servConn.getReplyMessage(); servConn.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(2); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(okBytes()); replyMsg.addIntPart(entryNotFound ? 1 : 0); replyMsg.send(servConn); if (logger.isTraceEnabled()) { logger.trace("{}: rpl tx: {} parts={}", servConn.getName(), origMsg.getTransactionId(), replyMsg.getNumberOfParts()); } }
protected void writeReply(Message origMsg, VersionedObjectList response, ServerConnection servConn) throws IOException { Message replyMsg = servConn.getReplyMessage(); servConn.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(2); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(okBytes()); if (response != null) { response.clearObjects(); replyMsg.addObjPart(response); } replyMsg.send(servConn); if (logger.isTraceEnabled()) { logger.trace("{}: rpl tx: {}", servConn.getName(), origMsg.getTransactionId()); } }
protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection servConn, PartitionedRegion pr, boolean entryNotFoundForRemove, byte nwHop, VersionTag tag) throws IOException { Message replyMsg = servConn.getReplyMessage(); servConn.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(2); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(new byte[] {pr.getMetadataVersion(), nwHop}); pr.getPrStats().incPRMetaDataSentCount(); replyMsg.addIntPart(entryNotFoundForRemove ? 1 : 0); replyMsg.send(servConn); if (logger.isTraceEnabled()) { logger.trace("{}: rpl with REFRESH_METADATA tx: {}", servConn.getName(), origMsg.getTransactionId()); } }
protected void writeReply(Message origMsg, ServerConnection servConn, boolean sendOldValue, boolean oldValueIsObject, Object oldValue, VersionTag tag) throws IOException { Message replyMsg = servConn.getReplyMessage(); servConn.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(sendOldValue ? 3 : 1); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(okBytes()); if (sendOldValue) { replyMsg.addIntPart(oldValueIsObject ? 1 : 0); replyMsg.addObjPart(oldValue); } replyMsg.send(servConn); if (logger.isTraceEnabled()) { logger.trace("{}: rpl tx: {} parts={}", servConn.getName(), origMsg.getTransactionId(), replyMsg.getNumberOfParts()); } }
private void writeReplyWithRefreshMetadata(Message origMsg, VersionedObjectList response, ServerConnection servConn, PartitionedRegion pr, byte nwHop) throws IOException { Message replyMsg = servConn.getReplyMessage(); servConn.getCache().getCancelCriterion().checkCancelInProgress(null); replyMsg.setMessageType(MessageType.REPLY); replyMsg.setNumberOfParts(2); replyMsg.setTransactionId(origMsg.getTransactionId()); replyMsg.addBytesPart(new byte[] {pr.getMetadataVersion(), nwHop}); if (response != null) { response.clearObjects(); replyMsg.addObjPart(response); } replyMsg.send(servConn); pr.getPrStats().incPRMetaDataSentCount(); if (logger.isTraceEnabled()) { logger.trace("{}: rpl with REFRESH_METADATA tx: {}", servConn.getName(), origMsg.getTransactionId()); } }
protected static void writeResponseWithFunctionAttribute(byte[] data, Message origMsg, ServerConnection serverConnection) throws IOException { Message responseMsg = serverConnection.getResponseMessage(); responseMsg.setMessageType(MessageType.RESPONSE); responseMsg.setTransactionId(origMsg.getTransactionId()); responseMsg.setNumberOfParts(1); responseMsg.addBytesPart(data); serverConnection.getCache().getCancelCriterion().checkCancelInProgress(null); responseMsg.send(serverConnection); origMsg.clearParts(); }