Hi,

*Issue*:

Unable to query the Gemfire region. I get the following exception

gfsh>query --query="SELECT firstName FROM /Account WHERE id=1"

Result     : false
startCount : 0
endCount   : 20
Message    : A ClassNotFoundException was thrown while trying to
deserialize cached value.

NEXT_STEP_NAME : END

*Context*:

We are using Spring Data Gemfire caching for storing the cached objects in
to Gemfire. We want to be able to query the Gemfire region to see the cache
data.

Following are the constraints we have,

1. we cannot enable the PDX serializer on the client
2. Domain objects cannot be placed on the Gemfire server classpath

*Analysis:*

*a)*
we have configured Gemfire cluster with PDX serialization, however Gemfire
will store the objects as Java Serialized object. is this a valid behavior?

*b)*
If we use the query service like below,

// Log for debugging

cache.getLogger().info("Executing Query: "+ queryStr);

SelectResults results = (SelectResults) query.execute();

// Log for debugging

cache.getLogger().info("After Query Execution");

I am getting "A ClassNotFoundException was thrown while trying to
deserialize cached value."

What are the options that we have for querying the regions with constraints
that are mentioned above? We want to able to query the Gemfire regions
without having the domain objects present on the classpath.

*Configurations:*

ClientCache.xml

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


  <util:properties id="clientConfigurationSettings">
    <prop key="pivotal.cache.specs.directory">specs</prop>
  </util:properties>

  <context:property-placeholder location="classpath:server.properties"
properties-ref="clientConfigurationSettings"/>

  <util:properties id="gemfireCacheConfigurationSettings">
    <prop key="log-level">config</prop>
    <prop key="cluster-ssl-enabled">true</prop>
    <prop
key="cluster-ssl-truststore">/Users/nchandrappa/Documents/grid/security/cacerts.keystore</prop>
    <prop key="cluster-ssl-truststore-password">password</prop>
  </util:properties>

  <gfe:pool id="serverConnectionPool">
    <gfe:locator host="localhost" port="10334"/>
  </gfe:pool>

  <gfe:client-cache properties-ref="gemfireCacheConfigurationSettings"
id="gemfireCache" pool-name="serverConnectionPool"/>

  <cache:annotation-driven/>

  <bean id="cacheManager"
class="pivotal.gemfire.core.cache.manager.RegionCreationGemFireCacheManager"
        p:cache-ref="gemfireCache"/>
   <bean class="pivotal.gemfire.core.cache.manager.RegionCreator" />

  <context:component-scan base-package="pivotal.client"/>

</beans>


ServerCache.xml

<?xml version="1.0"?>
<!DOCTYPE cache PUBLIC
  "-//GemStone Systems, Inc.//GemFire Declarative Caching 8.0//EN"
  "http://www.gemstone.com/dtd/cache8_0.dtd";>

<cache>
  <pdx read-serialized="true" />
</cache>

Thanks,
Nikhil

Reply via email to