Search in sources :

Example 6 with Message

use of org.apache.geode.internal.cache.tier.sockets.Message in project geode by apache.

the class GatewayReceiverCommand method writeBatchException.

private static void writeBatchException(Message origMsg, List<BatchException70> exceptions, ServerConnection servConn, int batchId) throws IOException {
    Message errorMsg = servConn.getErrorResponseMessage();
    errorMsg.setMessageType(MessageType.EXCEPTION);
    errorMsg.setNumberOfParts(2);
    errorMsg.setTransactionId(origMsg.getTransactionId());
    errorMsg.addObjPart(exceptions);
    // errorMsg.addStringPart(be.toString());
    errorMsg.send(servConn);
    for (Exception e : exceptions) {
        ((GatewayReceiverStats) servConn.getCacheServerStats()).incExceptionsOccurred();
    }
    for (Exception be : exceptions) {
        if (logger.isWarnEnabled()) {
            logger.warn(LocalizedMessage.create(LocalizedStrings.ProcessBatch_0_WROTE_BATCH_EXCEPTION, servConn.getName()), be);
        }
    }
}
Also used : Message(org.apache.geode.internal.cache.tier.sockets.Message) LocalizedMessage(org.apache.geode.internal.logging.log4j.LocalizedMessage) GatewayReceiverStats(org.apache.geode.internal.cache.wan.GatewayReceiverStats) PdxRegistryMismatchException(org.apache.geode.pdx.PdxRegistryMismatchException) RegionDestroyedException(org.apache.geode.cache.RegionDestroyedException) EntryNotFoundException(org.apache.geode.cache.EntryNotFoundException) CacheClosedException(org.apache.geode.cache.CacheClosedException) PdxConfigurationException(org.apache.geode.pdx.PdxConfigurationException) CancelException(org.apache.geode.CancelException) IOException(java.io.IOException)

Example 7 with Message

use of org.apache.geode.internal.cache.tier.sockets.Message in project geode by apache.

the class GetClientPartitionAttributesCommand method cmdExecute.

