Since two of some well-known testing tools can not detect RMI packets
in the network, we have been forced to use HTTP Tunneling for testing
thick application clients. Since we could not find any documentation to
do this for v6.1, we followed the article for v5.1 given below:
http://www-128.ibm.com/developerworks/forums/dw_thread.jsp?forum=266&...
Environment:
Server:
WAS 6.1, Network Deployment
Redhat Enterprise 4
Hibernate 3.0 with JPA and session beans are used.
Client:
Windows 2001,
IBM JDK,
Some jar files in client container to reach server
Thick Application client
When we run the application without tunneling, it works. And when we
use tunneling by specifying following properties on thick clients (also
setting FragmentSize as a custom property on server), user logins,
retrieves data. views data, but can not perform modifications to data. Our
method to verify the data before insert/update fails giving a
CORBA.COMM_FAILURE error.
com.ibm.CORBA.ForceTunnel=ALWAYS
com.ibm.CORBA.TunnelAgentURL=http://server:9080/HTTPTunnelWeb/IIOPTunnelServlet
com.ibm.CORBA.FragmentSize=0
Since it works without tunneling, I think that the problem is with
Websphere and/or tunneling. Has anyone come across a similar problem or
have an idea to resolve it.
Thanks for any help
Error Messages on Server:
4.Kas.2006 17:35:32 com.milsoft.logger.LoggerImpl error
SEVERE: Uncaught exception:
java.lang.ThreadDeath
at java.lang.Thread.stop(Thread.java:991)
at
com.ibm.ws.orbimpl.transport.WSHTTPTransportConnection.removeConnection(WSHTTPTransportConnection.java:140)
at
com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1883)
at
com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:3036)
at
com.ibm.ws.orbimpl.transport.HTTPReaderThread.run(WSHTTPTransportConnection.java:448)
14.Kas.2006 17:35:32 com.milsoft.logger.LoggerImpl error
SEVERE: Uncaught exception:
com.milsoft.uigen.exception.ApplicationTemplateException
at
com.milsoft.uigen.service.RemoteSessionHandler.callEjbMethod(RemoteSessionHandler.java:111)
at
com.milsoft.uigen.service.RemoteSessionHandler.invoke(RemoteSessionHandler.java:141)
at $Proxy1.validateUniqueData(Unknown Source)
at
com.milsoft.gui.creator.editor.swing.GenericEditorGenerator.validateSwingData(GenericEditorGenerator.java:463)
at
com.milsoft.uigen.template.window.MainInternalEditorWindow.onSaveClick(MainInternalEditorWindow.java:277)
at
com.milsoft.app.common.gui.BaseInternalEditorWindow.actionPerformed(BaseInternalEditorWindow.java:402)
at
com.milsoft.app.common.gui.BaseActionListener.actionPerformed(BaseActionListener.java:48)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1879)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2199)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:450)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:288)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:264)
at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:263)
at java.awt.Component.processMouseEvent(Component.java:5529)
at
javax.swing.JComponent.processMouseEvent(JComponent.java:3148)
at java.awt.Component.processEvent(Component.java:5294)
at java.awt.Container.processEvent(Container.java:2001)
at java.awt.Component.dispatchEventImpl(Component.java:3996)
at java.awt.Container.dispatchEventImpl(Container.java:2059)
at java.awt.Component.dispatchEvent(Component.java:3844)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4249)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3929)
at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:3859)
at java.awt.Container.dispatchEventImpl(Container.java:2045)
at java.awt.Window.dispatchEventImpl(Window.java:1810)
at java.awt.Component.dispatchEvent(Component.java:3844)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:545)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:268)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:197)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:191)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:183)
at
java.awt.EventDispatchThread.run(EventDispatchThread.java:144)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at
com.milsoft.uigen.service.RemoteSessionHandler.callEjbMethod(RemoteSessionHandler.java:107)
... 31 more
Caused by: java.rmi.MarshalException: CORBA COMM_FAILURE 0x4942f306
Maybe; nested exception is:
org.omg.CORBA.COMM_FAILURE: purge_calls:1844 Reason: CONN_ABORT
(1), State: ABORT (5) vmcid: IBM minor code: 306 completed: Maybe
at
com.ibm.CORBA.iiop.UtilDelegateImpl.mapSystemException(UtilDelegateImpl.java:248)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:84)
at
com.milsoft.cdms.co.frmwrkapp._FrameworkBeanInterface_Stub.validateUniqueData(_FrameworkBeanInterface_Stub.java:893)
... 36 more
Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1844 Reason:
CONN_ABORT (1), State: ABORT (5) vmcid: IBM minor code: 306
completed: Maybe
at
com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1843)
at
com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:3036)
at
com.ibm.ws.orbimpl.transport.HTTPReaderThread.run(WSHTTPTransportConnection.java:448)
Cannot call EJB method.parameters=[Ljava.lang.Object;@32123212
class=class com.milsoft.cdms.co.frmwrkapp._FrameworkBeanInterface_Stub
globalMessage=appTempExc
I have no idea what you mean by this. Why is detecting packets at the
network level a prerequisite for any kind of useful testing?
Although it is also possible to use API recording (an option to network
recording), it is not useful for applications having J2EE
client/server architecture.
Serkan Toprak
Paul Ilechko yazdi: