Search in sources :

Example 6 with ChannelData

use of org.apache.catalina.tribes.io.ChannelData in project tomcat by apache.

the class StaticMembershipInterceptor method sendMemberMessage.

protected void sendMemberMessage(Member[] members, byte[] message) throws ChannelException {
    if (members == null || members.length == 0)
        return;
    ChannelData data = new ChannelData(true);
    data.setAddress(getLocalMember(false));
    data.setTimestamp(System.currentTimeMillis());
    data.setOptions(getOptionFlag());
    data.setMessage(new XByteBuffer(message, false));
    super.sendMessage(members, data, null);
}
Also used : XByteBuffer(org.apache.catalina.tribes.io.XByteBuffer) ChannelData(org.apache.catalina.tribes.io.ChannelData)

Example 7 with ChannelData

use of org.apache.catalina.tribes.io.ChannelData in project tomcat by apache.

the class NonBlockingCoordinator method createData.

public ChannelData createData(CoordinationMessage msg, Member local) {
    msg.write();
    ChannelData data = new ChannelData(true);
    data.setAddress(local);
    data.setMessage(msg.getBuffer());
    data.setOptions(Channel.SEND_OPTIONS_USE_ACK);
    data.setTimestamp(System.currentTimeMillis());
    return data;
}
Also used : ChannelData(org.apache.catalina.tribes.io.ChannelData)

Example 8 with ChannelData

use of org.apache.catalina.tribes.io.ChannelData in project tomcat by apache.

the class McastServiceImpl method memberBroadcastsReceived.

private void memberBroadcastsReceived(final byte[] b) {
    if (log.isTraceEnabled())
        log.trace("Mcast received broadcasts.");
    XByteBuffer buffer = new XByteBuffer(b, true);
    if (buffer.countPackages(true) > 0) {
        int count = buffer.countPackages();
        final ChannelData[] data = new ChannelData[count];
        for (int i = 0; i < count; i++) {
            try {
                data[i] = buffer.extractPackage(true);
            } catch (IllegalStateException ise) {
                log.debug("Unable to decode message.", ise);
            }
        }
        Runnable t = new Runnable() {

            @Override
            public void run() {
                String name = Thread.currentThread().getName();
                try {
                    Thread.currentThread().setName("Membership-MemberAdded.");
                    for (int i = 0; i < data.length; i++) {
                        try {
                            if (data[i] != null && !member.equals(data[i].getAddress())) {
                                msgservice.messageReceived(data[i]);
                            }
                        } catch (Throwable t) {
                            if (t instanceof ThreadDeath) {
                                throw (ThreadDeath) t;
                            }
                            if (t instanceof VirtualMachineError) {
                                throw (VirtualMachineError) t;
                            }
                            log.error(sm.getString("mcastServiceImpl.unableReceive.broadcastMessage"), t);
                        }
                    }
                } finally {
                    Thread.currentThread().setName(name);
                }
            }
        };
        executor.execute(t);
    }
}
Also used : XByteBuffer(org.apache.catalina.tribes.io.XByteBuffer) ChannelData(org.apache.catalina.tribes.io.ChannelData)

Example 9 with ChannelData

use of org.apache.catalina.tribes.io.ChannelData in project tomcat by apache.

the class NioSenderTest method getMessage.

public synchronized ChannelData getMessage(Member mbr) {
    String msg = "Thread-" + Thread.currentThread().getName() + " Message:" + inc();
    ChannelData data = new ChannelData(true);
    data.setMessage(new XByteBuffer(msg.getBytes(), false));
    data.setAddress(mbr);
    return data;
}
Also used : XByteBuffer(org.apache.catalina.tribes.io.XByteBuffer) ChannelData(org.apache.catalina.tribes.io.ChannelData)

Example 10 with ChannelData

use of org.apache.catalina.tribes.io.ChannelData in project tomcat by apache.

the class SocketNioReceive method main.

public static void main(String[] args) throws Exception {
    Member mbr = new MemberImpl("localhost", 9999, 0);
    ChannelData data = new ChannelData();
    data.setAddress(mbr);
    byte[] buf = new byte[8192 * 4];
    data.setMessage(new XByteBuffer(buf, false));
    buf = XByteBuffer.createDataPackage(data);
    len = buf.length;
    NioReceiver receiver = new NioReceiver();
    receiver.setPort(9999);
    receiver.setHost("localhost");
    MyList list = new MyList();
    receiver.setMessageListener(list);
    receiver.start();
    System.out.println("Listening on 9999");
    while (true) {
        try {
            synchronized (mutex) {
                mutex.wait(5000);
                if (start != 0) {
                    System.out.println("Throughput " + df.format(mb / seconds) + " MB/seconds, messages " + count + " accepts " + accept + ", total " + mb + " MB.");
                }
            }
        } catch (Throwable x) {
            x.printStackTrace();
        }
    }
}
Also used : XByteBuffer(org.apache.catalina.tribes.io.XByteBuffer) NioReceiver(org.apache.catalina.tribes.transport.nio.NioReceiver) ChannelData(org.apache.catalina.tribes.io.ChannelData) MemberImpl(org.apache.catalina.tribes.membership.MemberImpl) Member(org.apache.catalina.tribes.Member)

Aggregations

ChannelData (org.apache.catalina.tribes.io.ChannelData)10 XByteBuffer (org.apache.catalina.tribes.io.XByteBuffer)9 ChannelException (org.apache.catalina.tribes.ChannelException)3 Member (org.apache.catalina.tribes.Member)3 MemberImpl (org.apache.catalina.tribes.membership.MemberImpl)3 BigDecimal (java.math.BigDecimal)2 Socket (java.net.Socket)2 DecimalFormat (java.text.DecimalFormat)2 RemoteProcessException (org.apache.catalina.tribes.RemoteProcessException)2 OutputStream (java.io.OutputStream)1 ConnectException (java.net.ConnectException)1 InetAddress (java.net.InetAddress)1 InetSocketAddress (java.net.InetSocketAddress)1 SocketTimeoutException (java.net.SocketTimeoutException)1 SelectionKey (java.nio.channels.SelectionKey)1 Selector (java.nio.channels.Selector)1 ByteMessage (org.apache.catalina.tribes.ByteMessage)1 UniqueId (org.apache.catalina.tribes.UniqueId)1 NioReceiver (org.apache.catalina.tribes.transport.nio.NioReceiver)1 NioSender (org.apache.catalina.tribes.transport.nio.NioSender)1