org.apache.catalina.tribes.ByteMessage Java Examples

The following examples show how to use org.apache.catalina.tribes.ByteMessage. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TestTcpFailureDetector.java    From Tomcat8-Source-Read with MIT License 6 votes vote down vote up
@Test
public void testTcpSendFailureMemberDrop() throws Exception {
    System.out.println("testTcpSendFailureMemberDrop()");
    clear();
    channel1.start(Channel.DEFAULT);
    channel2.start(Channel.DEFAULT);
    //Thread.sleep(1000);
    Assert.assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
    channel2.stop(Channel.SND_RX_SEQ);
    ByteMessage msg = new ByteMessage(new byte[1024]);
    try {
        channel1.send(channel1.getMembers(), msg, 0);
        Assert.fail("Message send should have failed.");
    } catch ( ChannelException x ) {
        // Ignore
    }
    Assert.assertEquals("Expecting member count to not be equal",mbrlist1.members.size()+1,mbrlist2.members.size());
    channel1.stop(Channel.DEFAULT);
    channel2.stop(Channel.DEFAULT);
}
 
Example #2
Source File: TestTcpFailureDetector.java    From Tomcat8-Source-Read with MIT License 6 votes vote down vote up
@Test
public void testTcpMcastFail() throws Exception {
    System.out.println("testTcpMcastFail()");
    clear();
    channel1.start(Channel.DEFAULT);
    channel2.start(Channel.DEFAULT);
    //Thread.sleep(1000);
    Assert.assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
    channel2.stop(Channel.MBR_TX_SEQ);
    ByteMessage msg = new ByteMessage(new byte[1024]);
    try {
        Thread.sleep(5000);
        Assert.assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
        channel1.send(channel1.getMembers(), msg, 0);
    } catch ( ChannelException x ) {
        Assert.fail("Message send should have succeeded.");
    }
    channel1.stop(Channel.DEFAULT);
    channel2.stop(Channel.DEFAULT);
}
 
Example #3
Source File: TestTcpFailureDetector.java    From Tomcat7.0.67 with Apache License 2.0 6 votes vote down vote up
@Test
public void testTcpSendFailureMemberDrop() throws Exception {
    System.out.println("testTcpSendFailureMemberDrop()");
    clear();
    channel1.start(Channel.DEFAULT);
    channel2.start(Channel.DEFAULT);
    //Thread.sleep(1000);
    assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
    channel2.stop(Channel.SND_RX_SEQ);
    ByteMessage msg = new ByteMessage(new byte[1024]);
    try {
        channel1.send(channel1.getMembers(), msg, 0);
        fail("Message send should have failed.");
    } catch ( ChannelException x ) {
        // Ignore
    }
    assertEquals("Expecting member count to not be equal",mbrlist1.members.size()+1,mbrlist2.members.size());
    channel1.stop(Channel.DEFAULT);
    channel2.stop(Channel.DEFAULT);
}
 
Example #4
Source File: TestTcpFailureDetector.java    From Tomcat7.0.67 with Apache License 2.0 6 votes vote down vote up
@Test
public void testTcpMcastFail() throws Exception {
    System.out.println("testTcpMcastFail()");
    clear();
    channel1.start(Channel.DEFAULT);
    channel2.start(Channel.DEFAULT);
    //Thread.sleep(1000);
    assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
    channel2.stop(Channel.MBR_TX_SEQ);
    ByteMessage msg = new ByteMessage(new byte[1024]);
    try {
        Thread.sleep(5000);
        assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
        channel1.send(channel1.getMembers(), msg, 0);
    } catch ( ChannelException x ) {
        fail("Message send should have succeeded.");
    }
    channel1.stop(Channel.DEFAULT);
    channel2.stop(Channel.DEFAULT);
}
 
