gpt4 book ai didi

java - 表/ View 'EJB__TIMER__TBL' 不存在

转载 作者:行者123 更新时间:2023-12-03 02:42:56 24 4
gpt4 key购买 nike

我有一个在 Glassfish 3.0.1 上运行的应用程序。我已经在几个实例上成功安装了它,但现在我正在尝试设置一个新服务器。查看日志,部署一开始很顺利,但后来我得到了这个:

 [#|2010-12-06T17:53:38.020+0000|WARNING|glassfish3.0.1|org.eclipse.persistence.session.file:/opt/sun/glassfish/glassfish/domains/domain1/applications/ejb-timer-service-app/WEB-INF/classes/___EJB__Timer__App|_ThreadID=31;_ThreadName=Thread-1;|
Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Table/View 'EJB__TIMER__TBL' does not exist.
Error Code: 30000
Call: SELECT TIMERID, BLOB, INITIALEXPIRATIONRAW, SCHEDULE, INTERVALDURATION, OWNERID, STATE, LASTEXPIRATIONRAW, PKHASHCODE, CREATIONTIMERAW, CONTAINERID FROM EJB__TIMER__TBL WHERE (((CONTAINERID = ?) AND (OWNERID = ?)) AND (STATE = ?))
bind => [84650008375328779, server, 0]
Query: ReadAllQuery(name="findTimersByContainerAndOwnerAndState" referenceClass=TimerState sql="SELECT TIMERID, BLOB, INITIALEXPIRATIONRAW, SCHEDULE, INTERVALDURATION, OWNERID, STATE, LASTEXPIRATIONRAW, PKHASHCODE, CREATIONTIMERAW, CONTAINERID FROM EJB__TIMER__TBL WHERE (((CONTAINERID = ?) AND (OWNERID = ?)) AND (STATE = ?))")
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:687)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:530)
at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:529)
at org.eclipse.persistence.internal.sessions.IsolatedClientSession.executeCall(IsolatedClientSession.java:133)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:205)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:191)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:
[snip]

__TimerPool 连接池的所有属性都具有默认值(因此它使用嵌入式 Derby 驱动程序)。据我所知,设置与我的其他服务器相同 - 那么为什么它在这台服务器上失败?

<小时/>

编辑

我可以通过从 Glassfish 的工作实例(位于 $GLASSFISH_HOME/glassfish/domains/domain1/lib/databases/ejbtimer)复制计时器数据库来使其工作。我还是想知道是什么原因导致了这个问题。

奇怪的是,我的应用程序正在使用计时器,但它们都不是持久的(或者至少,它们不应该是)。所以 Glassfish 没有理由关注这个数据库,对吗?

最佳答案

当我在 GF 仍在运行时覆盖这些文件时,就发生过这种情况,例如,作为升级的一部分而发生故障。我找到的解决方案和你一样:关闭一个正在工作的GF,然后复制<gfhome>/domains/domain1/lib/database下的文件.

关于java - 表/ View 'EJB__TIMER__TBL' 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4369512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com