Quantcast
Channel: VMware Communities : All Content - vFabric GemFire [ARCHIVED]
Viewing all 990 articles
Browse latest View live

Log in Agent

$
0
0

I'm trying to limit the disk size space that are using the agent's logs. I put the log-disk-space-limit command in the agent.properties whit a value of 1 (1MB) but this is not working because i find log with a bigger size than 1.

 

What is the problem with that ? How works the log-disk-space-limit command?


Copy to clipboard in DataBrowser

$
0
0

There doesn't appear to be a way to copy field or row data to the clipboard in the DataBrowser. Is this planned for future a release?

Statistics inaccurate in Pulse application

$
0
0

In particular the displayed region counts seem to be off when I attached to my datagrid with the Pulse application. All regions show the same number of entries (297779) in Pulse whereas if I query the regions with DataBrowser I can see the accurate counts for each region (e.g. 0,11, 182715, 4981, 39845, 9958, 5, 4858, 204217, 35, 1). I can verify that these counts are correct since I'm loading the records from a DB. My datagrid is composed of three server members with two locators. All regions are partitioned. Also, I am able to see all members accurately in Pulse so it seems to be configured correctly. Any insight on this?

Thanks

Tom

DataBrowser on Mac OSX 10.8.2

$
0
0

Hello,

 

This post is in regard to difficulty configuring GF's DataBrowser on Mac OSX 10.8.2.  The grid is comprised of two cache servers that have been started using gfsh.  The problem described occurs identically whether connecting through a locator or directly through JMX.

 

When trying to connect to GemFire from the DataBrowser a "RegionMBean Not Found In Distributed System" exception is thrown (full stack trace is below).  The exception is thrown immediately which I take to mean it is getting connected (not timing out) and finding that this gemfire.jar provided class is missing.

 

Since the databrowser script provides the gemfire.jar for the DataBrowser and gfsh provides it to the members started through its facilities, I am at a bit of a loss as to why it is not found? 

 

Any help is greatly appreciated.

 

-Alan

 

Stack trace:

 

[ SEVERE 2013/03/02 13:03:28.407 MST main ] An error occurred when attempting to connect to the GemFire Distributed System com.gemstone.gemfire.mgmt.DataBrowser.connection.ConnectionFailureException: java.lang.Exception: RegionMBean Not Found In Distributed System, isRetryAllowed : false

at com.gemstone.gemfire.mgmt.DataBrowser.connection.internal.JMXDiscoveryImpl.establishConnectionUsingJMXManager(JMXDiscoveryImpl.java:601)

at com.gemstone.gemfire.mgmt.DataBrowser.connection.internal.JMXDiscoveryImpl.<init>(JMXDiscoveryImpl.java:112)

at com.gemstone.gemfire.mgmt.DataBrowser.connection.ConnectionFactory.createGemFireConnection(ConnectionFactory.java:33)

at com.gemstone.gemfire.mgmt.DataBrowser.connection.internal.JMXCallExecutor$1.run(JMXCallExecutor.java:69)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:722)

Caused by: java.lang.Exception: RegionMBean Not Found In Distributed System

at com.gemstone.gemfire.management.internal.beans.DistributedSystemBridge.fetchRegionObjectName(DistributedSystemBridge.java:1022)

at com.gemstone.gemfire.management.internal.beans.DistributedSystemMBean.fetchRegionObjectName(DistributedSystemMBean.java:276)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:192)

at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:174)

at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)

at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)

at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:235)

at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)

at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:250)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:791)

at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1486)

at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:96)

at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1327)

at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1419)

at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:847)

at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)

at sun.rmi.transport.Transport$1.run(Transport.java:177)

at sun.rmi.transport.Transport$1.run(Transport.java:174)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:173)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)

How can gemfire locator be configurated to return full DNS name to Client?

$
0
0

we have a locator running front of 2 cache servers,    

 

Locator.DomainA==>Server1.DomainA, Server2.DomainA.

 

the problem is when the client(Client.DomainB) try to  access gemfire via locator,  it throws 'get: not connected to GemFire' exception,  the reason is although the Client.DomainB uses full name 'Locator.DomainA' to access gemfire,    the locator itself only maintains hostname of servers,     when the client  executes query,  it do access Server1 or Server2 ,   but in this case,  the networking is not connected.

 

