2014-01-05 17 views
0

我想序列化从Websphere缓存对象读取的DistributedMap对象。Websphere使用DistributedMap的实现

所以,我需要扩展它的实现来实现Serializable接口。但是我无法在Websphere JavaDoc上找到任何相关的实现,只有其他的抽象类。并且使用它会给Websphere带来一个强制性例外,说不能从DistributedMapImpl投射到我的自定义类。

为了明确我的问题,我想实现一个自定义工具,以便将缓存对象从WAS实例手动复制到另一个WAS实例。

如果还有其他建议。会很好。

回答

0

扩展WebSphere的DistributedMap实现 - 即使有可能 - 也无济于事。在实例化缓存时,WebSphere仍然会实例化自己的DistributedMap实现,而不是您的实现。

如果您需要复制缓存对象,那么正确的方式(使用WebSphere的动态缓存)将是定义一个“复制域”并将您的服务器实例包含在该域中。这样,WebSphere将自动处理域成员之间缓存对象的复制。

另一种选择是使用外部分布式缓存产品,例如EHCache。

+0

嗯,谢谢.. 但我想做一个手动缓存复制,因为我遇到与服务器实例失败自动复制的情况!所以直到决定采用EHCache时,我需要为此实现一个手动工具 –

+0

我猜你看到的是服务器无法执行* instant *复制。这是一件已知的事情。无论是WAS还是EHCache,缓存复制永远都不会是即时的。请记住,根据定义,“缓存”不需要立即复制。 “缓存”是可重新创建的项目的集合。毕竟,你可能最终会使用数据库。 – Isaac

+0

是的,我想你是对的..我需要使用数据库,谢谢你。 –