Search in sources :

Example 11 with Message

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

the class PutAll70 method writeReply.

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());
    }
}
Also used : Message(org.apache.geode.internal.cache.tier.sockets.Message) LocalizedMessage(org.apache.geode.internal.logging.log4j.LocalizedMessage)

Example 12 with Message

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

the class Put65 method writeReplyWithRefreshMetadata.

protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection servConn, PartitionedRegion pr, boolean sendOldValue, boolean oldValueIsObject, Object oldValue, byte nwHopType, 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(new byte[] { pr.getMetadataVersion(), nwHopType });
    if (sendOldValue) {
        replyMsg.addIntPart(oldValueIsObject ? 1 : 0);
        replyMsg.addObjPart(oldValue);
    }
    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) LocalizedMessage(org.apache.geode.internal.logging.log4j.LocalizedMessage)

Example 13 with Message

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

the class GetPdxTypes70 method cmdExecute.

@Override
public void cmdExecute(Message clientMessage, ServerConnection serverConnection, long start) throws IOException, ClassNotFoundException {
    serverConnection.setAsTrue(REQUIRES_RESPONSE);
    if (logger.isDebugEnabled()) {
        logger.debug("{}: Received get pdx types from {}", serverConnection.getName(), serverConnection.getSocketString());
    }
    Map<Integer, PdxType> types;
    try {
        InternalCache cache = serverConnection.getCache();
        types = cache.getPdxRegistry().typeMap();
    } catch (Exception e) {
        writeException(clientMessage, e, false, serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        return;
    }
    Message responseMsg = serverConnection.getResponseMessage();
    responseMsg.setMessageType(MessageType.RESPONSE);
    responseMsg.setNumberOfParts(1);
    responseMsg.setTransactionId(clientMessage.getTransactionId());
    responseMsg.addObjPart(types);
    responseMsg.send(serverConnection);
    serverConnection.setAsTrue(RESPONDED);
}
Also used : PdxType(org.apache.geode.pdx.internal.PdxType) Message(org.apache.geode.internal.cache.tier.sockets.Message) InternalCache(org.apache.geode.internal.cache.InternalCache) IOException(java.io.IOException)

Example 14 with Message

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

the class Invalidate70 method writeReply.

@Override
protected void writeReply(Message origMsg, ServerConnection servConn, VersionTag versionTag) throws IOException {
    Message replyMsg = servConn.getReplyMessage();
    servConn.getCache().getCancelCriterion().checkCancelInProgress(null);
    replyMsg.setMessageType(MessageType.REPLY);
    int flags = 0;
    int numParts = 2;
    if (versionTag != null) {
        flags |= DestroyOp.HAS_VERSION_TAG;
        numParts++;
    }
    replyMsg.setNumberOfParts(numParts);
    replyMsg.setTransactionId(origMsg.getTransactionId());
    replyMsg.addIntPart(flags);
    if (versionTag != null) {
        if (logger.isDebugEnabled()) {
            logger.debug("wrote version tag in response: {}", versionTag);
        }
        replyMsg.addObjPart(versionTag);
    } else {
        if (logger.isDebugEnabled()) {
            logger.debug("response has no version tag");
        }
    }
    // make old single-hop code happy by putting byte[]{0} here
    replyMsg.addBytesPart(okBytes());
    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)

Example 15 with Message

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

the class GetPDXIdForType method cmdExecute.

@Override
public void cmdExecute(Message clientMessage, ServerConnection serverConnection, long start) throws IOException, ClassNotFoundException {
    serverConnection.setAsTrue(REQUIRES_RESPONSE);
    if (logger.isDebugEnabled()) {
        logger.debug("{}: Received get pdx id for type request ({} parts) from {}", serverConnection.getName(), clientMessage.getNumberOfParts(), serverConnection.getSocketString());
    }
    int noOfParts = clientMessage.getNumberOfParts();
    PdxType type = (PdxType) clientMessage.getPart(0).getObject();
    int pdxId;
    try {
        InternalCache cache = serverConnection.getCache();
        TypeRegistry registry = cache.getPdxRegistry();
        pdxId = registry.defineType(type);
    } catch (Exception e) {
        writeException(clientMessage, e, false, serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        return;
    }
    Message responseMsg = serverConnection.getResponseMessage();
    responseMsg.setMessageType(MessageType.RESPONSE);
    responseMsg.setNumberOfParts(1);
    responseMsg.setTransactionId(clientMessage.getTransactionId());
    responseMsg.addIntPart(pdxId);
    responseMsg.send(serverConnection);
    serverConnection.setAsTrue(RESPONDED);
}
Also used : PdxType(org.apache.geode.pdx.internal.PdxType) Message(org.apache.geode.internal.cache.tier.sockets.Message) InternalCache(org.apache.geode.internal.cache.InternalCache) TypeRegistry(org.apache.geode.pdx.internal.TypeRegistry) IOException(java.io.IOException)

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