在这里输入图像描述公共类GemfireTest {
public static void main(String[] args) throws NameResolutionException, TypeMismatchException, QueryInvocationTargetException, FunctionDomainException {
ServerLauncher serverLauncher = new ServerLauncher.Builder()
.setMemberName("server1")
.setServerPort(40404)
.set("start-locator", "127.0.0.1[9090]")
.build();
serverLauncher.start();
String queryString = "SELECT * FROM /gemregion";
ClientCache cache = new ClientCacheFactory().create();
QueryService queryService = cache.getQueryService();
Query query = queryService.newQuery(queryString);
SelectResults results = (SelectResults)query.execute();
int size = results.size();
System.out.println(size);
}
}试图在我的java应用程序中运行一个定位器和一个服务器,得到下面的异常:
线程"main“java.lang.IllegalStateException中的异常:此VM中已经存在到分布式系统的连接。它具有以下配置:ack-重度警报-阈值=“0” 等待阈值=“15”存档磁盘空间限制=“0” 存档文件大小限制=“0”异步分发-超时值=“0” 异步最大队列大小=“8”异步队列超时=“60000” 绑定-地址=“”缓存-xml-file=“cache.xml” 集群-配置-dir=“”集群-ssl-密码=“any” 群集-ssl启用=“false”群集-ssl-keystore=“” 群集-ssl-密钥存储库-密码=“群集-ssl-keystore-type=” 群集-ssl协议=“任意” 群集-ssl-需要量-身份验证=“真”群集-ssl-信任存储=“群集-ssl-信任存储-密码=”合并-事件=“服务器” 保存-套接字=“真”增量-传播=“真” deploy-working-dir="C:\Users\Saranya\IdeaProjects\Gemfire“ 禁用-自动重新连接=“false”禁用-tcp=“false” 分布式-system-id=“-1”分布式-事务=“false” 持久-客户端-id=“”持久-客户端超时=“300” 启用-群集-配置=“true” 启用-网络分区-检测=“真” 启用-时间-统计=“假”强制-唯一-主机=“假” 网关-ssl-密码=“任意”网关-ssl启用=“false” 网关-ssl-密钥存储库=“网关-ssl-密钥库-密码=” 网关-ssl-keystore-type=“网关-ssl-protocol=”any 网关-ssl-要求-认证=“真”网关-ssl-信任存储=“网关-ssl-信任存储-密码=”“groups=” http-service-bind-address=“http-service-port=”7070 http-service-ssl-ciphers="any“http-service-ssl启用=”false“ http-service-ssl-keystore=“http-service-ssl-keystore-password=” http-service-ssl-keystore-type=“http-service-ssl-protocol=”any“ http-service-ssl-require-authentication="false“ http-service-ssl-信任存储=“” http-service-ssl-信任存储库-密码=“jmx-manager="false” jmx-manager-access-file=“jmx-manager-=” jmx-manager-hostname-for-client=“jmx-manager-http-port="7070” jmx-manager-password-file=“jmx-manager-port="1099” jmx-manager-ssl-ciphers="any“jmx-manager-ssl启用=”false“ jmx-manager-ssl-keystore=“jmx-manager-ssl-keystore=” jmx-manager-ssl-keystore-type=“jmx-manager-ssl-protocol=”any“ jmx-manager-ssl-需要量-验证=“true” jmx-manager-ssl-信任存储=“jmx-manager-ssl-信任存储-密码=”jmx-manager-start="false“jmx-manager-update-rate="2000” 负载群集-配置从dir=“false”定位器-等待时间=“0” locators="127.0.0.19090“(需要”))锁-内存=“false” 日志-磁盘-空间限制=“0” log-file="C:\Users\Saranya\IdeaProjects\Gemfire\server1.log“( "")日志-文件大小-限制=”0“日志级别=”config“max-num-reconnect=”3“max-等待时间-重新连接=”60000“ mcast地址=“/239.192.81.1”mcast-flow-control="1048576,0.25,5000“mcast-port="0”mcast-recv-缓冲区大小=“1048576” mcast-发送缓冲区大小=“65535”mcast-ttl="32“ 成员超时=“5000”成员-端口范围=“1024,65535” memcached-bind-address=“memcached-port=”0 memcached-protocol="ASCII“name="server1”(通缉) 堆外-内存大小=“redis-绑定-地址=”“redis-密码=” redis-port="0“冗余区域=”远程定位器=“ 删除-没有响应-client=“false”roles="“ 安全-客户端访问器=“安全-客户端-访问器-pp=” 安全性.客户端-auth-init=“安全-客户端-身份验证者=” 安全-客户端-dhalgo=“安全-日志-文件=” 安全-日志级别=“config”安全管理器=“” 安全-对等-auth-init=“安全-对等-身份验证者=” 安全.对等-验证成员-超时=“1000”安全性-后处理器=“安全性-shiro init=”安全-udp-dhalgo=“” 可序列化对象-过滤器=“!”服务器-绑定-地址=“” server-ssl-ciphers="any“server-ssl启用=”false“ 服务器-ssl-keystore=“服务器-ssl-密钥库-密码=” server-ssl-keystore-type=“server-ssl-protocol=”any“ 服务器-ssl-要求-身份验证=“真”服务器-ssl-信任存储=“” 服务器-ssl-信任存储-密码=“套接字-缓冲区-大小=”32768 套接字-租约-时间=“60000”ssl-密码=“任何”ssl-群集-别名=“” ssl-默认-别名=“启用ssl-组件=”[]“ ssl-网关-别名=“ssl-jmx-别名=”ssl-keystore="“ ssl-keystore-密码=“ssl-keystore-type=”ssl-locator-别名=“ssl-protocol=”任何ssl-require=“true”。 ssl-server-别名=“ssl-信任存储=”ssl-信任存储-密码=“” ssl-信任存储-type=“ssl-web-别名=” ssl-web需求-身份验证=“false”start-dev-rest-api="false“ 启动定位器=“127.0.0.19090”(需要)* 统计-存档-文件=“统计-抽样率=”1000 统计-启用抽样=“真”tcp-port="0“ udp-片段大小=“60000”udp-recv-缓冲区大小=“1048576” 发送缓冲区大小=“65535”使用群集配置=“true” 用户-命令包=“验证-可序列化-对象=”false“ 在org.apache.geode.distributed.internal.InternalDistributedSystem.validateSameProperties(InternalDistributedSystem.java:2959) at org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:199) at org.apache.geode.cache.client.ClientCacheFactory.basicCreate(ClientCacheFactory.java:243) at org.apache.geode.cache.client.ClientCacheFactory.create(ClientCacheFactory.java:214) at GemfireTest.main(GemfireTest.java:61)
如何解决这一异常?
发布于 2018-09-20 13:45:11
这里的错误是不言自明的:您不能在一个JVM中拥有一个到分布式系统的多个连接。在这种情况下,您将在同一个JVM中同时启动服务器缓存(ServerLauncher)和客户端缓存(ClientCacheFactory),这是不受支持的。
要解决这个问题,可以使用两个不同的应用程序或JVM,一个用于服务器,另一个用于执行查询的客户端。
干杯。
https://stackoverflow.com/questions/52423559
复制相似问题