当前位置: 首页 > 知识库问答 >
问题:

Spring-Data-Gemfire-无法联系定位器服务。操作超时或定位器不存在

燕和同
2023-03-14

    gfsh>list members
     Name   | Id
    ------- | ----------------------------------------------
    test1   | 192.168.1.106(test1:1880:locator):1024
    server1 | 192.168.1.106(server1:7532):1025

配置为:


    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:gfe-data="http://www.springframework.org/schema/data/gemfire"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:gfe="http://www.springframework.org/schema/gemfire"
      xmlns:repository="http://www.springframework.org/schema/data/repository"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:util="http://www.springframework.org/schema/util"
      xsi:schemaLocation="http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/data/gemfire http://www.springframework.org/schema/data/gemfire/spring-data-gemfire.xsd
      http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/data/repository/spring-repository.xsd
      http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

        <util:properties id="gemfireProperties">
            <prop key="locators">localhost[40001]
            <prop key="mcast-port">0
        </util:properties>

        <gfe:cache properties-ref="gemfireProperties"/>

        <gfe:cache-server port="40411" />

        <bean id="portGenerator" class="com.demo.server.ServerPortGenerator" />

        <gfe:replicated-region id="Person"/>

    </beans>


错误为:


    [info 2017/07/04 23:48:12.546 CST  tid=0x1] Defaulting license-working-dir to current working directory "C:\Users\IBM_ADMIN\Documents\Workspace - Shirley\Workspace_SpringBoot\demo".

    [info 2017/07/04 23:48:12.547 CST  tid=0x1] Licensing required 2 milliseconds.

    [info 2017/07/04 23:48:12.923 CST  tid=0x1] GemFire P2P Listener started on  tcp:///192.168.1.106:53073

    [info 2017/07/04 23:48:13.094 CST  tid=0x20] unable to connect to locator  localhost(null):40001

    2017-07-04 23:48:16.200  WARN 10904 --- [           main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfireServer': Cannot resolve reference to bean 'gemfireCache' while setting bean property 'cache'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfireCache': FactoryBean threw exception on object creation; nested exception is com.gemstone.gemfire.GemFireConfigException: Unable to contact a Locator service.  Operation either timed out or Locator does not exist.  Configured list of locators is "[localhost(null):40001]".
    2017-07-04 23:48:16.200  WARN 10904 --- [           main] o.s.b.f.support.DisposableBeanAdapter    : Invocation of destroy method failed on bean with name 'gemfireCache': com.gemstone.gemfire.cache.CacheClosedException: A cache has not yet been created.
    2017-07-04 23:48:16.219 ERROR 10904 --- [           main] o.s.boot.SpringApplication               : Application startup failed

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfireServer': Cannot resolve reference to bean 'gemfireCache' while setting bean property 'cache'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfireCache': FactoryBean threw exception on object creation; nested exception is com.gemstone.gemfire.GemFireConfigException: Unable to contact a Locator service.  Operation either timed out or Locator does not exist.  Configured list of locators is "[localhost(null):40001]".
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1531) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1276) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:742) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) ~[spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) ~[spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
        at com.demo.server.ServerApplication.main(ServerApplication.java:32) [classes/:na]
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfireCache': FactoryBean threw exception on object creation; nested exception is com.gemstone.gemfire.GemFireConfigException: Unable to contact a Locator service.  Operation either timed out or Locator does not exist.  Configured list of locators is "[localhost(null):40001]".
        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1634) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
        ... 16 common frames omitted
    Caused by: com.gemstone.gemfire.GemFireConfigException: Unable to contact a Locator service.  Operation either timed out or Locator does not exist.  Configured list of locators is "[localhost(null):40001]".
        at com.gemstone.org.jgroups.protocols.TCPGOSSIP.sendGetMembersRequest(TCPGOSSIP.java:222) ~[gemfire-8.2.4.jar:na]
        at com.gemstone.org.jgroups.protocols.PingSender.run(PingSender.java:85) ~[gemfire-8.2.4.jar:na]
        at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_111]

