Хорошо ли работает драйвер JDBC PostgreSQL 9.0 с 64-битной Java? - PullRequest
3 голосов
/ 13 февраля 2011

Я изо всех сил пытался заставить Джеймс Почтовый сервер работать с PostgreSQL на 64-битной Slackware 13.1. Известны ли какие-либо проблемы с драйвером для 64-битной Linux и 64-битной Java?

У меня тот же сервер снова работает на 32-битной Slackware с PostgreSQL 9.0.

Кто-нибудь знает, в чем может быть проблема?

Редактировать: некоторые подробности об этой проблеме ... Когда я останавливаю почтовый сервер james через ./bin/phoenix stop, я получаю это в логах:

James Mail Server 2.3.2
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled
JVM exiting abnormally. Shutting down Phoenix.
 org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "thread-manager" failed to pass through the Destruction stage. (Reason: java.lang.IllegalThreadStateException).
at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354)
at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.shutdown(LifecycleHelper.java:288)
at org.apache.avalon.phoenix.components.application.DefaultApplication.shutdown(DefaultApplication.java:566)
at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:482)
at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
at org.apache.avalon.phoenix.components.application.DefaultApplication.stop(DefaultApplication.java:233)
at org.apache.avalon.framework.container.ContainerUtil.stop(ContainerUtil.java:292)
at org.apache.avalon.framework.container.ContainerUtil.shutdown(ContainerUtil.java:66)
at org.apache.avalon.phoenix.components.kernel.DefaultKernel.shutdown(DefaultKernel.java:346)
at org.apache.avalon.phoenix.components.kernel.DefaultKernel.removeApplication(DefaultKernel.java:455)
at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.undeploy(DefaultDeployer.java:244)
at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.dispose(DefaultDeployer.java:154)
at org.apache.avalon.framework.container.ContainerUtil.dispose(ContainerUtil.java:306)
at org.apache.avalon.framework.container.ContainerUtil.shutdown(ContainerUtil.java:67)
at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.shutdownComponents(DefaultEmbeddor.java:598)
at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.dispose(DefaultEmbeddor.java:342)
at org.apache.avalon.framework.container.ContainerUtil.dispose(ContainerUtil.java:306)
at org.apache.avalon.framework.container.ContainerUtil.shutdown(ContainerUtil.java:67)
at org.apache.avalon.phoenix.frontends.CLIMain.shutdown(CLIMain.java:326)
at org.apache.avalon.phoenix.frontends.CLIMain.forceShutdown(CLIMain.java:295)
at org.apache.avalon.phoenix.frontends.ShutdownHook.run(CLIMain.java:386)
Caused by: java.lang.IllegalThreadStateException
at java.lang.ThreadGroup.destroy(ThreadGroup.java:754)
at org.apache.avalon.excalibur.thread.impl.DefaultThreadPool.dispose(DefaultThreadPool.java:76)
at org.apache.avalon.framework.container.ContainerUtil.dispose(ContainerUtil.java:306)
at org.apache.avalon.cornerstone.blocks.threads.AbstractThreadManager.dispose(AbstractThreadManager.java:69)
at org.apache.avalon.framework.container.ContainerUtil.dispose(ContainerUtil.java:306)
at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.shutdown(LifecycleHelper.java:274)
... 19 more
STOPPED Sun Feb 13 00:01:37 EET 2011

Когда я запускаю сервер, все начинается отлично, в журналах говорится, что Джеймс добавил файлы и репозитории db, но он не создает таблицы в базе данных. Если он создает таблицы, он ничего не вставляет внутрь. Я уверен, что пользователь / пароль, который я установил, прав, и пользователь может писать в базу данных (проверено вручную). Я использую 9.0-801 JDBC 4 и jdk1.6.0_23x64.

Надеюсь, это поможет решить проблему.

Ответы [ 2 ]

2 голосов
/ 13 февраля 2011

Драйвер PostgreSQL JDBC написан на чистом Java, поэтому он даже не знает разницу между 32-битной и 64-битной платформой.Вряд ли в этом проблема;Драйвер очень широко используется на 64-битных хостах.

0 голосов
/ 12 августа 2015

Петр ответил на тему вопроса.

О вашей трассировке стека: коренной причиной является java.lang.IllegalThreadStateException исключение, которое возникает только в следующих случаях:

if (destroyed || (nthreads > 0)) {
    throw new IllegalThreadStateException();
}

это означает, что вы уже уничтожили егоне совсем остановился.

Я вижу, что пул расположен дважды в excalibur.Это означает, что у вас всегда будет такое сообщение после остановки.

...