/** * Sends all messages in the map. Messages for the same destination are bundled into a message list. * The map will be cleared when done. */ @GuardedBy("lock") protected void sendBundledMessages() { for(Map.Entry<Address,List<Message>> entry: msgs.entrySet()) { List<Message> list=entry.getValue(); if(list.isEmpty()) continue; output.position(0); if(list.size() == 1) sendSingleMessage(list.get(0)); else { Address dst=entry.getKey(); sendMessageList(dst, list.get(0).getSrc(), list); if(transport.statsEnabled()) transport.incrBatchesSent(1); } } clearMessages(); count=0; }
protected void _sendBundledMessages() { try { if(target_list.isEmpty()) return; output.position(0); if(target_list.size() == 1) { sendSingleMessage(target_list.get(0)); // avg_batch_size.add(1); } else { avg_batch_size.add(target_list.size()); sendMessageList(target_dest, target_list.get(0).getSrc(), target_list); if(transport.statsEnabled()) transport.incrBatchesSent(1); } } finally { target_list.clear(); count=0; } }
/** * Removes messages with flags DONT_BUNDLE and OOB set and executes them in the oob or internal thread pool. JGRP-1737 */ protected void removeAndDispatchNonBundledMessages(MessageBatch oob_batch) { if(oob_batch == null) return; AsciiString tmp=oob_batch.clusterName(); byte[] cname=tmp != null? tmp.chars() : null; for(Iterator<Message> it=oob_batch.iterator(); it.hasNext();) { Message msg=it.next(); if(msg.isFlagSet(Message.Flag.DONT_BUNDLE) && msg.isFlagSet(Message.Flag.OOB)) { boolean internal=msg.isFlagSet(Message.Flag.INTERNAL); it.remove(); if(tp.statsEnabled()) tp.getMessageStats().incrNumOOBMsgsReceived(1); tp.submitToThreadPool(new SingleMessageHandlerWithClusterName(msg, cname), internal); } } }
protected void sendSingleMessage(final Message msg) { Address dest=msg.getDest(); try { Util.writeMessage(msg, output, dest == null); transport.doSend(output.buffer(), 0, output.position(), dest); if(transport.statsEnabled()) transport.incrNumSingleMsgsSent(1); } catch(SocketException | SocketTimeoutException sock_ex) { log.trace(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), sock_ex.toString(), msg.printHeaders()); } catch(Throwable e) { log.error(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), e.toString(), msg.printHeaders()); } }
protected void sendSingleMessage(final Message msg, final ByteArrayDataOutputStream output) { Address dest=msg.getDest(); try { output.position(0); Util.writeMessage(msg, output, dest == null); transport.doSend(output.buffer(), 0, output.position(), dest); if(transport.statsEnabled()) transport.incrNumSingleMsgsSent(1); } catch(SocketException | SocketTimeoutException sock_ex) { log.trace(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), sock_ex.toString(), msg.printHeaders()); } catch(Throwable e) { log.error(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), e.toString(), msg.printHeaders()); } }
public void run() { Address dest=msg.getDest(); boolean multicast=dest == null; try { if(tp.statsEnabled()) { MsgStats msg_stats=tp.getMessageStats(); if(msg.isFlagSet(Message.Flag.OOB)) msg_stats.incrNumOOBMsgsReceived(1); else if(msg.isFlagSet(Message.Flag.INTERNAL)) msg_stats.incrNumInternalMsgsReceived(1); else msg_stats.incrNumMsgsReceived(1); msg_stats.incrNumBytesReceived(msg.getLength()); } byte[] cname=getClusterName(); tp.passMessageUp(msg, cname, true, multicast, true); } catch(Throwable t) { log.error(Util.getMessage("PassUpFailure"), t); } }
public void run() { if(batch == null || (!batch.multicast() && tp.unicastDestMismatch(batch.dest()))) return; if(tp.statsEnabled()) { int batch_size=batch.size(); MsgStats msg_stats=tp.getMessageStats(); if(batch.getMode() == MessageBatch.Mode.OOB) msg_stats.incrNumOOBMsgsReceived(batch_size); else if(batch.getMode() == MessageBatch.Mode.INTERNAL) msg_stats.incrNumInternalMsgsReceived(batch_size); else msg_stats.incrNumMsgsReceived(batch_size); msg_stats.incrNumBatchesReceived(1); msg_stats.incrNumBytesReceived(batch.length()); tp.avgBatchSize().add(batch_size); } passBatchUp(); }
if(transport.statsEnabled()) transport.incrBatchesSent(num_msgs);
if(transport.statsEnabled()) transport.incrBatchesSent(num_msgs);
if(transport.statsEnabled()) transport.incrBatchesSent(num_msgs);
protected void _sendBundledMessages() { try { if(target_list.isEmpty()) return; output.position(0); if(target_list.size() == 1) { sendSingleMessage(target_list.get(0)); // avg_batch_size.add(1); } else { avg_batch_size.add(target_list.size()); sendMessageList(target_dest, target_list.get(0).getSrc(), target_list); if(transport.statsEnabled()) transport.incrBatchesSent(1); } } finally { target_list.clear(); count=0; } }
/** * Sends all messages in the map. Messages for the same destination are bundled into a message list. * The map will be cleared when done. */ @GuardedBy("lock") protected void sendBundledMessages() { for(Map.Entry<Address,List<Message>> entry: msgs.entrySet()) { List<Message> list=entry.getValue(); if(list.isEmpty()) continue; output.position(0); if(list.size() == 1) sendSingleMessage(list.get(0)); else { Address dst=entry.getKey(); sendMessageList(dst, list.get(0).getSrc(), list); if(transport.statsEnabled()) transport.incrBatchesSent(1); } } clearMessages(); count=0; }
/** * Removes messages with flags DONT_BUNDLE and OOB set and executes them in the oob or internal thread pool. JGRP-1737 */ protected void removeAndDispatchNonBundledMessages(MessageBatch oob_batch) { if(oob_batch == null) return; AsciiString tmp=oob_batch.clusterName(); byte[] cname=tmp != null? tmp.chars() : null; for(Iterator<Message> it=oob_batch.iterator(); it.hasNext();) { Message msg=it.next(); if(msg.isFlagSet(Message.Flag.DONT_BUNDLE) && msg.isFlagSet(Message.Flag.OOB)) { boolean internal=msg.isFlagSet(Message.Flag.INTERNAL); it.remove(); if(tp.statsEnabled()) tp.getMessageStats().incrNumOOBMsgsReceived(1); tp.submitToThreadPool(new SingleMessageHandlerWithClusterName(msg, cname), internal); } } }
protected void sendSingleMessage(final Message msg) { Address dest=msg.getDest(); try { Util.writeMessage(msg, output, dest == null); transport.doSend(output.buffer(), 0, output.position(), dest); if(transport.statsEnabled()) transport.incrNumSingleMsgsSent(1); } catch(SocketException | SocketTimeoutException sock_ex) { log.trace(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), sock_ex.toString(), msg.printHeaders()); } catch(Throwable e) { log.error(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), e.toString(), msg.printHeaders()); } }
protected void sendSingleMessage(final Message msg, final ByteArrayDataOutputStream output) { Address dest=msg.getDest(); try { output.position(0); Util.writeMessage(msg, output, dest == null); transport.doSend(output.buffer(), 0, output.position(), dest); if(transport.statsEnabled()) transport.incrNumSingleMsgsSent(1); } catch(SocketException | SocketTimeoutException sock_ex) { log.trace(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), sock_ex.toString(), msg.printHeaders()); } catch(Throwable e) { log.error(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), e.toString(), msg.printHeaders()); } }
public void run() { Address dest=msg.getDest(); boolean multicast=dest == null; try { if(tp.statsEnabled()) { MsgStats msg_stats=tp.getMessageStats(); if(msg.isFlagSet(Message.Flag.OOB)) msg_stats.incrNumOOBMsgsReceived(1); else if(msg.isFlagSet(Message.Flag.INTERNAL)) msg_stats.incrNumInternalMsgsReceived(1); else msg_stats.incrNumMsgsReceived(1); msg_stats.incrNumBytesReceived(msg.getLength()); } byte[] cname=getClusterName(); tp.passMessageUp(msg, cname, true, multicast, true); } catch(Throwable t) { log.error(Util.getMessage("PassUpFailure"), t); } }
public void run() { if(batch == null || (!batch.multicast() && tp.unicastDestMismatch(batch.dest()))) return; if(tp.statsEnabled()) { int batch_size=batch.size(); MsgStats msg_stats=tp.getMessageStats(); if(batch.getMode() == MessageBatch.Mode.OOB) msg_stats.incrNumOOBMsgsReceived(batch_size); else if(batch.getMode() == MessageBatch.Mode.INTERNAL) msg_stats.incrNumInternalMsgsReceived(batch_size); else msg_stats.incrNumMsgsReceived(batch_size); msg_stats.incrNumBatchesReceived(1); msg_stats.incrNumBytesReceived(batch.length()); tp.avgBatchSize().add(batch_size); } passBatchUp(); }
if(transport.statsEnabled()) transport.incrBatchesSent(num_msgs);
if(transport.statsEnabled()) transport.incrBatchesSent(num_msgs);
if(transport.statsEnabled()) transport.incrBatchesSent(num_msgs);