哦,天哪,我对这个问题毫无头绪。
有谁能帮助我吗?
我只想构建一个客户端-服务器系统。
但现在我甚至无法设置服务器。


    C:\Users\IBM_ADMIN>gfsh
        _________________________     __
       / _____/ ______/ ______/ /____/ /
      / /  __/ /___  /_____  / _____  /
     / /__/ / ____/  _____/ / /    / /
    /______/_/      /______/_/    /_/    9.0.4

    Monitor and Manage Pivotal GemFire
    gfsh>start locator --name=GemFireLocator --log-level=config
    Starting a Geode Locator in C:\Users\IBM_ADMIN\GemFireLocator...
    ......
    Locator in C:\Users\IBM_ADMIN\GemFireLocator on ADMINIB-CI3Q48M[10334] as GemFireLocator is currently online.
    Process ID: 7256
    Uptime: 8 seconds
    GemFire Version: 9.0.4
    Java Version: 1.8.0_101
    Log File: C:\Users\IBM_ADMIN\GemFireLocator\GemFireLocator.log
    JVM Arguments: -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire
    .log-level=config -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterva
    l=9223372036854775806
    Class-Path: C:\Program Files\Java\pivotal-gemfire-9.0.4\lib\geode-core-9.0.4.jar;C:\Program Files\Java\pivotal-gemfire-9
    .0.4\lib\geode-dependencies.jar

    Successfully connected to: JMX Manager [host=ADMINIB-CI3Q48M, port=1099]

    gfsh>list members
         Name      | Id
    -------------- | -------------------------------------------------------
    GemFireLocator | 192.168.1.106(GemFireLocator:7256:locator):1024

    gfsh>describe member --name=GemFireLocator
    Name        : GemFireLocator
    Id          : 192.168.1.106(GemFireLocator:7256:locator):1024
    Host        : ADMINIB-CI3Q48M
    Regions     :
    PID         : 7256
    Groups      :
    Used Heap   : 90M
    Max Heap    : 1755M
    Working Dir : C:\Users\IBM_ADMIN\GemFireLocator
    Log file    : C:\Users\IBM_ADMIN\GemFireLocator\GemFireLocator.log
    Locators    : 192.168.1.106[10334]

