Hi<br><br>It looks like there is a way to emulate "proper" Reactor pattern with omniORB. Here is the trick:<br>- use ORB_CTRL mode<br>- install interceptors<br>- on receiving request or response -- lock mutex<br>
- on request send/response -- unlock mutex<br><br>This gives semantic close to reactor pattern as implemented in Orbacus (i.e. you could have nested calls of any depth) and your server will behave as in single-threaded mode --
i.e. no need for synchronization headache.<br><br>Is anything wrong with this approach?<br><br>So far I see only these drawbacks:<br>- client (app that initiates call chain) can't work this way (you can't unlock mutex that is not locked)
<br>- one-way calls will require some additional treatment (they do not receive response)<br>- I am not sure if it is ok to stay in interceptor for long time -- for example, what will happen if it will stay there for 5 mins? for 1 second and another request will arrive? In which context these interceptors are called, is anything locked at that point in omniORB guts?
<br><br>Thanks<br><br>-- <br>Sincerely yours,<br>Michael.