Problema

Especificar os localizadores TCP adicionais usando o argumento JVM "-Dlocators" não resulta no reconhecimento dos localizadores TCP.

Por exemplo, se você iniciar os Localizadores TCP usando a seguinte linha no "startlocator.bat":

java -cp .\gemfire.jar com.gemstone.gemfire.internal.SystemAdmin start-locator -port=%port% -address=%bindaddr% -Djava.io.tmpdir=%TEMPDIR% -Dgemfire.log-file=GFLocator.log -Dgemfire.license-type=production -Dgemfire.license-file=gemfireLicense.zip -Dlocator=10.131.96.64[22345],10.131.96.217[22345]

Em seguida, o "GFLocator.log" ainda mostrará um nó e indicará que não há outro Gerenciador de Distribuição:

...

[info 2015/02/10 12:27:15.933 CET tid=0x1] GemFire P2P Listener started on tcp:///10.131.96.64:63464

[config 2015/02/10 12:27:21.152 CET tid=0x1] This member, 10.131.96.64:30179, is becoming group coordinator.

[info 2015/02/10 12:27:21.152 CET tid=0x1] Entered into membership in group GF6.5.1.35 with ID 10.131.96.64(:admin):30179/63464.

[info 2015/02/10 12:27:21.152 CET tid=0x1] Starting DistributionManager 10.131.96.64(:admin):30179/63464.

[info 2015/02/10 12:27:21.152 CET tid=0x1] Initial (membershipManager) view = [10.131.96.64(:admin):30179/63464]

[info 2015/02/10 12:27:21.152 CET tid=0x1] DMMembership: Admitting new administration member < 10.131.96.64(:admin):30179/63464 >.

[info 2015/02/10 12:27:21.152 CET tid=0x1] Não recebe resposta de qualquer outro sistema. Sou o primeiro.

[info 2015/02/10 12:27:21.152 CET tid=0x1] DistributionManager 10.131.96.64(:admin):30179/63464 started on 10.131.96.64[22345]. Há 0 outros DMs. others: [] (admin only)

...

Solução

Para que os Localizadores TCP reconheçam um ao outro, você precisa especificar os membros adicionais passando em um arquivo "GemFire.properties".

Você pode seguir as etapas abaixo

  • Crie um arquivo "GemFire.properties" no diretório onde você executa o TCP Locator.
  • Passe os parâmetros necessários no arquivo "GemFire.properties", por exemplo:

name=<TCP Locator name>

locators=10.131.96.64[22345],10.131.96.217[22345]

  • Passe o arquivo usando “-DgemfirePropertyFile” iniciando o localizador como segue:

java -cp .\gemfire.jar com.gemstone.gemfire.internal.SystemAdmin start-locator -port=%port% -address=%bindaddr% -DgemfirePropertyFile=gemfire.properties -Djava.io.tmpdir=%TEMPDIR% -Dgemfire.log-file=GFLocator.log -Dgemfire.license-type=production -Dgemfire.license-file=gemfireLicense.zip

  • Aplique a mesma alteração em todos os Localizadores TCP (você precisará fornecer um nome exclusivo no arquivo "GemFire.properties" para cada instância).

 

Ao iniciar os Localizadores TCP, você finalmente os verá reconhecendo uns aos outros como Membros de Distribuição no "GFLocator.log":

...

[info 2015/02/12 11:08:23.281 GMT TCPLocator1 tid=0x1] GemFire P2P Listener started on tcp:///10.131.96.217:49262

[info 2015/02/12 11:08:23.796 GMT TCPLocator1 tid=0x1] Attempting to join distributed system whose membership coordinator is 10.131.96.64:36169 using membership ID 10.131.96.217:32186

[info 2015/02/12 11:08:23.984 GMT TCPLocator1 tid=0x1] Entered into membership in group GF6.5.1.17 with ID 10.131.96.217(:admin):32186/49262.

[info 2015/02/12 11:08:23.984 GMT TCPLocator1 tid=0x1] Starting DistributionManager 10.131.96.217(:admin):32186/49262.

[info 2015/02/12 11:08:23.984 GMT TCPLocator1 tid=0x1] Initial (membershipManager) view = [10.131.96.64(:admin):36169/49227, 10.131.96.217(:admin):32186/49262]

[info 2015/02/12 11:08:23.984 GMT TCPLocator1 tid=0x1] DMMembership: Admitting new administration member < 10.131.96.64(:admin):36169/49227 >.

[info 2015/02/12 11:08:23.984 GMT TCPLocator1 tid=0x1] DMMembership: Admitting new administration member < 10.131.96.217(:admin):32186/49262 >.

[info 2015/02/12 11:08:24.031 GMT TCPLocator1 tid=0x1] DistributionManager 10.131.96.217(:admin):32186/49262 started on 10.131.96.217[22345]10.131.96.64[22345]. Há 0 outros DMs. others: [] (admin only)

...