How can gemfire locator be configurated to return full DNS name to Client?

 

in gemfire.properties,  locators attribute is full domain name already.

 

Thanks

Yao

FunctionStatistics - functionExecutionsCompletedProcessingTime

$
0
0

We are evaluating the time it takes for some of the requests to complete and wanted to understand what "FunctionStatistics - functionExecutionsCompletedProcessingTime" stat reports. For this stat, I see Nanoseconds/seconds as the value on y-axis. What does it mean? Is there a way to track time taken to complete a particular request?

Impact of Gateway Hub on cache server cluster performance

$
0
0

Hi

 

We are observing a performance issue when we implement Gateway Hub for async-write-behind purpose on cache server cluster.

The test which takes around 7 - 8 seconds with Gateway Hub implemented, takes 600 - 700 milliseconds after removing Hub from the cluster.

 

Below is the description of our test environment.

 

Gemfire cluster consist of two cache servers, running on separate VMs, and is managed by a locator process. Gateway hub is implemented to send events to MySQL database asynchronously.

 

Gemfire clients, initialized in a web application, connect to same cluster using locator.

These clients, two in number, are configured to run at same time and put some data in same region. These clients run continuously for 10 minutes and invoke multiple threads which put data/update data in the region simultaneously.

 

What we have observed is that when Hub is implemented in the cluster, one of the cache server in cluster doesn't work efficiently and continuously logs a warning message like ' DistributedCacheOperation$CacheOperationReplyProcessor: waiting for 1 replies from <other cache server> whose membership list is ......' and

'Wait for reply completed’. This particular server is the one which have secondary hub. CPU usage of this cache server lies to 5-10% while usage of other cache server goes to 80-90%.

 

After removing Hub from cluster, both cache servers share the work equally and both use about 80-90 % of CPU.

 

Please suggest if there is something wrong in the implementation.

 

If this is the general behavior of Gateway Hub then is there any other alternative for backing the data in Database without affecting performance?

 

Note: The timings shown above represent the results of load testing of web applications by Jmeter. Each application user connects to cache server cluster and puts some data in the region. These are the average time taken by a user when 500 concurrent users are using the application.

 

Thanks

 

Mahesh

 

-------------------------------------------------------------------------------------------------------

 

Deployments: Gemfire662, Java6-64bit, Windows Server2008 64bit

 

Hub Settings on both cache servers (cache.xml):

 

<gateway-hub id="TimeBookingsDBWriter" port="-1"

                                startup-policy="primary">

                                <gateway id="TimeBookingsDBWriter">

                                                <gateway-listener>

                                                                <class-name>listeners.TB_GatewayListener_Hib</class-name>

                                                </gateway-listener>

                                                <gateway-queue batch-size="100" batch-time-interval="1000" batch-conflation="true" />

                                </gateway>

</gateway-hub>

 

<region name="ProjletTask">

                                <region-attributes scope="distributed-ack"

                                                data-policy="replicate"

                                                enable-subscription-conflation="true" hub-id="TimeBookingsDBWriter" enable-gateway="true">

                                </region-attributes>

                                <index name="projletIDIndex">

                                                <functional from-clause="/ProjletTask pt" expression="pt.projletID" />

                                </index>

                                <index name="quickTaskIDIndex">

                                                <functional from-clause="/ProjletTask pt" expression="pt.quickTaskID" />

                                </index>

</region>

 

 

Client Side settings (client-cache.xml):

 

 

<pool name="rende-pool"  min-connections="250" max-connections="500" read-timeout="600000" socket-buffer-size="64000">

    <locatorr host="107.21.164.4" port="10335"/>

 

</pool>

 

<region name="ProjletTask" refid="PROXY">

                             

</region>

 

Data Insert Method:

 

        Region.putAll()

JTA and Hibernate integration

$
0
0

Hi

 

I am checking if it is possible to integrate Hibernate's JTA TransactionFactory to lookup/follow GemFire's transaction manager as JTA provider.

 

I am trying to execute a set of operations as described below as a part of function execution.

