# JMS (Java Message Service)

<!-- llms-txt-link: /llms.txt -->

> OpenTelemetry Java agent instrumentation

This instrumentation enables messaging spans for JMS (Java Message Service) message producers and consumers.

- **Name**: `jms-1.1`
- **Scope**: `io.opentelemetry.jms-1.1`
- **Target versions**: `jakarta.jms:jakarta.jms-api:(,3)`, `javax.jms:javax.jms-api:(,)`, `javax.jms:jms-api:(,)`
- **Library**: https://javaee.github.io/javaee-spec/javadocs/javax/jms/package-summary.html

## Telemetry

- **Span attributes**: `messaging.destination.name`, `messaging.destination.temporary`, `messaging.message.id`, `messaging.operation`, `messaging.system`

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `otel.instrumentation.messaging.experimental.capture-headers` | list |  | A comma-separated list of header names to capture as span attributes. |
| `otel.instrumentation.messaging.experimental.receive-telemetry.enabled` | boolean | false | Enables experimental receive telemetry, which will cause consumers to start a new trace, with only a span link connecting it to the producer trace. |

## Data

- **JSON**: [/data/javaagent/instrumentations/jms-1.1/jms-1.1-d6e7e4e0cdbb.json](/data/javaagent/instrumentations/jms-1.1/jms-1.1-d6e7e4e0cdbb.json)
- **Explore**: [/java-agent/instrumentation/jms-1.1](/java-agent/instrumentation/jms-1.1)
