Expand my Community achievements bar.

Model Driven Development Server.Processing.DuplicateSessionDetected

Avatar

Level 1

Hi All,

  I am working on an application using LCDS model driven development.  I have three mxml Applications producing three swf deployables which use a common model (fml).  These flex apps live in a signle war and I have setup the service-config.xml to use amf and secure amf channels.

  When I have more than one of three mxml applications open in the same browser I start to see the following exception:

(Message #0 targetURI=/1/onStatus, responseURI=)

    (Typed Object #0 'flex.messaging.messages.ErrorMessage')

      headers = (Object #1)

      rootCause = null

      body = null

      correlationId = "670B4CFE-A178-2F2A-7CE7-D4E031A99AA3"

      faultDetail = null

      faultString = "Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly."

      clientId = null

      timeToLive = 0.0

      destination = ""

      timestamp = 1.31783178968E12

      extendedData = null

      faultCode = "Server.Processing.DuplicateSessionDetected"

      messageId = "19C3CF9D-7009-D1F6-0C33-10E3C9096DB4"

           

  (Message #1 targetURI=/7/onStatus, responseURI=)

    (Typed Object #0 'flex.messaging.messages.ErrorMessage')

      headers = (Object #1)

      rootCause = null

      body = null

      correlationId = "2EE877BB-3D9A-FA7C-657D-D4E02B096AE1"

      faultDetail = null

      faultString = "There was an unhandled failure on the server. The FlexSession is invalid."

      clientId = "76A4150B-0312-8AED-C99C-D4C4635345E4"

      timeToLive = 0.0

      destination = "ScherzerAdmin.InvestigationType"

      timestamp = 1.317831791712E12

      extendedData = null

      faultCode = "Server.Processing"

      messageId = "19C3E2FE-600C-2FC7-EC01-ED3B1A9CE9CE"

I have looked into this a little bit and read about writing a servlet to manage sessions between the applications so they don't get stomped on, but using model driven development I am not sure where I would put that kind of code.  I also wanted to find out if there was a particular or better way to handle this scenario.

Thanks,

Rich

1 Reply

Avatar

Employee

Hi Rich,

I don't think using a servlet to create the HTTP session prior to running the swf will help you in this case. That was primarily intended to prevent a timing issue that could result from multiple sub-applications in a single swf loading at roughly the same time. If the sub-applications all made requests to the Data Services server at start up it could result in multiple HTTP sessions getting created and overwriting each other. 

In your case, each application is running in a seperate browser window or tab? Is that correct? If that's the case, the first application you run should hit the Data Services server and have an HTTP session created for it. The other applications should just use the existing session.

I'm not sure exactly what the problem is. It could be something like one application causing the session to get invalidated which then might cause problems for the other applications.

Would it be possible for you to get a capture log of the traffic between the client and the server when the problem happens using a network monitoring tool like Charles? That should give us a clearer picture of what's going on.

Thanks,

Alex