Dan Kane [http://community.jboss.org/people/kanedk] created the discussion
"OptionalDataException when retrieving cached session" To view the discussion, visit: http://community.jboss.org/message/591755#591755 -------------------------------------------------------------- JBoss AS 4.2.2, JBoss Cache 1.4.1sp5 My appserver uses DB2 as a backend for JBoss Cache to persist sessions. I can kill the appserver, restart it and continue my session just fine - proving that it is storing and retrieving the session correctly. However, I would like to write a standalone java app that accesses the session data in the JBOSSCACHE table, to inspect/verify it. I can use a JDBCCacheLoader to connect to the DB. I create a Fqn and can use it to iterate through its children (the session records). I can even retrieve the byte[] that is supposedly the serialized form of the session object. However, when I try to use an ObjectInputStream to readObject(), I always get an OptionalDataException, which makes no sense. Code snippet: http://community.jboss.org/message/591755#591755 OptionalDataException when retrieving cached session JDBCCacheLoader cl = new JDBCCacheLoader(); Properties props = new Properties(); props.setProperty("cache.jdbc.driver", "com.ibm.db2.jcc.DB2Driver"); props.setProperty("cache.jdbc.url", "jdbc:db2:-//host.domain.com"); props.setProperty("cache.jdbc.user", "username"); props.setProperty("cache.jdbc.password", "password"); cl.setConfig(props); try { cl.create(); String[] path = new String[] { "JSESSION", "localhost", "ROOT" }; Fqn root = new Fqn(path); Set children = cl.getChildrenNames(root); int count = 5; for (Object c : children) { if (count == 0) { break; } count--; if (c instanceof String) { String cStr = root.toString() +"/"+ (String)c; Map m = cl.get(Fqn.fromString(cStr)); Object obj = m.get(c); if (obj != null) { InputStream is = new ByteArrayInputStream((byte[])obj); try { ObjectInputStream ois = new ObjectInputStream(is); Object sess = ois.readObject(); // ***OptionalDataException*** sess.hashCode(); } catch (Exception ex) { //... } } else { //... } } } } catch (Exception ex) { Logger.getLogger(MainFrame.class.getName()).log(Level.ERROR, null, ex); } /code /code -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/591755#591755] Start a new discussion in JBoss Cache at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2052]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
