0 Replies Latest reply on Mar 17, 2011 6:16 AM by khatchik82

    Removing Duplicate Sessions...

    khatchik82 Level 1



      my name is Carlos and I have read all about duplicate Sessions.


      Everything I did didn't work. When I put a low number in the session timeout everything starts crushing and without a reason.


      When the app loads I did all the requests for the channel sets in sequencce.

      So first one amf call

      Then one consumer (pooling-amf)

      second consumer (pooling-amf)

      third consumer (pooling-amf)


      i have two INSTANCES of Channel Set : one for my-amf and the other for pooling-amf.


      My session timeout is 2 minutes and the pooling time is 5000 miliseconds.


      So what should happen is that every Consumer every 5 seconds should call the server if it has a message.

      But the problem is that the consumers starts sending me duplicate sessions in the middle of the game and (i think)

      that the session is timing out and the JMS consumers are removed, and every consumer ask for messages at the same

      time and everything crashes with the duplicate session.


      After being really tired about this error, I disabled the validation in BaseAMFEndopoint.

      With the risk (as alex glosband said in one of the threads) that messaging would not work well.


      Now, I want to be really out of the flex session, I don't want to have any relation to this, cause I am running in a load balancer with session stickyness

      and I need a model that it could scale perfectly.


      So my options are:


      1- I can create a Service in Java that does the same as the JMSAdapter ...I can create a singleton that has all the JMSConsumers and with that I can relate every consumer with my user id and not the session id. This way all the Consumers are user related and not session related.

      This also has the benefit of using only one channel (my-amf) and with one Channel Set we can fix the Duplicate Sessions.

      This solution I think it scales...I will have some errors but I can remove the JMSConsumers when the user log out (I have a XMLHttpRequest and other validations) and it is better than removing the JMSConsumer when some session timeouts.


      2- Remove the line where the JMSConsumer is destroyed with Session timeout, and when my app says the user logs out I can try to find the consumer and destroy it.

      (I don't know how to access the JMSAdapter from a Service of spring ?????)



      3- Giving more time to the session , like 5 minutes...but really, I don't understand why the session timeouts...



      Looking for an answer...

      (alex or whoever can answer this..)