public void start() throws Exception { int c; channel = new JChannel(); channel.connect("PullPushTestMux"); adapter = new PullPushAdapter(channel); adapter.setListener(this); listeners = new MyListener[10]; for (int i = 0; i < listeners.length; i++) { listeners[i] = new MyListener(i, adapter); } while ((c = choice()) != 'q') { c -= 48; if (c < 0 || c > 9) { System.err.println("Choose between 0 and 9"); continue; } if (c == 0) adapter.send(new Message(null, null, "Message from default message listener")); else listeners[c].sendMessage(); } channel.close(); System.exit(0); }
@Override public synchronized void start() throws Exception { String clusterName = clusteringConfiguration.getClusterName(); if (clusterName == null) { throw new IllegalStateException(BusI18n.clusterNameRequired.text()); } if (channel != null) { // Disconnect from any previous channel ... channel.removeChannelListener(listener); channel.setReceiver(null); } // Create the new channel by calling the delegate method ... channel = newChannel(); // Add a listener through which we'll know what's going on within the cluster ... channel.addChannelListener(listener); // Set the receiver through which we'll receive all of the changes ... channel.setReceiver(receiver); // Now connect to the cluster ... channel.connect(clusterName); // start the delegate delegate.start(); }
protected void startJGroupsChannelIfNeeded() { if (startChannel) { String clusterName = configuration.getClusterName(); try { channel.connect(clusterName); } catch (Exception e) { throw new CacheException("Unable to start JGroups Channel", e); } try { // Normally this would be done by CacheManagerJmxRegistration but // the channel is not started when the cache manager starts but // when first cache starts, so it's safer to do it here. globalStatsEnabled = configuration.isExposeGlobalJmxStatistics(); if (globalStatsEnabled) { String groupName = String.format("type=channel,cluster=%s", ObjectName.quote(clusterName)); mbeanServer = JmxUtil.lookupMBeanServer(configuration); domain = JmxUtil.buildJmxDomain(configuration, mbeanServer, groupName); JmxConfigurator.registerChannel( (JChannel) channel, mbeanServer, domain, clusterName, true); } } catch (Exception e) { throw new CacheException("Channel connected, but unable to register MBeans", e); } } address = fromJGroupsAddress(channel.getAddress()); if (!startChannel) { // the channel was already started externally, we need to initialize our member list viewAccepted(channel.getView()); } if (log.isInfoEnabled()) log.localAndPhysicalAddress(getAddress(), getPhysicalAddresses()); }
public void testSequentialFlushInvocation() throws Exception { Channel a = null, b = null, c = null; try { a = createChannel(true, 3, "A"); a.connect("testSequentialFlushInvocation"); b = createChannel((JChannel) a, "B"); b.connect("testSequentialFlushInvocation"); c = createChannel((JChannel) a, "C"); c.connect("testSequentialFlushInvocation"); Util.waitUntilAllChannelsHaveSameSize(10000, 1000, a, b, c); for (int i = 0; i < 100; i++) { System.out.print("flush #" + i + ": "); a.startFlush(false); a.stopFlush(); System.out.println("OK"); } } finally { Util.close(a, b, c); } }
@BeforeClass protected void setUp() throws Exception { channel = createChannel(true); disp = new RpcDispatcher(channel, this); channel.connect(getUniqueClusterName("RpcDispatcherUnicastMethodExceptionTest")); }