com.documentum.ucf.common.transport.TransportStreamException: Unrecoverable stream error: HTTP sessi

karthick
edited May 27, 2016 in Documentum #1

Hi,

        I am tring to implement file upload using DFS AND UCF Transfer mode as like in  DFS Development Guide.When i try to initiate UCF Connection using applet

i am getting folloing error.

com.documentum.ucf.client.install.launcher.InvocationException: An error has occurred when invoking the UCF runtime. Details:
Exception in thread "Thread-1" com.documentum.ucf.common.transport.TransportError: com.documentum.ucf.common.transport.TransportStreamException: Unrecoverable stream error: HTTP session is not properly initialized
    at com.documentum.ucf.client.transport.impl.ClientSession.run(ClientSession.java:353)
Caused by: com.documentum.ucf.common.transport.TransportStreamException: Unrecoverable stream error: HTTP session is not properly initialized
    at com.documentum.ucf.client.transport.impl.ClientReceiver.getRequests(ClientReceiver.java:53)
    at com.documentum.ucf.client.transport.impl.ClientSession.handshake(ClientSession.java:549)
    at com.documentum.ucf.client.transport.impl.ClientSession.handshake(ClientSession.java:528)
    at com.documentum.ucf.client.install.launcher.impl.RuntimeInvoker.isProcessRunning(RuntimeInvoker.java:613)
    at com.documentum.ucf.client.install.launcher.impl.RuntimeInvoker.initConnectionForNewProcess(RuntimeInvoker.java:194)
    at com.documentum.ucf.client.install.launcher.impl.RuntimeInvoker.initConnection(RuntimeInvoker.java:59)
    at com.emc.documentum.fs.rt.ucf.UcfConnection.<init>(UcfConnection.java:88)
    at com.mycompany.applet.Sample.init(Sample.java:14)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Any help,

Regards,

karthick s