I want myregion.put &  factory.getCurrentSession().update(...) to be part of same underlying JTA Transaction that is started by using GemFire as JTA Provider

try{
    Context ctx = Cache.getJNDIContext();
    UserTransaction tx = (UserTransaction)ctx.lookup("java:/UserTransaction");
                                tx.begin();    // Do some work    factory.getCurrentSession().update(...);    myregion.put(...);    tx.commit();}catch (RuntimeException e) {    tx.rollback();    throw e; // or display error message}

more details can be found here under Transaction Demarcation with JTA : https://community.jboss.org/wiki/SessionsAndTransactions

 

After tx.commit();, I do not see hibernate applying changes to database.

 

I have provided system property as below, as it is suggested in another thread, after which Hibernate is able to locate transaction in JNDI

 

System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.gemstone.gemfire.internal.jndi.InitialContextFactoryImpl");

 

This is GemFire 6.6.3 and Hibernate has its own database connection pool.

There are no JNDI bindings declared in cache.xml

 

I had to add a GemFireTransactionManagerLookup class as below to be provided in hibernate's hibernate.transaction.manager_lookup_class element

 

 

import org.hibernate.HibernateException;

import org.hibernate.transaction.TransactionManagerLookup;

 

import javax.transaction.Transaction;

import javax.transaction.TransactionManager;

import java.util.Properties;

 

public class CGemFireTransactionManagerLookup implements TransactionManagerLookup {

     @Override

     public TransactionManager getTransactionManager(Properties properties) throws HibernateException {

          return com.gemstone.gemfire.internal.jta.TransactionManagerImpl.getTransactionManager();

     }

     @Override

     public String getUserTransactionName() {

          return "java:/UserTransaction";

     }

     @Override

     public Object getTransactionIdentifier(Transaction transaction) {

          return transaction;

     }

}

hibernate cfg settings

 

  <property name="jta.UserTransaction">java:/UserTransaction</property>

  <property name="hibernate.current_session_context_class">jta</property>

  <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>

  <property name="hibernate.transaction.manager_lookup_class">CGemFireTransactionManagerLookup</property>

 

Am I missing something here?

 

thanks


AccessControlException when running gemfire upgrade-disk-store

$
0
0
Hi,

We saw this warning in GF logs when trying to upgrade the disk store from 6.6.x to GF7.0.0.2:
java.security.AccessControlException: access denied (javax.management.MBeanTrustPermission register)        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)        at java.lang.SecurityManager.checkPermission(SecurityManager.java:568)        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.checkMBeanTrustPermission(DefaultMBeanServerInterceptor.java:1824)        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:310)        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482)        at com.gemstone.gemfire.management.internal.MBeanJMXAdapter.registerMBean(MBeanJMXAdapter.java:103)        at com.gemstone.gemfire.management.internal.SystemManagementService.registerInternalMBean(SystemManagementService.java:384)        at com.gemstone.gemfire.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:162)        at com.gemstone.gemfire.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:105)        at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2087)        at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:424)        at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.init(GemFireCacheImpl.java:819)        at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:609)        at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:182)        at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:161)        at com.gemstone.gemfire.internal.cache.DiskStoreImpl.createForOffline(DiskStoreImpl.java:5013)        at com.gemstone.gemfire.internal.cache.DiskStoreImpl.offlineCompact(DiskStoreImpl.java:5100)        at com.gemstone.gemfire.internal.SystemAdmin.upgradeDiskStore(SystemAdmin.java:442)        at com.gemstone.gemfire.internal.SystemAdmin.invoke(SystemAdmin.java:2139)        at com.gemstone.gemfire.internal.SystemAdmin.main(SystemAdmin.java:1960)

 

No other errors/warnings seen in logs and the disk store is not upgraded as the peer startup confirms:

java.lang.IllegalStateException: This disk store is still at version GFE pre-7.0.        at com.gemstone.gemfire.internal.cache.DiskStoreImpl.loadFiles(DiskStoreImpl.java:2121)

I'm not sure if disk store upgrade fails because of this or not.
Are we supposed to mock around with security policy? Is this known issue?

 

Thanks

ClientCacheFactory.set("name", clientName) in .net native client

$
0
0

Hi,

 

I ported my Java client over to .net, but could not figure out how to set the name. This is how I do it in Java:

 