Example #5
Source File: TestTcpFailureDetector.java    From tomcatsrc with Apache License 2.0 6 votes vote down vote up
@Test
public void testTcpSendFailureMemberDrop() throws Exception {
    System.out.println("testTcpSendFailureMemberDrop()");
    clear();
    channel1.start(Channel.DEFAULT);
    channel2.start(Channel.DEFAULT);
    //Thread.sleep(1000);
    assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
    channel2.stop(Channel.SND_RX_SEQ);
    ByteMessage msg = new ByteMessage(new byte[1024]);
    try {
        channel1.send(channel1.getMembers(), msg, 0);
        fail("Message send should have failed.");
    } catch ( ChannelException x ) {
        // Ignore
    }
    assertEquals("Expecting member count to not be equal",mbrlist1.members.size()+1,mbrlist2.members.size());
    channel1.stop(Channel.DEFAULT);
    channel2.stop(Channel.DEFAULT);
}
 
Example #6
Source File: TestTcpFailureDetector.java    From tomcatsrc with Apache License 2.0 6 votes vote down vote up
@Test
public void testTcpMcastFail() throws Exception {
    System.out.println("testTcpMcastFail()");
    clear();
    channel1.start(Channel.DEFAULT);
    channel2.start(Channel.DEFAULT);
    //Thread.sleep(1000);
    assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
    channel2.stop(Channel.MBR_TX_SEQ);
    ByteMessage msg = new ByteMessage(new byte[1024]);
    try {
        Thread.sleep(5000);
        assertEquals("Expecting member count to be equal",mbrlist1.members.size(),mbrlist2.members.size());
        channel1.send(channel1.getMembers(), msg, 0);
    } catch ( ChannelException x ) {
        fail("Message send should have succeeded.");
    }
    channel1.stop(Channel.DEFAULT);
    channel2.stop(Channel.DEFAULT);
}
 
Example #7
Source File: LoadTest.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
@Override
public void messageReceived(Serializable msg, Member mbr){
    if ( receiveStart == 0 ) receiveStart = System.currentTimeMillis();
    if ( debug ) {
        if ( msg instanceof LoadMessage ) {
            printArray(((LoadMessage)msg).getMessage());
        }
    }

    if ( msg instanceof ByteMessage && !(msg instanceof LoadMessage)) {
        LoadMessage tmp = new LoadMessage();
        tmp.setMessage(((ByteMessage)msg).getMessage());
        msg = tmp;
        tmp = null;
    }


    bytesReceived+=((LoadMessage)msg).getMessage().length;
    mBytesReceived+=(((LoadMessage)msg).getMessage().length)/1024f/1024f;
    messagesReceived++;
    if ( (messagesReceived%statsInterval)==0 || (messagesReceived==msgCount)) {
        float bytes = (((LoadMessage)msg).getMessage().length*messagesReceived);
        float seconds = (System.currentTimeMillis()-receiveStart) / 1000f;
        log.info("****RECEIVE STATS-"+Thread.currentThread().getName()+"*****"+
                 "\n\tMessage count :"+(long)messagesReceived+
                 "\n\tMessage/sec   :"+messagesReceived/seconds+
                 "\n\tTotal bytes   :"+(long)bytes+
                 "\n\tTotal mbytes  :"+(long)mBytesReceived+
                 "\n\tTime since 1st:"+seconds+" seconds"+
                 "\n\tBytes/second  :"+(bytes/seconds)+
                 "\n\tMBytes/second :"+(mBytesReceived/seconds)+"\n");

    }
}
 
