java事务超时时间,java – 如何在WebSphere Liberty Batch中配置事务超时?
> javax.transaction.global.timeout的作用是什么?
>我是否需要在CheckpointAlgorithm中實現checkpointTimeout()方法?
>服務器配置級別有什么問題嗎?這與應用程序級別設置的內容如何交互?
解決方法:
(編輯2016-12-02:當為應用程序事務設置超時值’0’時,重新設置了對默認行為的解釋).
概觀
讓我來描述應用程序級選項以及它與服務器級超時的交互方式.
在WebSphere Liberty Java Batch的一個塊步驟中,您可以設置應用程序級別超時,也可以將超時值“0”設置為默認為服務器級超時.
此外,還可以通過單獨的服務器級設置為任何非零應用程序級超時值設置上限.
應用程序級超時
塊事務超時可以設置為:
在XML(靜態)
在具有特殊步驟屬性的JSL的步驟級別:javax.transaction.global.timeout
(秒)
例如.
如果未在XML中明確定義,則默認為180(秒).
在Java(動態)
如果你需要更多的動態/程序控制,你可以實現一個自定義CheckpointAlgorithm并編寫它的checkpointTimeout()以返回你想要的任何東西(即使你真的想要,每個塊的值也不同).
服務器(JVM)級別超時
設置應用程序超時值的上限
您可以阻止應用程序設置太大的超時值.
在服務器配置(server.xml)中使用propogatedOrBMTTranLifetimeTimeout:
這將作為任何非零應用程序超時值的上限,通過javax.transaction.global.timeout或您的checkpointTimeout()方法,
未設置應用程序超時時的默認超時
如果javax.transaction.global.timeout設置為’0’或者checkpointTimeout()方法返回’0’的情況,您將從服務器獲得默認超時.
此超時值默認為120秒.
要更改服務器配置(server.xml),請使用totalTranLifetimeTimeout,例如:
注意:
但是,如上所述,如果未設置javax.transaction.global.timeout,則應用程序超時默認為180,因此totalTranLifetimeTimeout不起作用.
其他說明/參考
注意:WDT工具的設計視圖使得處理和記住這些服務器配置屬性值變得更加容易.
映射到WebSphere Application Server傳統配置
這里的propogatedOrBMTTranLifetimeTimeout屬性基本上映射到傳統的最大事務超時,而totalTranLifetimeTimeout更明顯映射傳統的總事務生存期超時.
在this documentation中描述了一些很好的例子,這些例子在Liberty中仍然很大程度上相關.
標簽:websphere-liberty,java,jsr352,java-batch
來源: https://codeday.me/bug/20190824/1704927.html
總結
以上是生活随笔為你收集整理的java事务超时时间,java – 如何在WebSphere Liberty Batch中配置事务超时?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql外键约束分数_MySQL提高(
- 下一篇: iis设置服务器文件权限设置,iis7如