I am currently using TIBCO's AMS 1.3 product, which is Lightstreamer 3.5.1 rebranded. Hopefully you all can help me out with some strange client/Metadata adapter behavior I am seeing. It is difficult for me to share code, logs, etc. because they are stored on my company's intranet which is not directly accessible, but I will do my best to answer any questions.

I have a basic Metadata adapter, which extends LiteralBasedProvider. I am using the Flex/ActionScript client to connect to the Lightstreamer server. I recently added some code to notifyUser() which retrieves and caches the user's authorization information. This process takes several seconds to complete; however, based on the documentation I have read it is OK for calls to notifyUser() to perform this type of caching for use by the later notify methods. During this delay in notifyUser(), the LS client appears to send a duplicate request to the AMS server after approximately five seconds--perhaps a timeout of some sort is being reached? The second request is identical to the first except that LS_idle_millis=30000 instead of 0. The first request will eventually return, as will the second request. Once the second request returns the client immediately calls create_session again with LS_idle_millis=0, repeating the above behavior, and creating multiple sessions in the process. To verify this problem, I removed all code from notifyUser() and added a Thread.sleep(5000) to simulate the blocking delay. Below is a pseudo log which tries to show the order of events on the LS server-

[REQUEST 1] Serving request: .../create_session.txt?...LS_idle_millis=0
[REQUEST 1] notifyUser()
[REQUEST 1] Thread.sleep(5000) STARTED
[REQUEST 2] Serving request: .../create_session.txt?...LS_idle_millis=30000
[REQUEST 2] notifyUser()
[REQUEST 2] Thread.sleep(5000) STARTED
[REQUEST 1] Thread.sleep(5000) COMPLETED
[REQUEST 1] wantsTableNotification()
[REQUEST 1] notifyNewSession() SESSION 1 CREATED
[REQUEST 1] Thread.sleep(5000) COMPLETED
[REQUEST 2] wantsTableNotification()
[REQUEST 2] notifyNewSession() SESSION 2 CREATED
REQUEST 3 begins immediately after REQUEST 2 returns to the client.
This is where the looping begins.
[REQUEST 3] Serving request: .../create_session.txt?...LS_idle_millis=0
[REQUEST 3] notifyUser()
[REQUEST 3] Thread.sleep(5000) STARTED
[REQUEST 4] Serving request: .../create_session.txt?...LS_idle_millis=30000
[REQUEST 4] notifyUser()
[REQUEST 4] Thread.sleep(5000) STARTED
[REQUEST 3] Thread.sleep(5000) COMPLETED
[REQUEST 3] wantsTableNotification()
[REQUEST 3] notifyNewSession() SESSION 1 CREATED
[REQUEST 3] Thread.sleep(5000) COMPLETED
[REQUEST 4] wantsTableNotification()
[REQUEST 4] notifyNewSession() SESSION 2 CREATED
Repeat loop infinitely...
Any assistance you can provide is much appreciated. Thanks.