但错误显示:由:java.net.bindexception:Address已经在使用:JVM_Bind

    [info 2017/07/09 14:57:24.270 CST  tid=0x1] Defaulting license-working-dir to current working directory "C:\Users
    IBM_ADMIN\Documents\Workspace - Shirley\Workspace_SpringBoot\spring-boot-gemfire-server-example".

    [info 2017/07/09 14:57:24.273 CST  tid=0x1] Licensing required 4 milliseconds.

    [info 2017/07/09 14:57:24.324 CST  tid=0x1] Starting peer location for Distribution Locator on localhost/127.0.0.
    [10334]

    [info 2017/07/09 14:57:24.333 CST  tid=0x1] Starting Distribution Locator on localhost/127.0.0.1[10334]

    [info 2017/07/09 14:57:24.347 CST  tid=0x1] Distribution Locator on localhost/127.0.0.1[10334]  is stopped

    [main] WARN org.springframework.context.annotation.AnnotationConfigApplicationContext - Exception encountered during co
    text initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Err
    r creating bean with name 'gemfireCacheServer' defined in org.example.SpringBootGemFireServer: Unsatisfied dependency e
    pressed through method 'gemfireCacheServer' parameter 0; nested exception is org.springframework.beans.factory.BeanCrea
    ionException: Error creating bean with name 'gemfireCache': FactoryBean threw exception on object creation; nested exce
    tion is com.gemstone.gemfire.GemFireIOException: Problem starting a locator service
    [main] WARN org.springframework.beans.factory.support.DisposableBeanAdapter - Invocation of destroy method failed on be
    n with name 'gemfireCache': com.gemstone.gemfire.cache.CacheClosedException: A cache has not yet been created.
    [main] INFO org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer -

    Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enable
    .
    [main] ERROR org.springframework.boot.SpringApplication - Application startup failed
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gemfireCacheServer' de
    ined in org.example.SpringBootGemFireServer: Unsatisfied dependency expressed through method 'gemfireCacheServer' param
    ter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemf
    reCache': FactoryBean threw exception on object creation; nested exception is com.gemstone.gemfire.GemFireIOException:
    roblem starting a locator service
            at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:7
    9)
            at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResol
    er.java:467)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(A
    stractAutowireCapableBeanFactory.java:1128)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAuto
    ireCapableBeanFactory.java:1022)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCa
    ableBeanFactory.java:512)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapa
    leBeanFactory.java:482)
            at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
            at org.springframework.beans.factory.suefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.ja
    a:230)
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListabl
    BeanFactory.java:735)
            at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractAppli
    ationContext.java:866)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
            at org.example.SpringBootGemFireServer.main(SpringBootGemFireServer.java:52)
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfireCache': Facto
    yBean threw exception on object creation; nested exception is com.gemstone.gemfire.GemFireIOException: Problem starting
    a locator service
            at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanR
    gistrySupport.java:175)
            at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanReg
    strySupport.java:103)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.j
    va:1606)
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:317)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
         rg.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBean
    actory.java:1131)
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFa
    tory.java:1059)
            at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.j
    va:835)
            at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:7
    1)
            ... 18 more
    Caused by: com.gemstone.gemfire.GemFireIOException: Problem starting a locator service
            at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.startInitLocator(InternalDistributedSyst
    m.java:847)
            at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.jav
    :606)
            at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.ja
    a:281)
            at com.gemstone.gemfire.distributed.DistributedSystem.connect(DistributedSystem.java:1651)
            at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:227)
            at org.springframework.data.gemfire.CacheFactoryBean.createCache(CacheFactoryBean.java:356)
            at org.springframework.data.gemfire.CacheFactoryBean.resolveCache(CacheFactoryBean.java:250)
            at org.springframework.data.gemfire.CacheFactoryBean.init(CacheFactoryBean.java:191)
            at org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:178)
            at org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:88)
            at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanR
    gistrySupport.java:168)
            ... 27 more
    Caused by: java.net.BindException: Failed to create server socket on  localhost/127.0.0.1[10,334]
            at com.gemstone.gemfire.internal.SocketCreator.createServerSocket(SocketCreator.java:829)
            at com.gemstone.gemfire.internal.SocketCreator.createServerSocket(SocketCreator.java:789)
            at com.gemstone.org.jgroups.stack.tcpserver.TcpServer.startServerThread(TcpServer.java:179)
            at com.gemstone.org.jgroups.stack.tcpserver.TcpServer.start(TcpServer.java:168)
            at com.gemstone.gemfire.distributed.internal.InternalLocator.startTcpServer(InternalLocator.java:629)
            at com.gemstone.gemfire.distributed.internal.InternalLocator.startPeerLocation(InternalLocator.java:698)
            at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.startInitLocator(InternalDistributedSyst
    m.java:832)
            ... 37 more
    Caused by: java.net.BindException: Address already in use: JVM_Bind
            at java.net.DualStackPlainSocketImpl.bind0(Native Method)
            at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
            at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
            at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
            at java.net.ServerSocket.bind(ServerSocket.java:375)
            at com.gemstone.gemfire.internal.SocketCreator.createServerSocket(SocketCreator.java:826)
            ... 43 more
    :bootRun FAILED

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':bootRun'.
    > Process 'command 'C:\Program Files\Java\jdk1.8.0_101\bin\java.exe'' finished with non-zero exit value 1

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

    Total time: 14.9 secs

然后,我用gfsh来阻止定位器。

