I was talking about sending data in a message that client sends to a MDB, e.g. adding an attribute to message "clientState" or some other attributes. For this case client will send its state every time with a message.
By (2) - saving data on server (and no database), do you mean saving data in MBD for that it could recognize subsequent client calls and individual client data?
I have only one straightforward thought, to have a local hashmap inside an MDB with clientID as a key and session data as a value. But anyway, clientID should be passed in every message... and this all is only for little-sized session data