Ignite 点燃Java.NET互操作性Java.sql.Timestamp到System.DateTime
我有一个这样的拓扑结构。 1个在java上运行的服务器节点 1个运行在.net上的客户端节点 我在两个平台上都定义了一个简单类型,它有一个字段Ignite 点燃Java.NET互操作性Java.sql.Timestamp到System.DateTime,ignite,Ignite,我有一个这样的拓扑结构。 1个在java上运行的服务器节点 1个运行在.net上的客户端节点 我在两个平台上都定义了一个简单类型,它有一个字段 java.sql.Timestamp lastUpdated 在java方面,以及 DateTime? LastUpdated { get; set; } 在.net方面 我可以毫无问题地将对象加载到java节点和.net客户端节点上。我还可以创建新实例,并将它们从java节点放到缓存中。但是,当我尝试从.net节点将一个新对象放入缓存时,我得到以下
java.sql.Timestamp lastUpdated
在java方面,以及
DateTime? LastUpdated { get; set; }
在.net方面
我可以毫无问题地将对象加载到java节点和.net客户端节点上。我还可以创建新实例,并将它们从java节点放到缓存中。但是,当我尝试从.net节点将一个新对象放入缓存时,我得到以下异常(来自java端日志)。请注意,如果删除此日期字段或将其设置为null,则可以将对象从.net端放置而不会出现问题
有什么想法吗?
谢谢
[ERROR]2016-12-09 14:21:48.121[sys-#24%null%]griddhtatomicache-缓存更新期间出现意外异常
org.apache.ignite.binary.BinaryObjectException:意外的标志值[pos=33,预期值=33,实际值=103]
在org.apache.ignite.internal.binary.BinaryReaderExImpl.checkFlagNoHandles(BinaryReaderExImpl.java:1423)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryReaderExImpl.readTimestamp(BinaryReaderExImpl.java:1075)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryReaderExImpl.readTimestamp(BinaryReaderExImpl.java:1070)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:722)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read(BinaryFieldAccessor.java:639)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:776)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1481)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:585)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinary(CacheObjectContext.java:272)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.CacheObjectContext.UnwrapBinaryFneeded(CacheObjectContext.java:160)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.CacheObjectContext.UnwrapBinaryFneeded(CacheObjectContext.java:147)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapbinaryfneeded(GridCacheContext.java:1752)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.put(GridCacheStoreManagerAdapter.java:565)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2425)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2252)~[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.distributed.dht.atomic.griddhtatomicache.updateAllAsyncInternal0(griddhtatomicache.java:1652)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.distributed.dht.atomic.griddhtatomicache.updateAllAsyncInternal(griddhtatomicache.java:1490)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:2950)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$600(GridDhtAtomicCache.java:130)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:268)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:266)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:748)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:353)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:277)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:88)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:231)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1238)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:866)[ignite-core-1.7.0.jar:1.7.0]
访问org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106)[ignite-core-1.7.0.jar:1.7.0]
在org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:829)[ignite-core-1.7.0.jar:1.7.0]
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[?:1.8.0_102]
在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[?:1.8.0_102]
在java.lang.Thread.run(Thread.java:745)[?:1.8.0_102]
.NETDateTime
可以是本地和UTC;JavaTimestamp
只能是UTC。因此,Ignite.NET可以通过两种方式序列化DateTime
:.NET样式(可以
[ERROR] 2016-12-09 14:21:48.121 [sys-#24%null%] GridDhtAtomicCache - <D9Cache> Unexpected exception during cache update
org.apache.ignite.binary.BinaryObjectException: Unexpected flag value [pos=33, expected=33, actual=103]
at org.apache.ignite.internal.binary.BinaryReaderExImpl.checkFlagNoHandles(BinaryReaderExImpl.java:1423) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryReaderExImpl.readTimestamp(BinaryReaderExImpl.java:1075) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryReaderExImpl.readTimestamp(BinaryReaderExImpl.java:1070) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:722) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read(BinaryFieldAccessor.java:639) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:776) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1481) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:585) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinary(CacheObjectContext.java:272) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:160) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:147) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapBinaryIfNeeded(GridCacheContext.java:1752) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.put(GridCacheStoreManagerAdapter.java:565) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2425) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2252) ~[ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1652) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1490) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:2950) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$600(GridDhtAtomicCache.java:130) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:268) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:266) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:748) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:353) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:277) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:88) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:231) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1238) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:866) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106) [ignite-core-1.7.0.jar:1.7.0]
at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:829) [ignite-core-1.7.0.jar:1.7.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_102]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_102]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102]