Example #8
Source File: LoadTest.java    From Tomcat7.0.67 with Apache License 2.0 5 votes vote down vote up
@Override
public void messageReceived(Serializable msg, Member mbr){
    if ( receiveStart == 0 ) receiveStart = System.currentTimeMillis();
    if ( debug ) {
        if ( msg instanceof LoadMessage ) {
            printArray(((LoadMessage)msg).getMessage());
        }
    }

    if ( msg instanceof ByteMessage && !(msg instanceof LoadMessage)) {
        LoadMessage tmp = new LoadMessage();
        tmp.setMessage(((ByteMessage)msg).getMessage());
        msg = tmp;
        tmp = null;
    }


    bytesReceived+=((LoadMessage)msg).getMessage().length;
    mBytesReceived+=(((LoadMessage)msg).getMessage().length)/1024f/1024f;
    messagesReceived++;
    if ( (messagesReceived%statsInterval)==0 || (messagesReceived==msgCount)) {
        float bytes = (((LoadMessage)msg).getMessage().length*messagesReceived);
        float seconds = (System.currentTimeMillis()-receiveStart) / 1000f;
        log.info("****RECEIVE STATS-"+Thread.currentThread().getName()+"*****"+
                 "\n\tMessage count :"+(long)messagesReceived+
                 "\n\tMessage/sec   :"+messagesReceived/seconds+
                 "\n\tTotal bytes   :"+(long)bytes+
                 "\n\tTotal mbytes  :"+(long)mBytesReceived+
                 "\n\tTime since 1st:"+seconds+" seconds"+
                 "\n\tBytes/second  :"+(bytes/seconds)+
                 "\n\tMBytes/second :"+(mBytesReceived/seconds)+"\n");

    }
}
 
Example #9
Source File: LoadTest.java    From tomcatsrc with Apache License 2.0 5 votes vote down vote up
@Override
public void messageReceived(Serializable msg, Member mbr){
    if ( receiveStart == 0 ) receiveStart = System.currentTimeMillis();
    if ( debug ) {
        if ( msg instanceof LoadMessage ) {
            printArray(((LoadMessage)msg).getMessage());
        }
    }

    if ( msg instanceof ByteMessage && !(msg instanceof LoadMessage)) {
        LoadMessage tmp = new LoadMessage();
        tmp.setMessage(((ByteMessage)msg).getMessage());
        msg = tmp;
        tmp = null;
    }


    bytesReceived+=((LoadMessage)msg).getMessage().length;
    mBytesReceived+=(((LoadMessage)msg).getMessage().length)/1024f/1024f;
    messagesReceived++;
    if ( (messagesReceived%statsInterval)==0 || (messagesReceived==msgCount)) {
        float bytes = (((LoadMessage)msg).getMessage().length*messagesReceived);
        float seconds = (System.currentTimeMillis()-receiveStart) / 1000f;
        log.info("****RECEIVE STATS-"+Thread.currentThread().getName()+"*****"+
                 "\n\tMessage count :"+(long)messagesReceived+
                 "\n\tMessage/sec   :"+messagesReceived/seconds+
                 "\n\tTotal bytes   :"+(long)bytes+
                 "\n\tTotal mbytes  :"+(long)mBytesReceived+
                 "\n\tTime since 1st:"+seconds+" seconds"+
                 "\n\tBytes/second  :"+(bytes/seconds)+
                 "\n\tMBytes/second :"+(mBytesReceived/seconds)+"\n");

    }
}
 
Example #10
Source File: GroupChannel.java    From Tomcat8-Source-Read with MIT License 4 votes vote down vote up
/**
 *
 * @param destination Member[] - destination.length > 0
 * @param msg Serializable - the message to send
 * @param options sender options, options can trigger guarantee levels and different
 *                interceptors to react to the message see class documentation for the
 *                <code>Channel</code> object.<br>
 * @param handler - callback object for error handling and completion notification,
 *                  used when a message is sent asynchronously using the
 *                  <code>Channel.SEND_OPTIONS_ASYNCHRONOUS</code> flag enabled.
 * @return UniqueId - the unique Id that was assigned to this message
 * @throws ChannelException - if an error occurs processing the message
 * @see org.apache.catalina.tribes.Channel
 */
