К основному контенту

Weblogic Diagnostic Framework Run Bash Script (reboot managed server) - (bad practices)

Вообщем переодически сервер дохнет по: The WebLogic Server encountered a critical failure java.lang.OutOfMemoryError: Metaspace Reason: There is a panic condition in the server. The server is configured to exit on panic И хотя это гавно пишет типа  Reason: There is a panic condition in the server. The server is configured to exit on panic чёт ни хуя он ни куда не exit.... Вообщем т.к разбираться с тем чем он жрётся нет ни времени ни желания (оно обязательно появится)... как вариант можно приделать костыль... костыль будет заключаться в ребуте сервера при возникновении этой ошибки. Что значит для этого надо... Желания и понимание что так жить нельзя, и вообще... Делаем новый модуль называем скажем:  Reboot-OOMMetaSpace Идём в в новый модуль делаем Policy: Называем его OOM-Metaspace и говорит что это Server log: Жмём next в Configuration Policy пишем: log.logMessage.contains('java.lang.OutOfMemoryError: Metaspace'...

Weblogic Diagnostic Framework Run Bash Script (reboot managed server) - (bad practices)

Вообщем переодически сервер дохнет по:


The WebLogic Server encountered a critical failure
java.lang.OutOfMemoryError: Metaspace
Reason: There is a panic condition in the server. The server is configured to exit on panic

И хотя это гавно пишет типа 
Reason: There is a panic condition in the server. The server is configured to exit on panic
чёт ни хуя он ни куда не exit....

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

Что значит для этого надо...
Желания и понимание что так жить нельзя, и вообще...

Делаем новый модуль называем скажем: Reboot-OOMMetaSpace


Идём в в новый модуль делаем Policy:



Называем его OOM-Metaspace и говорит что это Server log:



Жмём next в Configuration Policy пишем:
log.logMessage.contains('java.lang.OutOfMemoryError: Metaspace')




Не надо алярмов:



Next -> Finish 

Делаем терь действие:


Добавляем скрипт:


Пишем чё нить типа RebootMS



Далее
mkdir /opt/oracle/user_projects/domains/test_domain/bin/scripts/
Working Directory: /opt/oracle/user_projects/domains/test_domain/bin/scripts
Path to Script:/opt/oracle/user_projects/domains/test_domain/bin/scripts/reboot.sh


Finish.

Возвращаемся обратно в Policy которое OOM-Metaspace и добавляем созданное действие:


Дальше у нас есть скрипт который срёт в  /tmp/test.log тем что он наделал.
reboot.sh:

#!/bin/bash
echo "-------------`date`------------" >> /tmp/test.log
SERVER_NAME=`awk -v 'RS=\0' -F= '$1=="SERVER_NAME" {print $2}' /proc/$PPID/environ`
echo "PID: $$, PPID: $PPID, SERVER: ${SERVER_NAME}" >> /tmp/test.log
sleep 5
nohup /opt/oracle/mid/weblogic/restartMServer.sh $SERVER_NAME 1>/dev/null 2>&1 &
exit 0

В краце делает примерно следующее получает имя Managed Server на которым был OOM:
SERVER_NAME=`awk -v 'RS=\0' -F= '$1=="SERVER_NAME" {print $2}' /proc/$PPID/environ`

Выводит это в /tmp/test.log
echo "PID: $$, PPID: $PPID, SERVER: ${SERVER_NAME}" 

Запускает скрипт по ребуту managed Server
nohup /opt/oracle/mid/weblogic/restartMServer.sh $SERVER_NAME 1>/dev/null 2>&1 &


Скрипт restartMServer.sh:
#!/bin/bash

$MW_HOME/oracle_common/common/bin/wlst.sh<<EOF
nmConnect('weblogic','TEST','10.64.999.999',5556,'test_domain','/opt/oracle/user_projects/domains/test_domain',nmType='Plain');
nmKill('$1');
nmStart('$1');
EOF
exit 0


-------------------------------------------------
В качесте примера можно найти приложение по генерации StuckThread и в правилах прописать что нить типа:
log.messageId == 'BEA-000337' and log.logMessage.contains('STUCK')

и посмотреть что на StuckThread сервер ребутнётся.


Там кстать надо LogLevel повысить что бы подобные соощения попадали в лог...
Опубликую пожалуй ито вдруг пригодится

Комментарии

Популярные сообщения из этого блога

Weblogic Kerberos

Weblogic установлен на сервере budwf Домен контролер wcctst.wcc.local Клиентская винда XZ 1. Генерим keytab ktpass -princ HTTP/srv_budwf@WCC.LOCAL -mapuser srv_budwf -kvno 0 -crypto AES128-SHA1 -ptype KRB5_NT_PRINCIPAL -pass lalal_1 -out c:\temp\budwf.keytab Т.е в данном случае principal name в keytab полностью соответствует ожиданиям... C:\Users\Administrator>ktpass -princ HTTP/srv_budwf@WCC.LOCAL -mapuser srv_budwf -kv no 0 -crypto AES128-SHA1 -ptype KRB5_NT_PRINCIPAL -pass lalal_1 -out c:\temp\b udwf.keytab Targeting domain controller: wcctst.wcc.local Successfully mapped HTTP/budwf to srv_budwf. Password succesfully set! Key created. Output keytab to c:\temp\budwf.keytab: Keytab version: 0x502 keysize 55 HTTP/budwf@WCC.LOCAL ptype 1 (KRB5_NT_PRINCIPAL) vno 0 etype 0x11 (AE S128-SHA1) keylength 16 (0xbf005ae14d58153abe3eab57cf5a8260) C:\Users\Administrator>setspn -L srv_budwf Registered ServicePrincipalNames for CN=srv_budwf,CN=Users,DC=wcc,DC=local: ...

Oracle SOA email notification или какого х.. оно не работает.

От делать нех задокументируем.... Вообщем то всё рассписанно по ссылке: http://www.rubiconred.com/blog/email-notification-with-soa-suite-11g/ Ссылка походу сдохла!!! Придётся на всякий случай записать пока не забыл... Собственно основные настройки делаются на этой странице: Тут будет текст дабы не плодить картинок: MailAccessProtocol : POP3 RetryLimit : -1 MailDelFreq : 600 AutoDelete : not check Debug : not check CheckMailFreq : 30 ReceiveFolder: INBOX OutgoingMailServer :  mail4.ru OutgoingMailServerPort : 25 OutgoingMailServerSecurity : None OutgoingDefaultFromAddr :  pklmn@mail.ru OutgoingPassword: вроде ни чё не трогал... IncomingMailServer: mail3.ru IncomingMailServerPort: 110 IncomingMailServerSSL: not check IncomingMailIDs: pklmn@mail.ru IncomingUserIDs: pklmn IncomingUserPasswords: тут настраиваем пароль При настройке рекомендуется обращать внимания на всплывающие подсказки например: Sender Address должен выглядеть как E...