eFix (APAR): PQ65772 Status: Fix Release: WebSphere 4.0.2, 4.0.3, 4.0.4 Operating System: All Supersedes eFixes: None CMVC defect: PQ65772 Byte size of APAR: 1,043k Date: 09/25/02 Title: IIOPTunnelServlet Abstract: User is unable to start a second session of IIOPTunnelServlet and its associated EJB until the first session is completed. Description/symptom of problem: IIOPTunnelServlet is a special servlet developed by IBM WebSphere Java ORB team to allow HTTP client (ie, java client or HTTP browser) embedding with RMI-IIOP to communication with WAS server. 1) After user invokes the client, an HTTP request will be routed toward the IIOPTunnelServlet. 2) IIOPTunnelServlet first intercepts the HTTP request from client, and then decodes and rip the RMI-IIOP out of the HTTP request. 3) It then create and establish an endpoint between itself and its back-end EJB, and caches the endpoint as well. 4) At this moment, IIOPTunnelServlet switches to use RMI-IIOP instead of HTTP for communication to EJB for service. When EJB's result is returned, IIOPTunnelServlet encodes and seal RMI-IIOP message within HTTP response and then dispatch this HTTP response back to the client. The protocol being used in between of IIOPTunnelServlet and EJB is RMI-IIOP. The protocol being used in between of client (ie, java client or browser) and IIOPTunnelServlet is HTTP. Since the endpoint is cached in steps 3), IIOPTunnelServlet doesn't always create a new endpoint for each single HTTP request. When current session is in the middle of the process, IIOPTunnelServlet's endpoint is being used. Therefore, user is unable to start a second session of IIOPTunnelServlet and its EJB until completion of the current session due to the endpoint is being used at that moment. Directions to apply efix: 1) Create temporary "efix" directory to store the jar file: AIX: /tmp/WebSphere/efix Solaris/Linux: /tmp/WebSphere/efix Windows: c:\temp\WebSphere\efix 2) Copy jar file to the directory 3) Shutdown WebSphere 4) Run the jar file with the following command answering questions/prompts as they appear: java -jar 5) Rebuilt your Enterpise applicaiton with the new com.ibm.CORBA.services.IIOPTunnelServlet if needs. 6) Restart WebSphere and redeploy the enterprise application 6.1) Add com.ibm.ws.orb.services.redirector.UseMultipleSockets=true to the Command Line Arguments of the application server' JVM Advance Settings section. for example: a) Bring up amdinConsole b) Choose JVM Settings tab c) Press Advanced JVM Settings button d) Enter the following line into the Command Line Arguments textfield -Dcom.ibm.ws.orb.services.redirector.UseMultipleSockets=true e) OK/Apply f) Recycle application server 7) The temp directory may be removed but the jar file should be saved. Do not remove any files created and stored in the /WebSphere/AppServer/efix/ directories. These files are required if an efix is to be removed. 8) Make sure the client application is now using and/or pointing to the new iwsorb.jar in its classpath Directions to remove an efix: NOTE: EFIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED. DO NOT REMOVE AN EFIX UNLESS ALL EFIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED EFIX. Example: If your system has efix1, efix2, and efix3 applied in that order and efix2 is to be removed, efix3 must be removed first, efix2 removed, and efix3 re-applied. 1) Change directory to the efix location (/WebSphere/AppServer/efix/). 2) Shutdown WebSphere 3) Run the backup jar file with the following command: java -jar 4) Restart WebSphere Directions to re-apply an efix: Follow the instructions for applying an efix. If the backup files still exist (from the previous efix application), you will be prompted to overwrite. Answer "yes" at the overwrite prompts. Additional Information: ------------------------------------------------------------------