Thanks Andrey,  seem the option 1 is better, I will try. 


Regards
Aaron


[email protected]
 
From: Andrey Mashenkov
Date: 2017-07-26 21:38
To: user
Subject: Re: Re: TcpCommunicationSpi - Caught unhandled exception in NIO worker 
thread (restart the node) java.lang.OutOfMemoryError: Java heap space
Aaron,

There are some way you can try.
1. You can add classes to BinaryConfiguration to force marshaller to load 
particular classes. This should resolve the issue.
2. You can clear cache and reload data from store. 
3. You can try to copy marshaller work directory to newly create nodes or 
prestart nodes with non-empty workdir and then start new nodes. But I'm not 
sure this will 100% workable.






On Wed, Jul 26, 2017 at 4:20 AM, [email protected] <[email protected]> wrote:
Thanks Andrev, so how to solve this?  Need I pre-load those classname0 when 
bring up each nodes?  If I share the work directory, it  always show another 
exception:

[ERROR] 2017-07-25 11:54:56.818 [sys-#89%PortfolioEventIgnite%] [sp] 
MarshallerMappingFileStore - Failed to write class name to file 
[platformId=0id=2096192300, 
clsName=com.tophold.trade.order.event.TradeExecutedEvent, 
file=D:\workspace\code\trade_engine\work\marshaller\2096192300.classname0]
java.io.FileNotFoundException: 
D:\workspace\code\trade_engine\work\marshaller\2096192300.classname0
at java.io.FileOutputStream.open0(Native Method) ~[?:1.8.0_102]
at java.io.FileOutputStream.open(FileOutputStream.java:270) ~[?:1.8.0_102]
at java.io.FileOutputStream.<init>(FileOutputStream.java:213) ~[?:1.8.0_102]
at java.io.FileOutputStream.<init>(FileOutputStream.java:162) ~[?:1.8.0_102]
at 
org.apache.ignite.internal.MarshallerMappingFileStore.writeMapping(MarshallerMappingFileStore.java:79)
 [ignite-core-2.0.0.jar:2.0.0]
at org.apache.ignite.internal.MappingStoreTask.run(MappingStoreTask.java:57) 
[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6677)
 [ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:812)
 [ignite-core-2.0.0.jar:2.0.0]
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
[ignite-core-2.0.0.jar:2.0.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]

Thanks for your time!

Regards
Aaron


[email protected]
 
From: Andrey Mashenkov
Date: 2017-07-26 01:07
To: user
Subject: Re: Re: TcpCommunicationSpi - Caught unhandled exception in NIO worker 
thread (restart the node) java.lang.OutOfMemoryError: Java heap space
Hi Aaron,

It is possible, you load data from cacheStore, but there is nothing in work 
directory on some nodes.
BinaryMarshaller saves class mappings in files in work directory.

On Tue, Jul 25, 2017 at 6:46 AM, [email protected] <[email protected]> wrote:
Thanks Val, 

Regards previous question of the setWorkDirectory for each Ignite nodes, I 
found after set  I always got :

Caused by: java.lang.ClassNotFoundException: Unknown pair [platformId=0, 
typeId=-482681703]
at 
org.apache.ignite.internal.MarshallerContextImpl.getClassName(MarshallerContextImpl.java:385)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:335)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:692)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1745)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1704)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:794)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinary(CacheObjectContext.java:273)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:161)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:148)
 ~[ignite-core-2.0.0.jar:2.0.0]
at 
org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapBinaryIfNeeded(GridCacheContext.java:1730)
 ~[ignite-core-2.0.0.jar:2.0.0]


But this class are in classpath definitely. notice there also the configuration 
from the META-INF/classnames.properties; am i have to register all my class in 
this properties? 

 



[email protected]
 
From: vkulichenko
Date: 2017-07-22 02:23
To: user
Subject: Re: Re:Re: TcpCommunicationSpi - Caught unhandled exception in NIO 
worker thread (restart the node) java.lang.OutOfMemoryError: Java heap space
Aaron,
 
On-heap can be used as a cache for off-heap, it's size is controlled by
eviction policy. Note that on-heap will have copies of entries, everything
that is on-heap is stored off-heap as well.
 
Off-heap is the primary storage, it holds all the in-memory data. It is
controlled by memory policies.
 
-Val
 
 
 
--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/Re-Re-TcpCommunicationSpi-Caught-unhandled-exception-in-NIO-worker-thread-restart-the-node-java-lange-tp15242p15253.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.



-- 
Best regards,
Andrey V. Mashenkov



-- 
Best regards,
Andrey V. Mashenkov

Reply via email to