我的Spring(4.3.23)/ Hibernate(5.0.12)应用程序的一部分“ A”使用的数据源是通过第二个应用程序“ B”公开的(数据源是内存数据库)。 A和B都部署在Tomcat中,我不控制启动顺序。一旦A和B都开始按预期方式运行,但是,如果A在B之前启动,则在Hibernate尝试查询数据源时会在初始化期间引发错误:
def aws_attributes
{ metadata: { 'x-amz-meta-testing': 'test' }}
end
有什么办法可以抑制此错误,延迟初始化的这一部分,或告诉Hibernate数据源可能无法立即使用?
以下是我的配置的相关部分:
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator - HHH000342: Could not obtain connection to query metadata : Cannot create PoolableConnectionFactory (Connection is broken: "java.net.ConnectException: Connection refused: 127.0.1.1:5521" [90067-199])
答案 0 :(得分:0)
我将为整个部署编写脚本。在webapps目录中将tomcat与应用程序A关联起来,并在将应用程序B复制/移动到webapps目录中进行部署之前,定期ping以成功部署应用程序A。
如果您使用暂存目录将war文件移动到该服务器上,然后让脚本清除webapps目录并将新的war /复制/移动到webapp中以进行全新部署,则整个解决方案可能会最好地工作。
侧注:我发现应用程序的部署似乎是固定不变的,但是我不确定,因为它是按字母顺序,最早的出现或其他原因。