background image
报表 session 与应用 session 常识普及
1. 报表 session 与应用 session
报表集成到项目中可能会有一个疑问就是系统应用和报表应用在一个 web 服务器下,
那系统 session 和报表 session 是不是一个 session 呢?如果不是那会不会有冲突呢?
答案是:不是同一个 session 也不会起冲突,因为应用的 session 存放的是 request 请
求等一些共享信息,而报表 session 存放的是访问报表的相关信息,如访问的是不是同一个
模板等,两者是完全独立,所以不会冲突。
2. 报表开发工具 FineReport 中创建与关闭 session 机制
正常情况下,当客户端浏览器访问报表服务器端的某张报表时,便会产生一个 session
会话,当用户关闭浏览器的时候就会通知报表服务器关闭这个 session,但不会使保存在服
务器端的 session 对象消失,同样也不会使已经保存到硬盘上的持久化 cookie 消失。
若用户的机器由于某种原因如非正常关机等等导致浏览器非正常关闭时,服务器没有收
到关闭这个 session 的信息,会一直保存这个不必要的 session。为了解决这个问题,我们
软件中提供了这样一种机制,浏览器每隔 40 秒向服务器发送一个“i am alive”信息,若
报表服务器一分钟没有收到这个信息便会自动关闭这个 session。当浏览器遇到非正常停止
时,便不会发送“i am alive”信息,相应的 session 不会在一分钟以内被关闭。
3. session 基本概念