question

Upvotes
Accepted
16 1 1 7

batch mode: Impossible to re-login after an error in the cleanup procedure

I am using the RFA java API to connect in batch mode to the exchanges.

Sometimes I get an IllegalArgumentException when I try to call the cleanup, to close the batch procedure. Afterwards it is not anymore possible to login again and any subsequent connections returns the message:

RSSLLoginHandler.respondToNewLoginRequest() - original msg did not have REFRESH, not sending a response.

At this point I have to kill the client application in order to have a new session working from scratch

2016.05.12 17:31:12.656 CEST [AWT-EventQueue-0] [ERROR] java.lang.IllegalArgumentException: Batch Close has no valid handles in the request.
2016.05.12 17:31:26.162 CEST [SwingWorker-pool-2-thread-4] [INFO] MAPP_Reuters.BatchMarketFeedLoginClient - ------> Sending login request ...
2016.05.12 17:31:26.162 CEST [SwingWorker-pool-2-thread-4] [INFO] MAPP_Reuters.BatchMarketFeedProcessorImpl - com.reuters.rfa.internal.session.SessionImpl@25c4eb0a
2016.05.12 17:31:26.163 CEST [SwingWorker-pool-2-thread-4] [INFO] MAPP_Reuters.BatchMarketFeedLoginClient - * Received Login Response - MsgType.REFRESH_RESP
MESSAGE
Msg Type: MsgType.REFRESH_RESP
Msg Model Type: LOGIN
Indication Flags: REFRESH_COMPLETE
Hint Flags: HAS_ATTRIB_INFO | HAS_ITEM_GROUP | HAS_RESP_TYPE_NUM | HAS_STATE
State: OPEN, SUSPECT, NONE, "All connections pending"
Group: 0000
RespTypeNum: 0 (RespType.SOLICITED)
AttribInfo
Name: xxxxx
NameType: 1 (USER_NAME)
Attrib
ELEMENT_LIST
ELEMENT_ENTRY ApplicationId: 358
ELEMENT_ENTRY Position: xxxxx
ELEMENT_ENTRY AllowSuspectData: 1
ELEMENT_ENTRY SingleOpen: 1
ELEMENT_ENTRY SupportBatchRequests: 1
ELEMENT_ENTRY SupportOptimizedPauseResume: 1
ELEMENT_ENTRY SupportPauseResume: 1
ELEMENT_ENTRY SupportViewRequests: 1
ELEMENT_ENTRY SupportOMMPost: 1
Payload: None
RSSLLoginHandler.respondToNewLoginRequest() - original msg did not have REFRESH, not sending a response.
treprfarfa-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvotes
Accepted
1.2k 23 28 42

One only has to send a single LOGIN request per connection. The warning message is indicating that a re-issue it submitted when a matching response is expected first. RFA performs a LOGIN and DIRECTORY request for every connection configured independent of what the application executes. The design behind is RFA is that the application only need send a single LOGIN and the API will replay and hide duplicate responses from each underlying session.

Batch Close requests require a list of valid handles to operate upon:

List<Handle> item_handles = new ArrayList<Handle> (...);
omm_consumer.unregisterClient (item_handles, null);

It is faster to simply close the LOGIN stream than close each individual request.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea