-
Bug
-
Resolution: Won't Fix
-
P3
-
5.0u16, 5.0u20
-
None
-
generic, x86
-
linux_redhat_4.0, windows
Problem is observed with application server cluster (Oracle WebLogic
Server (WLS) cluster). A stateful EJB application deployed to the cluster.
The problem is Oracle WebLogic Server IIOP EJB client not getting failover
to the available server in the cluster. In other words the EJB Client
calls are load balancing between the managed servers of the cluster as
long as both servers are running well. The Sun JDK 1.5.x IIOP is not
doing context failover when ever one of the running managed servers is
down. The same application is tested on previous WLS version which is
using jdk 1.4.2 and all works well. JDK 1.5.x environment is throwing
the below exception.
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 203 completed: No
at
com.sun.corba.se.impl.logging.ORBUtilSystemException.writeErrorSend(ORBUtilSystemException.java:2259)
at
com.sun.corba.se.impl.logging.ORBUtilSystemException.writeErrorSend(ORBUtilSystemException.java:2281)
at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.writeLock(SocketOrChannelConnectionImpl.java:933)
at
com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendFragment(BufferManagerWriteStream.java:86)
at
com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendMessage(BufferManagerWriteStream.java:104)
at
com.sun.corba.se.impl.encoding.CDROutputObject.finishSendingMessage(CDROutputObject.java:144)
at
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.finishSendingRequest(CorbaMessageMediatorImpl.java:247)
at
com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete1(CorbaClientRequestDispatcherImpl.java:342)
at
com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:323)
at
com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
at
com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:213)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at weblogic.corba.j2ee.naming.Utils.narrowContext(Utils.java:126)
at
weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:94)
at
weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:31)
at
weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:41)
at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at MyClient.main(MyClient.java:26) java.lang.NullPointerException
at MyClient.main(MyClient.java:35)
Here are the reproducible Steps:
1. Install WLS 9.2.3 on Windows or Unix machine
2. Create a cluster with two managed servers using the domain
configuration wizard, you can keep the clustered weblogic server running
on the same machine.
3. You compile the EJB source and then create the deployable EJB jar
file using the weblogic.appc utility. You should change the IIOP:// UTL
in the myclient.java file.
4. Deploy the EJB jar application to the cluster using the admin console
5. Keep Invoking the EJB client and you observe that the EJB IIOP
request is being load balanced across the JVMs (managed servers 1 & 2)
6. Stop/Kill one of the managed servers and then keep invoking the EJB
client, you end up seeing the IIOP request load balanced to unavailable
JVM and request fails with the below error.
Attachments:
EJBTestApp.zip
EJB compilation command:
java -classpath .;%CLASSPATH% weblogic.appc SourceApp.jar -output
finalEJB.jar
http://download.oracle.com/docs/cd/E13222_01/wls/docs92/programming/splitbuild.html#wp1102587
Client commands:
javac -classpath
.;<PATH>\client.jar;<JDK-HOME>\lib\tools.jar;<JDK-HOME>\lib\rt.jar;<WLS_HOME>\server\lib\wlclient.jar;<WLS-HOME\server\lib\wl-j2ee-client.jar
MyClient.java
java -classpath
.;<PATH>\client.jar;<JDK-HOME>\lib\tools.jar;<JDK-HOME>\lib\rt.jar;<WLS_HOME>\server\lib\wlclient.jar;<WLS-HOME\server\lib\wl-j2ee-client.jar
MyClient
Server (WLS) cluster). A stateful EJB application deployed to the cluster.
The problem is Oracle WebLogic Server IIOP EJB client not getting failover
to the available server in the cluster. In other words the EJB Client
calls are load balancing between the managed servers of the cluster as
long as both servers are running well. The Sun JDK 1.5.x IIOP is not
doing context failover when ever one of the running managed servers is
down. The same application is tested on previous WLS version which is
using jdk 1.4.2 and all works well. JDK 1.5.x environment is throwing
the below exception.
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 203 completed: No
at
com.sun.corba.se.impl.logging.ORBUtilSystemException.writeErrorSend(ORBUtilSystemException.java:2259)
at
com.sun.corba.se.impl.logging.ORBUtilSystemException.writeErrorSend(ORBUtilSystemException.java:2281)
at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.writeLock(SocketOrChannelConnectionImpl.java:933)
at
com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendFragment(BufferManagerWriteStream.java:86)
at
com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendMessage(BufferManagerWriteStream.java:104)
at
com.sun.corba.se.impl.encoding.CDROutputObject.finishSendingMessage(CDROutputObject.java:144)
at
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.finishSendingRequest(CorbaMessageMediatorImpl.java:247)
at
com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete1(CorbaClientRequestDispatcherImpl.java:342)
at
com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:323)
at
com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
at
com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:213)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at weblogic.corba.j2ee.naming.Utils.narrowContext(Utils.java:126)
at
weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:94)
at
weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:31)
at
weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:41)
at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at MyClient.main(MyClient.java:26) java.lang.NullPointerException
at MyClient.main(MyClient.java:35)
Here are the reproducible Steps:
1. Install WLS 9.2.3 on Windows or Unix machine
2. Create a cluster with two managed servers using the domain
configuration wizard, you can keep the clustered weblogic server running
on the same machine.
3. You compile the EJB source and then create the deployable EJB jar
file using the weblogic.appc utility. You should change the IIOP:// UTL
in the myclient.java file.
4. Deploy the EJB jar application to the cluster using the admin console
5. Keep Invoking the EJB client and you observe that the EJB IIOP
request is being load balanced across the JVMs (managed servers 1 & 2)
6. Stop/Kill one of the managed servers and then keep invoking the EJB
client, you end up seeing the IIOP request load balanced to unavailable
JVM and request fails with the below error.
Attachments:
EJBTestApp.zip
EJB compilation command:
java -classpath .;%CLASSPATH% weblogic.appc SourceApp.jar -output
finalEJB.jar
http://download.oracle.com/docs/cd/E13222_01/wls/docs92/programming/splitbuild.html#wp1102587
Client commands:
javac -classpath
.;<PATH>\client.jar;<JDK-HOME>\lib\tools.jar;<JDK-HOME>\lib\rt.jar;<WLS_HOME>\server\lib\wlclient.jar;<WLS-HOME\server\lib\wl-j2ee-client.jar
MyClient.java
java -classpath
.;<PATH>\client.jar;<JDK-HOME>\lib\tools.jar;<JDK-HOME>\lib\rt.jar;<WLS_HOME>\server\lib\wlclient.jar;<WLS-HOME\server\lib\wl-j2ee-client.jar
MyClient
- relates to
-
JDK-6828768 RMI-IIOP EJB clients do not fail over due to defect in JDK 1.6.0_12
- Closed