After Production Redeployment on a Cluster, BEA-000126 Error With UnmarshalException Might Be Thrown (Doc ID 2253335.1)

Last updated on AUGUST 10, 2017

Applies to:

Oracle WebLogic Server - Version 12.1.3.0.0 and later
Information in this document applies to any platform.

Symptoms

UnmarshallException can be thrown by an application after it is redeployed to a cluster.

 

####<2017/04/05 11:02:37 JST> <Error> <Cluster> <hostname> <Server-1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1491357757962> <BEA-000126> <All session objects should be serializable to replicate. Check the objects in the session. Failed to replicate a non-serializable object.
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:

java.lang.ClassNotFoundException: Failed to load class com.oracle.jp.gcs.beans.MyBean
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:257)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:304)
at weblogic.cluster.replication.ReplicationManager_12130_WLStub.create(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:194)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:164)
at com.sun.proxy.$Proxy83.create(Unknown Source)
at weblogic.cluster.replication.ReplicationManager.trySecondary(ReplicationManager.java:972)
at weblogic.cluster.replication.ReplicationManager.createSecondary(ReplicationManager.java:913)
at weblogic.cluster.replication.ReplicationManager.getPrimary(ReplicationManager.java:889)
at weblogic.cluster.replication.ReplicationManager.lookup(ReplicationManager.java:432)
at weblogic.servlet.internal.session.ReplicatedSessionContext.lookupSession(ReplicatedSessionContext.java:428)
at weblogic.servlet.internal.session.ReplicatedSessionContext.getSessionInternal(ReplicatedSessionContext.java:270)
at weblogic.servlet.internal.session.ReplicatedSessionContext.getSessionInternal(ReplicatedSessionContext.java:262)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getValidSession(ServletRequestImpl.java:3294)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper._getSessionInternal(ServletRequestImpl.java:2743)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSessionInternal(ServletRequestImpl.java:2702)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(ServletRequestImpl.java:2692)
at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1401)
at weblogic.servlet.internal.session.ReplicatedSessionContext.lookupAppVersionIdForSession(ReplicatedSessionContext.java:586)
at weblogic.servlet.internal.ServletRequestImpl.findVersionedContext(ServletRequestImpl.java:1757)
at weblogic.servlet.internal.ServletRequestImpl.dispatchVersion(ServletRequestImpl.java:1711)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1551)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
Caused By: java.lang.ClassNotFoundException: Failed to load class com.oracle.jp.gcs.beans.MyBean
at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:208)
at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:135)
at weblogic.rmi.utils.Utilities.loadClass(Utilities.java:306)
at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:439)
at weblogic.utils.io.ChunkedObjectInputStream$NestedObjectInputStream.resolveClass(ChunkedObjectInputStream.java:271)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1779)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2016)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1940)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1806)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
at java.util.Hashtable.readObject(Hashtable.java:1007)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1907)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1806)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
at weblogic.servlet.internal.session.ReplicatedSessionData.readExternal(ReplicatedSessionData.java:149)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1847)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1804)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:211)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:602)
at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:207)
at weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:701)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:527)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:523)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

com.oracle.jp.gcs.beans.MyBean is serializable and exists in the WAR appropriately.

For example:
There is "Cluster-0" with managed server named "Server-0" and "Server-1"."Server-0" is 192.168.56.2:7011."Server-1" is 192.168.56.3:7012.AdminServer is 192.168.56.1:7001.
Issue can be reproduced with the following steps.

1. Deploy the application v1.0.
java weblogic.Deployer -targets Cluster-0 -adminurl t3://192.168.56.1:7001 -user u -password p -deploy -name HelloJsf -source /HelloJsf.war -appversion v1.0

2. Access the application on "Server-0" directly ( eg. specified by IP and port).
http://192.168.56.2:7011/HelloJsf/index.xhtml

3. Redeploy the app v2.0.
java weblogic.Deployer -targets Cluster-0 -adminurl t3://192.168.56.1:7001 -user u -password p -redeploy -name HelloJsf -source /HelloJsf2.war -appversion v2.0

4. Access the application on "Server-1". (For emulating that primary server is downed.)
http://192.168.56.3:7012/HelloJsf/index.xhtml

In this case, "Server-1" is secondary server for session.

Changes

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms