Экземпляры Glassfish не могут запуститься после включения AJP
Я пытаюсь создать кластер с помощью Glassfish 3.1.2.2, я создал кластер, затем инстанции и запустил их, и все в порядке, затем я включил порт AJP, чтобы сделать loadbalancer из Apache с mod_jk, выполнив следующие шаги (со стороны Glassfish):
- Я получил файлы jar (commons-logging-1.1.1.jar,commons-modeler-2.0.1.jar,tomcat-ajp.jar) из tomcat и поместил их в папку lib на Glassfish (не в домене).
Затем я добавил системные свойства (со специальными значениями) для каждого экземпляра:
AJP_INSTANCE_NAME и AJP_PORT
наконец, чтобы включить порты, в JVM Options для конфигурации кластера:
-Dcom.sun.enterprise.web.connector.enableJK = $ {AJP_PORT} -DjvmRoute = $ {AJP_INSTANCE_NAME}
И попытался запустить экземпляр с помощью следующей команды:
./asadmin start-local-instance --sync=full --node=node1 ins1
И произойдет сбой со следующими журналами:Из консоли:
Removing all cached state for instance ins1.
Waiting for ins1 to start ...................................................................................................Error starting instance ins1.
The server exited prematurely with exit code 0.
Before it died, it produced the following output:
Launching GlassFish on Felix platform
[#|2013-04-29T16:46:55.932+0300|INFO|oracle-glassfish3.1.2|com.sun.enterprise.server.logging.GFFileHandler|_ThreadID=1;_ThreadName=main;|Running GlassFish Version: Oracle GlassFish Server 3.1.2.2 (build 5)|#]
[#|2013-04-29T16:46:59.585+0300|INFO|oracle-glassfish3.1.2|org.glassfish.ha.store.spi.BackingStoreFactoryRegistry|_ThreadID=10;_ThreadName=main;|Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry|#]
[#|2013-04-29T16:47:08.881+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.core.transaction.com.sun.jts.CosTransactions|_ThreadID=10;_ThreadName=main;|JTS5014: Recoverable JTS instance, serverId = [100]|#]
[#|2013-04-29T16:47:16.645+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=11;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 1259ms - bound to [0.0.0.0:28181]|#]
[#|2013-04-29T16:47:16.646+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=12;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 1872ms - bound to [0.0.0.0:28080]|#]
[#|2013-04-29T16:47:16.833+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=13;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 219ms - bound to [0.0.0.0:24848]|#]
[#|2013-04-29T16:47:17.308+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=14;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 175ms - bound to [0.0.0.0:27676]|#]
[#|2013-04-29T16:47:24.329+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=10;_ThreadName=main;|WEB0169: Created HTTP listener [http-listener-1] on host/port [0.0.0.0:28080]|#]
[#|2013-04-29T16:47:24.587+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=10;_ThreadName=main;|WEB0169: Created HTTP listener [http-listener-2] on host/port [0.0.0.0:28181]|#]
[#|2013-04-29T16:47:24.812+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=10;_ThreadName=main;|WEB0169: Created HTTP listener [admin-listener] on host/port [0.0.0.0:24848]|#]
[#|2013-04-29T16:47:24.998+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=10;_ThreadName=main;|WEB0170: Apache mod_jk/jk2 attached to virtual-server [server] listening on port [9,090]|#]
[#|2013-04-29T16:47:25.058+0300|SEVERE|oracle-glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=10;_ThreadName=main;|Startup service failed to start : com.sun.enterprise.v3.services.impl.WebContainerStarter|#]
[#|2013-04-29T16:47:26.791+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.tools.admin.com.sun.enterprise.v3.admin.cluster|_ThreadID=15;_ThreadName=Thread-19;|Server shutdown initiated|#]
[#|2013-04-29T16:47:26.879+0300|INFO|oracle-glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=15;_ThreadName=Thread-19;|Already stopped, so just returning|#]
Command start-local-instance failed.
Редактировать: я поставил первые журналы, прежде чем отключить GMS для тестирования, я отключил его и все еще получил журнал в консоли с ошибочным сообщением
У меня ОС Solaris x86, JDK - 1.6u37. То, что я делал здесь, я делал это раньше в 2.1.1 и работал без проблем, но с GF 3.1.2.2 я понятия не имею, что происходит сейчас.
1 ответ
Мне просто интересно, почему я работаю в проблемных днях, тогда, когда я пишу вопрос, я нахожу решение, забавно. В любом случае, я нашел свое решение, но еще не тестировал, но, по крайней мере, видел порты в состоянии "СЛУШАТЬ":
Проблема из "-Dcom.sun.enterprise.web.connector.enableJK=${AJP_PORT}", похоже, больше не верна, ее в Glassfish 2.1, но в Glassfish 3.1.2 вам нужно:
- Из конфигурации вашего кластера -> Конфигурация сети -> Сетевые прослушиватели (нажмите на это)
- Создать "Новый..." слушатель.
- Заполните новую информацию слушателя:
- Назовите его так: jk-соединитель, порт с: ${AJP_PORT}, установите флажок "JK Listener", чтобы включить его, для протокола выберите "Использовать существующий протокол", затем выберите протокол "http-listener-1", для " Пул потоков" выберите "http-thread-pool" (до сих пор не уверен в этом, но использовал тот же пул других слушателей).
Затем запустите экземпляры, если они успешно запущены, попробуйте проверить, прослушивает ли их порты, используя "netstat -an | grep ", например: "netstat -an | grep 9090" и так далее.