When using the J2EE transaction model, developers should not think in terms of starting and stopping transactions. Instead, developers should think about sections of sequential actions that should be enclosed in some sort of transactional behavior. This enclosing of transactional behavior is called transaction demarcation.

Transaction demarcation always wraps a sequence of actions, such as a single request, a single method, or a section of code within a method. The demarcation initializes some transactional behavior before the demarcated area begins, then ends that transactional behavior when the demarcated area ends. The application server uses these demarcations to determine the appropriate calls to the TransactionManager object.