Java Code Examples for org.apache.catalina.tribes.io.XByteBuffer#createDataPackage()
The following examples show how to use
org.apache.catalina.tribes.io.XByteBuffer#createDataPackage() .
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: McastService.java From Tomcat8-Source-Read with MIT License | 6 votes |
@Override public void broadcast(ChannelMessage message) throws ChannelException { if (impl==null || (impl.startLevel & Channel.MBR_TX_SEQ)!=Channel.MBR_TX_SEQ ) throw new ChannelException(sm.getString("mcastService.noStart")); byte[] data = XByteBuffer.createDataPackage((ChannelData)message); if (data.length>McastServiceImpl.MAX_PACKET_SIZE) { throw new ChannelException(sm.getString("mcastService.exceed.maxPacketSize", Integer.toString(data.length) , Integer.toString(McastServiceImpl.MAX_PACKET_SIZE))); } DatagramPacket packet = new DatagramPacket(data,0,data.length); try { impl.send(false, packet); } catch (Exception x) { throw new ChannelException(x); } }
Example 2
Source File: McastService.java From Tomcat7.0.67 with Apache License 2.0 | 6 votes |
@Override public void broadcast(ChannelMessage message) throws ChannelException { if (impl==null || (impl.startLevel & Channel.MBR_TX_SEQ)!=Channel.MBR_TX_SEQ ) throw new ChannelException("Multicast send is not started or enabled."); byte[] data = XByteBuffer.createDataPackage((ChannelData)message); if (data.length>McastServiceImpl.MAX_PACKET_SIZE) { throw new ChannelException("Packet length["+data.length+"] exceeds max packet size of "+McastServiceImpl.MAX_PACKET_SIZE+" bytes."); } DatagramPacket packet = new DatagramPacket(data,0,data.length); try { impl.send(false, packet); } catch (Exception x) { throw new ChannelException(x); } }
Example 3
Source File: McastService.java From tomcatsrc with Apache License 2.0 | 6 votes |
@Override public void broadcast(ChannelMessage message) throws ChannelException { if (impl==null || (impl.startLevel & Channel.MBR_TX_SEQ)!=Channel.MBR_TX_SEQ ) throw new ChannelException("Multicast send is not started or enabled."); byte[] data = XByteBuffer.createDataPackage((ChannelData)message); if (data.length>McastServiceImpl.MAX_PACKET_SIZE) { throw new ChannelException("Packet length["+data.length+"] exceeds max packet size of "+McastServiceImpl.MAX_PACKET_SIZE+" bytes."); } DatagramPacket packet = new DatagramPacket(data,0,data.length); try { impl.send(false, packet); } catch (Exception x) { throw new ChannelException(x); } }
Example 4
Source File: TcpFailureDetector.java From Tomcat8-Source-Read with MIT License | 5 votes |
protected boolean memberAlive(Member mbr, byte[] msgData, boolean sendTest, boolean readTest, long readTimeout, long conTimeout, int optionFlag) { //could be a shutdown notification if ( Arrays.equals(mbr.getCommand(),Member.SHUTDOWN_PAYLOAD) ) return false; try (Socket socket = new Socket()) { InetAddress ia = InetAddress.getByAddress(mbr.getHost()); InetSocketAddress addr = new InetSocketAddress(ia, mbr.getPort()); socket.setSoTimeout((int)readTimeout); socket.connect(addr, (int) conTimeout); if ( sendTest ) { ChannelData data = new ChannelData(true); data.setAddress(getLocalMember(false)); data.setMessage(new XByteBuffer(msgData,false)); data.setTimestamp(System.currentTimeMillis()); int options = optionFlag | Channel.SEND_OPTIONS_BYTE_MESSAGE; if ( readTest ) options = (options | Channel.SEND_OPTIONS_USE_ACK); else options = (options & (~Channel.SEND_OPTIONS_USE_ACK)); data.setOptions(options); byte[] message = XByteBuffer.createDataPackage(data); socket.getOutputStream().write(message); if ( readTest ) { int length = socket.getInputStream().read(message); return length > 0; } }//end if return true; } catch (SocketTimeoutException | ConnectException | NoRouteToHostException noop) { //do nothing, we couldn't connect } catch (Exception x) { log.error(sm.getString("tcpFailureDetector.failureDetection.failed", mbr),x); } return false; }
Example 5
Source File: SocketNioReceive.java From Tomcat8-Source-Read with MIT License | 5 votes |
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(); } } }
Example 6
Source File: SocketNioReceive.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
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(); } } }
Example 7
Source File: SocketNioReceive.java From tomcatsrc with Apache License 2.0 | 5 votes |
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(); } } }
Example 8
Source File: SocketNioSend.java From Tomcat8-Source-Read with MIT License | 4 votes |
public static void main(String[] args) throws Exception { Selector selector = Selector.open(); Member mbr = new MemberImpl("localhost", 9999, 0); ChannelData data = new ChannelData(); data.setOptions(Channel.SEND_OPTIONS_BYTE_MESSAGE); data.setAddress(mbr); byte[] buf = new byte[8192 * 4]; data.setMessage(new XByteBuffer(buf,false)); buf = XByteBuffer.createDataPackage(data); int len = buf.length; BigDecimal total = new BigDecimal((double)0); BigDecimal bytes = new BigDecimal((double)len); NioSender sender = new NioSender(); sender.setDestination(mbr); sender.setDirectBuffer(true); sender.setSelector(selector); sender.setTxBufSize(1024*1024); sender.connect(); sender.setMessage(buf); System.out.println("Writing to 9999"); long start = 0; double mb = 0; boolean first = true; int count = 0; DecimalFormat df = new DecimalFormat("##.00"); while (count<100000) { if (first) { first = false; start = System.currentTimeMillis(); } sender.setMessage(buf); int selectedKeys = 0; try { selectedKeys = selector.select(0); } catch (Exception e) { e.printStackTrace(); continue; } if (selectedKeys == 0) { continue; } Iterator<SelectionKey> it = selector.selectedKeys().iterator(); while (it.hasNext()) { SelectionKey sk = it.next(); it.remove(); try { int readyOps = sk.readyOps(); sk.interestOps(sk.interestOps() & ~readyOps); if (sender.process(sk, false)) { total = total.add(bytes); sender.reset(); sender.setMessage(buf); mb += ( (double) len) / 1024 / 1024; if ( ( (++count) % 10000) == 0) { long time = System.currentTimeMillis(); double seconds = ( (double) (time - start)) / 1000; System.out.println("Throughput " + df.format(mb / seconds) + " MB/seconds, total "+mb+" MB, total "+total+" bytes."); } } } catch (Throwable t) { t.printStackTrace(); return; } } selector.selectedKeys().clear(); } System.out.println("Complete, sleeping 15 seconds"); Thread.sleep(15000); }
Example 9
Source File: TcpFailureDetector.java From Tomcat7.0.67 with Apache License 2.0 | 4 votes |
protected static boolean memberAlive(Member mbr, byte[] msgData, boolean sendTest, boolean readTest, long readTimeout, long conTimeout, int optionFlag) { //could be a shutdown notification if ( Arrays.equals(mbr.getCommand(),Member.SHUTDOWN_PAYLOAD) ) return false; Socket socket = new Socket(); try { InetAddress ia = InetAddress.getByAddress(mbr.getHost()); InetSocketAddress addr = new InetSocketAddress(ia, mbr.getPort()); socket.setSoTimeout((int)readTimeout); socket.connect(addr, (int) conTimeout); if ( sendTest ) { ChannelData data = new ChannelData(true); data.setAddress(mbr); data.setMessage(new XByteBuffer(msgData,false)); data.setTimestamp(System.currentTimeMillis()); int options = optionFlag | Channel.SEND_OPTIONS_BYTE_MESSAGE; if ( readTest ) options = (options | Channel.SEND_OPTIONS_USE_ACK); else options = (options & (~Channel.SEND_OPTIONS_USE_ACK)); data.setOptions(options); byte[] message = XByteBuffer.createDataPackage(data); socket.getOutputStream().write(message); if ( readTest ) { int length = socket.getInputStream().read(message); return length > 0; } }//end if return true; } catch ( SocketTimeoutException sx) { //do nothing, we couldn't connect } catch ( ConnectException cx) { //do nothing, we couldn't connect }catch (Exception x ) { log.error("Unable to perform failure detection check, assuming member down.",x); } finally { try {socket.close(); } catch ( Exception ignore ){} } return false; }
Example 10
Source File: SocketNioSend.java From Tomcat7.0.67 with Apache License 2.0 | 4 votes |
public static void main(String[] args) throws Exception { Selector selector; synchronized (Selector.class) { // Selector.open() isn't thread safe // http://bugs.sun.com/view_bug.do?bug_id=6427854 // Affects 1.6.0_29, fixed in 1.7.0_01 selector = Selector.open(); } Member mbr = new MemberImpl("localhost", 9999, 0); ChannelData data = new ChannelData(); data.setOptions(Channel.SEND_OPTIONS_BYTE_MESSAGE); data.setAddress(mbr); byte[] buf = new byte[8192 * 4]; data.setMessage(new XByteBuffer(buf,false)); buf = XByteBuffer.createDataPackage(data); int len = buf.length; BigDecimal total = new BigDecimal((double)0); BigDecimal bytes = new BigDecimal((double)len); NioSender sender = new NioSender(); sender.setDestination(mbr); sender.setDirectBuffer(true); sender.setSelector(selector); sender.setTxBufSize(1024*1024); sender.connect(); sender.setMessage(buf); System.out.println("Writing to 9999"); long start = 0; double mb = 0; boolean first = true; int count = 0; DecimalFormat df = new DecimalFormat("##.00"); while (count<100000) { if (first) { first = false; start = System.currentTimeMillis(); } sender.setMessage(buf); int selectedKeys = 0; try { selectedKeys = selector.select(0); } catch (Exception e) { e.printStackTrace(); continue; } if (selectedKeys == 0) { continue; } Iterator<SelectionKey> it = selector.selectedKeys().iterator(); while (it.hasNext()) { SelectionKey sk = it.next(); it.remove(); try { int readyOps = sk.readyOps(); sk.interestOps(sk.interestOps() & ~readyOps); if (sender.process(sk, false)) { total = total.add(bytes); sender.reset(); sender.setMessage(buf); mb += ( (double) len) / 1024 / 1024; if ( ( (++count) % 10000) == 0) { long time = System.currentTimeMillis(); double seconds = ( (double) (time - start)) / 1000; System.out.println("Throughput " + df.format(mb / seconds) + " MB/seconds, total "+mb+" MB, total "+total+" bytes."); } } } catch (Throwable t) { t.printStackTrace(); return; } } selector.selectedKeys().clear(); } System.out.println("Complete, sleeping 15 seconds"); Thread.sleep(15000); }
Example 11
Source File: TcpFailureDetector.java From tomcatsrc with Apache License 2.0 | 4 votes |
protected static boolean memberAlive(Member mbr, byte[] msgData, boolean sendTest, boolean readTest, long readTimeout, long conTimeout, int optionFlag) { //could be a shutdown notification if ( Arrays.equals(mbr.getCommand(),Member.SHUTDOWN_PAYLOAD) ) return false; Socket socket = new Socket(); try { InetAddress ia = InetAddress.getByAddress(mbr.getHost()); InetSocketAddress addr = new InetSocketAddress(ia, mbr.getPort()); socket.setSoTimeout((int)readTimeout); socket.connect(addr, (int) conTimeout); if ( sendTest ) { ChannelData data = new ChannelData(true); data.setAddress(mbr); data.setMessage(new XByteBuffer(msgData,false)); data.setTimestamp(System.currentTimeMillis()); int options = optionFlag | Channel.SEND_OPTIONS_BYTE_MESSAGE; if ( readTest ) options = (options | Channel.SEND_OPTIONS_USE_ACK); else options = (options & (~Channel.SEND_OPTIONS_USE_ACK)); data.setOptions(options); byte[] message = XByteBuffer.createDataPackage(data); socket.getOutputStream().write(message); if ( readTest ) { int length = socket.getInputStream().read(message); return length > 0; } }//end if return true; } catch ( SocketTimeoutException sx) { //do nothing, we couldn't connect } catch ( ConnectException cx) { //do nothing, we couldn't connect }catch (Exception x ) { log.error("Unable to perform failure detection check, assuming member down.",x); } finally { try {socket.close(); } catch ( Exception ignore ){} } return false; }
Example 12
Source File: SocketNioSend.java From tomcatsrc with Apache License 2.0 | 4 votes |
public static void main(String[] args) throws Exception { Selector selector; synchronized (Selector.class) { // Selector.open() isn't thread safe // http://bugs.sun.com/view_bug.do?bug_id=6427854 // Affects 1.6.0_29, fixed in 1.7.0_01 selector = Selector.open(); } Member mbr = new MemberImpl("localhost", 9999, 0); ChannelData data = new ChannelData(); data.setOptions(Channel.SEND_OPTIONS_BYTE_MESSAGE); data.setAddress(mbr); byte[] buf = new byte[8192 * 4]; data.setMessage(new XByteBuffer(buf,false)); buf = XByteBuffer.createDataPackage(data); int len = buf.length; BigDecimal total = new BigDecimal((double)0); BigDecimal bytes = new BigDecimal((double)len); NioSender sender = new NioSender(); sender.setDestination(mbr); sender.setDirectBuffer(true); sender.setSelector(selector); sender.setTxBufSize(1024*1024); sender.connect(); sender.setMessage(buf); System.out.println("Writing to 9999"); long start = 0; double mb = 0; boolean first = true; int count = 0; DecimalFormat df = new DecimalFormat("##.00"); while (count<100000) { if (first) { first = false; start = System.currentTimeMillis(); } sender.setMessage(buf); int selectedKeys = 0; try { selectedKeys = selector.select(0); } catch (Exception e) { e.printStackTrace(); continue; } if (selectedKeys == 0) { continue; } Iterator<SelectionKey> it = selector.selectedKeys().iterator(); while (it.hasNext()) { SelectionKey sk = it.next(); it.remove(); try { int readyOps = sk.readyOps(); sk.interestOps(sk.interestOps() & ~readyOps); if (sender.process(sk, false)) { total = total.add(bytes); sender.reset(); sender.setMessage(buf); mb += ( (double) len) / 1024 / 1024; if ( ( (++count) % 10000) == 0) { long time = System.currentTimeMillis(); double seconds = ( (double) (time - start)) / 1000; System.out.println("Throughput " + df.format(mb / seconds) + " MB/seconds, total "+mb+" MB, total "+total+" bytes."); } } } catch (Throwable t) { t.printStackTrace(); return; } } selector.selectedKeys().clear(); } System.out.println("Complete, sleeping 15 seconds"); Thread.sleep(15000); }