昨天进行压力测试的时候发现一个奇怪的问题,每次登陆了portal(此portal非sap的portal而是用BO SDK自己开发的)之后总会有两个session,而且退出的时候却只关闭一个session.百思不得其解,遂用fire bug发现原来是使用opendocument的时候会多出一个session.
发现在get opendocument.jsp的时候cookie中的jsessionid会改变,于是断定必然在opendocument这里添加了一个新的session!可是我用sdk明明用了token了.答案就出在token这里,http://forums.sdn.sap.com/thread.jspa?threadID=1385524中sunny yang说getDefaultToken的方法不对,虽然不清楚这个方法错在哪里,不过确实会增加一个session,而createWCAToken(java.lang.String clientComputerName, int validMinutes, int validNumOfLogons)不会增加用户的session.关于token的方法可以参见http://help.sap.com/javadocs/boe/xi/boe/en/com/crystaldecisions/sdk/occa/security/ILogonTokenMgr.html#createWCAToken(java.lang.String, int, int).里面说的很清楚createWCAToken without increasing the session count.