if your event-driven trading engine is!responding

Culprit: deadlock

Culprit: all threads in the pool are blocked in wait(), lock() or …

Culprit: bounded queue is full. Sometimes the thread that adds task to the queue is blocked while doing that.

Culprit: in some systems, there’s a single task dispatcher thread like swing EDT. That thread can sometimes get stuck

Suggestion: dynamically turn on verbose logging in the messaging module within the engine, so it always logs something to indicate activity. It’s like the flashing LED in your router. You can turn on such logging by JMX.

Suggestion: snoop

Suggestion: for tibrv, you can easily start a windows tibrv listener on the same subject as the listener inside the trading engine. This can reveal activity on the subject

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s