2014-11-17 2 views
0

У меня возникли проблемы с настройкой кластера GlassFish 4.1 для асинхронных таймеров EJB. Всякий раз, когда я пытался опубликовать мое заявление, я имел следующую ошибку:Не удается развернуть кластер на основе стеклянной рыбы 4.1?

Error occurred during deployment: Exception while deploying the app [APP-EAR-1.0] : 
Failed to create automatic timers for AsyncTimer -- EJB Timer Service is not available. 
Please see server.log for more details 

Наконец-то я как-то сумел иметь это работает нормально некоторое время назад, но это было на самом деле проб и ошибок. Я был уверен, что знаю, что я сделал ... и теперь, когда я пытаюсь документировать процедуру установки сервера, после того, как я установил кластер с нуля на отдельный набор компьютеров, я снова ударяю по стене: Когда я публикую одно и то же приложение к новой кластерке из стекла 4 я получаю ту же ошибку:

Failed to create automatic timers for AsyncTimer 

У меня нет понятия, в чем причина. Я скопировал шаг за шагом все настройки из рабочего кластера. У меня есть отдельный пул соединений, назначенный для таймера. У меня есть дополнительные таблицы в базе данных

CREATE TABLE public."EJB__TIMER__TBL" (
    "CREATIONTIMERAW" BIGINT NOT NULL, 
    "BLOB" BYTEA, 
    "TIMERID" VARCHAR(255) NOT NULL, 
    "CONTAINERID" BIGINT NOT NULL, 
    "OWNERID" VARCHAR(255), 
    "STATE" INTEGER NOT NULL, 
    "PKHASHCODE" INTEGER NOT NULL, 
    "INTERVALDURATION" BIGINT NOT NULL, 
    "INITIALEXPIRATIONRAW" BIGINT NOT NULL, 
    "LASTEXPIRATIONRAW" BIGINT NOT NULL, 
    "SCHEDULE" VARCHAR(255), 
    "APPLICATIONID" BIGINT NOT NULL, 
    CONSTRAINT "PK_EJB__TIMER__TBL" PRIMARY KEY("TIMERID") 
) 
WITH (oids = false); 

Я нахожу следующее сообщение об ошибке в лог-файлов:

java.io.FileNotFoundException: /opt/glassfish4/glassfish/nodes/test-1-node/test-instance-1/config/noop=true (No such file or directory) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(FileInputStream.java:138) 
at java.io.FileInputStream.<init>(FileInputStream.java:93) 
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90) 
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188) 
at org.apache.felix.gogo.shell.Shell.readScript(Shell.java:218) 
at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:161) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:483) 
at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136) 
at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) 
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469) 
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395) 
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) 
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) 
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) 
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) 
at org.apache.felix.gogo.shell.Activator.run(Activator.java:75) 
at java.lang.Thread.run(Thread.java:745)]] 

Есть ли способ, чтобы начать EJB таймеры без необходимости публикации приложения, так что я могу проще диагностировать причину проблемы? Или, может быть, вы можете посоветовать, что нужно сделать, чтобы этот кластер запустил таймеры EJB как следует.

Надеюсь, вы можете мне помочь, я буду очень благодарен за вашу помощь.

ответ

0

Похож на this Ошибка GlassFish 4.1. Вы можете попробовать ту же настройку с GlassFish 4.0 или 4.0.1, чтобы узнать, работает ли она вообще.

Тем не менее, вы убедитесь, что вы изменили ресурс JDBC jdbc/_TimerPool на свой DAS, чтобы ссылаться на базу данных кластера и быть доступными для конкретного кластера? Это необходимо для этого.

+0

Спасибо за ответ. Из-за несовместимости я не могу пойти со старой версией стеклянной рыбы. Когда дело доходит до конфигурации версии, у меня есть: я зашел в JDBC Connbound Pools и создал и настроил TimerPool, который я могу выполнить ping. Я использовал этот пул в JDBC Resources/__Timer Pool. Я сделал это на узле, где установлен DAS, однако я не вижу никакой конкретной конфигурации, связанной с DAS в консоли. – norbi771

+0

Вы развертываете локально или удаленно? Аналогичная ошибка с удаленными развертываниями в 4.1. Если вам интересно, есть сборка GlassFish, которая в настоящее время пытается исправить ошибки развертывания и упоминает патч к Grizzly, который можно попробовать: https://github.com/payara/Payara/issues/56 – Mike

Смежные вопросы