This content has been marked as final. Show 2 replies
I am assuming you need a unique id across the cluster, take a look at the coherence incubator, i believe that in the commons they have added something like a sequence generator which is unique across the cluster.
Thanks a lot,
The Incubator sequence number generator will not do what you want - it is just for generating sequences, which is not your main issue.
First the important bit - You should not mess with the keys of entries If you mutated the key of an entry (e.g. by adding a UID on the proxy) then that mutated key would be the key used in the cache. If you tried to do a get() then you would need to use the exact same key again with the exact same unique ID as the first time. Keys are the serialized binary representaion of the Java object so would include anything extra you add such as a UID.
Out of the box there is not a way of passing a UID all the way through to the storage nodes for "normal" cache operations. You can pass tokens from an Extend client to a Proxy using the Security API, but these are lost after the Proxy. The only way to reliably pass a UID is to not use normal cache operations and use EnteryProcessors or Aggregators for everything instead of plain get() and put(). As the EntryProcessor or Aggregator is your own code you can add whatever UIDs and logging you want to them and they get passed through to the storage nodes. This is what we do in the parts of our system we want to track.