我有动态配置,这些配置将对gemfire dao对象使用服务器缓存或本地缓存。当我打电话时:
Query query = queryService.newQuery(queryString);
results = (SelectResults) query.execute();
为本地缓存配置时,我收到“ NoAvailableServerException”。如果我为实际的Gemfire服务器配置,则一切正常。如果我更改以上内容以使用区域查询:
results = region.query(queryString);
该代码将在本地缓存上运行:但是,我不想更改原始代码,并希望在可能的情况下利用QueryService。我使用以下方法配置了本地缓存:
<gfe:client-cache id="cache" />
我为服务器缓存配置了一个池:
<gfe:client-cache id="dev-client-cache" pool-name="dev-pool" pdx-read-serialized="false" pdx-serializer-ref="pdxAutoSerializer" />
是否缺少使QueryService在本地缓存上运行的功能?
默认情况下,除非另有说明,否则QueryService
使用的ClientCache
将尝试在任何可用服务器上执行查询。您是否可以张贴代码片段来显示如何构造/获取实际的QueryService
实例?您是否尝试过使用QueryService
返回的ClientCache.getLocalQueryService()
执行查询?干杯。