

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à.

# Tracciamento delle query SQL con X-Ray SDK for Java
<a name="xray-sdk-java-sqlclients"></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 

## Interceptori SQL
<a name="xray-sdk-java-sqlclients-interceptors"></a>

Strumenta le query del database SQL aggiungendo l'interceptor JDBC X-Ray SDK for Java alla configurazione dell'origine dati.
+  **PostgreSQL** – `com.amazonaws.xray.sql.postgres.TracingInterceptor` 
+  **MySQL** – `com.amazonaws.xray.sql.mysql.TracingInterceptor` 

Questi collettori si trovano rispettivamente nei [sottomoduli `aws-xray-recorder-sql-postgres` e `aws-xray-recorder-sql-mysql`](xray-sdk-java.md). Implementano `org.apache.tomcat.jdbc.pool.JdbcInterceptor` e sono compatibili con i pool di connessione di Tomcat.

**Nota**  
Gli intercettori SQL non registrano la query SQL stessa all'interno dei sottosegmenti per scopi di sicurezza.

Nel caso di Spring, aggiungi il collettore in un file delle proprietà e compila la sorgente dati con il `DataSourceBuilder` di Spring Boot.

**Example `src/main/java/resources/application.properties` - PostgreSQL JDBC Interceptor**  

```
spring.datasource.continue-on-error=true
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.jdbc-interceptors=com.amazonaws.xray.sql.postgres.TracingInterceptor
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL94Dialect
```

**Example `src/main/java/myapp/WebConfig.java` - Origine dati**  

```
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

import javax.servlet.Filter;
import javax.sql.DataSource;
import java.net.URL;

@Configuration
@EnableAutoConfiguration
@EnableJpaRepositories("myapp")
public class RdsWebConfig {

  @Bean
  @ConfigurationProperties(prefix = "spring.datasource")
  public DataSource dataSource() {
      logger.info("Initializing PostgreSQL datasource");
      return DataSourceBuilder.create()
              .driverClassName("org.postgresql.Driver")
              .url("jdbc:postgresql://" + System.getenv("RDS_HOSTNAME") + ":" + System.getenv("RDS_PORT") + "/ebdb")
              .username(System.getenv("RDS_USERNAME"))
              .password(System.getenv("RDS_PASSWORD"))
              .build();
  }
...
}
```

Per Tomcat, `setJdbcInterceptors` richiamate l'origine dati JDBC con un riferimento alla classe X-Ray SDK for Java.

**Example `src/main/myapp/model.java` - Origine dati**  

```
import org.apache.tomcat.jdbc.pool.DataSource;
...
DataSource source = new DataSource();
source.setUrl(url);
source.setUsername(user);
source.setPassword(password);
source.setDriverClassName("com.mysql.jdbc.Driver");
source.setJdbcInterceptors("com.amazonaws.xray.sql.mysql.TracingInterceptor;");
```

La libreria Tomcat JDBC Data Source è inclusa nell'X-Ray SDK for Java, ma è possibile dichiararla come dipendenza fornita dal documento che la si utilizza.

**Example `pom.xml`- Origine dati JDBC**  

```
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>tomcat-jdbc</artifactId>
  <version>8.0.36</version>
  <scope>provided</scope>
</dependency>
```

## Decoratore di tracciamento SQL nativo
<a name="xray-sdk-java-sqlclients-nativeSQL"></a>
+ Aggiungilo [https://github.com/aws/aws-xray-sdk-java/tree/master/aws-xray-recorder-sdk-sql](https://github.com/aws/aws-xray-sdk-java/tree/master/aws-xray-recorder-sdk-sql)alle tue dipendenze. 
+ Decora l'origine dati, la connessione o la dichiarazione del database. 

  ```
  dataSource = TracingDataSource.decorate(dataSource)
  connection = TracingConnection.decorate(connection)
  statement = TracingStatement.decorateStatement(statement)
  preparedStatement = TracingStatement.decoratePreparedStatement(preparedStatement, sql)
  callableStatement = TracingStatement.decorateCallableStatement(callableStatement, sql)
  ```