树液OSS 说明 1234847提到更改 WebDynpro 参数sap.locking.maxWaitInterval
将其设置为 30 分钟或 1 小时有何影响?
答案1
答案复制自https://forums.sdn.sap.com/message.jspa?messageID=8713259
正如注释 1234847 所解释的那样,一旦处理了用户会话的请求,用户会话就会在请求的持续期内被阻塞,即始终最多有一个线程获取了用户会话的锁。
引用同一用户会话(即从同一浏览器进程触发)的并发请求将被序列化并一个接一个地处理。如果某个请求由于某些等待/阻塞条件而阻塞或挂起,则其他并发传入的请求将等待一段时间,直到用户会话锁被释放。如果它们在此时间间隔后无法获取用户会话锁,则等待线程将终止并显示 LockException 错误页面。
在这种情况下,“sap.locking.maxWaitInterval”很有用。根据请求,管理员可以增加它。
在以前的案例中,我们曾让客户根据需要在 Web Dynpro default.properties 中将其从 100 秒增加到 300 秒(或 500 秒)。这不会使服务器处理时间变慢,但会有额外的缓冲时间,以便用户请求能够通过。
客户根据长期运行的应用程序改变参数的值。
更多信息请访问:http://help.sap.com/saphelp_nwce71/helpdata/en/43/8a1a8ece230c8ce10000000a11466f/content.htm
SAP 注释 1113811 也提供了一些信息。
但是,如果即使增加此参数后仍存在锁定问题,则这可能是由于应用程序错误造成的。我们需要分析线程转储以检查锁定过程中线程的状态。如您所知,Java 线程负责实际执行服务器任务,类似于 ABAP 工作流程。
SAP 注释编号 710154 - 如何为 J2EE 引擎创建线程转储