use of org.apache.catalina.tribes.Member in project tomcat70 by apache.
the class SimpleTcpCluster method messageReceived.
public void messageReceived(ClusterMessage message) {
if (log.isDebugEnabled() && message != null)
log.debug("Assuming clocks are synched: Replication for " + message.getUniqueId() + " took=" + (System.currentTimeMillis() - (message).getTimestamp()) + " ms.");
// invoke all the listeners
boolean accepted = false;
if (message != null) {
for (Iterator<ClusterListener> iter = clusterListeners.iterator(); iter.hasNext(); ) {
ClusterListener listener = iter.next();
if (listener.accept(message)) {
accepted = true;
listener.messageReceived(message);
}
}
if (!accepted && notifyLifecycleListenerOnFailure) {
Member dest = message.getAddress();
// Notify our interested LifecycleListeners
fireLifecycleEvent(RECEIVE_MESSAGE_FAILURE_EVENT, new SendMessageData(message, dest, null));
if (log.isDebugEnabled()) {
log.debug("Message " + message.toString() + " from type " + message.getClass().getName() + " transfered but no listener registered");
}
}
}
return;
}
use of org.apache.catalina.tribes.Member in project tomcat70 by apache.
the class TestNonBlockingCoordinator method testCoord1.
@Test
public void testCoord1() throws Exception {
int expectedCount = channels[0].getMembers().length;
for (int i = 1; i < CHANNEL_COUNT; i++) {
Assert.assertEquals("Message count expected to be equal.", expectedCount, channels[i].getMembers().length);
}
Member member = coordinators[0].getCoordinator();
int cnt = 0;
while (member == null && (cnt++ < 100)) {
try {
Thread.sleep(100);
member = coordinators[0].getCoordinator();
} catch (Exception x) {
/* Ignore */
}
}
for (int i = 0; i < CHANNEL_COUNT; i++) {
Assert.assertEquals(member, coordinators[i].getCoordinator());
}
System.out.println("Coordinator[1] is:" + member);
}
use of org.apache.catalina.tribes.Member in project tomcat70 by apache.
the class TestNonBlockingCoordinator method testCoord2.
@Test
public void testCoord2() throws Exception {
Member member = coordinators[1].getCoordinator();
System.out.println("Coordinator[2a] is:" + member);
int index = -1;
for (int i = 0; i < CHANNEL_COUNT; i++) {
if (channels[i].getLocalMember(false).equals(member)) {
System.out.println("Shutting down:" + channels[i].getLocalMember(true).toString());
channels[i].stop(Channel.DEFAULT);
index = i;
}
}
int dead = index;
Thread.sleep(1000);
if (index == 0) {
index = 1;
} else {
index = 0;
}
System.out.println("Member count:" + channels[index].getMembers().length);
member = coordinators[index].getCoordinator();
for (int i = 1; i < CHANNEL_COUNT; i++) {
if (i != dead) {
Assert.assertEquals(member, coordinators[i].getCoordinator());
}
}
System.out.println("Coordinator[2b] is:" + member);
}
use of org.apache.catalina.tribes.Member in project tomcat70 by apache.
the class TestMulticastPackages method testDataSendASYNCM.
@Test
public void testDataSendASYNCM() throws Exception {
final AtomicInteger counter = new AtomicInteger(0);
ReceiverBase rb1 = (ReceiverBase) channel1.getChannelReceiver();
ReceiverBase rb2 = (ReceiverBase) channel2.getChannelReceiver();
rb1.setUdpRxBufSize(1024 * 1024 * 10);
rb2.setUdpRxBufSize(1024 * 1024 * 10);
rb1.setUdpTxBufSize(1024 * 1024 * 10);
rb2.setUdpTxBufSize(1024 * 1024 * 10);
System.err.println("Starting NO_ACK");
Thread[] threads = new Thread[threadCount];
for (int x = 0; x < threads.length; x++) {
threads[x] = new Thread() {
@Override
public void run() {
try {
long start = System.currentTimeMillis();
for (int i = 0; i < msgCount; i++) {
int cnt = counter.getAndAdd(1);
channel1.send(new Member[] { channel2.getLocalMember(false) }, Data.createRandomData(1024, cnt), Channel.SEND_OPTIONS_MULTICAST | Channel.SEND_OPTIONS_ASYNCHRONOUS);
// Thread.currentThread().sleep(10);
}
System.out.println("Thread[" + this.getName() + "] sent " + msgCount + " messages in " + (System.currentTimeMillis() - start) + " ms.");
} catch (Exception x) {
x.printStackTrace();
return;
}
}
};
}
for (int x = 0; x < threads.length; x++) {
threads[x].start();
}
for (int x = 0; x < threads.length; x++) {
threads[x].join();
}
// sleep for 50 sec, let the other messages in
long start = System.currentTimeMillis();
while ((System.currentTimeMillis() - start) < 25000 && msgCount * threadCount != listener1.count.get()) Thread.sleep(500);
System.err.println("Finished NO_ACK [" + listener1.count + "]");
System.out.println("Sent " + counter.get() + " messages. Received " + listener1.count + " Highest msg received:" + listener1.maxIdx);
System.out.print("Missing messages:");
printMissingMsgs(listener1.nrs, counter.get());
Assert.assertEquals("Checking success messages.", msgCount * threadCount, listener1.count.get());
}
use of org.apache.catalina.tribes.Member in project tomcat70 by apache.
the class TestOrderInterceptor method testOrder1.
@Test
public void testOrder1() throws Exception {
Member[] dest = channels[0].getMembers();
final AtomicInteger value = new AtomicInteger(0);
for (int i = 0; i < 100; i++) {
channels[0].send(dest, Integer.valueOf(value.getAndAdd(1)), 0);
}
Thread.sleep(5000);
for (int i = 0; i < test.length; i++) {
Assert.assertFalse(test[i].fail);
}
}
Aggregations