@Override
public UniqueId send(Member[] destination, Serializable msg, int options, ErrorHandler handler)
        throws ChannelException {
    if ( msg == null ) throw new ChannelException(sm.getString("groupChannel.nullMessage"));
    XByteBuffer buffer = null;
    try {
        if (destination == null || destination.length == 0) {
            throw new ChannelException(sm.getString("groupChannel.noDestination"));
        }
        ChannelData data = new ChannelData(true);//generates a unique Id
        data.setAddress(getLocalMember(false));
        data.setTimestamp(System.currentTimeMillis());
        byte[] b = null;
        if ( msg instanceof ByteMessage ){
            b = ((ByteMessage)msg).getMessage();
            options = options | SEND_OPTIONS_BYTE_MESSAGE;
        } else {
            b = XByteBuffer.serialize(msg);
            options = options & (~SEND_OPTIONS_BYTE_MESSAGE);
        }
        data.setOptions(options);
        //XByteBuffer buffer = new XByteBuffer(b.length+128,false);
        buffer = BufferPool.getBufferPool().getBuffer(b.length+128, false);
        buffer.append(b,0,b.length);
        data.setMessage(buffer);
        InterceptorPayload payload = null;
        if ( handler != null ) {
            payload = new InterceptorPayload();
            payload.setErrorHandler(handler);
        }
        getFirstInterceptor().sendMessage(destination, data, payload);
        if ( Logs.MESSAGES.isTraceEnabled() ) {
            Logs.MESSAGES.trace("GroupChannel - Sent msg:" + new UniqueId(data.getUniqueId()) +
                    " at " + new java.sql.Timestamp(System.currentTimeMillis()) + " to " +
                    Arrays.toNameString(destination));
            Logs.MESSAGES.trace("GroupChannel - Send Message:" +
                    new UniqueId(data.getUniqueId()) + " is " + msg);
        }

        return new UniqueId(data.getUniqueId());
    } catch (RuntimeException | IOException e) {
        throw new ChannelException(e);
    } finally {
        if ( buffer != null ) BufferPool.getBufferPool().returnBuffer(buffer);
    }
}
 
Example #11
Source File: LoadTest.java    From Tomcat8-Source-Read with MIT License 4 votes vote down vote up
@Override
public boolean accept(Serializable msg, Member mbr){
   return (msg instanceof LoadMessage) || (msg instanceof ByteMessage);
}
 
Example #12
Source File: GroupChannel.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
/**
 *
 * @param destination Member[] - destination.length > 0
 * @param msg Serializable - the message to send
 * @param options int - sender options, options can trigger guarantee levels and different interceptors to
 * react to the message see class documentation for the <code>Channel</code> object.<br>
 * @param handler - callback object for error handling and completion notification, used when a message is
 * sent asynchronously using the <code>Channel.SEND_OPTIONS_ASYNCHRONOUS</code> flag enabled.
 * @return UniqueId - the unique Id that was assigned to this message
 * @throws ChannelException - if an error occurs processing the message
 * @see org.apache.catalina.tribes.Channel
 */
@Override
public UniqueId send(Member[] destination, Serializable msg, int options, ErrorHandler handler) throws ChannelException {
    if ( msg == null ) throw new ChannelException("Cant send a NULL message");
    XByteBuffer buffer = null;
    try {
        if ( destination == null || destination.length == 0) throw new ChannelException("No destination given");
        ChannelData data = new ChannelData(true);//generates a unique Id
        data.setAddress(getLocalMember(false));
        data.setTimestamp(System.currentTimeMillis());
        byte[] b = null;
        if ( msg instanceof ByteMessage ){
            b = ((ByteMessage)msg).getMessage();
            options = options | SEND_OPTIONS_BYTE_MESSAGE;
        } else {
            b = XByteBuffer.serialize(msg);
            options = options & (~SEND_OPTIONS_BYTE_MESSAGE);
        }
        data.setOptions(options);
        //XByteBuffer buffer = new XByteBuffer(b.length+128,false);
        buffer = BufferPool.getBufferPool().getBuffer(b.length+128, false);
        buffer.append(b,0,b.length);
        data.setMessage(buffer);
        InterceptorPayload payload = null;
        if ( handler != null ) {
            payload = new InterceptorPayload();
            payload.setErrorHandler(handler);
        }
        getFirstInterceptor().sendMessage(destination, data, payload);
        if ( Logs.MESSAGES.isTraceEnabled() ) {
            Logs.MESSAGES.trace("GroupChannel - Sent msg:" + new UniqueId(data.getUniqueId()) + " at " +new java.sql.Timestamp(System.currentTimeMillis())+ " to "+Arrays.toNameString(destination));
            Logs.MESSAGES.trace("GroupChannel - Send Message:" + new UniqueId(data.getUniqueId()) + " is " +msg);
        }

        return new UniqueId(data.getUniqueId());
    }catch ( Exception x ) {
        if ( x instanceof ChannelException ) throw (ChannelException)x;
        throw new ChannelException(x);
    } finally {
        if ( buffer != null ) BufferPool.getBufferPool().returnBuffer(buffer);
    }
}
 