我尝试直接运行您的示例(不首先启动定位器)。


    [info 2017/07/09 15:19:16.930 CST  tid=0x1] Defaulting license-working-dir to current working directory "C:\Users\
    IBM_ADMIN\Documents\Workspace - Shirley\Workspace_SpringBoot\spring-boot-gemfire-server-example".

    [info 2017/07/09 15:19:16.935 CST  tid=0x1] Licensing required 7 milliseconds.

    [info 2017/07/09 15:19:17.000 CST  tid=0x1] Starting peer location for Distribution Locator on localhost/127.0.0.1
    [10334]

    [info 2017/07/09 15:19:17.016 CST  tid=0x1] Starting Distribution Locator on localhost/127.0.0.1[10334]

    [info 2017/07/09 15:19:18.376 CST  tid=0x1] GemFire P2P Listener started on  tcp:///192.168.1.106:45643

    [info 2017/07/09 15:19:18.624 CST  tid=0x22] locator localhost(null):10334 member address is ADMINIB-CI3
    Q48M(SpringBootGemFireServer):37651

    [info 2017/07/09 15:19:25.674 CST  tid=0x25] locator localhost(null):10334 member address is ADMINIB-CI3
    Q48M(SpringBootGemFireServer):37651

    [info 2017/07/09 15:19:30.686 CST  tid=0x1] Membership: lead member is now ADMINIB-CI3Q48M(SpringBootGemFireServer
    ):37651

    [info 2017/07/09 15:19:30.701 CST  tid=0x1] This member, ADMINIB-CI3Q48M(SpringBootGemFireServer):37651, is becomi
    ng group coordinator.

    [info 2017/07/09 15:19:30.710 CST  tid=0x1] Entered into membership with ID ADMINIB-CI3Q48M(SpringBootGemFireServe
    r):37651.

    [info 2017/07/09 15:19:30.712 CST  tid=0x1] Starting DistributionManager ADMINIB-CI3Q48M(SpringBootGemFireServer):37651.  (took 12629/ ms)

    [info 2017/07/09 15:19:30.715 CST  tid=0x1] Initial (membershipManager) view =  [ADMINIB-CI3Q48M(SpringBootGemFire
    Server):37651{lead}]

    [info 2017/07/09 15:19:30.715 CST  tid=0x1] Admitting member :37651>.
     Now there are 1 non-admin member(s).

    [info 2017/07/09 15:19:30.716 CST  tid=0x1] ADMINIB-CI3Q48M(SpringBootGemFireServer):37651 is the elder and th
    e only member.

    [info 2017/07/09 15:19:31.081 CST  tid=0x1] Did not hear back from any other system. I am the first one.

    [info 2017/07/09 15:19:31.086 CST  tid=0x1] Starting server location for Distribution Locator on localhost/127.0.0
    .1[10334]

    [info 2017/07/09 15:19:31.358 CST  tid=0x1] Initializing region _monitoringRegion_192.168.1.10637651

    [info 2017/07/09 15:19:31.364 CST  tid=0x1] Initialization of region _monitoringRegion_192.168.1.10637651 comp
    leted

    [info 2017/07/09 15:19:32.857 CST  tid=0x1] Initializing region PdxTypes

    [info 2017/07/09 15:19:32.857 CST  tid=0x1] Initialization of region PdxTypes completed

    [main] INFO org.springframework.data.gemfire.CacheFactoryBean - Connected to Distributed System [SpringBootGemFireServer
    ] as Member [ADMINIB-CI3Q48M(SpringBootGemFireServer):37651]in Group(s) [[]] with Role(s) [[]] on Host [ADMINIB-CI3Q
    48M] having PID [0].
    [main] INFO org.springframework.data.gemfire.CacheFactoryBean - Created new GemFire v.8.2.0 Cache [SpringBootGemFireServ
    er].
    [info 2017/07/09 15:19:32.935 CST  tid=0x1] Initializing region __PR

    [info 2017/07/09 15:19:32.935 CST  tid=0x1] Initialization of region __PR completed

    [info 2017/07/09 15:19:32.986 CST  tid=0x1] Partitioned Region /Factorials is born with prId=1 ident:#Factorials

    [main] INFO org.springframework.data.gemfire.PartitionedRegionFactoryBean - Created new Cache Region [Factorials].
    [main] INFO org.springframework.jmx.export.annotation.AnnotationMBeanExporter - Registering beans for JMX exposure on st
    artup
    [main] INFO org.springframework.context.support.DefaultLifecycleProcessor - Starting beans in phase 2147483647
    [info 2017/07/09 15:19:33.379 CST  tid=0x1] Bridge server connection listener bound to address localhost/127.0.0.1
    :40404 with backlog 1,000.

    [info 2017/07/09 15:19:33.396 CST  tid=0x1] ClientHealthMonitorThread maximum allowed time between pings: 15,000

    [info 2017/07/09 15:19:33.425 CST  tid=0x1] CacheServer Configuration:   port=40404 max-connections=800 max-thread
    s=0 notify-by-subscription=true socket-buffer-size=32768 maximum-time-between-pings=15000 maximum-message-count=230000 m
    essage-time-to-live=180 eviction-policy=none capacity=1 overflow directory=. groups=[] loadProbe=ConnectionCountProbe lo
    adPollInterval=5000 tcpNoDelay=true

    [main] INFO org.example.SpringBootGemFireServer - Started SpringBootGemFireServer in 20.399 seconds (JVM running for 20.
    823)
    [info 2017/07/09 15:21:15.585 CST  tid=0x3e] (tid=62 msgId=0) Executing list member
    s

    [info 2017/07/09 15:22:26.546 CST  tid=0x3e] (tid=62 msgId=1) Executing describe me
    mber --name GemFireLocator

    > Building 80% > :bootRun

