Вообщем переодически сервер дохнет по: 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'...
В догонку к этому посту
http://eugenpolyakov.blogspot.ru/2013/05/obssocookie-parser.html
Только парсить будем OAMAuthnCookie и webgate будет 11.
Первое что понадобится Oracle Access Manager Access SDK 11.1.2.3.0 его можно скачать тут:
http://www.oracle.com/technetwork/middleware/id-mgmt/downloads/oid-11gr2-2104316.html
Далее по шагам:
1. mkdir -p /opt/oracle/OAMSDK/OAMCookie
2. vi cookieParser.java
import java.util.*;
import oracle.security.am.asdk.*;
public class cookieParser {
public static void main(String[] arg) {
String cookie = arg[0];
try {
AccessClient ac = AccessClient.createDefaultInstance();
UserSession sess = new UserSession(cookie,true);
System.out.println("==============================");
System.out.println("user: " + sess.getUserIdentity());
System.out.println("last use: " + new Date(sess.getLastUseTime()*1000L));
System.out.println("getLevel(): " + sess.getLevel());
System.out.println("getLocation(): " + sess.getLocation());
System.out.println("getSessionToken(): " + sess.getSessionToken());
System.out.println("getStartTime(): " + new Date(sess.getStartTime()*1000L));
System.out.print("Session status: ");
String status="";
switch (sess.getStatus()) {
case 0: status = "AWAITINGLOGIN"; break;
case 1: status = "LOGGEDIN";break;
case 2: status = "LOGGEDOUT";break;
case 3: status = "LOGINFAILED";break;
case 4: status = "EXPIRED"; break;
}
System.out.println(status);
ac.shutdown();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
3. В этой же директории распаковываем OAMSDK
unzip V75953-01.zip
4. . $DOMAIN_HOME/bin/setDomainEnv.sh (тут не забыть точку в начале)
5. cd /opt/oracle/OAMSDK/OAMCookie
export CLASSPATH=`pwd`/oamasdk-api.jar:.:$CLASSPATH
6. cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/cwallet.sso ./config/
cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/ObAccessClient.xml .
(т.е копируем cwallet.sso и ObAccessClient.xml с webgate )
7. cd /opt/oracle/OAMSDK/OAMCookie
8. /opt/oracle/java/latest/bin/javac cookieParser.java
9. /opt/oracle/java/latest/bin/java cookieParser <OAMAuthnCookie>
user: cn=lalalal
last use: Tue May 26 13:34:11 MSK 2015
getLevel(): 2
getLocation(): 1.1.1.1
getSessionToken(): z807QV4clTwGpg/+M3d24o1wp4+J55G4Tl0wgU4Ei7N8Yz/XBJ/NpPHgfOgntYD7/7TW+NDhdMnj7788svkFJJ1MzpoG7ipQvhOyE4JVNKU5OuOzIxIbpyoKQbDDgCZcqkz5qktv1faPbuTgotvLlo0IbjiHJl2Gvp9/AvkcjS2EauGH6P6jea0WQdO5LkszZHwYxrPKpnQMYYd7UoMGPhKyodSym1TBokc/47vQQ1VjJRQvXF6n6gTHD8auA5U+SJUm/9dGPOeryLVylge9+7cKfUnJRqtEVKjNQhlLMn7OTKTYleDQ==
getStartTime(): Tue May 26 13:34:11 MSK 2015
Session status: LOGGEDIN
OAMAuthnCookie можно вытащить с помощью Firebug или чего угодно после захода на какой нить Protected ресурс.
1. OAMAGENT-02081: No agent key entry found due to JPS config error or wallet file does not exist or contains no agent key.
Говорит о том что не найден "правильный файл" cwallet.sso
Решается пунктом 6 данного поста т.е:
6. cp $DOMAIN_HOME/output/test1_WG12/cwallet.sso ./config (т.е копируем cwallet.sso и ObAccessClient.xml с webgate в директорию /opt/oracle/OAMSDK/OAMCookie)
2. Exception in thread "main" java.lang.NoSuchFieldError: PROPERTY_RESOURCE_ACTIONS_SEED
at oracle.security.jps.internal.policystore.ldap.JpsLdapAttributeMapper.<init>(JpsLdapAttributeMapper.java:1368)
at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.<clinit>(JpsDBDataManager.java:526)
Такая херня может случаться, я уже не помню почему но с этом случае начните всё сначала=)
3. WLS ManagedService is not up running. Fall back to use system properties for configuration.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.impl.Configuration readAgentKey
SEVERE: JPS operation failure while reading key from wallet
oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..
Caused by: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.AccessClient initialize
SEVERE: Oracle Access SDK initialization failed.
oracle.security.am.asdk.AccessException: OAMAGENT-02082: JPS operation failure while reading key from wallet
Caused by: oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..
Данная ошибка может появлятся если в cookieParser.java написано
System.setProperty("oracle.security.jps.config","/opt/oracle/middleware/user_projects/domains/oamtst_domain/config/fmwconfig/jps-config.xml");
или при вызове указали путь к этому jps-config.xml...
Для того что бы всё работало верно нужно использовать jps-config.xml из OAMSDK!
http://eugenpolyakov.blogspot.ru/2013/05/obssocookie-parser.html
Только парсить будем OAMAuthnCookie и webgate будет 11.
Первое что понадобится Oracle Access Manager Access SDK 11.1.2.3.0 его можно скачать тут:
http://www.oracle.com/technetwork/middleware/id-mgmt/downloads/oid-11gr2-2104316.html
Далее по шагам:
1. mkdir -p /opt/oracle/OAMSDK/OAMCookie
2. vi cookieParser.java
import java.util.*;
import oracle.security.am.asdk.*;
public class cookieParser {
public static void main(String[] arg) {
String cookie = arg[0];
try {
AccessClient ac = AccessClient.createDefaultInstance();
UserSession sess = new UserSession(cookie,true);
System.out.println("==============================");
System.out.println("user: " + sess.getUserIdentity());
System.out.println("last use: " + new Date(sess.getLastUseTime()*1000L));
System.out.println("getLevel(): " + sess.getLevel());
System.out.println("getLocation(): " + sess.getLocation());
System.out.println("getSessionToken(): " + sess.getSessionToken());
System.out.println("getStartTime(): " + new Date(sess.getStartTime()*1000L));
System.out.print("Session status: ");
String status="";
switch (sess.getStatus()) {
case 0: status = "AWAITINGLOGIN"; break;
case 1: status = "LOGGEDIN";break;
case 2: status = "LOGGEDOUT";break;
case 3: status = "LOGINFAILED";break;
case 4: status = "EXPIRED"; break;
}
System.out.println(status);
ac.shutdown();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
3. В этой же директории распаковываем OAMSDK
unzip V75953-01.zip
4. . $DOMAIN_HOME/bin/setDomainEnv.sh (тут не забыть точку в начале)
5. cd /opt/oracle/OAMSDK/OAMCookie
export CLASSPATH=`pwd`/oamasdk-api.jar:.:$CLASSPATH
6. cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/cwallet.sso ./config/
cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/ObAccessClient.xml .
(т.е копируем cwallet.sso и ObAccessClient.xml с webgate )
7. cd /opt/oracle/OAMSDK/OAMCookie
8. /opt/oracle/java/latest/bin/javac cookieParser.java
9. /opt/oracle/java/latest/bin/java cookieParser <OAMAuthnCookie>
user: cn=lalalal
last use: Tue May 26 13:34:11 MSK 2015
getLevel(): 2
getLocation(): 1.1.1.1
getSessionToken(): z807QV4clTwGpg/+M3d24o1wp4+J55G4Tl0wgU4Ei7N8Yz/XBJ/NpPHgfOgntYD7/7TW+NDhdMnj7788svkFJJ1MzpoG7ipQvhOyE4JVNKU5OuOzIxIbpyoKQbDDgCZcqkz5qktv1faPbuTgotvLlo0IbjiHJl2Gvp9/AvkcjS2EauGH6P6jea0WQdO5LkszZHwYxrPKpnQMYYd7UoMGPhKyodSym1TBokc/47vQQ1VjJRQvXF6n6gTHD8auA5U+SJUm/9dGPOeryLVylge9+7cKfUnJRqtEVKjNQhlLMn7OTKTYleDQ==
getStartTime(): Tue May 26 13:34:11 MSK 2015
Session status: LOGGEDIN
OAMAuthnCookie можно вытащить с помощью Firebug или чего угодно после захода на какой нить Protected ресурс.
P.S Возможные ошибки:
1. OAMAGENT-02081: No agent key entry found due to JPS config error or wallet file does not exist or contains no agent key.
Говорит о том что не найден "правильный файл" cwallet.sso
Решается пунктом 6 данного поста т.е:
6. cp $DOMAIN_HOME/output/test1_WG12/cwallet.sso ./config (т.е копируем cwallet.sso и ObAccessClient.xml с webgate в директорию /opt/oracle/OAMSDK/OAMCookie)
2. Exception in thread "main" java.lang.NoSuchFieldError: PROPERTY_RESOURCE_ACTIONS_SEED
at oracle.security.jps.internal.policystore.ldap.JpsLdapAttributeMapper.<init>(JpsLdapAttributeMapper.java:1368)
at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.<clinit>(JpsDBDataManager.java:526)
Такая херня может случаться, я уже не помню почему но с этом случае начните всё сначала=)
3. WLS ManagedService is not up running. Fall back to use system properties for configuration.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.impl.Configuration readAgentKey
SEVERE: JPS operation failure while reading key from wallet
oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..
Caused by: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.AccessClient initialize
SEVERE: Oracle Access SDK initialization failed.
oracle.security.am.asdk.AccessException: OAMAGENT-02082: JPS operation failure while reading key from wallet
Caused by: oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..
Данная ошибка может появлятся если в cookieParser.java написано
System.setProperty("oracle.security.jps.config","/opt/oracle/middleware/user_projects/domains/oamtst_domain/config/fmwconfig/jps-config.xml");
или при вызове указали путь к этому jps-config.xml...
Для того что бы всё работало верно нужно использовать jps-config.xml из OAMSDK!
Комментарии
Отправить комментарий