[jboss-user] [JBossCache] - username and session caching
anwar83
do-not-reply at jboss.com
Mon Nov 20 21:28:38 EST 2006
Hi, for your information, I've done a very simple/basic caching using jbosscache about 5 months ago and left it since then. In what have been done, I'm accessing a jbosscache(Mbean) and put a user session id in it. The article that I'm following is here
http://javaboutique.internet.com/tutorials/docaching/index-3.html
What happen is the data is not shared and each user have their own unique session id, which is exactly what I want it to be. I use JbossAS 4.0.4RC2 or 4.0.2 that time and maybe JbossCache 1.3(can't remember well, including the setting).
However when i tried it now with JbossAS 4.0.5 and Jboss 1.4, It doesn't work anymore. Instead the data that being put into cache will be overrided by a data from a second user. So now a first user will get a second user's session id, not his own.
The code use to put and get the data from jboss cache is as follow
|
| private Option option = new Option();
| private Fqn fqn =new Fqn("/user/session");
| private Map<String, String> map = new HashMap<String, String>();
| private TreeCacheMBean cache;
|
| private TreeCacheMBean getTreeCacheMBean() {
|
| if (cache == null) {
| try {
| log.info("TreeCacheMBean is null");
|
| cache = (TreeCacheMBean) MBeanProxyExt.create(
| TreeCacheMBean.class,
| "jboss.cache:service=TomcatClusteringCache", server);
|
| } catch (MalformedObjectNameException e) {
| // TODO Auto-generated catch block
| e.printStackTrace();
| }
| }
| return cache;
| }
|
| public void insertSession(String sessionID, String userId) throws Exception {
| option.setCacheModeLocal(true);
| map.put("userId", userId);
| cache = getTreeCacheMBean();
| cache.put(fqn,"sessionId", sessionId, option);
|
| log.info("End input into cache");
| }
|
|
| public String getSession() throws Exception {
| String session = "";
| cache = getTreeCacheMBean();
| option.setCacheModeLocal(true);
| session = (String) cache.get(fqn,"sessionId",option);
| return session;
| }
|
I try to search in forum and found this
http://jboss.org/index.html?module=bb&op=viewtopic&t=86054
which is very-very similar with what I want to do. The question that puzzling me is can jboss cache automatically know who is whom in concurrent access? I means if it is able make a differentiate each user access without the data being overrided by newest insertion. I want to confirm whether my first try is really working or just my mistake in doing testing. If it is able to differentiate a user, then can you point me to configuration that need to be done? I read about locking and concurrency access but not found what i need. Sorry, a newbie here.
Thanks so much,
Anwar
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3987450#3987450
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3987450
More information about the jboss-user
mailing list