我可以使用gfsh连接到您的示例代码创建的定位器。


    gfsh>
    gfsh>stop locator --name GemFireLocator
    Stopping Locator running in C:\Users\IBM_ADMIN\GemFireLocator on ADMINIB-CI3Q48M[10334] as GemFireLocator...
    Process ID: 7256
    Log File: C:\Users\IBM_ADMIN\GemFireLocator\GemFireLocator.log
    ....

    No longer connected to ADMINIB-CI3Q48M[1099].
    gfsh>gfsh>list members
    "list members" is not available. Reason: Requires connection.
    gfsh>connect to loaclhost[10334]
    Connecting to Locator at [host=localhost, port=10334] ..
    Connecting to Manager at [host=ADMINIB-CI3Q48M, port=1199] ..
    Successfully connected to: [host=ADMINIB-CI3Q48M, port=1199]

    gfsh>list members
    Member Count : 1
    Coordinator  : SpringBootGemFireServer (ADMINIB-CI3Q48M(SpringBootGemFireServer):37651)

             Name           | Id
    ----------------------- | --------------------------------------------------
    SpringBootGemFireServer | ADMINIB-CI3Q48M(SpringBootGemFireServer):37651
    gfsh>describe member --name=SpringBootGemFireServer
    Name        : SpringBootGemFireServer
    Id          : ADMINIB-CI3Q48M(SpringBootGemFireServer):37651
    Host        : ADMINIB-CI3Q48M
    Regions     : Factorials

    PID         : 0
    Groups      :
    Used Heap   : 117M
    Max Heap    : 1755M
    Working Dir : C:\Users\IBM_ADMIN\Documents\Workspace - Shirley\Workspace_SpringBoot\spring-boot-gemfire-server-example
    Log file    : C:\Users\IBM_ADMIN\Documents\Workspace - Shirley\Workspace_SpringBoot\spring-boot-gemfire-server-example
    Locators    : localhost[10334]

    Cache Server Information
    Server Bind              : localhost
    Server Port              : 40404
    Running                  : true
    Client Connections       : 0

    gfsh>list regions
    List of regions
    ---------------
    Factorials

    gfsh>describe region --name=/Factorials
    ..........................................................
    Name            : Factorials
    Data Policy     : partition
    Hosting Members : SpringBootGemFireServer


    Non-Default Attributes Shared By Hosting Members

     Type  | Name | Value
    ------ | ---- | -----
    Region | size | 0

你能帮我查一下吗?

共有1个答案

章岳
2023-03-14

好吧,堆栈跟踪在这种情况下是很有启发性的。

基本上,Spring容器无法创建GemFire“peer”cache(基于Spring XML配置中的 元素)的实例,因为GemFire无法找到您从GFSH启动的定位器...

Caused by: com.gemstone.gemfire.GemFireConfigException: Unable to contact a Locator service.  Operation either timed out or Locator does not exist.  Configured list of locators is "[localhost(null):40001]".
        at com.gemstone.org.jgroups.protocols.TCPGOSSIP.sendGetMembersRequest(TCPGOSSIP.java:222) ~[gemfire-8.2.4.jar:na]
        at com.gemstone.org.jgroups.protocols.PingSender.run(PingSender.java:85) ~[gemfire-8.2.4.jar:na]
        at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_111]

因此...

它接着说...

配置的定位器列表为“[localhost(null):40001]”。

您的GemFirePropertiesbean定义(定义了“GemFire属性”)中的Locators属性是希望加入集群的挂起的GemFire对等体用来查找GemFire定位器(以及扩展到要加入的集群)的属性。实际上,一个或多个定位器endpoint(例如host1[port1]、host2[port2]、...、hostn[portN])定义挂起的对等成员将加入的集群。

所以...

