The operation prepares a message (creates object, populates it with fields), validates it (just regular "if/else" checks). After that it writes message to db and sends it, but I commented this part to keep things simple. So no db, no remote connection.
ITC - I used Step 3 from Quick Start and applied suggested params:It's the most you can do. Note that for 2.2 you can simply specify -XX:+UseITC to replace all the separate flags.
Is it enough?
GC - I'm not sure. We suspect GC since on java6 GC tuning helped with jitter a bit. Since I made thread RealtimeThread it should not be interrupted by GC as far as I understand, is it correct?Not quite. You need to set the priority correctly. If you've used the default priority for your RTT then it will be higher priority than the GC in its normal (non-boosted) operating mode. However if memory gets low enough and the GC goes into boosted mode, then under default settings your RTT would now be preempted. If memory gets low enough then even a critical RTT (one with priority greater than the GC) can get preempted and/or blocked on an allocation.