【问题标题】:Apache James 2.3.2 shuts down after working a few hoursApache James 2.3.2 工作几个小时后关闭
【发布时间】:2012-01-31 12:26:32
【问题描述】:

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

我使用 James 源代码将电子邮件服务器的行为更改为通过电子邮件代理。 几个小时内一切正常。在那之后,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 容器关闭造成的某种后续 Exceptions。

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

提前致谢!

【问题讨论】:

  • Ups,堆栈跟踪的时间戳为 18:49:56 而不是 18:42:57 - 复制了错误的日志
  • err,只需编辑问题以使日志正确。也许再跑一次?

标签: apache resources smtp james


【解决方案1】:

对于遭受同样问题困扰的人: 问题是在phoenix容器中激活了hotdeployment。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-31
    • 2014-06-04
    • 2011-09-19
    • 2014-09-23
    • 1970-01-01
    • 2018-09-30
    • 2011-11-01
    • 2018-12-19
    相关资源
    最近更新 更多