/** try to recover gossip state from another locator */ private boolean recover(String address, int serverPort) { // Contact existing locator first to find out all members in system. GossipClient gc = new GossipClient( new IpAddress(address, serverPort), 20000); List info = gc.getMembers(CHANNEL_NAME, (Address)null, false, 15000); if (gc.getResponsiveServerCount() > 0) { List mbrs = new VersionedEntryList(info.size()); for (int i=0; i<info.size(); i++) { mbrs.add(new LocatorEntry((Address)info.get(i))); } // GemStoneAddition (comment) // Note that CacheCleaner has not yet started, so it is // not necessary to synchronize this update. groups.put(CHANNEL_NAME, mbrs); log.getLogWriter().info(ExternalStrings.GossipServer_INITIAL_DISCOVERY_SET_IS_0, mbrs); processLocators(log, locators, gc.getGossip_servers()); return true; } return false; }
@Override // GemStoneAddition public void handleConnect() { if(client != null) client.register(group_addr, local_addr, 0, false); }
/** Returns all members of a given group @param group The group name @return Vector A list of Addresses */ public Vector getMembers(String group ,Address localAddress, boolean logErrors, long connectTimeout) { // GemStoneAddition if(group == null) { if(log.isErrorEnabled()) log.error(ExternalStrings.GossipClient_GROUP_IS_NULL); return null; } this.timeout = (int)Math.min(Integer.MAX_VALUE, connectTimeout); return _getMembers(group, /* GemStoneAddition */localAddress, logErrors); //return _getMembers(group); }
@Override // GemStoneAddition public void start() throws Exception { super.start(); if(gossip_client == null) { gossip_client=new GossipClient(initial_hosts, gossip_refresh_rate, this.stack); gossip_client.setTimeout((int)this.timeout); } }
private void doGossip() throws Exception { final GossipClient client = new GossipClient(new IpAddress(InetAddress.getLocalHost(), port), 500); client.register("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55),5000, false); WaitCriterion ev = new WaitCriterion() { public boolean done() { try { Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); // System.out.println("members in mygroup1: " + members); return members.size() == 2; // changed to 2 for 7.5 release because locator is included in all groups } catch (Exception e) { e.printStackTrace(); fail("unexpected exception"); } return false; // NOTREACHED } public String description() { return null; } }; DistributedTestBase.waitForCriterion(ev, 1 * 1000, 200, true); Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); Assert.assertEquals(new IpAddress(InetAddress.getLocalHost(), 55), members.get(0)); }
usage(); return; continue; usage(); return; gossip_client=new GossipClient(gossip_hosts, expiry, null); if(register) { System.out.println("Registering " + register_group + " --> " + register_host + ':' + register_port); gossip_client.register(register_group, new IpAddress(register_host, register_port), 0, false); mbrs=gossip_client.getMembers(get_group, null, true, 0); System.out.println("Members for group " + get_group + " are " + mbrs); gossip_client.stop();
tmp_mbrs=client.getMembers(group_addr, local_addr, true, this.timeout); // GemStoneAddition - send local addr on get while (gossip_client != null && client.getResponsiveServerCount() == 0 || tmp_mbrs == null || tmp_mbrs.size() == 0) { tmp_mbrs=client.getMembers(group_addr, local_addr, true, timeout); if (client.getResponsiveServerCount() == 0) { RuntimeException re = stack.gfBasicFunctions.getGemFireConfigException( "Unable to contact a Locator service (timeout=" + timeout + Set<Address> serverAddresses = client.getServerAddresses(); if (client.getFloatingCoordinatorDisabled()) { passUp(new Event(Event.FLOATING_COORDINATOR_DISABLED, null)); if (client.getNetworkPartitionDetectionEnabled() != splitBrainDetectionEnabled) { if (!splitBrainDetectionEnabled) { splitBrainDetectionEnabled = true; } else { throw stack.gfBasicFunctions.getGemFireConfigException("Locator has enable-network-partition-detection=" + client.getNetworkPartitionDetectionEnabled() +" but this member has enable-network-partition-detection=" + splitBrainDetectionEnabled); if (client.getNetworkPartitionDetectionEnabled()) { stack.gfBasicFunctions.checkDisableDNS(); if (client.getServerDistributedSystemCount() == 0) {
final GossipClient client2 = new GossipClient(new IpAddress(InetAddress.getLocalHost(), port1), 500); Vector<IpAddress> members = client2.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), port1), true, 5000); Assert.assertEquals(2, members.size());
public boolean done() { try { Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true, 5000); return members.size() == 1; } catch (Exception e) { e.printStackTrace(); fail("unexpected exception"); } return false; // NOTREACHED } public String description() {
client=new GossipClient(new IpAddress(InetAddress.getByName(gossip_host), gossip_port), gossip_refresh);
_register(group, mbr); // update entry in GossipServer
public void _testPeerOnly() throws Exception { locator = Locator.startLocator(port, tmpFile); Assert.assertEquals(locator, Locator.getLocators().iterator().next()); Thread.sleep(1000); final GossipClient client = new GossipClient(new IpAddress(InetAddress.getLocalHost(), port), 500); client.register("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55),5000, false); WaitCriterion ev = new WaitCriterion() { public boolean done() { try { Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); return members.size() == 1; } catch (Exception e) { e.printStackTrace(); fail("unexpected exception"); } return false; // NOTREACHED } public String description() { return null; } }; DistributedTestBase.waitForCriterion(ev, 1000, 200, true); Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); Assert.assertEquals(1, members.size()); Assert.assertEquals(new IpAddress(InetAddress.getLocalHost(), 55), members.get(0)); }
public boolean done() { try { Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); return members.size() == 1; } catch (Exception e) { e.printStackTrace(); fail("unexpected exception"); } return false; // NOTREACHED } public String description() {
final GossipClient client = new GossipClient(new IpAddress(InetAddress.getLocalHost(), port1), 500); client.register("mygroup1", new IpAddress(InetAddress.getLocalHost(), port1), 5000, false); Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), port0), true, 5000); Assert.assertEquals(2, members.size()); Assert.assertTrue(members.contains(new IpAddress(InetAddress.getLocalHost(), port0)));
public boolean done() { try { Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true, 5000); return members.size() == 1; } catch (Exception e) { e.printStackTrace(); fail("unexpected exception"); } return false; // NOTREACHED } public String description() {
@Override // GemStoneAddition public void handleConnectOK() { if(group_addr == null || local_addr == null) { if(log.isErrorEnabled()) log.error("[CONNECT_OK]: group_addr or local_addr is null. " + "cannot register with GossipServer(s)"); } else { gossip_client.register(group_addr, local_addr, timeout, true); // GemStone - timeout, stack & inhibit registration } }
Thread.sleep(1000); final GossipClient client = new GossipClient(new IpAddress(InetAddress.getLocalHost(), port), 500); client.register("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), 5000, false); Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); Assert.assertEquals(1, members.size()); Assert.assertEquals(new IpAddress(InetAddress.getLocalHost(), 55), members.get(0)); final GossipClient client2 = new GossipClient(new IpAddress(InetAddress.getLocalHost(), port), 500); members = client2.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); Assert.assertEquals(1, members.size()); Assert.assertEquals(new IpAddress(InetAddress.getLocalHost(), 55), members.get(0));
public boolean done() { try { Vector members = client.getMembers("mygroup1", new IpAddress(InetAddress.getLocalHost(), 55), true,5000); // System.out.println("members in mygroup1: " + members); return members.size() == 2; // changed to 2 for 7.5 release because locator is included in all groups } catch (Exception e) { e.printStackTrace(); fail("unexpected exception"); } return false; // NOTREACHED } public String description() {