Example #13
Source File: LoadTest.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
@Override
public boolean accept(Serializable msg, Member mbr){
   return (msg instanceof LoadMessage) || (msg instanceof ByteMessage);
}
 
Example #14
Source File: GroupChannel.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
/**
 *
 * @param destination Member[] - destination.length > 0
 * @param msg Serializable - the message to send
 * @param options int - sender options, options can trigger guarantee levels and different interceptors to
 * react to the message see class documentation for the <code>Channel</code> object.<br>
 * @param handler - callback object for error handling and completion notification, used when a message is
 * sent asynchronously using the <code>Channel.SEND_OPTIONS_ASYNCHRONOUS</code> flag enabled.
 * @return UniqueId - the unique Id that was assigned to this message
 * @throws ChannelException - if an error occurs processing the message
 * @see org.apache.catalina.tribes.Channel
 */
@Override
public UniqueId send(Member[] destination, Serializable msg, int options, ErrorHandler handler) throws ChannelException {
    if ( msg == null ) throw new ChannelException("Cant send a NULL message");
    XByteBuffer buffer = null;
    try {
        if ( destination == null || destination.length == 0) throw new ChannelException("No destination given");
        ChannelData data = new ChannelData(true);//generates a unique Id
        data.setAddress(getLocalMember(false));
        data.setTimestamp(System.currentTimeMillis());
        byte[] b = null;
        if ( msg instanceof ByteMessage ){
            b = ((ByteMessage)msg).getMessage();
            options = options | SEND_OPTIONS_BYTE_MESSAGE;
        } else {
            b = XByteBuffer.serialize(msg);
            options = options & (~SEND_OPTIONS_BYTE_MESSAGE);
        }
        data.setOptions(options);
        //XByteBuffer buffer = new XByteBuffer(b.length+128,false);
        buffer = BufferPool.getBufferPool().getBuffer(b.length+128, false);
        buffer.append(b,0,b.length);
        data.setMessage(buffer);
        InterceptorPayload payload = null;
        if ( handler != null ) {
            payload = new InterceptorPayload();
            payload.setErrorHandler(handler);
        }
        getFirstInterceptor().sendMessage(destination, data, payload);
        if ( Logs.MESSAGES.isTraceEnabled() ) {
            Logs.MESSAGES.trace("GroupChannel - Sent msg:" + new UniqueId(data.getUniqueId()) + " at " +new java.sql.Timestamp(System.currentTimeMillis())+ " to "+Arrays.toNameString(destination));
            Logs.MESSAGES.trace("GroupChannel - Send Message:" + new UniqueId(data.getUniqueId()) + " is " +msg);
        }

        return new UniqueId(data.getUniqueId());
    }catch ( Exception x ) {
        if ( x instanceof ChannelException ) throw (ChannelException)x;
        throw new ChannelException(x);
    } finally {
        if ( buffer != null ) BufferPool.getBufferPool().returnBuffer(buffer);
    }
}
 
Example #15
Source File: LoadTest.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
@Override
public boolean accept(Serializable msg, Member mbr){
   return (msg instanceof LoadMessage) || (msg instanceof ByteMessage);
}