

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo dei client analizzati nei thread worker
<a name="scorekeep-workerthreads"></a>

**Nota**  
Avviso di SDK/Daemon manutenzione a raggi X: il 25 febbraio 2026, X-Ray SDKs/Daemon entrerà in modalità di manutenzione, in cui AWS limiterà le versioni di AWS X-Ray SDK e Daemon per risolvere solo problemi di sicurezza. Per ulteriori informazioni sulla tempistica del supporto, consulta. [Cronologia di X-Ray SDK e Daemon Support](xray-sdk-daemon-timeline.md) Ti consigliamo di migrare a. OpenTelemetry Per ulteriori informazioni sulla migrazione a OpenTelemetry, vedere [Migrazione dalla strumentazione a raggi X](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html) alla strumentazione. OpenTelemetry 

Scorekeep utilizza un thread di lavoro per pubblicare una notifica su Amazon SNS quando un utente vince una partita. La pubblicazione della notifica richiede più tempo del resto delle operazioni di richiesta sommate e non ha effetto sul client o sull'utente. Pertanto, eseguire l'attività in modo asincrono è un buon modo per migliorare i tempi di risposta.

Tuttavia, l'X-Ray SDK for Java non sa quale segmento era attivo al momento della creazione del thread. Di conseguenza, quando si tenta di utilizzare il AWS SDK per Java client strumentato all'interno del thread, viene generato un `SegmentNotFoundException` messaggio che blocca il thread.

**Example Web-1.error.log**  

```
Exception in thread "Thread-2" com.amazonaws.xray.exceptions.SegmentNotFoundException: Failed to begin subsegment named 'AmazonSNS': segment cannot be found.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
```

Per risolvere questo problema, l'applicazione utilizza la funzione di `GetTraceEntity` ottenere un riferimento al segmento nel thread principale e `Entity.run()` di eseguire in sicurezza il codice del thread di lavoro con accesso al contesto del segmento.

**Example [https://github.com/awslabs/eb-java-scorekeep/tree/xray/src/main/java/scorekeep/MoveFactory.java#L70](https://github.com/awslabs/eb-java-scorekeep/tree/xray/src/main/java/scorekeep/MoveFactory.java#L70)— Passaggio del contesto di traccia a un thread di lavoro**  

```
import [com.amazonaws.xray.AWSXRay](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRay.html);
import [com.amazonaws.xray.AWSXRayRecorder](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRayRecorder.html);
import [com.amazonaws.xray.entities.Entity](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/entities/Entity.html);
import [com.amazonaws.xray.entities.Segment](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/entities/Segment.html);
import [com.amazonaws.xray.entities.Subsegment](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/entities/Subsegment.html);
...
      Entity segment = recorder.getTraceEntity();
      Thread comm = new Thread() {
        public void run() {
         segment.run(() -> {
            Subsegment subsegment = AWSXRay.beginSubsegment("## Send notification");
            Sns.sendNotification("Scorekeep game completed", "Winner: " + userId);
            AWSXRay.endSubsegment();
          }
        }
```

Poiché la richiesta è ora risolta prima della chiamata ad Amazon SNS, l'applicazione crea un sottosegmento separato per il thread. Ciò impedisce all'SDK X-Ray di chiudere il segmento prima di registrare la risposta da Amazon SNS. Se nessun sottosegmento è aperto quando Scorekeep ha risolto la richiesta, la risposta di Amazon SNS potrebbe andare persa.

![\[\]](http://docs.aws.amazon.com/it_it/xray/latest/devguide/images/scorekeep-workerthread.png)


Per ulteriori informazioni sul multithreading, consulta [Passaggio del contesto del segmento tra thread in un'applicazione multithread](xray-sdk-java-multithreading.md).