@SuppressWarnings("unchecked")
@Override
public void cmdExecute(Message clientMessage, ServerConnection serverConnection, long start) throws IOException, ClassNotFoundException, InterruptedException {
    String regionFullPath = null;
    regionFullPath = clientMessage.getPart(0).getString();
    String errMessage = "";
    if (regionFullPath == null) {
        logger.warn(LocalizedMessage.create(LocalizedStrings.GetClientPartitionAttributes_THE_INPUT_REGION_PATH_IS_NULL));
        errMessage = LocalizedStrings.GetClientPartitionAttributes_THE_INPUT_REGION_PATH_IS_NULL.toLocalizedString();
        writeErrorResponse(clientMessage, MessageType.GET_CLIENT_PARTITION_ATTRIBUTES_ERROR, errMessage.toString(), serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        return;
    }
    Region region = serverConnection.getCache().getRegion(regionFullPath);
    if (region == null) {
        logger.warn(LocalizedMessage.create(LocalizedStrings.GetClientPartitionAttributes_REGION_NOT_FOUND_FOR_SPECIFIED_REGION_PATH, regionFullPath));
        errMessage = LocalizedStrings.GetClientPartitionAttributes_REGION_NOT_FOUND.toLocalizedString() + regionFullPath;
        writeErrorResponse(clientMessage, MessageType.GET_CLIENT_PARTITION_ATTRIBUTES_ERROR, errMessage.toString(), serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        return;
    }
    try {
        Message responseMsg = serverConnection.getResponseMessage();
        responseMsg.setTransactionId(clientMessage.getTransactionId());
        responseMsg.setMessageType(MessageType.RESPONSE_CLIENT_PARTITION_ATTRIBUTES);
        PartitionedRegion prRgion = (PartitionedRegion) region;
        PartitionResolver partitionResolver = prRgion.getPartitionResolver();
        // MINUMUM PARTS
        int numParts = 2;
        if (partitionResolver != null) {
            numParts++;
        }
        responseMsg.setNumberOfParts(numParts);
        // PART 1
        responseMsg.addObjPart(prRgion.getTotalNumberOfBuckets());
        // PART 2
        if (partitionResolver != null) {
            responseMsg.addObjPart(partitionResolver.getClass().toString().substring(6));
        }
        // PART 3
        String leaderRegionPath = null;
        PartitionedRegion leaderRegion = null;
        String leaderRegionName = prRgion.getColocatedWith();
        if (leaderRegionName != null) {
            Cache cache = prRgion.getCache();
            while (leaderRegionName != null) {
                leaderRegion = (PartitionedRegion) cache.getRegion(leaderRegionName);
                if (leaderRegion.getColocatedWith() == null) {
                    leaderRegionPath = leaderRegion.getFullPath();
                    break;
                } else {
                    leaderRegionName = leaderRegion.getColocatedWith();
                }
            }
        }
        responseMsg.addObjPart(leaderRegionPath);
        responseMsg.send();
        clientMessage.clearParts();
    } catch (Exception e) {
        writeException(clientMessage, e, false, serverConnection);
    } finally {
        serverConnection.setAsTrue(Command.RESPONDED);
    }
}
Also used : LocalizedMessage(org.apache.geode.internal.logging.log4j.LocalizedMessage) Message(org.apache.geode.internal.cache.tier.sockets.Message) PartitionedRegion(org.apache.geode.internal.cache.PartitionedRegion) Region(org.apache.geode.cache.Region) PartitionedRegion(org.apache.geode.internal.cache.PartitionedRegion) PartitionResolver(org.apache.geode.cache.PartitionResolver) IOException(java.io.IOException) Cache(org.apache.geode.cache.Cache)

Example 8 with Message

use of org.apache.geode.internal.cache.tier.sockets.Message in project geode by apache.

the class GetClientPartitionAttributesCommand66 method cmdExecute.

@SuppressWarnings("unchecked")
@Override
public void cmdExecute(Message clientMessage, ServerConnection serverConnection, long start) throws IOException, ClassNotFoundException, InterruptedException {
    String regionFullPath = null;
    regionFullPath = clientMessage.getPart(0).getString();
    String errMessage = "";
    if (regionFullPath == null) {
        logger.warn(LocalizedMessage.create(LocalizedStrings.GetClientPartitionAttributes_THE_INPUT_REGION_PATH_IS_NULL));
        errMessage = LocalizedStrings.GetClientPartitionAttributes_THE_INPUT_REGION_PATH_IS_NULL.toLocalizedString();
        writeErrorResponse(clientMessage, MessageType.GET_CLIENT_PARTITION_ATTRIBUTES_ERROR, errMessage.toString(), serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        return;
    }
    Region region = serverConnection.getCache().getRegion(regionFullPath);
    if (region == null) {
        logger.warn(LocalizedMessage.create(LocalizedStrings.GetClientPartitionAttributes_REGION_NOT_FOUND_FOR_SPECIFIED_REGION_PATH, regionFullPath));
        errMessage = LocalizedStrings.GetClientPartitionAttributes_REGION_NOT_FOUND.toLocalizedString() + regionFullPath;
        writeErrorResponse(clientMessage, MessageType.GET_CLIENT_PARTITION_ATTRIBUTES_ERROR, errMessage.toString(), serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        return;
    }
    try {
        Message responseMsg = serverConnection.getResponseMessage();
        responseMsg.setTransactionId(clientMessage.getTransactionId());
        responseMsg.setMessageType(MessageType.RESPONSE_CLIENT_PARTITION_ATTRIBUTES);
        if (!(region instanceof PartitionedRegion)) {
            responseMsg.setNumberOfParts(2);
            responseMsg.addObjPart(-1);
            responseMsg.addObjPart(region.getFullPath());
        } else {
            PartitionedRegion prRgion = (PartitionedRegion) region;
            PartitionResolver partitionResolver = prRgion.getPartitionResolver();
            // MINUMUM PARTS
            int numParts = 2;
            if (partitionResolver != null) {
                numParts++;
            }
            if (prRgion.isFixedPartitionedRegion()) {
                numParts++;
            }
            responseMsg.setNumberOfParts(numParts);
            // PART 1
            responseMsg.addObjPart(prRgion.getTotalNumberOfBuckets());
            // PART 2
            String leaderRegionPath = null;
            PartitionedRegion leaderRegion = null;
            String leaderRegionName = prRgion.getColocatedWith();
            if (leaderRegionName != null) {
                Cache cache = prRgion.getCache();
                while (leaderRegionName != null) {
                    leaderRegion = (PartitionedRegion) cache.getRegion(leaderRegionName);
                    if (leaderRegion.getColocatedWith() == null) {
                        leaderRegionPath = leaderRegion.getFullPath();
                        break;
                    } else {
                        leaderRegionName = leaderRegion.getColocatedWith();
                    }
                }
            }
            responseMsg.addObjPart(leaderRegionPath);
            // PART 3
            if (partitionResolver != null) {
                responseMsg.addObjPart(partitionResolver.getClass().toString().substring(6));
            }
            // PART 4
            if (prRgion.isFixedPartitionedRegion()) {
                Set<FixedPartitionAttributes> fpaSet = null;
                if (leaderRegion != null) {
                    fpaSet = PartitionedRegionHelper.getAllFixedPartitionAttributes(leaderRegion);
                } else {
                    fpaSet = PartitionedRegionHelper.getAllFixedPartitionAttributes(prRgion);
                }
                responseMsg.addObjPart(fpaSet);
            }
        }
        responseMsg.send();
        clientMessage.clearParts();
    } catch (Exception e) {
        writeException(clientMessage, e, false, serverConnection);
    } finally {
        serverConnection.setAsTrue(Command.RESPONDED);
    }
}
Also used : FixedPartitionAttributes(org.apache.geode.cache.FixedPartitionAttributes) LocalizedMessage(org.apache.geode.internal.logging.log4j.LocalizedMessage) Message(org.apache.geode.internal.cache.tier.sockets.Message) PartitionedRegion(org.apache.geode.internal.cache.PartitionedRegion) Region(org.apache.geode.cache.Region) PartitionedRegion(org.apache.geode.internal.cache.PartitionedRegion) PartitionResolver(org.apache.geode.cache.PartitionResolver) IOException(java.io.IOException) Cache(org.apache.geode.cache.Cache)

Example 9 with Message

use of org.apache.geode.internal.cache.tier.sockets.Message in project geode by apache.

the class Put70 method writeReplyWithRefreshMetadata.

@Override
protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection servConn, PartitionedRegion pr, boolean sendOldValue, boolean oldValueIsObject, Object oldValue, byte nwHopType, VersionTag versionTag) throws IOException {
    Message replyMsg = servConn.getReplyMessage();
    servConn.getCache().getCancelCriterion().checkCancelInProgress(null);
    replyMsg.setMessageType(MessageType.REPLY);
    int flags = 0;
    int parts = 1;
    // flags
    parts++;
    if (sendOldValue) {
        flags |= PutOp.HAS_OLD_VALUE_FLAG;
        if (oldValueIsObject) {
            flags |= PutOp.OLD_VALUE_IS_OBJECT_FLAG;
        }
        parts++;
    }
    if (versionTag != null) {
        flags |= PutOp.HAS_VERSION_TAG;
        parts++;
    }
    replyMsg.setNumberOfParts(parts);
    replyMsg.setTransactionId(origMsg.getTransactionId());
    replyMsg.addBytesPart(new byte[] { pr.getMetadataVersion(), nwHopType });
    replyMsg.addIntPart(flags);
    if (sendOldValue) {
        // if (logger.fineEnabled()) {
        // logger.fine("sending old value in Put response");
        // }
        replyMsg.addObjPart(oldValue);
    }
    if (versionTag != null) {
        replyMsg.addObjPart(versionTag);
    }
    replyMsg.send(servConn);
    pr.getPrStats().incPRMetaDataSentCount();
    if (logger.isTraceEnabled()) {
        logger.trace("{}: rpl with REFRESH_METADATA tx: {} parts={}", servConn.getName(), origMsg.getTransactionId(), replyMsg.getNumberOfParts());
    }
}
Also used : Message(org.apache.geode.internal.cache.tier.sockets.Message)

Example 10 with Message

use of org.apache.geode.internal.cache.tier.sockets.Message in project geode by apache.

the class Put70 method writeReply.

@Override
protected void writeReply(Message origMsg, ServerConnection servConn, boolean sendOldValue, boolean oldValueIsObject, Object oldValue, VersionTag versionTag) throws IOException {
    Message replyMsg = servConn.getReplyMessage();
    servConn.getCache().getCancelCriterion().checkCancelInProgress(null);
    replyMsg.setMessageType(MessageType.REPLY);
    int flags = 0;
    int parts = 2;
    if (sendOldValue) {
        flags |= PutOp.HAS_OLD_VALUE_FLAG;
        if (oldValueIsObject) {
            flags |= PutOp.OLD_VALUE_IS_OBJECT_FLAG;
        }
        parts++;
    }
    if (versionTag != null) {
        flags |= PutOp.HAS_VERSION_TAG;
        parts++;
    }
    replyMsg.setNumberOfParts(parts);
    replyMsg.setTransactionId(origMsg.getTransactionId());
    replyMsg.addBytesPart(okBytes());
    replyMsg.addIntPart(flags);
    if (sendOldValue) {
        replyMsg.addObjPart(oldValue);
    }
    if (versionTag != null) {
        replyMsg.addObjPart(versionTag);
    }
    replyMsg.send(servConn);
    if (logger.isTraceEnabled()) {
        logger.trace("{}: rpl tx: {} parts={}", servConn.getName(), origMsg.getTransactionId(), replyMsg.getNumberOfParts());
    }
}
Also used : Message(org.apache.geode.internal.cache.tier.sockets.Message)

Aggregations

Message (org.apache.geode.internal.cache.tier.sockets.Message)33 LocalizedMessage (org.apache.geode.internal.logging.log4j.LocalizedMessage)16 IOException (java.io.IOException)11 InternalCache (org.apache.geode.internal.cache.InternalCache)7 Region (org.apache.geode.cache.Region)4 PartitionedRegion (org.apache.geode.internal.cache.PartitionedRegion)4 TypeRegistry (org.apache.geode.pdx.internal.TypeRegistry)4 EnumInfo (org.apache.geode.pdx.internal.EnumInfo)3 PdxType (org.apache.geode.pdx.internal.PdxType)3 List (java.util.List)2 Cache (org.apache.geode.cache.Cache)2 PartitionResolver (org.apache.geode.cache.PartitionResolver)2 BucketServerLocation66 (org.apache.geode.internal.cache.BucketServerLocation66)2 CachedRegionHelper (org.apache.geode.internal.cache.tier.CachedRegionHelper)2 PdxConfigurationException (org.apache.geode.pdx.PdxConfigurationException)2 PdxRegistryMismatchException (org.apache.geode.pdx.PdxRegistryMismatchException)2 ArrayList (java.util.ArrayList)1 CancelCriterion (org.apache.geode.CancelCriterion)1 CancelException (org.apache.geode.CancelException)1 CacheClosedException (org.apache.geode.cache.CacheClosedException)1