Múltiples localizadores TCP no se reconocen entre sí como gestores de distribución

Problema

La especificación de localizadores TCP adicionales utilizando el argumento "-Dlocators" JVM no da lugar a que los localizadores TCP se reconozcan entre sí.

Por ejemplo, si inicia los localizadores TCP usando la siguiente línea en el "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]

Entonces el "GFLocator.log" mostrará sólo un nodo, e indicará que no hay otro administrador de distribución:

...

[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] No ha recibido respuesta de ningún otro sistema. Yo soy el primero.

[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]. There were 0 other DMs. others: [] (admin only)

...

Solución

Para que los localizadores TCP se reconozcan entre sí, es necesario especificar los miembros adicionales pasándolos por un archivo "GemFire.properties".

Puede omitir los pasos siguientes

  • Cree un archivo "GemFire.properties" en el directorio donde se ejecuta el localizador TCP.
  • Pase los parámetros requeridos en el archivo "GemFire.properties", por ejemplo:

name=<TCP Locator name>

locators=10.131.96.64[22345],10.131.96.217[22345]

  • Pase el archivo utilizando el "-DgemfirePropertyFile" iniciando el localizador como se indica a continuación:

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 el mismo cambio en todos los localizadores TCP (Deberá proporcionar un nombre único en el archivo "GemFire.properties" para cada instancia).

 

Cuando inicie los localizadores TCP, finalmente los verá reconociéndose como miembros de la distribución en el "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]. There were 0 other DMs. others: [] (admin only)

...