2 февраля 2010 г.

IBM WebSphere Application Server (Portal) start problem

Однажды у меня перестал запускаться сервер портала. Перезапуск виндового серсвиса доходил до момента "Сервер запущен. Ождайте инициализации." и все - дальше тишина. Чистка временных файлов, перезагрузка и прочее не помогло. Далее идет расследование:

Во-первых, оказалось, что на сервере был включен автоапдейт (sic!) и свежий критический апдейт от Microsoft для IE8 (тот, который закрывает дыру, через которую хакнули Google в Китае) благополучно скачался, поставился и попросился сервер перезагрузить. Разрешения ему на это никто не дал ибо в воскресенье в 3:00 никого в офисе не было, поэтому Windows решила решила перезагрузить сервер самостоятельно :) Перед этим, как полагается приличной операционной системе, она попыталась остановить все работающие программы, т.е., как бы по-хорошему. Когда дошла очередь до сервисов, то винда посмотрев, что сервис IBM WAS остановился, благополучно ребутнула сервер. Откуда же ей бедной знать, что суровый IBM-ский сервер приложений не останавливается по чьему-то повелению, а останавливается только тогда, когда сам того возжелает. В итоге, в понедельник, когда я попытался запустить сервер приложений, я получил сообщение, что "Сервер запущен. Ожидайте инициализации". Я честно прождал 20 минут. При этом размер потребляемой RAM процессом Java оставался на одном уровне где-то в 64250Кб, а постоянная нагрузка на процессор составляла 50%. Как я написал выше, ни перезапуск сервиса, ни перезагрузка машины, ни откат на состояние до установки апдейта ни к чему не привели.

Ошибка#1
Дальше я решил попробовать запустить сервер из командной строки командой:
>startServer.bat WebSphere_Portal
Пробовал добавлять ключ "-trace", чтобы получить логи запуска - безрезультатно.

Но потом я заметил, что при запуске сервера из командной строки проскакивает примерно следующая надпись: "Сервер сконфигурирован для запуска в качестве сервиса. Запускаю сервис." Т.е. по сути, что я сервис перезапускал, что в командной строке запускал - все сводилось к старту сервиса. Пересоздал сервис - не помогло :)

В итоге на одном из форумов нашел рекомендацию "отключить сервис"! Так и сделал. В результате после запуска сервера через командную строку, скрипт, не найдя сервиса, запустил сервер как ни в чем не бывало! Как говорится, ????, PROFIT!!!!


Дальше веселее. Как я писал ранее, в процессе поиска решения я удалил установленный патч от Microsoft, но на свою беду я не отключил автоапдейт :) В итоге, через некоторое время, зайдя на сервер я с ужасом смотрел, как доползает прогрессбар до отметки "Restart Now". Кнопку отмены я нажать не успел... Рестарт машины.

Ошибка#2
Думая, что на этот раз проблем не будет, я ошибся. Теперь при запуске сервер приветствовал меня следующей ошибкой:


C:\IBM\WebSphere\wp_profile\bin>startServer.bat WebSphere_Portal
ADMU0116I: Сведения об утилите были записаны в файл протокола
           C:\IBM\WebSphere\wp_profile\logs\WebSphere_Portal\startServer.log
ADMU0128I: Запуск утилиты с профайлом wp_profile
ADMU3100I: Чтение конфигурации сервера: WebSphere_Portal
ADMU3028I: Обнаружен конфликт в порту 10026.  Вероятные причины: a) Экземпляр
           сервера WebSphere_Portal уже выполняется  b) другой процесс
           использует порт 10026
ADMU3027E: Возможно, экземпляр сервера уже выполняется: WebSphere_Portal
ADMU0111E: Работа программы завершена с ошибкой:
           com.ibm.websphere.management.exception.AdminException: ADMU3027E:
           Возможно, экземпляр сервера уже выполняется: WebSphere_Portal
ADMU1211I: Для получения полной трассировки неполадки используйте опцию -trace.
ADMU0211I: Сведения об ошибке содержатся в файле:
           C:\IBM\WebSphere\wp_profile\logs\WebSphere_Portal\startServer.log

Порты были проверены TCPView-ером от Sysinternals - все чисто, порт никто не держал. Перезагрузка и прочие очевидные телодвижения тоже не помогли. Так как дело тут уже было не в сервисе, надо было искать другое решение. И оно нашлось!

Я подумал, раз сфера думает, что она запущена, то надо ее остановить!
Выполняем скрипт:
>stopServer.bat WebSphere_Portal
Скрипт спрашивает логин и пароль администратора сферы (у меня так настроено) и с энтузиазмом бросается стопить незапущенный сервер :) После 10 минут потуг я остановил его выполнение по CTRL+C и выполнил:
>startServer.bat WebSphere_Portal
И что вы думаете?! Сервер запустился!
????
PROFIT!!!

0 коммент.:

Отправить комментарий