BusinessObject 的 IEnterpriseSession 可以像数据库连接一样被缓存吗?
Can BusinessObject's IEnterpriseSession be cached like a db connection?
我继承了一些需要一些 TLC 的遗留 Business Objects 代码。该代码是一个 Servlet。为 Servlet 中的每个新请求创建一个新的 IEnterpriseSession。我最初担心的是,为每个请求创建一个新的 IEnterpriseSession 似乎很浪费,并且会导致请求缓慢。请注意,这是一个管理员 IEnterpriseSession,它被反复用于管理目的。
所以我的问题是,是否可以在 Servlet 的 init() 期间创建其中一个并在服务器启动时一遍又一遍地使用它?它可以跨线程共享还是必须是ThreadLocal?如果会话变得陈旧,是否会抛出已知的超时异常?
可以缓存和重用 IEnterpriseSession。 Business Objects的CMC里面有一个超时设置可以结束session,所以在使用之前一定要注意session本身是否有效,如果你去缓存的话。会话本身是对 Business Objects 系统的实际登录,因此每个用户应该是唯一的。
我继承了一些需要一些 TLC 的遗留 Business Objects 代码。该代码是一个 Servlet。为 Servlet 中的每个新请求创建一个新的 IEnterpriseSession。我最初担心的是,为每个请求创建一个新的 IEnterpriseSession 似乎很浪费,并且会导致请求缓慢。请注意,这是一个管理员 IEnterpriseSession,它被反复用于管理目的。
所以我的问题是,是否可以在 Servlet 的 init() 期间创建其中一个并在服务器启动时一遍又一遍地使用它?它可以跨线程共享还是必须是ThreadLocal?如果会话变得陈旧,是否会抛出已知的超时异常?
可以缓存和重用 IEnterpriseSession。 Business Objects的CMC里面有一个超时设置可以结束session,所以在使用之前一定要注意session本身是否有效,如果你去缓存的话。会话本身是对 Business Objects 系统的实际登录,因此每个用户应该是唯一的。