写操作

通过使用 com.ibm.websphere.servlet.session.IBMSession 接口中的 sync 方法,您可手动控制何时将修改后的会话数据写出到数据库或另一个 WebSphere® Application Server 实例。手动更新方式、服务 Servlet 的结束方式和基于时间的写频率方式可用于调整会话数据的写频率。

此接口扩展 javax.servlet.http.HttpSession 接口。通过从 Servlet 的 service 方法调用 sync 方法,您将会话中的任何更改发送到外部位置。当选择手动更新作为写频率方式时,仅当应用程序调用 sync 方法时,会话数据更改才写入外部位置。如果未调用 sync 方法,那么在会话对象离开服务器高速缓存时,会话数据更改丢失。当服务 Servlet 结束或基于时间为写频率方式时,无论何时调用 sync 方法,都写出会话数据更改。如果未调用 sync 方法,根据所选的写频率方式,在服务方法结束时或时间间隔基础上写出更改。

IBMSession iSession = (IBMSession) request.getSession();
iSession.setAttribute("name", "Bob");

//force write to external store
iSession.sync( )

如果数据库关闭或在更新会话值时连接有困难,那么 sync 方法在最终创建 BackedHashtable.getConnectionError 错误前总是进行三次尝试。对于每次失败的连接尝试,创建BackedHashtable.StaleConnectionException,并可在 sync 方法中找到此异常。如果数据库在这三次尝试的任何一次中打开,内存中的会话数据则将存留,并落实至数据库。

但是,如果在三次尝试后数据库仍然未打开,那么内存中的会话数据仅在下一次检查会话无效时才存留。会话无效由每五分钟触发的单独线程检查。内存中的数据是一致的,除非会话数据的请求发出给这些事件之间的服务器。例如,如果在五分钟之内发出会话数据请求,那么发送前一次存留的会话数据。

会话不是事务性资源。因为 sync 方法与不同于客户机的线程关联,那么创建的异常不会传播给主线程上运行的客户机。数据的事务完整性可通过企业 Bean 这样的资源进行维护。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cprs_write_ops
文件名:cprs_write_ops.html