2.2 Understanding Thread Management

iWay Service Manager (iSM) is engineered as a modern, multi-threaded server. It accepts messages on threaded inlets and processes many messages in parallel. Computers use threads as a means of allocating computational resources. Operating systems take responsibility for allocating those resources among threads. Although different operating systems may implement the heuristics of thread/resource allocation in different ways, the general purpose is to get as much work as possible through the application in a given period of time. The usual heuristic is to allow one thread execute while another thread is waiting the completion of a slower task, such as awaiting user input or the completion of an I/O event.

iSM is designed to maximize the work able to be performed on arriving messages to provide high throughput, or the number of messages that can be processed in a given period of time. Messages are isolated from each other during their processing, ensuring that inadvertent interaction does not occur and that the failure of one message does not accidentally impact other messages.

In multiprocessor hardware, the threads are executed by separate CPUs, and the ability of the application to take advantage of multiple CPUs is referred to as scalability. iSM works to avoid the interlocks that reduce scalability in order to take maximum advantage of the resources available to its execution.

In iSM, some thread management is automatic. For example, the use of threads to watch for runaway process flows or to respond to console requests. These threads have minimal impact on the actual message execution and are not considered further in this section.

The configuration of listeners by users impacts the use of threads in iSM.

This section includes the following topics: