Search in sources :

Example 16 with Message

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

the class GetPDXTypeById 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 type by id request ({} parts) from {}", serverConnection.getName(), clientMessage.getNumberOfParts(), serverConnection.getSocketString());
    }
    int pdxId = clientMessage.getPart(0).getInt();
    PdxType type;
    try {
        InternalCache cache = serverConnection.getCache();
        TypeRegistry registry = cache.getPdxRegistry();
        type = registry.getType(pdxId);
    } 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(type);
    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)

Example 17 with Message

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

the class GetPdxEnums70 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 enums from {}", serverConnection.getName(), serverConnection.getSocketString());
    }
    Map<Integer, EnumInfo> enums;
    try {
        InternalCache cache = serverConnection.getCache();
        enums = cache.getPdxRegistry().enumMap();
    } 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(enums);
    responseMsg.send(serverConnection);
    serverConnection.setAsTrue(RESPONDED);
}
Also used : Message(org.apache.geode.internal.cache.tier.sockets.Message) EnumInfo(org.apache.geode.pdx.internal.EnumInfo) InternalCache(org.apache.geode.internal.cache.InternalCache) IOException(java.io.IOException)

Example 18 with Message

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

the class AbstractOp method attemptReadResponse.

/**
   * Attempts to read a response to this operation by reading it from the given connection, and
   * returning it.
   * 
   * @param cnx the connection to read the response from
   * @return the result of the operation or <code>null</code> if the operation has no result.
   * @throws Exception if the execute failed
   */
protected Object attemptReadResponse(Connection cnx) throws Exception {
    Message msg = createResponseMessage();
    if (msg != null) {
        msg.setComms(cnx.getSocket(), cnx.getInputStream(), cnx.getOutputStream(), cnx.getCommBuffer(), cnx.getStats());
        if (msg instanceof ChunkedMessage) {
            try {
                return processResponse(msg, cnx);
            } finally {
                msg.unsetComms();
                processSecureBytes(cnx, msg);
            }
        } else {
            try {
                msg.recv();
            } finally {
                msg.unsetComms();
                processSecureBytes(cnx, msg);
            }
            return processResponse(msg, cnx);
        }
    } else {
        return null;
    }
}
Also used : ChunkedMessage(org.apache.geode.internal.cache.tier.sockets.ChunkedMessage) Message(org.apache.geode.internal.cache.tier.sockets.Message) ChunkedMessage(org.apache.geode.internal.cache.tier.sockets.ChunkedMessage)

Example 19 with Message

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

the class Size method writeSizeResponse.

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

Example 20 with Message

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

the class Put65 method writeReply.

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

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