带日期的POF序列化/反序列化故障?

时间:2014-06-20 10:51:43

标签: date serialization persistence deserialization oracle-coherence

我正在建立一个持久性测试人员来测试我试图保持的数据是否正确,这个过程是这样的:

  • 将数据存储在变量var1;
  • 将变量var1中的数据保存到coherence缓存中;
  • 读取存储在缓存中的数据并将其存储在变量var2;
  • 将var1与var2进行比较,并检查值是否匹配;

测试可能正确也可能不正确。我一直在修复一些错误,但var1和var2中的持久数据总是相同的。

尽管有类型(整数,长整数,双精度数,布尔值,类,对象等),但值始终匹配。但是,在持久化并读取Date时,以毫秒为单位的值是不同的。比较工作正常,这不是问题。

是否有关于Date对象的序列化/反序列化/持久性的错误?我希望你能帮助我。

由于

2 个答案:

答案 0 :(得分:1)

  1. 您使用的是Java序列化,Externaliable,ExternalizableLite,POF还是某些自定义序列化? (假设问题标题中有POF。)

  2. 您能否发布您正在使用的复制器和任何自定义序列化代码(例如readExternal和writeExternal方法)?

  3. 您是否正在使用PofWriter使用writeDateTime()方法编写java.util.Date对象?您是否使用PofReader使用readDate()方法读取值?

  4. 当您说“以毫秒为单位的值不同”时,您能否定义值的差异?你写出来之前的几毫秒是多少?读回来的毫秒是多少?

  5. 从理论上讲,在时区方面也可能出现问题。我很好奇,例如,时间是15分钟,30分钟还是60分钟。

答案 1 :(得分:1)

不要在Coherence中使用java.util.Date而是使用java.sql.Timestamp。 POF与Date对象有一些问题。虽然提到的问题与你的问题不一样,但安全总是更好。 read more