Comments

  • PriyankT
    edited May 26, 2009 #2

    You are probably missing some essential header values like the session id (represented by JSESSIONID) while creating your request. Please make sure that you have all the header values set correclty.

    Thanks,

    Priyank

  • karthick
    edited May 26, 2009 #3

         Hi, Thanks for ur reply..

       I am using same development environment set up and code as like in DFS Dev. Guide.My DFS version 6.0 and JRE is 1.5.0_06.When the applet is launched ,the required UCF directories are getting created on the client m/c.But the Runtime invocation fails.I have checked the proxy server log files which return successful status code as like below.

    127.0.0.1 - - [26/May/2009:15:23:34 +0530] "GET /runtime/AgentService.rest?method=getHttpSessionId HTTP/1.1" 200 4780
    127.0.0.1 - - [26/May/2009:15:23:34 +0530] "GET /ucf.installer.config.xml HTTP/1.1" 200 4085
    127.0.0.1 - - [26/May/2009:15:23:35 +0530] "GET /ucf-client-impl.jar HTTP/1.1" 200 3673440
    127.0.0.1 - - [26/May/2009:15:23:36 +0530] "GET /ucf-client-api.jar HTTP/1.1" 200 362877
    127.0.0.1 - - [26/May/2009:15:23:36 +0530] "GET /UCFWin32JNI.dll HTTP/1.1" 200 45056
    127.0.0.1 - - [26/May/2009:15:23:40 +0530] "POST /servlet/com/documentum/ucf/server/transport/impl/InitGAIRConnector HTTP/1.1" 200 62
    127.0.0.1 - - [26/May/2009:15:23:40 +0530] "POST /servlet/com/documentum/ucf/server/transport/impl/InitGAIRConnector HTTP/1.1" 200 62

    on weblogic log file i am getting the following,

      
    14:28:03,812  WARN [[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] com.documentum.ucf.server.transport.impl.InitGAIRConnectorServlet -
    com.documentum.ucf.server.transport.impl.UnrecoverableTransportException: HTTP session is not properly initialized
        at com.documentum.ucf.server.transport.impl.InitGAIRConnectorServlet.doPost(InitGAIRConnectorServlet.java:42)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

    Regards,

    karthick s

  • PriyankT
    edited May 29, 2009 #4

    Hi Karthick,

    UCF throws the error "HTTP session is not properly initialized" only when it fails to obtain the session from request. There is a plain 'HttpServletRequest.getsession()' in UCF to fetch the session. If this session is found to be null then the above mentioned exception is thrown with the error message. In your server log there is a call to 'getHttpSessionI()' but I did not find its result. Can you please check the value of JSESSIONID which you are sending to server along with the request? I have a strong doubt that this value is somehow getting set to null. Please let me know.

    Thanks,

    Priyank

  • karthick
    edited May 29, 2009 #5

    Hi,

        I am using the exactly same set up and code as like mentioned in DFS 6 sp1 Guide.ie.)DFS deployed on weblogic server in a separate m/c,web application to invoke UCF hosted on Tomcat at local m/c and Apache proxy server too in local m/c.JRE  on both client and server is jre1.5.0_06.

            When the applet is initiated, UCF directories are being installed on client m/c

    This is my code

    import com.emc.documentum.fs.rt.ucf.UcfConnection;

    import java.applet.*;

    import java.net.URL;

    import netscape.javascript.JSObject;

    public class Sample extends Applet

    {

    public void init ()

    {

    //init UCF

    try

    {

    System.out.println("SampleApplet Started. in init.....");

    UcfConnection conn = new UcfConnection(new URL("http://localhost:80"));

    System.out.println("jsessionId=" + conn.getJsessionId());

    System.out.println(conn.getUid());

    JSObject win = JSObject.getWindow(this);

    win.call("setHtmlFormIdsFromApplet", new Object[]{conn.getJsessionId(),conn.getUid()});

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    }

    public void start ()

    {

    }

    }

    Regards,

    karthick s

  • Oleg
    edited May 29, 2009 #6

    This thread looks the same as https://community.emc.com/thread/3387. Cross-linking for reference.

  • christineadcock
    edited June 2, 2009 #7

    UCF will make use of ACS running in the Java Method Server. Make sure you have the JMS running and ACS installed properly. I ran into this problem in a 6.5 system.

    Christine

  • karthick
    edited June 2, 2009 #8

    No ,I aa not using ACS and also i am using D 6.0

  • christineadcock
    edited June 2, 2009 #9

    no worries. The UCF transfer improvements are accomplished using the ACS and the java method server. you might want to check with Documentum support how it applies to 6.0.

  • swastikmishra
    edited January 15, 2014 #10

    Hi,

    My aqpplication server is JBoss. While clicking on eny document on webtop, I am getting below error:

    Jan 15, 2014 7:25:58 PM com.documentum.ucf.client.logging.impl.UCFLogger fatal

    SEVERE: null

    java.lang.NullPointerException

    at com.documentum.ucf.client.logging.impl.LogAggregator.sendLog(LogAggregator.java:108)

    at com.documentum.ucf.client.logging.impl.LogAggregatorUtils.sendLogImmediately(LogAggregatorUtils.java:28)

    at com.documentum.ucf.client.transport.requesthandlers.impl.ExitHandler.process(ExitHandler.java:45)

    at com.documentum.ucf.client.transport.impl.RequestProcessor.handleRequest(RequestProcessor.java:89)

    at com.documentum.ucf.client.transport.impl.ClientSession.run(ClientSession.java:311)

    Jan 15, 2014 8:28:21 PM com.documentum.ucf.client.logging.impl.UCFLogger error

    SEVERE: Error during retrieveing Requests:

    java.io.EOFException

    at java.io.DataInputStream.readUnsignedShort(Unknown Source)

    at java.io.DataInputStream.readUTF(Unknown Source)

    at java.io.DataInputStream.readUTF(Unknown Source)

    at com.documentum.ucf.common.transport.spi.StreamHelper.readString(StreamHelper.java:29)

    at com.documentum.ucf.client.transport.impl.ClientReceiver.handleMessage(ClientReceiver.java:172)

    at com.documentum.ucf.client.transport.impl.ClientReceiver.getRequests(ClientReceiver.java:63)

    at com.documentum.ucf.client.transport.impl.ClientSession.run(ClientSession.java:292)

    Jan 15, 2014 8:28:21 PM com.documentum.ucf.client.logging.impl.UCFLogger fatal

    SEVERE: Unrecoverable stream error: HTTP session is not properly initialized

    com.documentum.ucf.common.transport.TransportStreamException: Unrecoverable stream error: HTTP session is not properly initialized

    at com.documentum.ucf.client.transport.impl.ClientReceiver.getRequests(ClientReceiver.java:53)

    at com.documentum.ucf.client.transport.impl.ClientSession.run(ClientSession.java:292)

    Can anyone help on this?

  • yuvaraj,kr
    edited May 27, 2016 #11

    Hi all,

    Do we have any solution for this issue? We are facing the similar issue in our application.

    Its a webtop 6.8.1 deployed on tomcat 8.0.26 , documentum 7.2

    This issue is occurring only when webtop is accessed through a load balancer URL . Its been balanced with 4 instgances of webtop .  UCF is invokign properly if its accessed directly from host URL.

    any assistance is much appreciated

  • Hi,
    Two years later.....
    I hit the same issue - webtop 6.8.2, cs 7.3
    Happened only when i worked through the load balancer's url.
    wasnt reproduced when working through the direct URL.
    Issue resolved when we checked the box of "Do not save encrypted pages to disk" in IE 11's internet options - advanced - security node.
    Next week an SR will be open so that open-text could investigate this issue.
    Raviv

  • LeoStar
    edited March 22, 2019 #13

    Hi Raviv,

    Did you find a solution for this issue?

    I tried the solution you proposed here, with the option "Do not save encrypted pages to disk", but didn't work for me.

    Thank you,
    Leo

  • ravivo2001
    edited March 24, 2019 #14

    Dear Leo,
    unfortunately I didn't find any clear solution.
    I opened a case with OpenText but for unknown reason I could not reproduce the issue on WebEx.
    whether I checked or unchecked the IE option I couldn't reproduce the issue.
    the only thing I can think of is to
    Modify the element in context.xml file located at \conf:

    From

    To

    and than:

    Clear the cache and Restart Application server.

    see if it helps you.

    Regards

  • Hi Raviv,

    Thank you for you answer.

    I don't see anything at From and To. What should have been there?

    Could you advice also where i can find more exactly the context.xml file?

    Thank you,

  • Hi Leo,
    I apologize.. didn't noticed that the fields are empty, here they are:
    From

    To

    you can find the file under Tomcat's conf folder
    hope it will help you...

  • when I post the comment the elements are getting clear..
    ill try again
    From
    Context
    To
    Context useHttpOnly="false"

  • Hi Ravivo,

    This is exactly i already have in context.xml

    Thank you.

  • Any other idea for solving this issue?

  • which versions of Tomcat and app are you using?

  • Tomcat 8, Webtop 6.8

  • Hi Leo
    Which patch of webtop? what version of tomcat? do you have an option to upgrade or change versions?

  • Hi Ravivo,

    Tomcat 8.0.32, Webtop 6.81.0030.0009, DFC 7.2.0140.0148. I cannot change the version because it is on a client prod platform.

    Do you think it could be because the version of some of the above resources?

    Thank you,

  • Hi Leo,
    I certainly recommend that when you encounter issues first make sure to work on the supported versions - it happened to me in the past that I hit bugs because of wrong versions of tomcat or java.
    you wrote webtop 6.8 and than you wrote webtop 6.8.1 (patch 3) so I guess the correct version is 6.8.1 patch 3.
    for webtop 6.8.1 the documentation give you 2 supported options (if you work on windows server):
    its either Tomcat 7.0.64 or 8.0.26 on JDK 7.0.X
    Or
    Tomcat 8.0.26 on JDK 8.0.111
    Is it possible for you to install a secondary tomcat (for example version 7.0.64) and check the issue?

  • Hi Ravivo,

    I don't think that the problem comes from versions of the applications because we have exactly the same versions in the test environment. The only difference i see now between the test environment and prod environment is that the prod architecture is using a load balancer.

    Thank you,

  • Make sure you have configured sticky sessions in your load balancer. You might be getting routed to the other app server than what you originally originated from.

  • Hello,

    We have a load balancer over 3 application nodes. On the three nodes are many different applications, but each application has his own url. I don't know how this could happend. There is another thing i suspect, between client and load balancer, there is https, whereas between load balancer and application servers, there is http. This is what i want to investigate now,

    Thank you.

  • I assumed that each application has its own url, but when you load balance app across three nodes, each node runs on different server. If you don't have sticky sessions enable, your content request may initiate on app1, but then when it tries to continue with request, it may get routed to app2 or app3. App2 or app3 does not know anything about the initial content transfer request, so you will get errors. I'm not sure if your original problem is completely due to "sticky sessions not enabled", but I am just providing insight on why this would work in your test env, but not in prod, where you have load balancer enabled.

  • We have sticky sessions enabled on our load balancer.