WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院软件开发Java Weblogic session persistence的性能的问题 阅读

Weblogic session persistence的性能的问题

 2009-09-22 00:00:00 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬搫绾ч柕濠忕細閼割亜顪冪€n剙浠ф繛鍫熷灥椤曘儵顢欓悡搴ば�
核心提示: 开始别人说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

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