当前位置: 首页 > 知识库问答 >
问题:

作为多线程的JPA

颛孙英才
2023-03-14

错误[ACTIVE]执行线程:队列“weblogic.kernel.default(自调优)”的“33”-07.02.2014 11:37:20,360 request_id=9E32EFA6-1374-4B1C-99E9-326A3A256B88错误代码:99异步任务中的错误,延迟0:

本地异常堆栈:Exception[EclipseLink-4002](Eclipse Persistence Services-2.3.2.v20111125-r10461):org.Eclipse.Persistence.exceptions.databaseException内部异常:java.sql.sqlException:语句已经关闭错误代码:0调用:SELECT ID,FIRST_NAME,ISBLOCKED,LAST_NAME,MODIFIED,MSISDN,VERSION,OWNER_ID,CONTACT_ID FROM CONTACTS WHERE(OWNER_ID=?)bind=>[1 parameter bound]查询:ReadAllQuery(name=“vasserverfile://data/msgadmin/wls12c/wlserver_12.1/domains/vas-msg-tst-dmn/servers/vas-msg-tst-m1-man1-1/tmp/_wl_user/vasserver/c7nfil/war/web-inf/lib/_wl_cls_gen.jar_vasserverpu”referenceClass=contact sql=“select ID,FIRST_NAME,ISBLOCKED,LAST_NAME在org.eclipse.persistence.exceptions.databaseException.sqlException(databaseException.java:333)在org.eclipse.persistence.internal.databaseAccess.basicExecuteCall(databaseAccessor.java:644)在org.eclipse.persistence.internal.databaseAccess.databaseAccess.databaseAccess.executeCall(databaseAccess.java:535)在在org.eclipse.persistence.internal.queries.datasourceCallQueryMechanism.executeCall(datasourceCallQueryMechanism.java:207)在org.eclipse.persistence.internal.queries.datasourceCallQueryMechanism.java:193)在org.eclipse.persistence.internal.queries.datasourceCallQueryMechanism.executeCall(阿苏尔切卡尔克雷姆chanism.java:646)在org.eclipse.persistence.internal.queries.expressionQueryMechanism.selectAllRowsFromTable(expressionQueryMechanism.java:2611)在org.eclipse.persistence.internal.expressionQueryMechanism.java.expressionQueryMechanism.java:2570)在.java:1081)在org.eclipse.persistence.queries.databasequery.execute(databasequery.java:844)在org.eclipse.persistence.queries.objectLevelReadQuery.execute(objectLevelReadQuery.java:1040)在org.eclipse.persistence.queries.readAllQuery.execute(readAllQuery.java:392)

我正在尝试使用JPA多线程,但我采取了这种异常,任何想法来解决问题。

谢谢

共有1个答案

米承嗣
2023-03-14

EntityManager不是线程安全的,因此应该在单线程中使用EntityManager实例。在不同的线程中,您可以使用EntityManagerFactory实例,因为它是线程安全的。

 类似资料:
  • 我有4-5个工作线程处理大型消息队列。我还有另一段代码,它使用2-3个worker运行。我想在处理大型消息队列时阻止所有其他工作者。 我正在使用JDK6和Jms 编辑: 队列进程工作者从未终止。当没有消息时,它们阻塞队列。这些工作者由执行器线程池管理,如果我使用读写锁,其中一个工作者也会被阻塞。此外,如果使用循环屏障,那么我必须终止线程,以便重新传递阻塞的第二个进程。由于工作者是由线程池管理的,所

  • 在Vertx官方文件中,我阅读了以下段落 在关于Reactor的文章中: 据我所知,如果我写错了,请纠正我,Vertx的工作方式如下: 当我们为阻塞代码提供一个处理程序时,vertx将线程池中的一个线程(不是事件循环)放入该代码中,该线程等于内核数,例如我有4个内核,事件循环检查每次迭代后该线程的状态,如果它准备好执行与该阻塞代码相关的处理程序,当所有4个内核都忙时,vertx将任务放入队列,稍后

  • 问题内容: 我正在努力加快某些过程的执行速度,这些过程将大量记录(大多数是几百万个)发布到Elasticsearch。在我的C#代码中,我已经使用Dataflow实现了一个多线程解决方案,如下所示: 然后我要实现的发送批量请求调用: 我的问题 ,你 是对的实用性存在的数据流管道的一部分的锁内执行额外的线程。 这个可以吗?我可以在性能,执行,缓存/内存丢失等方面看到任何潜在的问题吗? 任何见识都会很

  • 我正在开发一个Spring Boot应用程序,它在给定的网站中查找给定的,如果找到匹配项,就会删除这些网页。我正在编写一个cron作业,每5分钟刷新一次结果,如下所示: 数据库有100个,在cron作业中,我首先列出了上次获取结果的最旧的10个关键字。因此,例如,第一次运行应该使用id 1到10的,第二次运行应该使用id 11到20,依此类推,第11次运行应该再次使用id 1到10,并且该过程继续

  • 原子操作是否足够安全,可以在多线程应用程序中使用它,而不会导致竞争条件和其他并发问题?假设我们不担心可见性(我们从CPU读取/写入所有内容)。

  • 问题内容: 最近,我正在阅读一个教程,其中遇到了一条声明: “Java语言规范保证了读取或写入的变量是一个原子操作(除非该变量的类型的或)类型的操作变量或者是只有当它们与申报原子的关键字。” 或提供类似的方法,并且其是原子的。 我对以上声明感到有些困惑。.请您澄清一下 何时使用 或 使用类。 问题答案: 否则(与作为一个)是一个原子操作。但是执行操作不是原子操作,因为它需要读取a的值,递增和写入a