Actually, same problem for the Cache:
Properties properties = new Properties();
properties.setProperty("locators", LOCATORS.get());
Cache cache = new CacheFactory(properties).create();
As soon as I add locators, create() throws the same exception.
On Thu, Apr 21, 2016 at 9:53 AM, Eugene Strokin <[email protected]> wrote:
> Thanks Kirk,
> I've tried your code. Which was very similar to what I have:
>
> new LocatorLauncher.Builder()
> .setBindAddress(TRANSPORT_IP.get())
> .setPort(LOCATOR_PORT.get())
> .setWorkingDirectory("/opt/ccio/geode/locator")
> .build()
> .start();
>
> new ServerLauncher.Builder()
> .setServerBindAddress(TRANSPORT_IP.get())
> .setServerPort(TRANSPORT_PORT.get())
> .setWorkingDirectory("/opt/ccio/geode/server")
> .build()
> .start();
>
> So, all I was missing is
> .set("locators", LOCATORS.get())
> for Server Launcher.
> But as soon as I've added it, I've started getting exception:
>
> Exception in thread "main" java.lang.IllegalStateException: A connection
> to a distributed system already exists in this VM. It has the following
> configuration:
> ack-severe-alert-threshold="0"
> ack-wait-threshold="15"
> archive-disk-space-limit="0"
> archive-file-size-limit="0"
> async-distribution-timeout="0"
> async-max-queue-size="8"
> async-queue-timeout="60000"
> bind-address=""
> cache-xml-file="" ***(wanted "cache.xml")***
> cluster-configuration-dir="/Users/es/git/ccio/ccio-image"
> cluster-ssl-ciphers="any"
> cluster-ssl-enabled="false"
> cluster-ssl-keystore=""
> cluster-ssl-keystore-password=""
> cluster-ssl-keystore-type=""
> cluster-ssl-protocols="any"
> cluster-ssl-require-authentication="true"
> cluster-ssl-truststore=""
> cluster-ssl-truststore-password=""
> conflate-events="server"
> conserve-sockets="true"
> delta-propagation="true"
> deploy-working-dir="."
> disable-auto-reconnect="false"
> disable-tcp="false"
> distributed-system-id="-1"
> distributed-transactions="false"
> durable-client-id=""
> durable-client-timeout="300"
> enable-cluster-configuration="true"
> enable-network-partition-detection="false"
> enable-time-statistics="false"
> enforce-unique-host="false"
> gateway-ssl-ciphers="any"
> gateway-ssl-enabled="false"
> gateway-ssl-keystore=""
> gateway-ssl-keystore-password=""
> gateway-ssl-keystore-type=""
> gateway-ssl-protocols="any"
> gateway-ssl-require-authentication="true"
> gateway-ssl-truststore=""
> gateway-ssl-truststore-password=""
> groups=""
> http-service-bind-address=""
> http-service-port="7070"
> http-service-ssl-ciphers="any"
> http-service-ssl-enabled="false"
> http-service-ssl-keystore=""
> http-service-ssl-keystore-password=""
> http-service-ssl-keystore-type=""
> http-service-ssl-protocols="any"
> http-service-ssl-require-authentication="false"
> http-service-ssl-truststore=""
> http-service-ssl-truststore-password=""
> jmx-manager="true" ***(wanted "false")***
> jmx-manager-access-file=""
> jmx-manager-bind-address=""
> jmx-manager-hostname-for-clients=""
> jmx-manager-http-port="7070"
> jmx-manager-password-file=""
> jmx-manager-port="1099"
> jmx-manager-ssl="false"
> jmx-manager-ssl-ciphers="any"
> jmx-manager-ssl-enabled="false"
> jmx-manager-ssl-keystore=""
> jmx-manager-ssl-keystore-password=""
> jmx-manager-ssl-keystore-type=""
> jmx-manager-ssl-protocols="any"
> jmx-manager-ssl-require-authentication="true"
> jmx-manager-ssl-truststore=""
> jmx-manager-ssl-truststore-password=""
> jmx-manager-start="false"
> jmx-manager-update-rate="2000"
> load-cluster-configuration-from-dir="false"
> locator-wait-time="0"
> locators="10.36.76.221[9300]" ***(wanted "localhost[9300]")***
> lock-memory="false"
> log-disk-space-limit="50"
> log-file="/opt/ccio/geode/logs/geode.log"
> log-file-size-limit="10"
> log-level="config"
> max-num-reconnect-tries="3"
> max-wait-time-reconnect="60000"
> mcast-address="/239.192.81.1"
> mcast-flow-control="1048576, 0.25, 5000"
> mcast-port="0"
> mcast-recv-buffer-size="1048576"
> mcast-send-buffer-size="65535"
> mcast-ttl="32"
> member-timeout="5000"
> membership-port-range="[1024,65535]"
> memcached-bind-address=""
> memcached-port="0"
> memcached-protocol="ASCII"
> name=""
> off-heap-memory-size=""
> redis-bind-address=""
> redis-password=""
> redis-port="0"
> redundancy-zone=""
> remote-locators=""
> remove-unresponsive-client="false"
> roles=""
> security-=""
> security-client-accessor=""
> security-client-accessor-pp=""
> security-client-auth-init=""
> security-client-authenticator=""
> security-client-dhalgo=""
> security-log-file=""
> security-log-level="config"
> security-peer-auth-init=""
> security-peer-authenticator=""
> security-peer-verifymember-timeout="1000"
> server-bind-address=""
> server-ssl-ciphers="any"
> server-ssl-enabled="false"
> server-ssl-keystore=""
> server-ssl-keystore-password=""
> server-ssl-keystore-type=""
> server-ssl-protocols="any"
> server-ssl-require-authentication="true"
> server-ssl-truststore=""
> server-ssl-truststore-password=""
> socket-buffer-size="32768"
> socket-lease-time="60000"
> ssl-ciphers="any"
> ssl-enabled="false"
> ssl-protocols="any"
> ssl-require-authentication="true"
> start-dev-rest-api="false"
> start-locator=""
> statistic-archive-file=""
> statistic-sample-rate="1000"
> statistic-sampling-enabled="true"
> tcp-port="0"
> udp-fragment-size="60000"
> udp-recv-buffer-size="1048576"
> udp-send-buffer-size="65535"
> use-cluster-configuration="true"
> user-command-packages=""
> at
> com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.validateSameProperties(InternalDistributedSystem.java:2890)
> at
> com.gemstone.gemfire.distributed.DistributedSystem.connect(DistributedSystem.java:1628)
> at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:224)
> at
> com.gemstone.gemfire.distributed.ServerLauncher.startWithGemFireApi(ServerLauncher.java:822)
> at
> com.gemstone.gemfire.distributed.ServerLauncher.start(ServerLauncher.java:718)
> at ccio.image.ImageServer.main(ImageServer.java:80)
>
> This exception happens on start of the ServerLauncher.
> And without "locators" property it worked.
> Do you have any idea why this could be?
>
> Thanks,
> Eugene
>
> On Wed, Apr 20, 2016 at 7:10 PM, Kirk Lund <[email protected]> wrote:
>
>> Hi Eugene,
>>
>> You can run a server and a locator on the same machine or even in the
>> same process.
>>
>> Distributed system properties (see javadocs on DistributedSystem [1]):
>> locators -- use this to specify one or more locators
>> start-locator -- use this to embed a locator in a server process
>>
>> Launcher APIs:
>> LocatorLauncher.Builder.set(String, String) and
>> ServerLauncher.Builder.set(String, String) can be used to set any
>> distributed system properties:
>> new ServerLauncher.Builder().setMemberName("myname").set("locators",
>> value).build().start();
>>
>> System Properties:
>> Simply prepend any distributed system property with "gemfire." and it can
>> be specified via a system property.
>> a) Java API: System.setProperty("gemfire.locators", value);
>> b) Java command-line: -Dgemfire.locators=value
>> c) gfsh start command: --J-Dgemfire.locators=value
>>
>> CacheFactory API:
>> Properties properties = new Properties();
>> properties.set("locators", value);
>> Cache cache = new CacheFactory(properties).create();
>>
>> The banner (first section) of the Geode log file will show how each
>> distributed system property was specified (ie, the source of the values)
>> for the Geode process.
>>
>> (I'm not sure if there are online geode javadocs or not so the following
>> are gemfire 8.1 javadocs)
>>
>> [0]
>> http://data-docs-samples.cfapps.io/docs-gemfire/latest/javadocs/japi/index.html
>> [1]
>> http://data-docs-samples.cfapps.io/docs-gemfire/latest/javadocs/japi/com/gemstone/gemfire/distributed/DistributedSystem.html
>>
>> -Kirk
>>
>>
>> On Wed, Apr 20, 2016 at 1:24 PM, Eugene Strokin <[email protected]>
>> wrote:
>>
>>> It looks like DigitalOcean does not support Multicast IP.
>>> In this case, from what I understood, I should be running Locators.
>>> My idea was to start a server and a locator on the same node using API
>>> (ServerLauncher, LocatorLauncher).
>>> My assumption, that the server will read a list of locators from
>>> gemfire.properties file and register itself there.
>>> If this is correct, my only question is: Can I specify the list of
>>> locators via API as well? Or maybe as a system property?
>>> If I'm wrong about servers registering themselves using the list of
>>> locators, please point me to the right direction.
>>>
>>> Thanks,
>>> Eugene
>>>
>>
>>
>