作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 EJB,如下所示。这只是为了测试目的而创建的 - 我正在“ sleep ”线程,因为我想模拟在同步方法完成执行之前再次调度查询的情况。
观察到的行为符合预期 - 但这是否是轮询数据库以查找已插入的行以便在更新之前可以执行某些处理的正确方法?我希望同步该方法,因为我不希望在处理先前方法调用的数据时再次调用来修改数据库状态
@Singleton
public class MyResource {
@PersistenceContext(unitName="MyMonitor")
private EntityManager em;
@Schedule(second="*", minute="*", hour="*")
public synchronized void checkDb() throws SQLException, InterruptedException {
List<ReferenceNames> l =
em.createQuery("from Clients cs", Clients.class).getResultList();
Thread.sleep(2000);
System.out.println(l.size());
}
}
最佳答案
您不应该自己实现单点数据库访问,只是为了确保记录在更新期间不会更改。为此,您需要使用数据库锁定。在 Java EE/JPA 2.0 中,您有多种锁定模式,例如 this Oracle blog或this wikibook article 。对于在锁定期间尝试写入的其他组件,您必须对锁定异常使用react并实现某种重试机制。
关于Java EE - 具有对同步方法的并发访问的单例 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012631/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!