Characteristics of ActiveMatrix BusinessWorks Activities

The activities in ActiveMatrix BusinessWorks can be grouped as blocking and non-blocking, based on how each activity works with threads.

Consider an activity being executed by an engine thread. For the time the activity is being executed, the resources are being used by it. However, when an activity is waiting for an event, or executes the Sleep command, one of the following can happen:

The activity continues to execute on the same thread and affects the performance of the engine. Such an activity is called a blocking activity.
A thread switch occurs and the activity continues to execute on its private thread. When the activity is ready again, it is picked up by an engine thread available at that time. These activities do not affect the performance of the engine. Such an activity is called a non-blocking activity.

Process starters such as, HTTP Receiver, JMS Receiver and activities like WaitFor and Sleep, are all non-blocking activities. They listen for incoming events on their private threads. However, activities like JMS Sender and JDBC Query are blocking in nature. These activities execute on the engine thread and do not work on private threads.

For a list of activities and the threads on which they work, see Thread Based Grouping of Activities.