информация со ссылкой на Вас о том, что (ctpeko3a) wrote,
информация со ссылкой на Вас о том, что
ctpeko3a

Weblogic scripts

Веблоджик - это сервер, придуманный в спешке ненатуралами. Вот уже неделю занимаюсь написанием скрипта, который должен создавать или апдейтить ресурсы на сервере. Задача, вроде бы, элементарная, но постоянно натыкаюсь на подводные камни.

У веблоджика есть два режима его администрирования: online, когда всё редактируется на работающем сервере, и offline, когда редактируется файл конфигурации путём выполнения почти такого-же скрипта как и для online.

Когда применяю offline режим при работающем сервере то всё работает и никакой ругани не происходит. Но сервер, естесственно, не понимает что его конфиг поменяли. Перезапускаю сервер - никаких изменений не вижу. Оказывается сервер перед тем как завершить свою работу перезаписывает свой конфигурационный файл. В документации ни слова и зачем так делать - неизвестно.

Создаю queues, которые держат свою информацию в FileStore. Затем пытаюсь их обновить. Бросает WLSTException. Обрамляю в try/except WLSTException (это Python) - не ловит. Нахожу древний пост в форуме Dev2Dev, где говорят о том, что это ошибка в WLST. Меняю на except Exception - ловит. Тьфу!

Поначалу пытаюсь удалить FileStore. Не удаляет, бросает идиотскую ошибку что, мол, не сумел создать элементарную операцию. Оказывается оно так реагирует когда какая-нибудь очередь проассоциирована с FileStore. Ок, пытаюсь сказать очереди что она ассоциирована с FileStore с именем “” (пустая строка). Под Windows работает на ура. Пытаюсь тот-же самый скрипт пускать на Solaris - ругается на то, что нет FileStore с таким именем. Резонно. Пытаюсь ассоциировать с None (аналог null в java) - бросает NullPointerException. Блин! Ладно, щас, думаю присоединю эту очередь к стандартному FileStore временно. Теперь ругается на то, что параметер PersistentStore уже установлен и что последняя попытка привела к дуплицированию и была отменена. В документации - тишина. Пришлось лезть руками в config.xml и вырезать все очереди и файловые хранилища грязными руками.

Отдельная песня о том, что в offline режиме не представляется возможным определить - создан объект или нет. Функция find() ищет только в online режиме. В offline ничего подобного нет. Поэтому приходится пытаться создать объект и по результатам возникшего или не возникшего Exception понимать что делать дальше.

Ещё “радует”, что некоторые параметры надо создавать путём создания проперти бэгов, а некоторые уже созданы. Разобраться по какому принципу такое разнообразие практикуется не представляется возможным. “Это надо запомнить”

Но, с другой стороны, приобретаю бесценный опыт программирования на питоне! :о)

Tags: software
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment