eXtreme Scale对象网格大约1小时后无响应

时间:2018-07-16 14:07:32

标签: websphere-extreme-scale

我在应用程序中使用Spring ObjectGridClientBean访问eXtreme Scale分布式对象网格。

服务器启动后-它可以从高速缓存中正常读取/写入;但是过了一段时间(我相信大约是1个小时),它就变得无响应-意味着无法从缓存中读取/写入任何内容。

//Setup
@Bean
public ObjectGridClientBean wxsGridClient() {
    ObjectGridClientBean oGCB = new ObjectGridClientBean();
    oGCB.setObjectGridName("myGrid");
    oGCB.setCatalogServiceDomain(wxsCSDomain);
    return oGCB;
}

@Bean
public ObjectGridCatalogServiceDomainBean wxsCSDomain() {
    ObjectGridCatalogServiceDomainBean oGCSDB = new ObjectGridCatalogServiceDomainBean();
    oGCSDB.setCatalogServiceEndpoints(
        catalogServer.getCatalogendpoint() + ApplicationConstants.COLON + catalogServer.getCatalogport());
    return oGCSDB;
}

private List<Cache> createCaches() {
    List<Cache> cacheList = new ArrayList<Cache>();
    cacheObjects.forEach((cacheName, cacheMap) -> {
        ObjectGridCache oGC = new ObjectGridCache();
        oGC.setName(cacheName);
        oGC.setMapName(cacheMap);
        oGC.setObjectGridClient(wxsGridClient);
        cacheList.add(oGC);
    });
    return cacheList;
}

@Bean
public CacheManager cacheManager() {
    SimpleCacheManager simpleCacheManager = new SimpleCacheManager();
    simpleCacheManager.setCaches(createCaches());
    return simpleCacheManager;
}

这是使用场景

//Usage scenario
public APIToken retrieveValidToken() throws Exception {

    APIToken APIToken = null;
    if (null != cacheManager.getCache("APITokenCache").get(API_TOKEN)) {
        APIToken = cacheManager.getCache("APITokenCache").get(API_TOKEN, APIToken.class);
    }
    if (isAPITokenValid(APIToken)) {
        return APIToken;
    }
    return null;
}

第一次调用cacheManager.getCache(“ APITokenCache”)。get(API_TOKEN)返回null(1小时后)。我究竟做错了什么?是否发生超时导致这种无响应?我需要从Client Bean访问并控制其超时的对象网格会话(或会话配置)吗?

0 个答案:

没有答案