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

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'...

Java tzmappings Windows, tzupdater

Долбанный микрософт ввел очередные timzone для России:
http://blogs.technet.com/b/dst2007/archive/2014/08/22/announcement-update-for-russian-time-zone-changes.aspx

Значение текущей timzone можно посмотреть в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -> TimeZoneKeyName если вы находитесь в Самаре или новейшем Chokurdakh то там будет значение
Russia Time Zone 3
Russia Time Zone 10

Проверка текущей и всех вообще timezone java:
import java.util.*;
class TzTest {
  public static void main(String[] args) {
String[] timeZones = TimeZone.getAvailableIDs();
List<String> tzList = new ArrayList<String>();
for (String timeZone : timeZones)
{
 TimeZone tz = TimeZone.getTimeZone(timeZone);
 StringBuilder timeZoneStr = new StringBuilder();
 timeZoneStr.append("( GMT ").append(tz.getRawOffset() / (60 * 60 * 1000)).append(" ) ").append(tz.getDisplayName()).append("(").append(timeZone).append(")");
 tzList.add(timeZoneStr.toString());
 System.out.println(timeZoneStr.toString());
}
          TimeZone tz = TimeZone.getTimeZone(java.util.TimeZone.getDefault().getID());
          StringBuilder timeZoneStr = new StringBuilder();
          timeZoneStr.append("Current timzone: ").append("( GMT ").append(tz.getRawOffset() / (60 * 60 * 1000)).append(" ) ").append(tz.getDisplayName());
          tzList.add(timeZoneStr.toString());
          System.out.println(timeZoneStr.toString());
  }
}

Без workaround Samara вывод будет вида:
PS C:\Program Files\Java\jdk1.7.0_45> ./bin/java TzTest
( GMT 13 ) West Samoa Time(Pacific/Apia)
( GMT 13 ) Phoenix Is. Time(Pacific/Enderbury
( GMT 13 ) Tokelau Time(Pacific/Fakaofo)
( GMT 13 ) Tonga Time(Pacific/Tongatapu)
( GMT 14 ) GMT+14:00(Etc/GMT-14)
( GMT 14 ) Line Is. Time(Pacific/Kiritimati)
Current timzone: ( GMT -3 ) Brasilia Time

или

PS C:\Program Files\Java\jdk1.6.0_45> ./bin/java TzTest
( GMT 10 ) GMT+10:00(Asia/Chita)
( GMT 9 ) Irkutsk Time(Asia/Irkutsk)
( GMT 4 ) Moscow Standard Time(Europe/Moscow)
( GMT -5 ) Eastern Standard Time(America/Grand_Turk)
( GMT 4 ) Moscow Standard Time(W-SU)

Current timezone: America/Caracas

Workaround:
Открываем <$JAVA_HOME>/jre/lib/tzmappings и пишем туда 2 волшебные строчки, т.е делаем mapping для новых timzone.
Russia Time Zone 3:6,7::Europe/Samara:
Russia Time Zone 10:921,921::Etc/GMT-11:

В принципе так можно замапить любую timezone... список на что можно маппить можно посмотреть с помощью вышеприведённой java программки.

Комментарии

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

Backup elasticsearch with curator.

Сжато кратко, в падлу много расписывать... Вообщем пробуем забэкапить elasticsearch 5.0 с помощью curator 4.2 Что имеем: 2 ноды 1) vapp-cn1 2) vapp-cn2 Репозиторий для бэкапа есть на обоих хостах находится в /backup/el_backup/front права для пользователя под который запущен elasticsearch есть, на обоих нодах в конфиге elasticsearch.yml указанно: path.repo: ["/backup/el_backup/front"] Настройка curator, бэкапить будем все индексы поэтому: 1. snapshot-script.yml actions:   1:     action: snapshot     description: >-       Snapshot logstash- prefixed indices older than 1 day (based on index       creation_date) with the default snapshot name pattern of       'curator-%Y%m%d%H%M%S'.  Wait for the snapshot to complete.  Do not skip       the repository filesystem access check.  Use the other options to create       the snapsho...

Oracle Cloud Control 12c/13c modify target setup Life Cycle Status (emcli, multiple targets)

https://pardydba.wordpress.com/2012/10/17/how-and-why-you-should-set-target-lifecycle-status-properties-in-em12c/+&cd=1&hl=ru&ct=clnk&gl=ru Итак есть куча таргетов middleware, host и т.д ... Менять руками  LifeCycle Status для всех таргетов внутри middleware это геморой поэтому сделать надо это скриптом. По ссылке выше предлагается это сделать для хостов. Ниже будет описано как это сделать для всех таргетов. В краце инструкция такова: Ставим emcli: oracle@omshost$ export JAVA_HOME=$OMS_HOME/../jdk16/jdk oracle@omshost$ export PATH=$JAVA_HOME/bin:$PATH oracle@omshost$ export ORACLE_HOME=$OMS_HOME oracle@omshost$ cd $ORACLE_HOME oracle@omshost$ mkdir emcli oracle@omshost$ java -jar $ORACLE_HOME/sysman/jlib/emclikit.jar client -install_dir=$ORACLE_HOME/emcli Oracle Enterprise Manager 12c Release 2. Copyright (c) 1996, 2012 Oracle Corporation. All rights reserved. EM CLI client-side install completed successfully. oracle@omshost$ $ORACLE_HOME/emcli/emcli...

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'...