Wednesday, 11 September 2013

5.0.6.1 (20130724) - onFailure and onSuccess execution at Client.connect() and invokeProcedure() NOT exclusive when timeout?

5.0.6.1 (20130724) - onFailure and onSuccess execution at Client.connect()
and invokeProcedure() NOT exclusive when timeout?

We are seeing a surprising scenario when we are on a slow network
connection and our calls to the WL Server time out.
This happens at WL.Client.connect as well as on invokeProcedure:
we execute the call with a timeout of 10 seconds
the network connection is slow so the call times out
the defined onFailure procedure associated to that call is executed
the WL Server responds with a valid response after the timeout
the onSuccess procedure associated to that call is executed
Is this the designed and intended behavior of the WL Client Framework? Is
this specified in the InfoCenter documentation or somewhere?
All developers in our team expected these two procedures to be exclusive
and our code was implemented based on this assumption. We are now
investigating options on how to match a timed-out/failed response to a
success response to make sure we achieve an exclusive execution of
onFailure or onSuccess code/logic in our app.
Note: we did not test that with connectOnStartup=true and since the
initOptions does not provide an onSuccess procedure (since WL handles that
internally) it might be even harder to implement an exclusive execution in
this case.

No comments:

Post a Comment