Current GemFire forum on forums.gemstone.com
NoAvailableServersException happens during Server recover GFSH connections
Hi there.
I'm using gemfire 6.6.2, and I got the following exception while I try to start primary server and secondary server at almost same time, and also have clients stand by, this also happens with the multi-sites topology:
[warning 2012/07/30 18:48:34.141 EDT HierarchicalServer <ServerConnection on port 31431 Thread 57> tid=0x16a] Error registering instantiator on pool:
com.gemstone.gemfire.cache.client.NoAvailableServersException
at com.gemstone.gemfire.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:245)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:120)
at com.gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl.java:637)
at com.gemstone.gemfire.cache.client.internal.RegisterInstantiatorsOp.execute(RegisterInstantiatorsOp.java:42)
at com.gemstone.gemfire.internal.cache.PoolManagerImpl.allPoolsRegisterInstantiator(PoolManagerImpl.java:221)
at com.gemstone.gemfire.internal.InternalInstantiator.sendRegistrationMessageToServers(InternalInstantiator.java:206)
at com.gemstone.gemfire.internal.InternalInstantiator._register(InternalInstantiator.java:161)
at com.gemstone.gemfire.internal.InternalInstantiator.register(InternalInstantiator.java:301)
at com.gemstone.gemfire.internal.cache.tier.sockets.command.RegisterInstantiators.cmdExecute(RegisterInstantiators.java:92)
at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:167)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:771)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:899)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at com.gemstone.gemfire.internal.cache.tier.sockets.AcceptorImpl$1$1.run(AcceptorImpl.java:511)
at java.lang.Thread.run(Thread.java:619)
And I get another excetion at the secondary peer server:
[warning 2012/07/30 18:48:54.325 EDT HierarchicalServer <main> tid=0x1] Error registering instantiator on pool:
com.gemstone.gemfire.cache.client.NoAvailableServersException
at com.gemstone.gemfire.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:245)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:120)
at com.gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl.java:637)
at com.gemstone.gemfire.cache.client.internal.RegisterInstantiatorsOp.execute(RegisterInstantiatorsOp.java:42)
at com.gemstone.gemfire.internal.cache.PoolManagerImpl.allPoolsRegisterInstantiator(PoolManagerImpl.java:221)
at com.gemstone.gemfire.internal.InternalInstantiator.sendRegistrationMessageToServers(InternalInstantiator.java:206)
at com.gemstone.gemfire.internal.InternalInstantiator._register(InternalInstantiator.java:161)
at com.gemstone.gemfire.internal.InternalInstantiator.register(InternalInstantiator.java:277)
at com.gemstone.gemfire.internal.cache.DiskInitFile.cmnInstantiatorId(DiskInitFile.java:651)
at com.gemstone.gemfire.internal.cache.persistence.DiskInitFileParser.parse(DiskInitFileParser.java:91)
at com.gemstone.gemfire.internal.cache.DiskInitFile.recover(DiskInitFile.java:408)
at com.gemstone.gemfire.internal.cache.DiskInitFile.<init>(DiskInitFile.java:1656)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.loadFiles(DiskStoreImpl.java:1936)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.<init>(DiskStoreImpl.java:355)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.<init>(DiskStoreImpl.java:270)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.<init>(DiskStoreImpl.java:265)
at com.gemstone.gemfire.internal.cache.DiskStoreFactoryImpl.create(DiskStoreFactoryImpl.java:127)
at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.getOrCreateDefaultDiskStore(GemFireCacheImpl.java:1994)
at com.gemstone.gemfire.internal.cache.LocalRegion.findDiskStore(LocalRegion.java:6863)
at com.gemstone.gemfire.internal.cache.LocalRegion.<init>(LocalRegion.java:566)
at com.gemstone.gemfire.internal.cache.DistributedRegion.<init>(DistributedRegion.java:159)
at com.gemstone.gemfire.internal.cache.SingleWriteSingleReadRegionQueue$SingleReadWriteMetaRegion.<init>(SingleWriteSingleReadRegionQueue.java:1112)
at com.gemstone.gemfire.internal.cache.SingleWriteSingleReadRegionQueue.initializeRegion(SingleWriteSingleReadRegionQueue.java:1039)
at com.gemstone.gemfire.internal.cache.SingleWriteSingleReadRegionQueue.<init>(SingleWriteSingleReadRegionQueue.java:225)
at com.gemstone.gemfire.internal.cache.SingleWriteSingleReadRegionQueue.<init>(SingleWriteSingleReadRegionQueue.java:173)
at com.gemstone.gemfire.internal.cache.GatewayImpl$GatewayEventProcessor.initializeMessageQueue(GatewayImpl.java:1459)
at com.gemstone.gemfire.internal.cache.GatewayImpl$GatewayEventProcessor.<init>(GatewayImpl.java:1196)
at com.gemstone.gemfire.internal.cache.GatewayImpl.initializeEventProcessor(GatewayImpl.java:939)
at com.gemstone.gemfire.internal.cache.GatewayImpl.start(GatewayImpl.java:626)
at com.gemstone.gemfire.internal.cache.GatewayImpl.start(GatewayImpl.java:574)
at com.gemstone.gemfire.internal.cache.GatewayHubImpl.startGateways(GatewayHubImpl.java:611)
at com.gemstone.gemfire.internal.cache.GatewayHubImpl.start(GatewayHubImpl.java:598)
at com.gemstone.gemfire.internal.cache.GatewayHubImpl.start(GatewayHubImpl.java:538)
at com.gemstone.gemfire.internal.cache.xmlcache.CacheCreation.create(CacheCreation.java:449)
at com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:285)
at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:3712)
at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:1001)
at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.init(GemFireCacheImpl.java:784)
at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:585)
at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:182)
at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:227)
at com.citigroup.posmgmt.gemfirecache.QueryServer.main(Unknown Source)
Anything I can do to avoid this kind of exception, it blocks the server to accept client connections for quite a bit time.
thanks.
Pan
VMWARE vFabric Engineer/Administrator
Hi,
We have an opening with one of our direct clients in Reston, VA for an Architect Position. Please have a look at the job details mentioned below:-
JOB DESCRIPTION:-
• Gemfire/Gemstone administrator with sound experience in installation, configuration, tuning/sizing, WAN Gateway, monitoring, deployment and problem resolution
• TcServer Server administrator with sound experience in installation, configuration, tuning/sizing, clustering, deployment and problem resolution
• Hyperic/HQServer administrator with sound experience in installation, configuration, tuning/sizing, deployment and problem resolution
• JAVA development experience
• JVM/JDK configuration/tuning experience
• Be able to develop support documentation and train operations team
• Be available 24/7 to support Tier 1 and Tier 2 Operations staff in case of issues
• Work with VMWARE Support to assist in troubleshooting and resolving issues
• Experience with Linux/UNIX platform
• Strong scripting skills (shell, ant, jython, python)
• Experiece with vFabric License server is a plus
• Apache HTTP Server experience is a plus
• Strong SQL skills is a plus
• Weblogic/Websphere/JBOSS experience is a plus
2 to 4 years specific to VMWARE vFabric platform (especially vFabric 5.x)
In case of queries, please feel free to reach me at 703-880-8638 or you can send me an email to abhilash.das@compugain.com
Native client pool configuration for high frequency function call
Help me out please. I am trying to configure my .NET Native client pool for high frequency function exection.
GemFire 6.6, Native Client 3.6
This is what I have in my GFProxy.
_pool is then used in separate another method as below
IResultCollector rc = FunctionService.OnServer(_pool).WithArgs(new CGFSerializable(r)).Execute("FunctionName", true,uint.MaxValue);
_cache and _pool remain single instance throughout the life of application.
my 1 thread 100 call function execution takes avg of 50ms (and that is exactly it should have taken).
when I subject this _pool to multiple threads and have each call on above FunctionService method, it is taking very long, I must be missing a setting that I am not able to identify.
2 thread 50 call takes
thread 1 avg of 65ms
thread 2 avg of 217 ms
4 thread of 50 call takes
Thread:5 finished in avg 1544.134398 ms for 50 rounds
Thread:3 finished in avg 1550.895074 ms for 50 rounds
Thread:6 finished in avg 1551.535138 ms for 50 rounds
Thread:4 finished in avg 1553.795364 ms for 50 rounds
when I run this same app in multi-process, single thread mode, the avg time hovers from 65ms to 140ms but doesn't grow towards 1500ms. So I am assuming my server side isn't a problem here.
I tried explicitly setting connection-pool and didnt get any solid difference.
Am I missing any particular setting handle multi-thread concurrency rightfully?
Any help is much appreciated.
Restricting search results to just GemFire
New VMware community users have asked how search results can be limited to just items in the GemFire forum.
By deafult the current search mechanism finds results across vmware.com web properties (see attached "Default forum search.JPG").
In the second attachment, "Advacned forum search 3.JPG, " a 3 step process is highlighted to show how to refine search so you only query in the GemFire area. On step 3 you can simply type "gemfire" and it will find "vFabric GemFire" to select for the "Restrict to..." field. Step 4 is an example search term.
Improvements to the VMware community site, including better search, are in process. In the meantime, the 3 step process should help.
PDX Deserializing problem in GFDatabrowser
Hi,
I got the following pdx error in the GFDatabrowser tool on Windows. I included the application jar file that include the application object definition in the tool preference menu.
[ INFO 2012/08/14 14:25:47.624 PDT Query Executer ] QueryUtil.executeQuery ==>select * from /Coupon
[ INFO 2012/08/14 14:25:47.625 PDT Query Executer ] QueryUtil.executeQuery after enforcing LIMIT ==>select * from /Coupon LIMIT 1000
[ SEVERE 2012/08/14 14:25:47.751 PDT Query Executer ] Error occured while executing the query: com.gemstone.gemfire.mgmt.DataBrowser.controller.QueryConfigurationPrms@1a5e5e53 com.gemstone.gemfire.mgmt.DataBrowser.query.QueryExecutionException: Failed to execute a Query : com.gemstone.gemfire.cache.client.ServerOperationException: com.gemstone.gemfire.pdx.PdxSerializationException: Exception deserializing a PDX field
Caused by com.gemstone.gemfire.pdx.PdxSerializationException: Exception deserializing a PDX field
Caused by java.io.IOException: Unknown header byte: 99
at com.gemstone.gemfire.mgmt.DataBrowser.query.QueryUtil.executeQuery(QueryUtil.java:74)
at com.gemstone.gemfire.mgmt.DataBrowser.connection.internal.GemFireClientConnectionImpl.executeQuery(GemFireClientConnectionImpl.java:122)
at com.gemstone.gemfire.mgmt.DataBrowser.controller.internal.QueryExecutionHelper$QueryExecutor.run(QueryExecutionHelper.java:169)
at java.lang.Thread.run(Unknown Source)
Caused by: com.gemstone.gemfire.cache.client.ServerOperationException: com.gemstone.gemfire.pdx.PdxSerializationException: Exception deserializing a PDX field
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:542)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:477)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:142)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:95)
at com.gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl.java:620)
GFSH could cause Cache server hung in release 6.6.2?
Hi
Now I have gemfire 6.6.2 on our production env.
The topology is 2 peers in LAN, 1 remote through WAN. The start sequece is peer1, remote, peer2.
But sometime when I try to access data via GFSH just after the servers up, it could cause server throws Timeout excetpion, and gfsh get timeout and failure on connecting. it happens on all the 3 instances. and once the connection failure happens, the server hang there, doesn't accept new client connections anymore, I have to rebounce everything to solve it.
Any releated issues reported for this version?
thanks.
Multi-site topology missing messages updating from Primary to Remote?
Hi there.
We have this issue troubing us for long time with gemfire 662.
we have primary server, scondary peer server, and thrid remote server running, the Primary server and Secondary server try to distributing messages to remote
On the primary and secondary server in the cache xml
<gateway-hubid="FirmLadderPositionEntityStoreHub"port="31443"
startup-policy="primary">
<gatewayid="FirmLadderEntityStore">
<gateway-listener>
<class-name>com.citigroup.posmgmt.gemfirecache.LadderEntityCacheStore</class-name>
<parametername="Name">
<string>FIRM_LADDER_POSITION_STORE</string>
</parameter>
</gateway-listener>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation="true"
/>
</gateway>
<gatewayid="FirmLadderEntityStore2"concurrency-level="2">
<gateway-endpointhost="$remote_host_ln_p"id="FirmLadderPositionEntityStoreHub1"port="31443"/>
<gateway-endpointhost="$remote_host_ln_s"id="FirmLadderPositionEntityStoreHub2"port="31443"/>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation="true"/>
</gateway>
</gateway-hub>
<gateway-hubid="SettLadderPositionEntityStoreHub"port="31444"
startup-policy="primary">
<gatewayid="SettlementLadderEntityStore">
<gateway-listener>
<class-name>com.citigroup.posmgmt.gemfirecache.LadderEntityCacheStore</class-name>
<parametername="Name">
<string>SETT_LADDER_POSITION_STORE</string>
</parameter>
</gateway-listener>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation="true"
/>
</gateway>
<gatewayid="SettlementLadderEntityStore2"concurrency-level="2">
<gateway-endpointhost="$remote_host_ln_p"id="SettLadderPositionEntityStoreHub1"port="31444"/>
<gateway-endpointhost="$remote_host_ln_s"id="SettLadderPositionEntityStoreHub2"port="31444"/>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation=
<regionname="FIRM_LADDER_POSITION_CACHE">
<region-attributesscope="distributed-ack"
enable-gateway="true"hub-id="FirmLadderPositionEntityStoreHub"
data-policy="replicate">
<disk-write-attributesroll-oplogs="true"
max-oplog-size="500">
<asynchronous-writesbytes-threshold="10000"
time-interval="1"/>
</disk-write-attributes>
<disk-dirs>
<disk-dir>./cacheStore</disk-dir>
</disk-dirs>
<eviction-attributes>
<lru-heap-percentageaction="overflow-to-disk"/>
</eviction-attributes>
</region-attributes>
<indexname="cusipIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="cusip"/>
</index>
<indexname="ConvertibleIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="Convertible"/>
</index>
<indexname="Cpn_rateIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="Cpn_rate"/>
</index>
<indexname="ecbeligibleIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="ecbeligible"/>
</index>
<indexname="gctIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="gct"/>
</index>
<indexname="firmCdIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="firm_cd"/>
</index>
<indexname="denominationIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="denomination"/>
</index>
<indexname="EmergingIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="Emerging"/>
</index>
<indexname="eurobondIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="eurobond"/>
</index>
<indexname="productTypIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="productTyp"/>
</index>
<indexname="iss_countryIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="iss_country"/>
</index>
<indexname="isinCodeIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="isin_code"/>
</index>
<indexname="tickerIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="ticker"/>
</index>
<indexname="Firm_mncIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"
expression="Firm_mnc"/>
</index>
<indexname="InvSegmentIndex">
<functionalfrom-clause="/PACMAN/FIRM_LADDER_POSITION_CACHE"expression="InvSegment"/>
</index>
</region>
<regionname="SETT_LADDER_POSITION_CACHE">
<region-attributesscope="distributed-ack"
enable-gateway="true"hub-id="SettLadderPositionEntityStoreHub"
data-policy="replicate">
<disk-write-attributesroll-oplogs="true"
max-oplog-size="500">
<asynchronous-writesbytes-threshold="10000"
time-interval="1"/>
</disk-write-attributes>
<disk-dirs>
<disk-dir>./cacheStore</disk-dir>
</disk-dirs>
<eviction-attributes>
<lru-heap-percentageaction="overflow-to-disk"/>
</eviction-attributes>
</region-attributes>
<indexname="cusipIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="cusip"/>
</index>
<indexname="ConvertibleIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="Convertible"/>
</index>
<indexname="Cpn_rateIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="Cpn_rate"/>
</index>
<indexname="ecbeligibleIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="ecbeligible"/>
</index>
<indexname="gctIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="gct"/>
</index>
<indexname="firmCdIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="firm_cd"/>
</index>
<indexname="denominationIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="denomination"/>
</index>
<indexname="EmergingIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="Emerging"/>
</index>
<indexname="eurobondIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="eurobond"/>
</index>
<indexname="productTypIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="productTyp"/>
</index>
<indexname="iss_countryIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="iss_country"/>
</index>
<indexname="isinCodeIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="isin_code"/>
</index>
<indexname="tickerIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="ticker"/>
</index>
<indexname="LocationIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="Location"/>
</index>
<indexname="Location_idIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="Location_id"/>
</index>
<indexname="Balance_typeIndex">
<functionalfrom-clause="/PACMAN/SETT_LADDER_POSITION_CACHE"
expression="Balance_type"/>
</index>
</region>
In the Remote server cache xml
<gateway-hubid="FirmLadderPositionEntityStoreHub"port="31443"
startup-policy="primary">
<gatewayid="FirmLadderEntityStore2"concurrency-level="2">
<gateway-endpointhost="$remote_host_ny_p"id="FirmLadderPositionEntityStoreHub1"port="31443"/>
<gateway-endpointhost="$remote_host_ny_s"id="FirmLadderPositionEntityStoreHub2"port="31443"/>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation="true"/>
</gateway>
</gateway-hub>
<gateway-hubid="SettLadderPositionEntityStoreHub"port="31444"
startup-policy="primary">
<gatewayid="SettlementLadderEntityStore2"concurrency-level="2">
<gateway-endpointhost="$remote_host_ny_p"id="SettLadderPositionEntityStoreHub1"port="31444"/>
<gateway-endpointhost="$remote_host_ny_s"id="SettLadderPositionEntityStoreHub2"port="31444"/>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation="true"/>
</gateway>
</gateway-hub>
<gateway-hubid="FirmLadderPositionEntityStoreHub"port="31443"
startup-policy="primary">
<gatewayid="FirmLadderEntityStore2"concurrency-level="2">
<gateway-endpointhost="$remote_host_ny_p"id="FirmLadderPositionEntityStoreHub1"port="31443"/>
<gateway-endpointhost="$remote_host_ny_s"id="FirmLadderPositionEntityStoreHub2"port="31443"/>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation="true"/>
</gateway>
</gateway-hub>
<gateway-hubid="SettLadderPositionEntityStoreHub"port="31444"
startup-policy="primary">
<gatewayid="SettlementLadderEntityStore2"concurrency-level="2">
<gateway-endpointhost="$remote_host_ny_p"id="SettLadderPositionEntityStoreHub1"port="31444"/>
<gateway-endpointhost="$remote_host_ny_s"id="SettLadderPositionEntityStoreHub2"port="31444"/>
<gateway-queueenable-persistence="true"
overflow-directory="./cacheStore/"maximum-queue-memory="100"
batch-size="1000"batch-time-interval="1000"batch-conflation="true"/>
</gateway>
</gateway-hub>
This not happens every time, we met 3 times within 10 days, and the remote stops getting updating after the message flowing in a while.
Sending update to multiple gateway hubs
Hi,
We have setup global replication from one site to another remote site. We have defined multiple gateway hubs to replicate different regions data from Site1 to RemoteSite1. This works perfectly fine. But we have one region , which we would like to replicate to all the gateway hubs.
Which we defined as:
<region-attributes id="MY_REGION_ATTRIBUTE_0" refid="REPLICATE_PERSISTENT"
hub-id="GVA_1,GVA_2" scope="distributed-ack" ignore-jta="true" enable-gateway="true" early-ack="false" disk-store-name="PDC" disk synchronous="false">
<eviction-attributes>
<lru-memory-size maximum="150" action="overflow-to-disk"/>
</eviction-attributes>
</region-attributes>
However on the remote site in the cache listener we still get only one notification for the single update made to this region in local cache. We were expecting that a single update in this particular region, will be replicated twice to remote region, since we defined multiple gateway hubs on different port. Even though when we removed the hub-id, we noticed the same behavior. We were expecting as per the documentation, this event will be replicated to all the gateways.
from the deocumentation:
<gateway-hub id="GVA_1" port="33334" socket-buffer-size="2048000"
startup-policy="primary">
<gateway id="HKG_1" socket-buffer-size="2048000"
concurrency-level="1">
<gateway-endpoint id="HKG1"
host="server1" port="33334" />
<gateway-queue batch-conflation="true" batch-size="100"
maximum-queue-memory="100" batch-time-interval="100"
disk-store-name="HKG_QUEUE"/>
</gateway>
</gateway-hub>
<gateway-hub id="GVA_2" port="33334" socket-buffer-size="2048000"
startup-policy="primary">
<gateway id="HKG_2" socket-buffer-size="2048000"
concurrency-level="1">
<gateway-endpoint id="HKG2"
host="server1" port="33334" />
<gateway-queue batch-conflation="true" batch-size="100"
maximum-queue-memory="100" batch-time-interval="100"
disk-store-name="HKG_QUEUE"/>
</gateway>
</gateway-hub>
Multiple Distributed Systems in VM
Hi,
From Gemfire documentation, it is clear that we can have only one distributed system per a VM.
We are using Gemfire 6.1 version.
We have a requirement where, we start a gemfire command server in a VM and need to connect to another gemfire CacheServer running on different VM.
As the command server has already created a Cache (and a distributed system), I can't connect to the CacheServer on second VM from this VM.
Is there any better way to access CacheServer from a CommandClient ?
start GFMon is failing in linux
Could you please help me on GFMon.
i have installed and configured gemfire server and cache server properly.
...
able to start agent with locator
after that i executed >bash gfmon
then i'm getting below error
ERROR: trouble starting GFMon.
This is likely a swt graphics library issue while loading the gtk libraries
or you forgot to set your DISPLAY environment variable.
Using a FunctionAdapter to create a region
I'm trying to dynamically add a region using a FunctionAdapter from within a Spring/tcServer VM.
I understood that I needed to have the class in the classpath of every member in the DS, so I wrote a small class to register every FA I have. It's called and looks to be working (or at least doesn't error out).
My problem is that when I try to run a test on this, I'm getting a:
com.gemstone.gemfire.InternalGemFireException: java.io.NotSerializableException: com.gemstone.gemfire.internal.cache.GemFireCacheImpl
at com.gemstone.gemfire.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1809)
Which makes it appear - to me at least - that it thinks it has to serialize the function from the calling member. The cache is autowired as part of the FA bean.
Clearly I've got hold of the wrong end of the stick somewhere.
Can anyone enlighten me as to how I managed to mess this up?
The question's worthless without some code so here goes:
1. Partial FunctionAdapter. Leaves out getId/hasResult/isHA.
Arguments passed in are a set of properties - one of which is the name of the region to create.
@Component public classRegionFunctionextends FunctionAdapter privatestaticfinallongserialVersionUID = 1L;
@Autowired Cache cache; @Override publicvoid execute(FunctionContext arg0) { Properties props = (Properties) arg0.getArguments(); RegionFactory<Object, Object> rf = cache.createRegionFactory(); rf.create(props.getProperty("name")); } 2. Function registering bean. Not exactly rocket science, but it appears to get the job done. It is called in the server and it does have the FA above in the array. @Component public class FunctionRegistry { @Autowired private FunctionAdapter[] adapters; public FunctionRegistry() {} @PostConstruct publicvoid init() { if (adapters != null&& adapters.length> 0) { for (FunctionAdapter adapter : adapters) { FunctionService.registerFunction(adapter); } } } 3. Call to actually run the function - this is a JUnit test against a real tcServer instance. I did it this way for convenience (for me). @RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (locations = { "classpath:META-INF/spring/new-region-context.xml" }) public class RegionCreateFunctionTest { @Autowired ApplicationContext ctx; Cache cache; RegionFunction function; @Before FunctionService.registerFunction( function); } @Test Execution execution = FunctionService.onMembers( cache.getDistributedSystem()); Properties props = new Properties(); props.put( "name", "someregion"); execution = execution.withArgs(props); execution.execute( function); }
Gemfire Consulting Architect, UK needed
Hi,
We have an opening here at VMware UK for a Gemfire Architect .
Please have a look at the job details mentioned below and email me if interested.
The GemStone Consulting team is looking for a hands-on Grid/Data-Caching/High Performance Computing Architect to join our team. The successful candidate should have a strong background developing high performance Java applications. GemStone work includes distributed locking/leasing algorithms, data partitioning, querying and indexing, filtered views, asynchronous persistence, C++ interoperability, shared memory management, reliable multicast, and other distributed algorithms.
Responsibilities:
-Determine product gaps for client engagements and participate in the specification, design, implementation, testing, UAT and PROD migration and support, validation and support of necessary features
-Work onsite on one or multiple client sites in conjunction with GemFire and Spring Source/VMware product consulting services engagements
-Estimated travel for on-site work is 75% or greater
-Where business needs and pre-sales requirements dictate, consultants may be called upon to (alone or with a team) execute client Proof of Concepts (POC) evaluations and product benchmarks. Estimated travel for on-site client POC efforts is 70% where applicable
-Work in conjunction with Sales Engineering and/or Product Engineering and Technical Support to resolve customer issues in pre-sales and POC engagements
-Participate in improving existing features and product performance
Required Skills:
-Any prior experience with GemFire, Coherence or Gigaspaces (Terradata, Scale-Out or similar products also desirable) is a definite plus
-Strong Java development skills with 5+ years concurrent programming, testing, and profiling experience
-C# programming experience is required, C++ development experience is highly desired as well
-Multiple years experience working directly with customers to design, develop, and support customized software products
-Proven ability to design, model, implement, and test high performance software for mission critical applications
-Candidate should have a good understanding of distributed computing concepts and networking principles
-A broad knowledge of Java technologies (XML, Spring, Hibernate, J2EE, JDBC, JMS, JMX, etc.) is very desirable
-Customer-focused history of designing, delivering, and supporting software solutions to real world problems
-Proven ability to master new technology and application domains (e.g. Financial, scientific, and industrial)
-BS or equivalent in Computer Science or Mathematics, with coursework in Distributed Systems
-Able to multitask and meet aggressive deadlines
-Ability to do technical presentations internally or at a customer site
Please email your CV directly to me at barnardg@vmware.com
Regards
Gavin
Unable to query new userType Object
Hi,
I am trying to create a Region named Entities which will allow me to put and query a serializable Entity object into the region using C++.
A cacheserver was launched and when i try to run my testprogram, i recieved the following error:
Do i need to create a DataSerializable Java Class for the Entity object in order to store my Entity object in the java cache server?
If needed, how to i registered so that gemFire cache server is able to recognize it?
how could one VM connect to multiple different purpose gemfire servers?
Currently I need to use two different purpose gemfire client in my service( like one is for product, and another is like for customer infomation.)
The problem here is when I new the product gemfire client, and then new the customer gemfire client. There told me some product related classes not found on a server pool like customer_pool... or customer classes not found on a server pool like product pool..
How could I resolve this issue? Is it posssible to have one VM connect to 2 different purpose gemfire server?
Looking forward ur response, thanks very much!
Hierarchical gemfire region queries
Do we know if Gemfire supports hierarchical region queries (I didn’t find it in Gemfire doc references I have), just like databases do? We have a requirement to cache an entity tree and then query/update it. If not supported, what is the recommendation? And any plans to add this support in future releases?
error: The attribute or method name ' template ' could not be resolved
All-
This is a peculiar issue, in 1 of my objects I have a boolean property called 'template' but for some odd reason I can't query it, when I do I get the error in the subject line. Any thoughts.
Query:
select * from /ComplianceRule where template=true
Result:
error: The attribute or method name ' template ' could not be resolved
Rare InternalGemFireError doing setCallbackArgument from CacheWriter
Hi,
What is wrong in this case? Is this some kind of race condition case were client sends the event and then gets disconnected?
The code is (the OldValue is then used in GatewayListener for destroy case):
region.getAttributesMutator().setCacheWriter(new CacheWriterAdapter(){
@Override public void beforeDestroy(EntryEvent event) throws CacheWriterException {
EntryEventImpl eei = (EntryEventImpl) event;
eei.setCallbackArgument(eei.getOldValue());
}
}
GF version 6.6.3.
The error that GemFire had in the logs was:
[severe 2012/09/17 06:28:59.279 EDT server-1-a <ServerConnection on port 40011 Thread 11623> tid=0x16bcc] Server connection from [identity(10.x.x.x(7401:loner):39234:fe1e7bc9:user1,connection=1; port=39309] : Unexpected Error on server
com.gemstone.gemfire.InternalGemFireError
at com.gemstone.gemfire.internal.Assert.throwError(Assert.java:84)
at com.gemstone.gemfire.internal.Assert.assertTrue(Assert.java:48)
at com.gemstone.gemfire.internal.cache.WrappedCallbackArgument.setOriginalCallbackArgument(WrappedCallbackArgument.java:93)
at com.gemstone.gemfire.internal.cache.EntryEventImpl.setCallbackArgument(EntryEventImpl.java:766)
at com.....server.Server$2.beforeDestroy(AmoebaServer.java:458)
at com.gemstone.gemfire.internal.cache.SearchLoadAndWriteProcessor.doLocalWrite(SearchLoadAndWriteProcessor.java:836)
at com.gemstone.gemfire.internal.cache.SearchLoadAndWriteProcessor.doNetWrite(SearchLoadAndWriteProcessor.java:204)
at com.gemstone.gemfire.internal.cache.DistributedRegion.cacheWriteBeforeDestroy(DistributedRegion.java:2052)
at com.gemstone.gemfire.internal.cache.AbstractRegionEntry.destroy(AbstractRegionEntry.java:696)
at com.gemstone.gemfire.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:932)
at com.gemstone.gemfire.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:5815)
at com.gemstone.gemfire.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:5788)
at com.gemstone.gemfire.internal.cache.LocalRegionDataView.destroyExistingEntry(LocalRegionDataView.java:39)
at com.gemstone.gemfire.internal.cache.LocalRegion.basicDestroy(LocalRegion.java:5753)
at com.gemstone.gemfire.internal.cache.DistributedRegion.basicDestroy(DistributedRegion.java:1526)
at com.gemstone.gemfire.internal.cache.LocalRegion.basicBridgeDestroy(LocalRegion.java:4993)
at com.gemstone.gemfire.internal.cache.tier.sockets.command.Destroy65.cmdExecute(Destroy65.java:224)
at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:170)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:774)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:905)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1151)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at com.gemstone.gemfire.internal.cache.tier.sockets.AcceptorImpl$1$1.run(AcceptorImpl.java:511)
at java.lang.Thread.run(Thread.java:662)
[info 2012/09/17 06:29:17.177 EDT server-1-a <ServerConnection on port 40011 Thread 12> tid=0x1a1] Server connection from [identity(10.x.x.x(7401:loner):39234:fe1e7bc9:user1,connection=1; port=39236]: connection disconnect detected by EOF.
"Queue Size" remain at constant level as observed from GFMon
We have 2 GemFire 6.5 Cache server nodes setup with partition regions and receiving new objects at around 50 - 70 puts / sec, both with a Gateway connection connecting to another Cache node at remote site
We have performed a cache server restart on our production site last week due to high memory issue, and since then, we observed from GFMon that the "Queue size" of the 2 cache nodes remain at 122 and 126. From the "Member's Clients" view, 3 of the clients have queue sizes always at "39"
Is there anyway to check what was remained in those "queues" and how to clear them?
Attached the GFMon screenshot
client side newCq() method invocation on server
Hi
I am using gemfire 6.6.2. My server connects to another gemfire server and does the newCq query. Example code:
private volatile CqQuery query;
QueryService queryService = client.getPool().getQueryService();
CqAttributes cqAtts = cqAttsFactory.create();
query = queryService.newCq("MementosQuery", queryStringBuilder.toString(), cqAtts);
Now this used to work fine, but after recently I changed the server to add "Cache Server" as below.
com.gemstone.gemfire.cache.server.CacheServer cacheServer = cache.addCacheServer();
cacheServer.setPort(port);
try {
cacheServer.start();
} catch (IOException e) {
logger.error("Error while initializing CacheServer",e);
}
Due to this I believe, I am seeing below issue
[2012-09-24 21:18:21,759][INFO][main][matchbook.mementos.MementosReceiverImpl] Mementos order query: SELECT * FROM /OrderMementos WHERE BranchId='0001'
[2012-09-24 21:18:21,769][ERROR][main][matchbook.mementos.MementosReceiverImpl] Exception
java.lang.IllegalStateException: client side newCq() method invocation on server.
at com.gemstone.gemfire.cache.query.internal.CqService.newCq(CqService.java:258)
at com.gemstone.gemfire.cache.query.internal.DefaultQueryService.newCq(DefaultQueryService.java:501)
at com.tradingscreen.matchbook.mementos.MementosReceiverImpl.initializeReceiver(MementosReceiverImpl.java:120)
at com.tradingscreen.matchbook.mementos.MementosReceiverImpl.initialize(MementosReceiverImpl.java:67)
at com.tradingscreen.matchbook.MatchBook.<init>(MatchBook.java:251)
at com.tradingscreen.matchbook.MatchBook.main(MatchBook.java:612)
Please advice on how to continue doing newCq queries and also be able to add cache server at the same time.
Thanks
Nirav