0

我在安装 Apache James 2.3.2 时遇到了一个奇怪的错误。

我使用 James 源代码将电子邮件服务器的行为更改为通过电子邮件代理。几个小时内一切正常。在那之后,詹姆斯就无缘无故地关闭了。

首先,我在 phoenix.log 中得到一些错误:

INFO    2012-01-30 18:49:55.215 [Phoenix.] (): Unknown resource. Bundle: 'org.apache.avalon.phoenix.components.monitor.Resources' Key: 'scanner.skipping-file.notice' Args: '/phoenix/apps/smtp-proxy' Reason: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key scanner.skipping-file.notice

INFO    2012-01-30 18:49:55.232 [Phoenix.] (): Unknown resource. Bundle: 'org.apache.avalon.phoenix.components.monitor.Resources' Key: 'scanner.undeploy.notice' Args: 'smtp-proxy' Reason: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key scanner.undeploy.notice

INFO    2012-01-30 18:49:55.233 [Phoenix.] (): 20 Blocks to process for phase "shutdown". Order of processing = [spoolmanager, matcherpackages, mailetpackages, remotemanager, pop3server, smtpserver, fetchmail, James, dnsserver, nntpserver, nntp-repository, spoolrepository, localusersrepository, users-store, mailstore, connections, sockets, scheduler, database-connections, thread-manager].

**INFO    2012-01-30 18:49:55.562 [Phoenix ] (): Shutting down because there are not any applications running.**

ERROR   2012-01-30 18:50:00.350 [Phoenix.] (): Component named "thread-manager" failed to pass through the Destruction stage. (Reason: java.lang.IllegalThreadStateException).

ERROR   2012-01-30 18:50:00.350 [Phoenix.] (): Component named "thread-manager" failed to pass through the Destruction stage. (Reason: java.lang.IllegalThreadStateException).

ERROR   2012-01-30 18:50:00.350 [Phoenix.] (): There was an error running phase "shutdown" for Block named "thread-manager". (Reason: Component named "thread-manager" failed to pass through the Destruction stage. (Reason: java.lang.IllegalThreadStateException).).

在 smtp-server.log 出现错误后不久,显示 2 个异常:

30/01/12 18:42:57 ERROR smtpserver: Exception opening socket: Unable to access thread pool due to java.lang.InterruptedException
java.lang.IllegalStateException: Unable to access thread pool due to java.lang.InterruptedException
    at org.apache.avalon.excalibur.thread.impl.BasicThreadPool.getWorker(BasicThreadPool.java:164)
    at org.apache.excalibur.thread.impl.AbstractThreadPool.execute(AbstractThreadPool.java:131)
    at org.apache.excalibur.thread.impl.AbstractThreadPool.execute(AbstractThreadPool.java:120)
    at org.apache.avalon.excalibur.thread.impl.DefaultThreadPool.execute(DefaultThreadPool.java:115)
    at org.apache.james.util.watchdog.InaccurateTimeoutWatchdog.start(InaccurateTimeoutWatchdog.java:106)
    at proxy.james.smtpserver.SMTPHandler.handleConnection(SMTPHandler.java:374)
    at org.apache.james.util.connection.ServerConnection$ClientConnectionRunner.run(ServerConnection.java:432)
    at org.apache.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:55)
    at org.apache.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:116)
30/01/12 18:42:57 ERROR smtpserver: Exception opening socket: Unable to access thread pool due to java.lang.InterruptedException
java.lang.IllegalStateException: Unable to access thread pool due to java.lang.InterruptedException
    at org.apache.avalon.excalibur.thread.impl.BasicThreadPool.getWorker(BasicThreadPool.java:164)
    at org.apache.excalibur.thread.impl.AbstractThreadPool.execute(AbstractThreadPool.java:131)
    at org.apache.excalibur.thread.impl.AbstractThreadPool.execute(AbstractThreadPool.java:120)
    at org.apache.avalon.excalibur.thread.impl.DefaultThreadPool.execute(DefaultThreadPool.java:115)
    at org.apache.james.util.watchdog.InaccurateTimeoutWatchdog.start(InaccurateTimeoutWatchdog.java:106)
    at proxy.james.smtpserver.SMTPHandler.handleConnection(SMTPHandler.java:374)
    at org.apache.james.util.connection.ServerConnection$ClientConnectionRunner.run(ServerConnection.java:432)
    at org.apache.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:55)
    at org.apache.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:116)

我猜 smtp-server.log 中的 Exceptions 是由于 phoenix 容器关闭而导致的某种后续异常。

有没有人看到这种行为,因为我真的无法解释为什么几个小时一切正常,然后凤凰突然关闭......

提前致谢!

4

1 回答 1

0

对于遭受同样问题的人:问题是在凤凰容器中激活了热部署。

每次监控服务触及应用程序的 sar 档案时,它都会被重新部署。- 不幸的是,服务器不喜欢它!

停用热部署后,现在一切正常!

于 2012-09-03T11:02:50.180 回答