Yes.. I hate weblogic. Seriously..Why?
Because it always throw an error everytime I install or configure it. But I want to share below workaround for the error BEA-003108.
Here the error, I forgot where I saw this error, but the error is something like this:
####<Jun 14, 2012 3:51:12 PM MYT> <Error> <Cluster> <weblogic1> <ManagedServer1> <weblogic.cluster.MessageReceiver> <<WLS Kernel>> <> <> <1339660272694> <BEA-003108> <U
nicast receive error : java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
at com.sun.corba.se.spi.orb.ORB.<clinit>(ORB.java:166)
at com.sun.corba.se.impl.logging.OMGSystemException.get(OMGSystemException.java:67)
at com.sun.corba.se.impl.io.ValueHandlerImpl.<init>(ValueHandlerImpl.java:110)
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.<clinit>(Util.java:112)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at weblogic.iiop.UtilDelegateImpl.<clinit>(UtilDelegateImpl.java:66)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at javax.rmi.CORBA.Util.createDelegateIfSpecified(Util.java:342)
at javax.rmi.CORBA.Util.<clinit>(Util.java:53)
at weblogic.iiop.IIOPInputStream.<clinit>(IIOPInputStream.java:89)
at weblogic.iiop.IOR.readExternal(IOR.java:190)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at weblogic.iiop.IIOPRemoteRef.readExternal(IIOPRemoteRef.java:368)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at java.util.ArrayList.readObject(ArrayList.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
Ok now the best part, i.e. the solution part.
Solution or Workaround:
Go to startweblogic.sh location
Make a backup or copy of the startweblogic.sh file
$ cp startweblogic.sh startweblogic.sh.bkp
Edit the startweblogic.sh script, and find the following phrase
$JAVA_HOME/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}
Then, add either of the following lines just before it:
MEM_ARGS="-Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m"
export MEM_ARGS
MEM_ARGS="-Xms1280m -Xmx1280m"
export MEM_ARGS
JAVA_OPTIONS="$JAVA_OPTIONS -XnoOpt"
export JAVA_OPTIONS
**some suggestion use (just try and error):
-Xms356m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=512m
yea…u must be OCP, so deep a topic