Jpa 设置JavaBean超时
因为在我的glassfish应用程序上通过REST运行查询时,客户端(php)有5秒的超时时间,所以我想设置glassfish java bean方法,以便它们在5秒后也“放弃”。否则,get方法将继续运行,并在sql数据库中保存两次Jpa 设置JavaBean超时,jpa,javabeans,glassfish-3,jta,Jpa,Javabeans,Glassfish 3,Jta,因为在我的glassfish应用程序上通过REST运行查询时,客户端(php)有5秒的超时时间,所以我想设置glassfish java bean方法,以便它们在5秒后也“放弃”。否则,get方法将继续运行,并在sql数据库中保存两次 PHP Glassfish DB Query -- save --> saveSomething --> insert.... TIMEOUT 5
PHP Glassfish DB
Query -- save --> saveSomething --> insert....
TIMEOUT 5 sek
Query --> save again --> saveSomething --> another insert...
是否有@Timeout注释在4900毫秒后停止该方法
我只能在太阳内部找到s.t.(glassfish)-ejb-jar.xml 4
这是正确的方法吗?如果最低配置是什么。我不知道sun-ejb-jar.xml
我不想为所有内容设置全局超时。这会给长时间运行的任务带来问题
谢谢。我通过一些手工工作找到了一个简单的解决方案。您还记得方法开始的时间,并在方法结束之前进行比较。如果花费的时间大于x,则抛出ForceTimeoutException(RuntimeException),因此所有内容都将回滚
public void doSomethingOnDatabase() {
StopWatch sw = new StopWatch();
..... other programm code ....
if (sw.elapsed()>TIMEOUT_VALUE) {
throw new ForceTimeoutException(sw.elapsed());
}
}
需要更优雅的解决方案
差不多
@MethodTimeoutForceRollback(5000)
最重要的是方法