We are using OBIEE 11.1.1.6.6 and its Weblogic hangs and the only solution is to restart the whole weblogic.
<Aug 1, 2013 3:58:32 PM CDT> <Critical> <WorkManager> <arion.pb.com> <bi_server1> <weblogic.timers.TimerThread> <<WLS Kernel>> <> <715ed98d023276d8:7db1f930:14032e39a19:-8000-0000000000013bae> <1375390712356> <BEA-002911> <WorkManager weblogic.jms.BipJmsServer.Limited failed to schedule a request due to java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
>
####<Aug 1, 2013 3:59:40 PM CDT> <Error> <Kernel> <arion.pb.com> <bi_server1> <[STANDBY] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <715ed98d023276d8:7db1f930:14032e39a19:-8000-000000000003820e> <1375390780879> <BEA-000802> <ExecuteRequest failed
java.lang.OutOfMemoryError: GC overhead limit exceeded.
java.lang.OutOfMemoryError: GC overhead limit exceeded
>
####<Aug 1, 2013 3:59:40 PM CDT> <Error> <Kernel> <arion.pb.com> <bi_server1> <[STUCK] ExecuteThread: '24' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <715ed98d023276d8:7db1f930:14032e39a19:-8000-0000000000038202> <1375390780873> <BEA-000802> <ExecuteRequest failed
java.lang.OutOfMemoryError: GC overhead limit exceeded.
java.lang.OutOfMemoryError: GC overhead limit exceeded
>
Looks like we need to increase the java heap size.
i opened the setDomainEnv.sh file.. and i found this....
XMS_SUN_64BIT="256"
export XMS_SUN_64BIT
XMS_SUN_32BIT="256"
export XMS_SUN_32BIT
XMX_SUN_64BIT="512"
export XMX_SUN_64BIT
XMX_SUN_32BIT="512"
export XMX_SUN_32BIT
XMS_JROCKIT_64BIT="256"
export XMS_JROCKIT_64BIT
XMS_JROCKIT_32BIT="256"
export XMS_JROCKIT_32BIT
XMX_JROCKIT_64BIT="512"
export XMX_JROCKIT_64BIT
XMX_JROCKIT_32BIT="512"
export XMX_JROCKIT_32BIT
if [ "${JAVA_VENDOR}" = "Sun" ] ; then
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms256m -Xmx512m"
export WLS_MEM_ARGS_32BIT
else
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
fi
if [ "${JAVA_VENDOR}" = "Oracle" ] ; then
CUSTOM_MEM_ARGS_64BIT="-Xms${XMS_JROCKIT_64BIT}m -Xmx${XMX_JROCKIT_64BIT}m"
export CUSTOM_MEM_ARGS_64BIT
CUSTOM_MEM_ARGS_32BIT="-Xms${XMS_JROCKIT_32BIT}m -Xmx${XMX_JROCKIT_32BIT}m"
export CUSTOM_MEM_ARGS_32BIT
else
CUSTOM_MEM_ARGS_64BIT="-Xms${XMS_SUN_64BIT}m -Xmx${XMX_SUN_64BIT}m"
export CUSTOM_MEM_ARGS_64BIT
CUSTOM_MEM_ARGS_32BIT="-Xms${XMS_SUN_32BIT}m -Xmx${XMX_SUN_32BIT}m"
export CUSTOM_MEM_ARGS_32BIT
fi
MEM_ARGS_64BIT="${CUSTOM_MEM_ARGS_64BIT}"
export MEM_ARGS_64BIT
MEM_ARGS_32BIT="${CUSTOM_MEM_ARGS_32BIT}"
export MEM_ARGS_32BIT
if [ "${JAVA_USE_64BIT}" = "true" ] ; then
MEM_ARGS="${MEM_ARGS_64BIT}"
export MEM_ARGS
else
MEM_ARGS="${MEM_ARGS_32BIT}"
export MEM_ARGS
fi
MEM_PERM_SIZE_64BIT="-XX:PermSize=128m"
export MEM_PERM_SIZE_64BIT
MEM_PERM_SIZE_32BIT="-XX:PermSize=128m"
export MEM_PERM_SIZE_32BIT
if [ "${JAVA_USE_64BIT}" = "true" ] ; then
MEM_PERM_SIZE="${MEM_PERM_SIZE_64BIT}"
export MEM_PERM_SIZE
else
MEM_PERM_SIZE="${MEM_PERM_SIZE_32BIT}"
export MEM_PERM_SIZE
fi
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=512m"
export MEM_MAX_PERM_SIZE_64BIT
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=512m"
export MEM_MAX_PERM_SIZE_32BIT
if [ "${JAVA_USE_64BIT}" = "true" ] ; then
MEM_MAX_PERM_SIZE="${MEM_MAX_PERM_SIZE_64BIT}"
export MEM_MAX_PERM_SIZE
else
MEM_MAX_PERM_SIZE="${MEM_MAX_PERM_SIZE_32BIT}"
export MEM_MAX_PERM_SIZE
fi
if [ "${JAVA_VENDOR}" = "Sun" ] ; then
if [ "${PRODUCTION_MODE}" = "" ] ; then
MEM_DEV_ARGS="-XX:CompileThreshold=8000 ${MEM_PERM_SIZE} "
export MEM_DEV_ARGS
fi
fi
# Had to have a separate test here BECAUSE of immediate variable expansion on windows
if [ "${JAVA_VENDOR}" = "Sun" ] ; then
MEM_ARGS="${MEM_ARGS} ${MEM_DEV_ARGS} ${MEM_MAX_PERM_SIZE}"
export MEM_ARGS
fi
# Set a flag which the apps installer can use the tell it is an enterprise install
BI_ENTERPRISE_INSTALL="true"
export BI_ENTERPRISE_INSTALL
# Call a helper script to set per server overrides, if any
. ${DOMAIN_HOME}/bin/setOBIDomainEnv.sh ${JAVA_OPTIONS}
if [ "${JAVA_VENDOR}" = "HP" ] ; then
MEM_ARGS="${MEM_ARGS} ${MEM_MAX_PERM_SIZE}"
export MEM_ARGS
fi
if [ "${JAVA_VENDOR}" = "Apple" ] ; then
MEM_ARGS="${MEM_ARGS} ${MEM_MAX_PERM_SIZE}"
export MEM_ARGS
fi
# If the per server override SERVER_MEM_ARGS has been set then override all MEM_ARGS values
if [ "${SERVER_MEM_ARGS}" != "" ] ; then
MEM_ARGS="${SERVER_MEM_ARGS}"
export MEM_ARGS
fi
# IF USER_MEM_ARGS the environment variable is set, use it to override ALL MEM_ARGS values
if [ "${USER_MEM_ARGS}" != "" ] ; then
MEM_ARGS="${USER_MEM_ARGS}"
export MEM_ARGS
fi
ORACLE_DOMAIN_CONFIG_DIR="${DOMAIN_HOME}/config/fmwconfig"
export ORACLE_DOMAIN_CONFIG_DIR
WLS_JDBC_REMOTE_ENABLED="-Dweblogic.jdbc.remoteEnabled=false"
export WLS_JDBC_REMOTE_ENABLED
Let me know where do i have to change the size...
My JVM vendor is SUN.
Thanks
Ashish