Reputation: 1
Is it possible to store MAP as a value into MULTIMAP in the Hazelcast ? please find sample code below,
Map<String , String > userSessionData = client.getMap("userSessionData"); userSessionData.put(userId, userData.getSessionId());
MultiMap <String , Map <String , String >> institutionUsersData = client.getMultiMap( "institutionUsersData" ); institutionUsersCache.put(institutionName,userSessionData);
While trying with above code it's throwing exceptions below,
com.hazelcast.nio.serialization.HazelcastSerializationException: Failed to serialize 'com.hazelcast.client.proxy.ClientMapProxy' at com.hazelcast.internal.serialization.impl.SerializationUtil.handleSerializeException(SerializationUtil.java:82) at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:157) at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:133) at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:118) at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:106) at com.hazelcast.client.spi.ClientProxy.toData(ClientProxy.java:98) at com.hazelcast.client.proxy.ClientMultiMapProxy.put(ClientMultiMapProxy.java:112)
Caused by: com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable serializer for class com.hazelcast.client.proxy.ClientMapProxy at com.hazelcast.internal.serialization.impl.AbstractSerializationService.serializerFor(AbstractSerializationService.java:487) at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:146)
Upvotes: 0
Views: 268
Reputation: 3150
Hazelcast maps are deliberately not serializable, as they are remote & concurrent. The content will change due to inserts/updates/deletes from other clients using the map.
You can take a snapshot if you retrieve the map's entrySet()
.
This might be larger than the client can cope with.
To store this snapshot back into Hazelcast, it'd need to go in a serializable collection, such as HashMap
.
If it's sessions, such a snapshot would show users at a cerrtain point in time, and not change as users log in and out.
Upvotes: 0