1 of 1 people found this helpful
To answer your questions,
1. the incoming message was 400k. Is there a limit I should watch out for? Or did I just get unlucky?
On the server side, Errai 2 uses a shared ring buffer to store messages that are being transmitted and received. This does limit the maximum message size to the size of the whole buffer on an otherwise quiet system. But the default buffer size is tens of megabytes. I just verified (using the bus-stress-test demo app) that messages with a 500k payload can pass through in both directions when using the default buffer settings. If fact, even when I try to overload it by sending a burst of 20 500k messages every second, the latency goes way up, but the bus does eventually catch up after I stop sending the bursts.
If you want to play with the stress test app in your environment, you can find it here:
2. the reinit'ed client message bus doesn't re-subscribe to the previous subscriptions, so from a user's point of view, the application gets no updates etc. Any suggestions on how I should deal with this?
I'm going to defer to Mike Brock on how this is expected to work. It may be the case that you need to resubscribe, but in my own apps, this has never been an issue. I always found that the bus subscriptions outlasted bus reconnects, for example when a mobile phone goes to sleep and I come back to the page hours later.
Perhaps the specific error condition you were in (due to the apparently corrupted message payload) got the bus into a confused state.
Thanks for the pointer to the stress test.
Where can I find what buffer settings I can modifiy? I vaguely remember seeing a jira on adding to the docs on the subject, but I can't seem to find now.
My plan on the resubscribe is to register an unsubscribe listener on the bus and to add a post init task to re-subscribe.
The properties are errai.bus.buffer_size, errai.bus.buffer_segment_size, and errai.bus.buffer_segment_count. You only need to specify two out of the three.
I've added detailed documentation for these settings to the Reference Guide: https://docs.jboss.org/author/display/ERRAI/ErraiService.properties. Thanks for holding us to account on this.