Every COM+ component has a tab called Concurrency on its properties page that lets you set the component synchronization requirements (see Figure 5-4). The possible values are:
Figure 5-4. The Concurrency tab lets you configure your component’s synchronization requirements
The synchronization is activity based, as explained before. These settings are used to decide in which activity the object will reside in relation to its creator. As you may suspect, the way the synchronization values operate is completely analogous to the transaction support configuration values, discussed in Chapter 4. An object can reside in any of these activities:
In its creator’s activity: the object shares a lock with its creator.
In a new activity: the object has its own lock and starts a new causality.
In no activity at all: there is no lock, so concurrent access is allowed.
An object’s activity is determined at creation time, based on the activity of the creator and the configured requirement of the object. For example, if the object is configured to have a synchronization setting of Required, it will share its creator’s activity if it has one. If the creator does not have an activity, then COM+ creates a new activity for the object. The effects of this synchronization support are defined in Table 5-1.
Table 5-1. Determinants ...