WEB开发网
开发学院软件开发Java Weblogic session persistence的性能的问题 阅读

Weblogic session persistence的性能的问题

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: 开始别人说file persitence性能差,我不加思索的来了个结论:不差才怪,Weblogic session persistence的性能的问题(4),一个文件,只能串行写入,一个并行的初衷被扼杀了,不知道R&D的同事怎么考虑的,能有什么好的性能?后来自己做测试的时候才发现,压根不是我想的

开始别人说file persitence性能差,我不加思索的来了个结论:不差才怪,一个文件,只能串行写入,能有什么好的性能?后来自己做测试的时候才发现,压根不是我想的那样。设计者的初衷应该是并行的,因为每个Session有个对应的file,而不是公用一个文件。就因为上面的代码段,一个并行的初衷被扼杀了,不知道R&D的同事怎么考虑的。

我自己试着改了该代码,将所有文件读写的工作交给了FileSessionData.java,

FileSessionData.java

 1   /*package*/ void syncSession(FileSessionData data, File saveTo) {
 2       if (!isValid()) return;
 3       
 4       DataOutputStream os = null;
 5       String id = data.id;
 6       synchronized(this)
 7       {
 8           try {
 9               os = new DataOutputStream(new FileOutputStream(saveTo));
10               WLObjectOutputStream oos = new WLObjectOutputStream(os);
11               oos.setReplacer(RemoteObjectReplacer.getReplacer());
12               oos.writeObject(data);
13               oos.flush();
14               os.writeLong(data.getLastAccessedTime());
15               oos.close();
16               os.close();
17             os = null;
18             if (verbose) HTTPSessionLogger.logPickledSession(id, saveTo.getAbsolutePath());
19           } catch (ThreadDeath td) {
20             throw td;
21           } catch (Throwable e) {
22             HTTPSessionLogger.logErrorSavingSessionData(e);
23             if (saveTo != null) saveTo.delete();
24           } finally {
25             if (os != null) {
26               try { os.close(); } catch (Exception ignore) {}
27             }
28           }
29         }
30   }

上一页  1 2 3 4 5  下一页

Tags:Weblogic session persistence

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接