>

  • 首先,我假设“test1”是您的定位符?

    然后,你开始你的定位器使用...gfsh>开始定位器--name=tests1-port=40001...(我还建议使用--log-level=config打开日志级别)

    如果“'test1”确实是您的定位器,那么您可以使用status Locator`获取定位器的运行时信息,例如...

    gfsh>status locator --name=test1
    Locator in /Users/jblum/pivdev/lab/test1 on 10.99.199.10[40001] as test1 is currently online.
    Process ID: 89632
    Uptime: 1 minute 15 seconds
    GemFire Version: 9.0.4
    Java Version: 1.8.0_121
    Log File: /Users/jblum/pivdev/lab/test1/test1.log
    JVM Arguments: -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire.log-level=config -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
    Class-Path: /Users/jblum/Downloads/Pivotal/GemStone/Products/PivotalGemFire/pivotal-gemfire-9.0.4/lib/geode-core-9.0.4.jar:/Users/jblum/Downloads/Pivotal/GemStone/Products/PivotalGemFire/pivotal-gemfire-9.0.4/lib/geode-dependencies.jar
    
    Cluster configuration service is up and running.
    

    现在,我有了一个项目,其中包含了文档/说明,您可以使用它连接一个GemFireCacheServer,它是用Spring配置的对等缓存应用程序(数据GemFire)并用Spring Boot引导的,可在这里获得。

    我的“tests1”定位器已经在运行,如上面的status locator--name=test1Gfsh命令所示。如果我在启动Spring Boot GemFire对等缓存CacheServer应用程序之前列出成员,您将看到以下内容...

    gfsh>list members
    Name  | Id
    ----- | ----------------------------------------------
    test1 | 10.99.199.10(test1:89632:locator)<ec><v0>:1024
    

    然后,当我启动我的嵌入式服务器时,你会看到这个...

    gfsh>list members
             Name           | Id
    ----------------------- | --------------------------------------------------------
    test1                   | 10.99.199.10(test1:89632:locator)<ec><v0>:1024
    SpringBootGemFireServer | 10.99.199.10(SpringBootGemFireServer:89790)<ec><v1>:1025
    

    注意:我是从我的IDE(IntelliJ IDEA)内部运行服务器的。当然,它也可以从命令行工作。

    因为List Members同时显示了GemFire进程(定位器+服务器),所以您知道服务器已经基于定位器加入了集群。

    再一次,请参考我的例子。

    希望这有帮助!

  •  类似资料:
    • 假设我有Gemfire定位器 我有一个Spring 3.1 MVC应用程序,它想要使用Gemfire缓存。我使用的是Spring数据Gemfire 1.2.2和Gemfire 6.6.1 因此,我将以下内容添加到我的 假设外部JAR依赖项都在Maven中正确定义。还假设我加载了一个属性文件,该文件定义了上面引用的属性值。定位器属性定义为使用已经启动的Gemfire定位器的IP和端口。 我相信这应该

    • 主要内容:实现,步骤 1,Service.java,步骤 2,Service1.java,Service2.java,步骤 3,InitialContext.java,步骤 4,Cache.java,步骤 5,ServiceLocator.java,步骤 6,ServiceLocatorPatternDemo.java,步骤 7服务定位器模式(Service Locator Pattern)用在我们想使用 JNDI 查询定位各种服务的时候。考虑到为某个服务查找 JNDI 的代价很高,服务定位器模

    • 服务定位器是一个了解如何提供各种应用所需的服务(或组件)的对象。在服务定位器中, 每个组件都只有一个单独的实例,并通过ID 唯一地标识。 用这个 ID 就能从服务定位器中得到这个组件。 在 Yii 中,服务定位器是 yii\di\ServiceLocator 或其子类的一个实例。 最常用的服务定位器是application(应用)对象,可以通过 \Yii::$app 访问。 它所提供的服务被称为a

    • 服务定位器模式(Service Locator Pattern)用在我们想使用 JNDI 查询定位各种服务的时候。考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术。在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象。当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能。以下是这种设计模式的实体。 服务(Se

    • 服务定位器模式(Service Locator Pattern)用在我们想使用 JNDI 查询定位各种服务的时候。考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术。在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象。当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能。以下是这种设计模式的实体。 服务(Se

    • windows 2003 server 64位.jboss 7.0.1,JDK 1.6 64位.无法连接到db2服务器(linux). 但是其他服务器(< code > windows 2003 server 32 bit )就可以了! 为什么? 从 站点: 限制:如果在Windows 64位操作系统上安装了IBM DB2 Driver for JDBC和SQLJ,则不能使用IBM DB2 Dri