вторник, 5 февраля 2013 г.

Очистка постоянных хранилищ (Persistent Store) сервера приложений WebLogic с помощью WLST

Для сохранения в долговременной памяти различных объектов, таких как сервисы диагностики, JMS-сообщения, логи транзакций, таймеры и т.д., сервер приложений Oracle WebLogic использует механизм постоянных хранилищ (Persistent Store). Постоянные хранилища могут работать как с диском (File Stores), так и с СУБД (JDBC Stores). При этом сервер приложений никогда не очищает файловое хранилище, т.е. не уменьшает его размер даже если в нем не осталось объектов.

Стоит отметить, что если объем файлового хранилища очень велик (более гигабайта), то процесс восстановления объектов из него при перезапуске сервера приложений существенно замедляется. Суровый наблюдал десятиминутное восстановление из хранилища объемом 1,3 Гб на продуктивном сервере, при этом реально считывалось всего порядка шестисот сообщений размером по 1-2 Кб.

Для очистки хранилища администратору сервера приложений доступна утилита командной строки weblogic.store.Admin и утилита WebLogic Scripting Tool (WLST). При использовании WLST необходимо выполнить команду compactstore, принимающую в качестве аргументов путь к каталогу, в котором содержатся файлы хранилища, и путь к каталогу временных файлов - в данном каталоге будет создана резервная копия хранилища. Последний аргумент является необязательным, однако если вы его указываете, то необходимо учитывать, что каталог для резервной копии не может находиться внутри каталога хранилища. Команду compactstore можно выполнять только при выключенном экземпляре сервера приложений WebLogic, использующем хранилище.

Пример:

wls:/offline> compactstore('/home/weblogic/user_projects/domains/esb_domain/store/RTKDSVStore_1')

Подробнее про использование постоянных хранилищ можно прочитать в разделе Using the WebLogic Persistent Store документа Configuring Server Environments for Oracle WebLogic Server 11g Release 1 (10.3.6).

Понравилось сообщение - подпишитесь на блог и Twitter

4 комментария:

Алексей Сухоткин комментирует...

Павел, искал немного другое, может Вы в курсе.
Можно ли настроить авто очистку логов Weblogic (логов сервера, логов приложений), например старше 7 дней например. И можно ли ограничить размер .Out файла логов сервера? Как вы чистите логи, наверняка не руками? Буду очень признателен.

Pavel Samolisov комментирует...

Здравствуйте, это стандартная функциональность, на вкладке Logging экземпляра WebLogic есть галочка Limit number of retained files, позволяющая ограничить количество файлов логов (.log), находящихся в подкаталоге log сервера. Аналогичная настройка есть и для логов домена (логов, собираемых со всех серверов, входящих в домен). С .out сложнее, чтобы очистить данный файл нужно как минимум остановить WebLogic, здесь нужно настроить вывод в консоль, на той же вкладке Logging, в Advanced есть параметры Standard out :Severity level: и Filter, можно поиграться ограничениями на логирование с каждой подсистемы сервера, например выводить только Critical для EJB или только ERROR для JDBC.

Pavel Samolisov комментирует...

Добавлю так же, что ротацию логов можно настроить как по размеру файла, так и по дате.

Алексей Сухоткин комментирует...

Огромное спасибо, буду пробывать:)

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

Любой Ваш комментарий важен для меня, однако, помните, что действует предмодерация. Давайте уважать друг друга!