new ClientCacheFactory().set("name", clientName)

On the GemFire server side, I can then get the name e.g. by means of:

public void memberJoined(BridgeMembershipEvent event)
{     String clientName = event.getMember().getName();

In C#, I tried to do

CacheFactory.CreateCacheFactory().Set("name", clientName)

which does not throw an error (like it does when I use some made-up property key), but it will not set the client name either.

The name of a .net client will default to "default_GemfireDS".

Is there a way to set the name in .net?

Handle database updates

$
0
0

Hi all

 

I am using Oracle 11g as the backend daatabse. I wanted to cache an entire table  in gemfire .There is a read only application which will in turn read from the cache and will be completely sheilded from the databse.

 

Now the real issue is there are legacy applications which change i.e update the tables in the databse.These application at present cannot interact with cache.Now the databse will have an updated table while the preloaded table in gemfire have stale records.

 

Can anyone suggest how gemfire can handle such db updates. The whole focus is to next get only those updated delta records an d updayting our gemfire cache intead of loading the entire table again.

 

Any help will be highly appreciated.

 

Thanks

Doubt with the PoolFactory interface

$
0
0

Hi, I have a question about the operation of PoolFactory Interface.

 

I'm using this interface to create a ConnectionPool in a dynamic way. The code is this:

 

public void createConnectionPool() throws Exception
{
PoolFactory factory = PoolManager.createFactory();
int countLocatorFail = 0;
try
{
if (StringUtils.isNotBlank(locatorHost1))
{
factory.addLocator(locatorHost1, locatorPort1);
}
}
catch (Exception e)
{
countLocatorFail++;
}
try
{
if (StringUtils.isNotBlank(locatorHost2))
{
factory.addLocator(locatorHost2, locatorPort2);
}
}
catch (Exception e)
{
countLocatorFail++;
}
if (countLocatorFail == 2)
{
throw new Exception("No se pudo encontrar los Host: " + locatorHost1 + ", " + locatorHost2);
}
factory.setFreeConnectionTimeout(freeConnectionTimeout);
factory.setIdleTimeout(idleTimeout);
factory.setPingInterval(pingInterval);
factory.setReadTimeout(readTimeout);
factory.setRetryAttempts(retryAttempts);
factory.setSubscriptionRedundancy(subscriptionRedundancy);
factory.setSubscriptionMessageTrackingTimeout(subscriptionMessageTrackingTimeout);
factory.setSubscriptionEnabled(true);
this.connectionPool = factory.create(poolName);
}

 

The problem and doubt that i have, is i think that with this way my application was connected to a different locatorHost and a different server to (locatorHost1 and locatorHost2 ) that i configure.

 

I think that maybe try to connect to a server that share the same port, but for me this is a problem.

 

anyone know how works the poolFactory?

Optimal JVM flags for a large Gemfire cache (Xms/Xmx=24g)

$
0
0

Hi All

 

We have a large 24g Gemfire cache (v.6.5.1) thats running on JDK (64 bit 1.6.0_37).

 

The cache itself contains only 1 region with disk persistence enabled. The entry is String=List<Object> with a total of ~400k entries. The value List<Object> contains a mixture of String,Long and Doubles and is of size 275.

 

This cache region receives around a million operations a day (puts/updates/deletes) inlcuding the occassional OQL (for e.g. select k.get(0) from /DATA k where k.get(10) ='dataSetId' and k.get(9) != someLong)

 

What we have noticed is that there are occasionally very long (2-10 sec) ParNew GC pauses. We have profiled the cache but dont see any memory leaks.

 

The best combination of JVM flags that works for us so far are: (these were set after many rounds of testing/profiling)

 

-Xms24g -Xmx24g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSScavengeBeforeRemark -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:CMSIncrementalSafetyFactor=75 -XX:CMSWaitDuration=300000 -XX:NewRatio=8 -XX:SurvivorRatio=8 -Xss384k -XX:+UseNUMA -XX:+UseStringCache -XX:+UseCompressedStrings -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseTLAB

 

I understand this is a pretty broad question, but does anyone in the community have any suggestions on how we can improve GC pause times/cache performance.

 

Thanks

Error querying region objects in DataBrowser

$
0
0

I'm querying region objects that have fields of type List<String>. I can successsfully perform the following query:

 

select * from /myRegion m where m.Name='objectName'

 

 

However, when I execute this query:

 

select m.someListOfStrings from /myRegion m where m.Name='objectName'

 

 

I get this result:

Screen Shot 2013-03-13 at 5.41.48 PM.png

 

What is the problem here?

Thanks!

Tom

.net native client crashes

$
0
0

I did some benchmarking of a GemFire based prototype and encounters 2  distinct crashes that happen once or twice in 100 tests, each test  executing GemFire functions 100k and putting and removing messages also roughly 100k times each.

 

In this prototype, there are "producer" clients, which  do the GemFire HA function executions sometimes crash just showing the  "your app crashed" dialog (don't know what the message on an English OS  would be exactly) and leaving a .dmp file.

 

There are also "consumer" clients, which do the  Region.puts and Region.removes. They do crash with a similar frequency,  but in addition to the .dmp file, they also leave a stack trace. Here  the original, untranslated message:

 

ハンドルされていない例外: System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
場所 GemStone.GemFire.Cache.Generic.Region`2.Put(TKey key, TValue value,Object callbackArg)
場 所  ProtoClient.QueueCacheListener.<>c__DisplayClass1.<AfterCreate>b__0(Objectstate)  場所 C:\GemFire7\ProtoClient\ProtoClient\Consumer.cs:行 205
場所  System.Threading.ExecutionContext.Run(ExecutionContextexecutionContext,  ContextCallback callback, Object state, Boolean ignoreSyncCtx)
場所 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
場所 System.Threading.ThreadPoolWorkQueue.Dispatch()
場所 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
[error 2013/03/07 18:17:48.946658 東京 (標準時) MACHINE23:436 1952] Debug
event STATUS_ACCESS_VIOLATION occurred at 000007FEF27A182E in process
with pid 436

 

gemfire::ThinClientRegion::invalidateInterestList
gemfire::ThinClientRegion::invalidateInterestList
gemfire::ThinClientRegion::invalidateInterestList
UnhandledExceptionFilter
MD5Final
_C_specific_handler
RtlDecodePointer
RtlUnwindEx
KiUserExceptionDispatcher
gemfire::ThinClientRegion::invalidateInterestList
[error 2013/03/07 18:17:49.290423 東京 (標準時) MACHINE23:436 1952]
Generating debug dump in file
C:\Users\eugen/gemfire_nativeclient-1362647869-436.dmp

 

Both of the above errors occured in Native Client 7.0.0. I downloaded the brand new 7.0.1 and could at least reproduce the "producer" client crash, the one that does not log a stack trace. Not sure if the "consumer" side crash is fixed (as some other AccessViolationException has been fixed with 7.0.1), as it takes a lot of repetitions to reproduce.

 

Any ideas what this could be? Are the common mistakes that make the .net client crash? Is this a bug in the native client?

 

I attached the following dump files:

 

* gemfire_nativeclient-1363144610-1312.dmp (7.0.1 producer client dump)

* PR2-gemfire_nativeclient-1362994391-3044.dmp (7.0.0 producer client dump)

* CO1-gemfire_nativeclient-1362994382-2960.dmp (7.0.0 consumer client dump)

* CO1-gemfire_nativeclient-1362994468-1364.dmp (7.0.0 consumer client dump)


Gemfire unresponsive in test environment

$
0
0

Our company is running two separate networks internally for company operations; one network is for testing and the other is for production. The production network has access to the the public internet while the testing network does not. We have identical Gemfire grids set up on both of these networks for testing and production support, respectively. The Gemfire grids are mirror images of each other in terms of hostnames, configuration, and locators to the point that we could copy the deployed .war file (we are hosting each Gemfire node in a webapp inside Tomcat) from the test network to the production network with zero change in configuration.

 

Recently, we have been observing some odd behavior on the test network: Gemfire will intermittenly become partially unresponsive and will require a reboot to start working properly. In particular, one of our CacheListeners stops firing.  We have not seen this at all in the production network in the few months that we have had the Gemfire application live in production, however, this happens fairly frequently in the test network.

 

I know this is a very vague description of the problem but I haven't been able to isolate it any more than this yet. It is very difficult to reproduce. Is there a possiblity that something like this could be related to the limited public internet access on the test network? Does Gemfire require a public internet connection for its licensing? That is the only difference between the two installations so it is naturally what we thought to look at first. Any other ideas?

Tom

Impact of stats on client

$
0
0

I wanted to know what is the impact on performance if we turn on Gemfire statistics on the client side?

We do have sufficient processing and memory power but would it slow down Gemfire request?

Partitionned region with enum in the key

$
0
0

Hi,

 

I'm trying to use a key object that has an enum type in a partitionned region. We use DataSerializable, in 6.6.3.5.

I try to bulk load 20'000 items, but only the first few dozen items get loaded, and then the gemfire cache servers appear to get stuck.

A thread dump of the cache server instance shows the following stack trace:

 

"ServerConnection on port 61319 Thread 2" prio=6 tid=0x07487800 nid=0x2e70 waiting on condition [0x0b55f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at com.gemstone.gemfire.internal.cache.PartitionedRegion$RetryTimeKeeper.waitForBucketsRecovery(PartitionedRegion.java:7403)
    at com.gemstone.gemfire.internal.cache.PartitionedRegion$RetryTimeKeeper.waitToRetryNode(PartitionedRegion.java:7386)
    at com.gemstone.gemfire.internal.cache.PartitionedRegion.sendMsgByBucket(PartitionedRegion.java:2076)
    at com.gemstone.gemfire.internal.cache.PartitionedRegion.postPutAllSend(PartitionedRegion.java:1951)
    at com.gemstone.gemfire.internal.cache.LocalRegionDataView.postPutAll(LocalRegionDataView.java:213)
    at com.gemstone.gemfire.internal.cache.LocalRegion.basicPutAll(LocalRegion.java:8408)
    at com.gemstone.gemfire.internal.cache.LocalRegion.basicBridgePutAll(LocalRegion.java:8287)
    at com.gemstone.gemfire.internal.cache.tier.sockets.command.PutAll.cmdExecute(PutAll.java:205)
    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: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)

 

The same stack trace can be seen in the other instances.

 

The key is composed of the following fields:

 

  private String entityCode;
  private String sid;
  private UserRoleAccOrRelTypeEnum type;
  private int accOrRelId;

 

with the enum defined like so:

 

public enum UserRoleAccOrRelTypeEnum {
  ACCOUNT, RELATION;
}

 

The fromData/toData() methods:

 

@Override
  public void fromData(DataInput in) throws IOException,
      ClassNotFoundException {
    entityCode = in.readUTF();
    sid = in.readUTF();
    type = UserRoleAccOrRelTypeEnum.valueOf(in.readUTF());
    accOrRelId = in.readInt();
  }

 

  @Override
  public void toData(DataOutput out) throws IOException {
    out.writeUTF(entityCode);
    out.writeUTF(sid);
    out.writeUTF(type.name());
    out.writeInt(accOrRelId);
  }

 

Reverting the "type" field to be a String solves the problem, and REPLICATE regions with enum in the key work fine.

 

Any suggestions appreciated!

 

Thanks!

 

Michael

if there is a way for the C# client to detect the disconnection status with java gemifre server.

$
0
0

Hi,

 

We are using C# application to access Java Gemfire  Cache server,      no data cached at client side,       now we want the client application get notified when the server shut down.   can you please help? 

 

Thanks

Yao

Can I see my updates inside my transaction using gemfire query?

$
0
0

I recently ran into an issue where:

* I make some updates on a gemfie region inside a transaction

* Within the same transaction, I run a query (using gemfire oql) against the above region expecting to see the updated object but that was not to be.

 

Later I saw this: http://pubs.vmware.com/vfabric5/topic/com.vmware.vfabric.gemfire.6.6/developing/transactions/querying_and_transactions.html:

 

"Queries and indexes reflect the cache and ignore the changes made by             ongoing transactions. If you do a query from inside a transaction, the query             does not reflect the changes you made inside that transaction."

 

This doesn't sound right. From within my own transaction, I should be able to see my updates? Atleast databases allow this.

Viewing all 990 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>