Java JPA/Hibernate在EntityManagerFactory创建期间挂起生产

Java JPA/Hibernate在EntityManagerFactory创建期间挂起生产,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我们有个奇怪的问题。从几天开始,创建EntityManagerFactory需要几秒钟到几分钟(甚至30分钟甚至更多!) 这是跟踪日志的一部分: 12:36:49.281 [main] INFO [org.hibernate.Version ] - HHH000412: Hibernate Core {5.2.10.Final} 12:36:49.288 [main] INFO [org.hibernate.cfg.Environment ] - HH

我们有个奇怪的问题。从几天开始,创建
EntityManagerFactory
需要几秒钟到几分钟(甚至30分钟甚至更多!)

这是
跟踪
日志的一部分:

12:36:49.281 [main] INFO  [org.hibernate.Version               ] - HHH000412: Hibernate Core {5.2.10.Final}
12:36:49.288 [main] INFO  [org.hibernate.cfg.Environment       ] - HHH000206: hibernate.properties not found
12:36:49.295 [main] DEBUG [hibernate.service.spi.ServiceBinding] - Overriding existing service binding [org.hibernate.secure.spi.JaccService]
12:36:49.305 [main] TRACE [internal.AbstractServiceRegistryImpl] - Initializing service [role=org.hibernate.engine.config.spi.ConfigurationService]
12:36:49.309 [main] TRACE [internal.AbstractServiceRegistryImpl] - Initializing service [role=org.hibernate.cache.spi.RegionFactory]
12:36:49.310 [main] DEBUG [ache.internal.RegionFactoryInitiator] - Cache region factory : org.hibernate.cache.internal.NoCachingRegionFactory
12:36:49.316 [main] INFO  [hibernate.annotations.common.Version] - HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
12:36:49.319 [main] TRACE [internal.AbstractServiceRegistryImpl] - Initializing service [role=org.hibernate.boot.cfgxml.spi.CfgXmlAccessService]

//HERE IT SIMPLY HANGS
原因可能是什么?我在DB上有双重检查锁,但没有

POM:

我们无法将任何应用程序更改连接到此类bhavior的开始,因为DB模式和模型都没有更改

创建
EMF

EntityManagerFactory factory=javax.persistence.Persistence.createEntityManagerFactory(puName);
编辑:

线程转储显示进程在本机文件系统调用时挂起。有解决办法吗

"main" #1 prio=5 os_prio=0 tid=0x00000000010c9000 nid=0x2c73 runnable [0x00007f4c928f5000]
   java.lang.Thread.State: RUNNABLE
    at java.io.UnixFileSystem.list(Native Method)
    at java.io.File.list(File.java:1122)
    at java.io.File.listFiles(File.java:1207)
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:105)
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:118)
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.visitArchive(ExplodedArchiveDescriptor.java:54)
    at org.hibernate.boot.archive.scan.spi.AbstractScannerImpl.scan(AbstractScannerImpl.java:47)
    at org.hibernate.boot.model.process.internal.ScanningCoordinator.coordinateScan(ScanningCoordinator.java:75)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.prepare(MetadataBuildingProcess.java:98)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:227)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:169)
    at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:36)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
“main”#1优先级=5 os_优先级=0 tid=0x00000000010c9000 nid=0x2c73可运行[0x00007f4c928f5000]
java.lang.Thread.State:可运行
位于java.io.UnixFileSystem.list(本机方法)
位于java.io.File.list(File.java:1122)
位于java.io.File.listFiles(File.java:1207)
位于org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:105)
位于org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:118)
位于org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.visitArchive(ExplodedArchiveDescriptor.java:54)
位于org.hibernate.boot.archive.scan.spi.AbstractScannerImpl.scan(AbstractScannerImpl.java:47)
位于org.hibernate.boot.model.process.internal.ScanningCoordinator.coordinateScan(ScanningCoordinator.java:75)
在org.hibernate.boot.model.process.spi.MetadataBuildingProcess.prepare(MetadataBuildingProcess.java:98)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl。(EntityManagerFactoryBuilderImpl.java:227)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl。(EntityManagerFactoryBuilderImpl.java:169)
位于org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:36)
位于org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181)
在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129)
在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
在org.hibernate.jpa.HibernatePersistenceProvider.createEntityManager工厂(HibernatePersistenceProvider.java:52)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:55)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:39)

延迟执行的错误通常是由套接字连接超时引起的。您是否确保在防火墙中允许3306端口的本地访问?这是肯定的,防火墙配置已经多年没有接触过了(字面上)。我也可以从MysqlWorkbench访问数据库。有趣的是,停止创建与连接池创建无关的服务(至少我不知道该怎么做)@coladict嘿,chan你看到我的更新了吗?我原来与linux文件系统操作有关。知道如何解决这个问题吗?那么,可能是文件权限有问题,因为在列出文件时它会挂起。它可能在等待一些它没有得到的许可。
EntityManagerFactory factory=javax.persistence.Persistence.createEntityManagerFactory(puName);
"main" #1 prio=5 os_prio=0 tid=0x00000000010c9000 nid=0x2c73 runnable [0x00007f4c928f5000]
   java.lang.Thread.State: RUNNABLE
    at java.io.UnixFileSystem.list(Native Method)
    at java.io.File.list(File.java:1122)
    at java.io.File.listFiles(File.java:1207)
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:105)
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:118)
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.visitArchive(ExplodedArchiveDescriptor.java:54)
    at org.hibernate.boot.archive.scan.spi.AbstractScannerImpl.scan(AbstractScannerImpl.java:47)
    at org.hibernate.boot.model.process.internal.ScanningCoordinator.coordinateScan(ScanningCoordinator.java:75)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.prepare(MetadataBuildingProcess.java:98)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:227)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:169)
    at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:36)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)