Hi Pramod,

As I told we have LRUCache (LinkedHashMap of <String,String>) which needs to
be serialized and it is initialized in operator constructor. What we found
that, when operator is serialized for checkpointing the content of the this
LRUcache is not getting serialized and instead its just an empty
LinkedHashMap is serialized. We verified this by implementing the
CheckpointNotificationListener in operator and logging the state of this
cache. Note that, kryo works well with HashMap but not with LinkedHashMap
which is weird

So after looking for some other alternatives for proper serialization, we
found that default JavaSerializer does the job and hence Cache has now been
set to be serialized with JavaSerializer as below

@Bind(value=JavaSerializer.class)
public LRUCache<String, String> callerContextCache;

but now while verifying the operator recovery with correct state by killing
the existing apex instance and restarting it with -originalAppId, we found
that deserialization fails

As mentioned in my original post, I tried using @Map from kryo and also
changing the apa packaging to have application jar in 'lib' (since the
get-app-package-info showed the classpath to be lib/*.jar and with original
packaging assembly the application jar gets under 'app') but its still of no
use

Regards
Vivek




--
View this message in context: 
http://apache-apex-users-list.78494.x6.nabble.com/How-the-application-recovery-works-when-its-started-with-originalAppId-tp1821p1826.html
Sent from the Apache Apex Users list mailing list archive at Nabble.com.

Reply via email to