Jump to content

All Activity

This stream auto-updates     

  1. Last week
  2. Well whether or not you intended it you found it anyway. So for future reference everyone lightstreamer client version 4.2.8 is the one that works here. Thanks for everything physicsman you where great. If you're ever in Ohio I'll buy you a beer!
  3. Hello, We haven't encountered this error before ourselves. A Web Search found a thread on the LightStreamer forums where a user had this problem on Android. In the end it turned out to be a mismatched client to server version. Posting to the LS forum is probably the best chance for a solution to the problem. Kind Regards, PM
  4. I really hate to keep this thread running for you but there seems to be another subscription problem still in this method and unfortunately I'm not as versed in lightstreamer as I'd like to be. I can see the data coming in thru the logger system, but for some reason the client is discarding all the incoming messages. Seems to start with this warning here : |WARN |lightstreamer.stream|Session Thread <1>|onOpen event discarded Which seems to disregard the subscription on the client end and then ignores all the incoming updates which stalls the connection and then keeps reconnecting with the same result. I can't seem to find a thread anywhere with this issue for reference. Full log to follow: Status: INITIALIZING MATRIX Status: LOGIN FOREX.COM: AUTHENTICATED 17.Jan.22 09:55:00,173|INFO |lightstreamer.actions|main|New client created 17.Jan.22 09:55:00,175|INFO |lightstreamer.actions|main|Server Address value changed to https://push.cityindex.com/ 17.Jan.22 09:55:00,175|INFO |lightstreamer.actions|main|Adapter Set value changed to STREAMINGALL 17.Jan.22 09:55:00,178|INFO |lightstreamer.actions|main|Forced Transport value changed to null 17.Jan.22 09:55:00,178|INFO |lightstreamer.actions|main|User value changed to cleggfredrick@gmail.com 17.Jan.22 09:55:00,179|INFO |lightstreamer.actions|main|Password value changed 17.Jan.22 09:55:00,181|INFO |lightstreamer.actions|main|Connect requested Status: LIGHTSTREAMER CLIENT LISTENER STARTED 17.Jan.22 09:55:00,191|DEBUG|lightstreamer.actions|main|Item list assigned: PRICE.401484300 17.Jan.22 09:55:00,192|DEBUG|lightstreamer.actions|main|Field list assigned: MarketId TickDate Bid Offer Price High Low 17.Jan.22 09:55:00,193|DEBUG|lightstreamer.actions|main|Snapshot Required assigned: yes 17.Jan.22 09:55:00,193|DEBUG|lightstreamer.actions|main|Adapter Set assigned: PRICES 17.Jan.22 09:55:00,195|DEBUG|lightstreamer.session|Session Thread <1>|Opening a new session and starting automatic reconnections 17.Jan.22 09:55:00,200|DEBUG|lightstreamer.session|Session Thread <1>|SessionManager state change: OFF -> STREAMING_WS Status: LIGHTSTREAMER SUBSCRIPTION LISTENER STARTED 17.Jan.22 09:55:00,247|DEBUG|lightstreamer.netty.pool|Session Thread <1>|Creating new WS channel pool map 17.Jan.22 09:55:01,105|INFO |lightstreamer.actions|Session Thread <1>|Session ID value changed to null 17.Jan.22 09:55:01,105|INFO |lightstreamer.actions|Session Thread <1>|Server Socket Name value changed to null 17.Jan.22 09:55:01,105|INFO |lightstreamer.actions|Session Thread <1>|Client IP value changed to null 17.Jan.22 09:55:01,106|INFO |lightstreamer.actions|Session Thread <1>|Server Instance Address value changed to null 17.Jan.22 09:55:01,106|INFO |lightstreamer.session|Session Thread <1>|Opening new session 17.Jan.22 09:55:01,256|DEBUG|lightstreamer.netty.pool|Session Thread <1>|Creating new HTTP channel pool map 17.Jan.22 09:55:01,395|DEBUG|lightstreamer.netty.pool|Session Thread <1>|HTTP channel pool map [1] created and initialized 17.Jan.22 09:55:01,396|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New HTTP channel pool created. Remote address: push.cityindex.com/<unresolved>:443 17.Jan.22 09:55:01,572|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: OFF -> CREATING 17.Jan.22 09:55:01,574|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 4000 17.Jan.22 09:55:01,575|DEBUG|lightstreamer.session|Session Thread <1>|WebSocket early opening 17.Jan.22 09:55:01,577|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: NOT_CONNECTED Status: LIGHTSTREAMER CLIENT: CONNECTING 17.Jan.22 09:55:01,589|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New WS channel pool created. Remote address: push.cityindex.com/<unresolved>:443 17.Jan.22 09:55:01,597|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTING 17.Jan.22 09:55:01,598|INFO |lightstreamer.subscribe|Session Thread <1>|Adding subscription 1 17.Jan.22 09:55:01,598|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 ready to be sent to server 17.Jan.22 09:55:01,599|DEBUG|lightstreamer.actions|Session Thread <1>|structures reset for subscription 1 17.Jan.22 09:55:01,599|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 is now on hold 17.Jan.22 09:55:01,764|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel created [ee653a32] 17.Jan.22 09:55:01,764|DEBUG|lightstreamer.netty.pool|Netty Thread 2|HTTP channel created [df90c136] 17.Jan.22 09:55:02,200|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel acquired [ee653a32] 17.Jan.22 09:55:02,200|DEBUG|lightstreamer.netty.pool|Netty Thread 2|HTTP channel acquired [df90c136] 17.Jan.22 09:55:02,246|DEBUG|lightstreamer.netty.pool|Netty Thread 4|ChannelUpgradeFuture state change: CONNECTING -> CONNECTION_OK 17.Jan.22 09:55:02,282|DEBUG|lightstreamer.stream|Netty Thread 3|HTTP transport sending [ee653a32]: /lightstreamer/create_session.txt?LS_protocol=TLCP-2.1.0 LS_polling=true&LS_cause=new.api&LS_polling_millis=0&LS_idle_millis=0&LS_cid=pcYgxptg4pkpW39AM3M4hwLri8L7MDl&LS_adapter_set=STREAMINGALL&LS_user=cleggfredrick@gmail.com&LS_password=93744e78-fbf1-4e71-9ed7-7938ae62bc5e& 17.Jan.22 09:55:02,311|DEBUG|lightstreamer.netty.pool|Netty Thread 2|HTTP channel active [df90c136] 17.Jan.22 09:55:02,311|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel active [ee653a32] 17.Jan.22 09:55:02,376|DEBUG|lightstreamer.netty.pool|Netty Thread 2|WS channel handshake [df90c136] 17.Jan.22 09:55:03,103|DEBUG|lightstreamer.stream|Netty Thread 1|Response status: 200 17.Jan.22 09:55:03,111|DEBUG|lightstreamer.stream|Netty Thread 1|HTTP transport receiving [ee653a32]: CONOK,S4bc95cafd11478ebMbecT5503039,50000,0,push-retail-01-101-01.cityindex.com SERVNAME,Lightstreamer HTTP Server CLIENTIP, CONS,unlimited LOOP,0 17.Jan.22 09:55:03,114|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel released [ee653a32] 17.Jan.22 09:55:03,115|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CONOK,S4bc95cafd11478ebMbecT5503039,50000,0,push-retail-01-101-01.cityindex.com 17.Jan.22 09:55:03,116|DEBUG|lightstreamer.session|Session Thread <1>|OK event while CREATING 17.Jan.22 09:55:03,117|DEBUG|lightstreamer.session|Session Thread <1>|Control-Link has changed: https://push.cityindex.com/ -> https://push-retail-01-101-01.cityindex.com/ 17.Jan.22 09:55:03,117|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: DISCONNECTED 17.Jan.22 09:55:03,118|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: NOT_CONNECTED 17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New HTTP channel pool created. Remote address: push-retail-01-101-01.cityindex.com/<unresolved>:443 17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Netty Thread 2|ChannelUpgradeFuture state change: CONNECTION_OK -> UPGRADE_OK 17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New WS channel pool created. Remote address: push-retail-01-101-01.cityindex.com/<unresolved>:443 17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Netty Thread 2|WS channel created [df90c136] 17.Jan.22 09:55:03,119|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTING 17.Jan.22 09:55:03,119|DEBUG|lightstreamer.session|Session Thread <1>|Data event while CREATING 17.Jan.22 09:55:03,119|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: CREATING -> CREATED 17.Jan.22 09:55:03,120|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 2000 17.Jan.22 09:55:03,121|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 ready to be sent to server 17.Jan.22 09:55:03,121|INFO |lightstreamer.subscribe|Session Thread <1>|Preparing subscription: 1 17.Jan.22 09:55:03,122|INFO |lightstreamer.protocol|Session Thread <1>|Sending subscription request 17.Jan.22 09:55:03,122|DEBUG|lightstreamer.protocol|Session Thread <1>|subscription parameters: LS_reqId=1&LS_op=add&LS_subId=1&LS_mode=MERGE&LS_group=PRICE.401484300&LS_schema=MarketId TickDate Bid Offer Price High Low&LS_data_adapter=PRICES&LS_snapshot=true&LS_session=S4bc95cafd11478ebMbecT5503039& 17.Jan.22 09:55:03,127|INFO |lightstreamer.subscribe|Session Thread <1>|Start message handler 17.Jan.22 09:55:03,127|DEBUG|lightstreamer.subscribe|Session Thread <1>|Sending queued messages 17.Jan.22 09:55:03,128|INFO |lightstreamer.actions|Session Thread <1>|Session ID value changed to S4bc95cafd11478ebMbecT5503039 17.Jan.22 09:55:03,128|INFO |lightstreamer.actions|Session Thread <1>|Server Instance Address value changed to https://push-retail-01-101-01.cityindex.com/ 17.Jan.22 09:55:03,128|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: SERVNAME,Lightstreamer HTTP Server 17.Jan.22 09:55:03,129|INFO |lightstreamer.actions|Session Thread <1>|Server Socket Name value changed to Lightstreamer HTTP Server 17.Jan.22 09:55:03,129|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CLIENTIP, 17.Jan.22 09:55:03,129|INFO |lightstreamer.actions|Session Thread <1>|Client IP value changed to 17.Jan.22 09:55:03,129|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CONS,unlimited 17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Data event while CREATED 17.Jan.22 09:55:03,130|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: LOOP,0 17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Loop event while CREATED 17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: CREATED -> FIRST_PAUSE 17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Timeout event while FIRST_PAUSE cause=null 17.Jan.22 09:55:03,130|DEBUG|lightstreamer.netty.pool|Netty Thread 6|HTTP channel created [8d95ce21] 17.Jan.22 09:55:03,130|INFO |lightstreamer.session|Session Thread <1>|Binding session 17.Jan.22 09:55:03,132|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: FIRST_PAUSE -> FIRST_BINDING 17.Jan.22 09:55:03,132|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 4000 Status: LIGHTSTREAMER CLIENT: CONNECTED:STREAM-SENSING 17.Jan.22 09:55:03,139|DEBUG|lightstreamer.netty|Netty Thread 2|WebSocket handler added [df90c136] 17.Jan.22 09:55:03,142|WARN |lightstreamer.stream|Session Thread <1>|onOpen event discarded 17.Jan.22 09:55:03,652|DEBUG|lightstreamer.netty.pool|Netty Thread 6|HTTP channel acquired [8d95ce21] 17.Jan.22 09:55:03,718|DEBUG|lightstreamer.netty.pool|Netty Thread 7|ChannelUpgradeFuture state change: CONNECTING -> CONNECTION_OK 17.Jan.22 09:55:03,719|DEBUG|lightstreamer.netty.pool|Netty Thread 6|HTTP channel active [8d95ce21] 17.Jan.22 09:55:03,720|DEBUG|lightstreamer.netty.pool|Netty Thread 6|WS channel handshake [8d95ce21] 17.Jan.22 09:55:04,996|DEBUG|lightstreamer.netty.pool|Netty Thread 6|ChannelUpgradeFuture state change: CONNECTION_OK -> UPGRADE_OK 17.Jan.22 09:55:04,996|DEBUG|lightstreamer.netty.pool|Netty Thread 6|WS channel created [8d95ce21] 17.Jan.22 09:55:04,997|DEBUG|lightstreamer.netty|Netty Thread 6|WebSocket handler added [8d95ce21] 17.Jan.22 09:55:04,997|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTED 17.Jan.22 09:55:04,997|DEBUG|lightstreamer.heartbeat|Session Thread <1>|rhb max interval 0 17.Jan.22 09:55:04,997|DEBUG|lightstreamer.heartbeat|Session Thread <1>|rhb current interval 0 17.Jan.22 09:55:04,998|DEBUG|lightstreamer.stream|Session Thread <1>|WS transport sending [8d95ce21]: bind_session LS_cause=loop1&LS_session=S4bc95cafd11478ebMbecT5503039& 17.Jan.22 09:55:05,002|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 sent to server 17.Jan.22 09:55:05,002|DEBUG|lightstreamer.heartbeat|Session Thread <1>|rhb updated 17.Jan.22 09:55:05,002|DEBUG|lightstreamer.stream|Session Thread <1>|WS transport sending [8d95ce21]: control LS_reqId=1&LS_op=add&LS_subId=1&LS_mode=MERGE&LS_group=PRICE.401484300&LS_schema=MarketId TickDate Bid Offer Price High Low&LS_data_adapter=PRICES&LS_snapshot=true& 17.Jan.22 09:55:05,149|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: CONOK,S4bc95cafd11478ebMbecT5503039,50000,5000,push-retail-01-101-01.cityindex.com CLIENTIP, 17.Jan.22 09:55:05,150|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CONOK,S4bc95cafd11478ebMbecT5503039,50000,5000,push-retail-01-101-01.cityindex.com 17.Jan.22 09:55:05,151|DEBUG|lightstreamer.session|Session Thread <1>|OK event while FIRST_BINDING 17.Jan.22 09:55:05,151|DEBUG|lightstreamer.session|Session Thread <1>|Control-Link has changed: https://push-retail-01-101-01.cityindex.com/ -> https://push-retail-01-101-01.cityindex.com/ 17.Jan.22 09:55:05,151|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: DISCONNECTED 17.Jan.22 09:55:05,151|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: NOT_CONNECTED 17.Jan.22 09:55:05,151|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTING 17.Jan.22 09:55:05,152|INFO |lightstreamer.actions|Session Thread <1>|Keepalive Interval value changed to 5000 17.Jan.22 09:55:05,152|DEBUG|lightstreamer.session|Session Thread <1>|Data event while FIRST_BINDING 17.Jan.22 09:55:05,152|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: FIRST_BINDING -> RECEIVING 17.Jan.22 09:55:05,152|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 5000 17.Jan.22 09:55:05,153|DEBUG|lightstreamer.mpn|Session Thread <1>|MpnManager state change on onSessionStart: NoSessionState -> SessionOkState 17.Jan.22 09:55:05,153|DEBUG|lightstreamer.netty.pool|Netty Thread 5|HTTP channel created [19d5f359] Status: LIGHTSTREAMER CLIENT: CONNECTED:WS-STREAMING 17.Jan.22 09:55:05,154|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: CLIENTIP, 17.Jan.22 09:55:05,351|DEBUG|lightstreamer.netty.pool|Netty Thread 5|HTTP channel acquired [19d5f359] 17.Jan.22 09:55:05,351|DEBUG|lightstreamer.netty.pool|Netty Thread 1|ChannelUpgradeFuture state change: CONNECTING -> CONNECTION_OK 17.Jan.22 09:55:05,392|DEBUG|lightstreamer.netty.pool|Netty Thread 5|HTTP channel active [19d5f359] 17.Jan.22 09:55:05,396|DEBUG|lightstreamer.netty.pool|Netty Thread 5|WS channel handshake [19d5f359] 17.Jan.22 09:55:05,410|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: CONS,unlimited 17.Jan.22 09:55:05,411|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: CONS,unlimited 17.Jan.22 09:55:05,411|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: REQOK,1 17.Jan.22 09:55:05,412|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: REQOK,1 17.Jan.22 09:55:05,412|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: SUBOK,1,1,7 CONF,1,unlimited,filtered 17.Jan.22 09:55:05,412|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: SUBOK,1,1,7 17.Jan.22 09:55:05,412|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: CONF,1,unlimited,filtered 17.Jan.22 09:55:05,413|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,401484300|\/Date(1642431304198)\/|0.90354|0.90378|0.90366|0.90594|0.90259 17.Jan.22 09:55:05,413|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,401484300|\/Date(1642431304198)\/|0.90354|0.90378|0.90366|0.90594|0.90259 17.Jan.22 09:55:05,413|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431305248)\/|0.90355||0.90367|| 17.Jan.22 09:55:05,414|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431305248)\/|0.90355||0.90367|| 17.Jan.22 09:55:06,034|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431305967)\/|0.90354|0.90377|0.90366|| 17.Jan.22 09:55:06,034|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431305967)\/|0.90354|0.90377|0.90366|| 17.Jan.22 09:55:06,034|DEBUG|lightstreamer.netty.pool|Netty Thread 5|ChannelUpgradeFuture state change: CONNECTION_OK -> UPGRADE_OK 17.Jan.22 09:55:06,035|DEBUG|lightstreamer.netty.pool|Netty Thread 5|WS channel created [19d5f359] 17.Jan.22 09:55:06,035|DEBUG|lightstreamer.netty|Netty Thread 5|WebSocket handler added [19d5f359] 17.Jan.22 09:55:06,035|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTED 17.Jan.22 09:55:06,252|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431306218)\/|0.90350|0.90374|0.90362|| 17.Jan.22 09:55:06,252|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431306218)\/|0.90350|0.90374|0.90362|| 17.Jan.22 09:55:06,513|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431306470)\/|0.90351|0.90375|0.90363|| 17.Jan.22 09:55:06,514|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431306470)\/|0.90351|0.90375|0.90363|| 17.Jan.22 09:55:06,934|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431306720)\/||0.90374|0.90362|| 17.Jan.22 09:55:06,935|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431306720)\/||0.90374|0.90362|| 17.Jan.22 09:55:08,123|DEBUG|lightstreamer.netty.pool|Netty Thread 1|channel closed [ee653a32] 17.Jan.22 09:55:08,124|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel inactive [ee653a32] 17.Jan.22 09:55:08,714|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431308641)\/|0.90352|0.90375|0.90364|| 17.Jan.22 09:55:08,715|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431308641)\/|0.90352|0.90375|0.90364|| 17.Jan.22 09:55:08,970|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431308891)\/|0.90355|0.90378|0.90367|| 17.Jan.22 09:55:08,971|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431308891)\/|0.90355|0.90378|0.90367|| 17.Jan.22 09:55:10,156|DEBUG|lightstreamer.session|Session Thread <1>|Timeout event while RECEIVING cause=null 17.Jan.22 09:55:10,156|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: RECEIVING -> STALLING 17.Jan.22 09:55:10,156|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 2000 17.Jan.22 09:55:11,612|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: SYNC,6 U,1,1,|\/Date(1642431311578)\/|0.90356|0.90379|0.90368|| 17.Jan.22 09:55:11,612|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: SYNC,6 17.Jan.22 09:55:11,613|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431311578)\/|0.90356|0.90379|0.90368|| 17.Jan.22 09:55:12,165|DEBUG|lightstreamer.session|Session Thread <1>|Timeout event while STALLING cause=null 17.Jan.22 09:55:12,165|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: STALLING -> STALLED 17.Jan.22 09:55:12,165|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 3000 Status: LIGHTSTREAMER CLIENT: STALLED 17.Jan.22 09:55:12,568|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]: U,1,1,|\/Date(1642431312529)\/|0.90355|0.90378|0.90367|| 17.Jan.22 09:55:12,569|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431312529)\/|0.90355|0.90378|0.90367||
  5. Hi! Glad to see you managed to figure out the problem in the end! At least we know to check for these version mismatches more carefully in the future. Kind Regards, PM
  6. Earlier
  7. Updated to AUD/CAD at random from my marketID list, right at the top of the list lol. Still no subscription, and it still bothers me that the thread disappears almost immediately. I wonder if it is in my listener implementation. Which is doesn't seem to be that either I just tested that as well by initializing those classes outside the addListener() function call with no change... lsSub = new Subscription("MERGE", "PRICE.401484300", fields); So I'm ashamed to admit that there was a missing dependency which I was only able to see after I added this gem ahead of initializing the client LightstreamerClient.setLoggerProvider(new SystemOutLogProvider()); And now I get this server error: |DEBUG|lightstreamer.protocol|Session Thread <1>|New message (1): CONERR,60,License not valid for this Client version In conclusion Lightstreamer client dependencies did not make it apparent that there is a dependency for: <!-- https://mvnrepository.com/artifact/io.netty/netty-all --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.73.Final</version> </dependency> Which was the cause of the original error that couldn't be traced. The license not being valid was due to the fact that after you told me to downgrade my client version to the applicable version for server 7.0.3 which Lightstreamers website told me was client version 4.3.0, when in reality it is 4.2.0. This typo has been pointed out to the administrators of Lightstreamers forum as I had to create a thread there as well to track down these innocuous errors. None of which where the fault of anyone here, so I apologize for spinning your wheels for something that I assumed was a server issue. I was wrong.
  8. Hi, Apologies for sending you on a little wild goose chase, the example market IDs in the online documentation are there as examples only and should not be copy pasted and used in code. This is because the markets in the examples could be taken from markets not available to US clients, which happens to be the case for 154297. As a Forex.com US user, you don't have access to that market at all. I'd suggest using a market Id from the list you had in one of your screenshots, since that contained markets you had retrieved from an API call, we know for certain those market IDs are available to your account. Hopefully, the market ID was the final thing that needed fixing and now it will work - fingers crossed. Kind Regards, PM
  9. Sorry about the size of the picture, there is a size limit for attachments here so I had to shrink it. I've updated the fields as suggested. I've been watching wireshark capture network traffic as well and it seems that there isn't a problem logging in. However I can see in debug that the Lightstreamer client deamon threads are just vanishing. And with this field adjustment there is still no subscription notice as it should be triggering this onSubscription(), the boolean shown below only affects my heuristic class pauses calculation if there isn't any data coming in. I've also update this line lsSub = new Subscription("MERGE", "PRICE.154297", fields); to get rid of the array for testing as suggested. The market id is the one suggested in the online docs. @Override public void onSubscription() { System.out.println("Status: LIGHTSTREAMER SUBSCRIPTION STARTED"); Main.httpHold = false; }
  10. Hi, Thanks for the detailed explanations/answers - we appreciate it. The images attached appear to have saved in an ultra small size so it's hard to see - but it looks as though you are requesting or sending the Market Name in the list of fields to retrieve? Looking at the streaming PriceDTO response, MarketName isn't a supported field. From the code you pasted in an earlier post, it also appears the TickDate hasn't been requested either? I'd suggest using MarketId, TickDate, along with the other fields you've selected that are fine: Bid, Offer, Price, High, Low. Additionally, It may be worth attempting to subscribe and retrieve prices for just one market only at the start whilst we are still in the debugging stage in getting this working. Once we have it working for one market, you can then go back to sending the array of markets to request. Kind Regards, PM
  11. Successfully logged into the webtrader using the same user pass combo I've been using. I grab the session token in this loginPost() which returns the proper sessionToken String. You didn't ask but I anticipate that it will be asked. The marketID is set by the functions getCFDList() which calls httpSessionBasedGet(), all functions included below for review. There is no issue logging in or grabbing the session token, or cataloging the data. public void getCFDList() { // ALL AVAILABLE CFD MARKETS LISTING (BUILDS forexComMarketList) String[] availMarkets = forexComTransport.httpSessionBasedGet(String.join("", forexComTransport.baseURL, "/cfd/markets?marketname=&maxresults=200&usemobileshortname=true")).split(","); // STRIP HEADER AND FOOTER OF JSON OBJECT STRING availMarkets[0] = availMarkets[0].substring(12, availMarkets[0].length()); availMarkets[availMarkets.length - 1] = availMarkets[availMarkets.length - 1].substring(0, (availMarkets[availMarkets.length - 1].length() - 2)); // CATALOG ALL AVAILABLE CFD MARKETS forexComMarketList = new MarketCFD[(availMarkets.length) / 3]; for (int i = 0; i < forexComMarketList.length; i++) { // INITIALIZATION LOOP forexComMarketList = new MarketCFD(); } int j = 0; // MARKET LIST CONSTRUCTION LOOP for (int i = 0; i < availMarkets.length; i++) { forexComMarketList[j].marketID = availMarkets.substring(12, availMarkets.length()); i++; forexComMarketList[j].name = availMarkets.substring(8, availMarkets.length() - 1); i++; forexComMarketList[j].weighting = Integer.valueOf( availMarkets.substring(12, availMarkets.length() - 1)); j++; } } public String httpSessionBasedGet(String pURL) { // GET COMMAND WITH HEADERS HttpResponse<String> getResponse = null; request = HttpRequest.newBuilder() .setHeader("Content-Type", "application/json") .setHeader("Accept", "*/*") .setHeader("UserName", user) .setHeader("Session", sessionToken) .uri(URI.create(pURL)) .build(); try { getResponse = client.send(request, HttpResponse.BodyHandlers.ofString()); // GET RESPONSE FAILURE if (getResponse.headers().map().get(":status").toString().compareTo("[200]") != 0) { getResponse = null; } } catch (IOException | InterruptedException e) { System.out.println("EXCEPTION: " + e.toString()); } return getResponse.body(); } public String loginPost(String pURL, HashMap<String, String> pJSON) { // POST WITH REQUEST BODY HttpResponse<String> postResponse = null; try { // FORM POST COMMAND objectMapper = new ObjectMapper(); requestBody = objectMapper.writeValueAsString(pJSON); request = HttpRequest.newBuilder() .setHeader("Content-Type", "application/json") .setHeader("Accept", "application/json") .uri(URI.create(pURL)) .POST(HttpRequest.BodyPublishers.ofString(requestBody)).build(); // SEND POST COMMAND postResponse = client.send(request, HttpResponse.BodyHandlers.ofString()); // CATALOG RESPONSES sessionToken = null; if (postResponse.headers().map().get(":status").toString().compareTo("[200]") == 0) { sessionToken = postResponse.body().substring(12, 48); } else { // LOGIN FAILURE postResponse = null; } } catch (Exception e) { System.out.println("EXCEPTION: " + e.toString()); } return postResponse.body(); }
  12. Hello, Let's make sure we have credentails all correct and done properly for LS. 1) Test your login username/pass credentials are working correctly by logging in on our Web Trader platform at: https://www.forex.com/en-us/account-login/. (All our trading platforms use the API.) If you can login properly then we know the login credentials are fine. 2) Use those same credentials to POST a LogOn call via the API directly. The successful login response will return a session ID token. 3) Use your login username and the Session token as the password to authenticate with Lightstreamer. This should at least get us to confirming that you are authenticating with LS using the correct username and password. Question: How are you retrieving/getting the MarketIDs that you are using to subscribe for prices? I'm thinking once we know you are logging in/authenticating correctly, the next diagnostic step is to check you are subscribing to valid market IDs for prices. Kind Regards, PM
  13. I saw this thread a couple days ago while googling this problem, I noticed the version suggestion, which mentions going all the way down to v4.0.0. I tried this as well with no change. I'm back to your suggested v.4.3.0 client and am installing wireshark now to watch the traffic flow. Threads seem to create and then destroy themselves without error so I'm thinking it has something to do with the credentials I'm using, which I believed to be correct as the logon user name is the same as my forex.com account, and the password is supposed to be the session ID token received at from forex.com. I've tried every combination of user name, password, session token, and clientAccountID I could find. Still the same result.
  14. Hello, The following example from another user may prove helpful in getting your LS code to work. I've done a quick comparison between your code and theirs and it looks as though you have most of the required steps. Hopefully their example helps. Kind Regards, PM
  15. Ok, sorry I've taken so long, the dependency you pointed out is now client version 4.3.0 from the package you suggested and I am still getting the same result.
  16. Thank you for replying so quickly, I'm downloading this version now. I'll let you know how that works for me. I don't recall reading anywhere that your servers where running v7.0.3 just a suggestion but perhaps this should be a bit more apparent in the documentation. And shame on Lightstreamer for not have backwards compatibility built into their API. Thanks again, I'll update this thread after I've integrated the legacy version.
  17. Hello Clegg, The first thing I can see that is causing a problem is a mismatch in the Java client version and the Lighstreamer version we are using on our servers. We're currently still using Lightstreamer v7.0.3 on our servers and you can access the downloads for the Java SE client kit appopriate for this LS version https://lightstreamer.com/download/#ls70 The version you are using from what you pasted above is for the latest LS 7.2.2. Kind Regards, PM
  18. Hello, I recently started an account with your company in order to start an algorithmic trading application. I’ve been testing heuristics against yahoo finance’s data and I believe I’m ready to move forward into actual trading. To be certain of this I need access to your data regarding currency pairs. I’ve managed my way thru all the GET and POST HTTP requests and cataloged all those responses myself, the documentation at https://docs.labs.gaincapital.com leads me to believe that there is an API developed for this already but I can’t seem to find it anywhere. If you can send a link for this that would be greatly appreciated, but not completely necessary. So I’ve managed to logon, retrieve my CFD list and corresponding market data. Which is great. Unfortunately when I attempt to subscribed to your Lightstreamer push service my application just doesn’t connect or subscribe in any way, without any error messages or exceptions thrown. I’ve been reading through Gain Capitals documentation and FAQs, along with those from Lightstreamer themselves. It is my belief that I’ve set up the code for this method correctly and I cannot trace an error of any fashion. I will include the code for this below. If it makes any difference to you I am using Eclipse IDE Version: 2021-12 (4.22.0) Build id: 20211202-1639, overtop Java SE 17 on Windows 10. The project Maven dependencies I am using are: jackson-annotations_2.13.1, jackson-core_2.13.1, jackson-databind_2.13.1, lightstreamer_java-system-out.log_1.02, lightstreamer_ls-log-adapter-java_1.02, lightstreamer_ls-javase-client_4.3.7, slf4j-api_1.7.32, and slf4j-log4j12_1.7.32. I’m currently at a loss as to how to proceed from this point. Any assistance you can provide would be amazing. As a side note, if you had a code example in your online documentation as to the proper way to configure Lightstreamer for use with your service you might not have had to read all of this just now 😊 Thank you for your time and patience. P.S. Problem code: // TODO LIGHTSTREAMER SUBSCRIPTION String[] items = new String[forexComMarketList.length]; String[] fields = { "stock_name", "MarketId", "Bid", "Offer", "Price", "High", "Low" }; for (int i = 0; i < items.length; i++) { // MARKET item LIST BUILD LOOP items = String.join("", "PRICE.", forexComMarketList.marketID); } lsClient = new LightstreamerClient("https://push.cityindex.com/", "STREAMINGALL"); lsClient.connectionDetails.setUser(forexComClientData.personalEmailAddress); lsClient.connectionDetails.setPassword(forexComClientData.sessionToken); lsClient.addListener(new LightstreamerClientListener()); lsClient.connect(); lsSub = new Subscription("MERGE", items, fields); lsSub.addListener(new LightstreamerSubscriptionListener()); lsSub.setRequestedSnapshot("yes"); lsSub.setDataAdapter("PRICES"); lsClient.subscribe(lsSub); Thank you again
  19. 401 Unauthorized

    Hi Stav, Client accounts are only valid on the Live environment. Pre-production is now only used internally. Taking the error message at face value that there is a problem with the login credentials, please check whether you can login with your account using any of our trading platforms. For example, our Web Trading platform. This way we can definitively confirm whether the problem is in the login credentials or in the login call. Kind Regards, PM
  20. I can't seem to login. I tried the pre-prod server: curl -i -H "Content-Type: application/json" -X POST -d '{"UserName":"...","Password":"...","AppKey":"...","AppComments":"Kingbot","AppVersion":"1"}' https://ciapipreprod.cityindextest9.co.uk/TradingApi/session HTTP/1.1 401 Unauthorized Content-Type: application/json; charset=utf-8 Server: Microsoft-IIS/10.0 Date: Thu, 30 Dec 2021 05:55:02 GMT Content-Length: 183 {"AdditionalInfo":null,"StatusCode":2,"HttpStatus":401,"ErrorMessage":"Sorry, your login has failed|This is because your login credentials do not match our records.","ErrorCode":4010} And same thing from the live server curl -i -H "Content-Type: application/json" -X POST -d '{"UserName":"...","Password":"...","AppKey":"...","AppComments":"Kingbot","AppVersion":"1"}' https://ciapi.cityindex.com/tradingapi/session HTTP/2 401 date: Thu, 30 Dec 2021 05:55:52 GMT content-type: application/json; charset=utf-8 content-length: 183 server: cloudflare {"AdditionalInfo":null,"StatusCode":2,"HttpStatus":401,"ErrorMessage":"Sorry, your login has failed|This is because your login credentials do not match our records.","ErrorCode":4010} Am I doing something wrong?
  21. Hi Brent, To see the rollover rates (also known as FX Financing) via the API, please make a ListMarketInformation call. In the response, there is a FXFinancing DTO that contains 2 fields: LongCharge and ShortCharge. These contain the financing charges for that market when you are either long or short that market. Kind Regards, PM
  22. Good day, I am curious if there is a way to pull daily rolloever rates (e.g. daily interest rate) for holding a position open overnight using the API? I searched the Gain docs library for information on "rollover" but didn't find much. I did find a couple references to "future rollover", "autorollover", etc. But I think this applies more to setting whether or not you want an options position to automatically rolloever near expiration. Rollover data would be very useful in calculating daily cost of maintaining an open position overnight and estimating or projecting cost for maitaining a position for a duration of time. Thanks in advance, Brent
  23. @Physicsman and Forum Good day everybody, Together with Physicsman we were able to resolve the above issue. Thanks again, Physicsman, for your assistance and determination in finding a solution. For those of you who are attempting to log onto the API using python, please review the following code snippet and result. NOTE language: python, platform: Google Colab RECOMMENDATIONS: 1.) Call customer service to confirm two things: 1.) there are NO security locks for multiple failed attempts on the account you are trying to log onto 2.) confirm you account details (username, password, and AppKey). I discovered that the accounts team accidentally sent me the account number as the username. But they were able to quickly correct this and provide me the correct username. So, make sure to confirm these details with customer service. Once you have done these things, try using the code below: Remember to substitute your credials for your specific account. Code import requests import json url = 'https://ciapi.cityindex.com/TradingAPI/session/' data = {'Password':'XXXXXXX', 'UserName':'DM123456', 'AppKey':'ABC' } response = requests.post(url, json=data) print(response.url) print(response.status_code) print(response.text) Result: Response 200 means successful connection. From the response you can get your session id for other API functions https://ciapi.cityindex.com/TradingAPI/session/ 200 {"Session":"081ei2-awe234322-we23dr-223serrwd","PasswordChangeRequired":false,"AllowedAccountOperator":false,"StatusCode":1,"AdditionalInfo":null,"Is2FAEnabled":false,"TwoFAToken":null,"Additional2FAMethods":null,"UserType":1}
  24. Good afternoon, PM. Ok, that sounds like a plan. I have sent my demo account credentials to you via private message. Please keep an eye out for that. I look forward to seeing what you discover. Thanks again, Brent
  25. Hi Brent, Thank you for the detailed investigation and report on results - it is very helpful. From what we're seeing, the current working theory is that the 4005 error code is due to the same reason you found on the different forum post. The header application type needed to be specified explicitly as 'application/json'. When you included the application type in the header, the 4002 error seems to indicate that the data payload is being sent in the header rather than in the body. Hence, why it is complaining that the request body cannot be null. In the other forum thread you mentioned using the Postman API tool to help with your development. It would be a good check to see if you can login to your account using Postman. This can confirm whether the problem is in the Python code or elsewhere. If you are not up to speed with Postman yet, since you are using a demo account and not a real money account you can send me your demo account credentials via a private message on this forum. I can then try logging in with that account. If login is successful, it will indicate that the problem is in the Python code. Unfortunately, as we are not Python developers we can't help debug the Python code. Kind Regards, PM
  26. @Physicsman Thanks very much, PM. I haven't any experience with Postman, but it looks like a useful app. I will try to come up to speed on that. Thanks for the assistance. God's blessings to you and yours. With Much Respect, Brent
  1. Load more activity