ERPClimb logoERPClimb
Login
JMS transaction boundaries and ordered delivery
Integration Suite & Cloud Integration (CPI)advanced

JMS transaction boundaries and ordered delivery

Full lesson currently free to read · AI practice limits apply separately

Key takeaway

JMS acknowledgement and database work cannot be assumed to participate in one distributed atomic transaction. A retry can repeat local side effects unless deliberately protected. Ordered processing needs a supported end-to-end design and must not be inferred from queue existence alone.

Visual overview

JMS transaction boundaries and ordered deliveryWorked investigation: follow the evidence through each step. Boundary: Database counter commits before receiver acknowledgement.; Fail: One logical message produces two attempted increments.; Protect: Repeated delivery skips an already completed increment.; Order: The design makes no untested EOIO claim.ERPClimb.com · ADVANCED · ORIGINAL TEACHING DIAGRAMJMS transaction boundaries and ordered delivery11. BoundaryDatabase counter commits before receiver acknowledgement.22. FailOne logical message produces two attempted increments.33. ProtectRepeated delivery skips an already completed increment.44. OrderThe design makes no untested EOIO claim.Worked investigation: follow the evidence through each stepSynthetic evidence. Verify SAP product, edition, runtime and enabled capabilities.

Explanation

Tutorial outcome

JMS acknowledgement and database work cannot be assumed to participate in one distributed atomic transaction. A retry can repeat local side effects unless deliberately protected. Ordered processing needs a supported end-to-end design and must not be inferred from queue existence alone.

Prerequisites

Complete chapters 1–12 in this module. Use synthetic fixtures or an authorized sandbox.

Worked case — fictional

A synthetic JMS retry increments an audit counter twice for one delivered business message.

Step-by-step investigation

1. Boundary

Identify which operations commit before the receiver call and which queue action follows completion.

Expected evidence: Database counter commits before receiver acknowledgement.

2. Fail

Reject the receiver after the counter commit and observe the queue redelivery.

Expected evidence: One logical message produces two attempted increments.

3. Protect

Put the appropriate local side effect behind a stable idempotency boundary.

Expected evidence: Repeated delivery skips an already completed increment.

4. Order

Test the sequence requirement with multiple keys and failures; record supported guarantees and gaps.

Expected evidence: The design makes no untested EOIO claim.

Try it yourself

Reproduce the synthetic input from the example below in a local fixture or authorized sandbox. Follow each step, record the observed result, and explain any mismatch before continuing. Do not treat the expected evidence as a result observed in your SAP tenant.

Acceptance check

The counter remains one after redelivery and ordering claims match the tested contract.

Common failure to avoid

Do not assume JMS and data-store operations are one atomic transaction or promise universal EOIO.

Self-check

Why can a counter increase twice after a JMS retry?

Expected reasoning: The database side effect committed before the message was retried.

Edition and release scope

Check the linked SAP documentation for your product, runtime, region and enabled service plan. The worked case is a simulation; these steps were not executed in a customer SAP tenant.

SAP references

References checked 2026-10-30. SAP material supports the named concepts; the case, fixture and acceptance checks are original ERPClimb teaching material. No SAP tenant execution or certification is claimed.

[SAP Help — Idempotent call with JMS and data store](https://help.sap.com/docs/cloud-integration/sap-cloud-integration/idempotent-process-call-handles-duplicates-with-jms-and-data-store-operations?locale=en-US&q=transport) — Separate JMS/database transaction boundaries and idempotent local work

Code example

Illustrative example
{"logicalMessages":1,"deliveries":2,"counterExpected":1,"distributedAtomicCommit":false}
Guided workshop · advancedERPClimb.com

JMS transaction boundaries and ordered delivery: evidence walkthrough

Simulated training case. These observations are authored fixtures, not screenshots or results from a customer SAP system.

A synthetic JMS retry increments an audit counter twice for one delivered business message.

Before you start

  • Complete chapters 1–12 in this module. Use synthetic fixtures or an authorized sandbox.

Check the linked SAP documentation for your product, runtime, region and enabled service plan. The worked case is a simulation; these steps were not executed in a customer SAP tenant.

Step 1 of 4Paused · choose any step

Boundary

Identify which operations commit before the receiver call and which queue action follows completion.

Expected evidence · simulated

Database counter commits before receiver acknowledgement.

Automatic playback is disabled by your reduced-motion preference. All steps remain available.

Try it, then verify

The counter remains one after redelivery and ordering claims match the tested contract.

Watch for: Do not assume JMS and data-store operations are one atomic transaction or promise universal EOIO.

Open the ERPClimb lesson diagram at full size
Check your understanding

Why can a counter increase twice after a JMS retry?

SAP references and release scope

References checked 2026-10-30. The linked SAP material supports the named concepts; the scenario, fixtures and acceptance checks are original ERPClimb teaching material. This is not an SAP certification or a tenant-execution claim.

Real project scenario

A synthetic JMS retry increments an audit counter twice for one delivered business message.

Common mistakes

Do not assume JMS and data-store operations are one atomic transaction or promise universal EOIO.

Best practices

The counter remains one after redelivery and ordering claims match the tested contract. Check the linked SAP documentation for your product, runtime, region and enabled service plan. The worked case is a simulation; these steps were not executed in a customer SAP tenant.

Interview angle

Why can a counter increase twice after a JMS retry? The database side effect committed before the message was retried.

Practice this lesson

Original educational case studies for SAP consultants, not official SAP certification exam questions. Verify product edition and implementation details against the current SAP documentation.

Quick check

0 of 3 questions attempted

1. Why configure transaction handling when using JMS in an iFlow?

2. A receiver requires strict ordering per customer. What is a typical approach?

3. What is a dead-letter or error queue used for?

Interview questions

1. How do you guarantee ordered delivery for messages of the same business object?

Answer it in your own words first, then compare.

2. Explain transaction handling with JMS in Cloud Integration.

Answer it in your own words first, then compare.

Check before use: lesson examples are educational, not a guarantee of correctness for your SAP edition or release. Sample code has not been executed on your SAP system. Confirm API availability, syntax, authorizations and business impact in an approved development or test environment.

Related SAP topics