SDK de Java de Azure Cosmos DB para NoSQL (heredado): notas de la versión y recursos

SE APLICA A: NoSQL

En este artículo se describe el SDK de Java de Sincronización de Azure Cosmos DB v2 para la API para NoSQL. Esta API solo admite operaciones sincrónicas.

Importante

No se trata de la versión de SDK de Azure Cosmos DB para Java más reciente. Se recomienda encarecidamente usar el SDK de Java de Azure Cosmos DB v4 en su proyecto. Para realizar la actualización, siga las instrucciones que se indican en la guía Migración de la aplicación para usar el SDK de Azure Cosmos DB para Java v4 y la guía de Reactor frente a RxJava.

Advertencia

A partir del 29 de febrero de 2024, el SDK de Java de sincronización de Azure Cosmos DB v2.x ahora se ha retirado. Azure Cosmos DB ya no proporciona mantenimiento ni soporte técnico para este SDK después de la retirada. Siga las instrucciones que se indican aquí para migrar al SDK de Java de Azure Cosmos DB v4.

Vínculos
Descarga del SDK Maven
Documentación de la API Documentación de referencia de API
Contribuya al SDK GitHub
Introducción Introducción al SDK de Java
Tutorial de la aplicación web Desarrollo de aplicaciones web con Azure Cosmos DB
Tiempo de ejecución mínimo admitido Java Development Kit (JDK) 7+

Notas de la versión

Estas son las notas de la versión de cada versión del SDK.

2.6.5

  • Se ha quitado la dependencia de prueba com.google.guava/guava debido a vulnerabilidades de seguridad.
  • Se ha actualizado la dependencia com.fasterxml.jackson.core/jackson-databind a 2.14.0.
  • Se ha actualizado la dependencia commons-codec/commons-codec a 1.15.
  • Se ha actualizado la dependencia org.json/json a 20180130.

2.6.4

  • Se ha corregido la directiva de reintentos para los tiempos de espera de lectura.

2.6.3

  • Se ha corregido una directiva de reintentos cuando GoneException se encapsula en IllegalStateException: este cambio es necesario para asegurarse de que la memoria caché de Gateway se actualiza en la versión 410 para que el conector de Spark (en Spark 2.4) pueda usar una directiva de reintentos personalizada a fin de permitir que las consultas se realicen correctamente durante las divisiones de particiones.

2.6.2

  • Se ha agregado una nueva directiva de reintentos para reintentar la acción una vez agotados los tiempos de espera de lectura.
  • Se ha actualizado la dependencia com.fasterxml.jackson.core/jackson-databind a 2.9.10.8.
  • Se ha actualizado la dependencia org.apache.httpcomponents/httpclient a 4.5.13.

2.6.1

  • Se corrigió un error en el control de una consulta a través de la interoperabilidad de servicios.

2.6.0

  • Se agregó compatibilidad para consultar la fuente de cambios desde un momento dado.

2.5.1

  • Corrige el problema de la caché de partición principal en la consulta documentCollection.

2.5.0

  • Se agregó compatibilidad con la configuración personalizada de reintento de 449.

2.4.7

  • Corrige un problema de tiempo de espera de grupo de conexiones.
  • Corrige la actualización del token de autenticación en los reintentos internos.

2.4.6

  • Se ha actualizado la etiqueta de directiva de réplica del lado cliente correcta en databaseAccount y se han realizado lecturas de configuración de databaseAccount desde la caché.

2.4.5

  • Si el usuario proporciona pkRangeId, esta versión evita el reintento en un error de intervalo de claves de partición no válido.

2.4.4

  • Optimización de las actualizaciones de caché del intervalo de claves de partición.
  • Corrige el escenario en el que el SDK no contempla la sugerencia de división de particiones del servidor y devuelve una actualización de caché de enrutamiento del lado cliente incorrecta.

2.4.2

  • Optimización de las actualizaciones de caché de colección.

2.4.1

  • Adición de compatibilidad para recuperar el mensaje de excepción interna de la cadena de diagnóstico de la solicitud.

2.4.0

  • Se introdujo la API de versión en PartitionKeyDefinition.

2.3.0

  • Adición de compatibilidad de tiempo de espera independiente para el modo directo.

2.2.3

  • Consumo de mensaje de error nulo del servicio y generación de excepción de cliente de documento.

2.2.2

  • Mejora de la conexión de socket, adición del valor predeterminado true de SoKeepAlive.

2.2.0

  • Adición de compatibilidad con cadenas de diagnóstico de solicitud.

2.1.3

  • Se ha corregido un error en PartitionKey para Hash V2.

2.1.2

  • Compatibilidad agregada para índices compuestos.
  • Se ha corregido un error en el administrador de puntos de conexión global para exigir la actualización.
  • Se ha corregido un error para las operaciones upsert con condiciones previas en modo directo.

2.1.1

  • Se ha corregido un error en la memoria caché de la dirección de puerta de enlace.

2.1.0

  • Se ha agregado compatibilidad con escrituras en varias regiones para el modo directo.
  • Se ha agregado compatibilidad con el control IOExceptions producido como ServiceUnavailable excepciones desde un proxy.
  • Se ha corregido un error en la directiva de reintentos de detección de puntos de conexión.
  • Se ha corregido un error para asegurarse de que las excepciones de puntero null no se inician en BaseDatabaseAccountConfigurationProvider.
  • Se ha corregido un error para asegurarse de que QueryIterator no devuelve valores NULL.
  • Se ha corregido un error para asegurarse de que se permite partitionKey grande.

2.0.0

  • Compatibilidad con escrituras en varias regiones agregada para el modo de puerta de enlace.

1.16.4

  • Se ha corregido un error en los intervalos de claves de la partición de lectura en una consulta.

1.16.3

  • Se ha corregido un error en la configuración del tamaño de encabezado del token de continuación en modo DirectHttps.

1.16.2

  • Se ha agregado compatibilidad con la conmutación por error de streaming.
  • Se ha agregado compatibilidad con metadatos personalizados.
  • Se ha mejorado la lógica de control de sesión.
  • Se ha corregido un error en la memoria caché de intervalo de claves de partición.
  • Se ha corregido un NullPointerException error (NPE) en modo directo.

1.16.1

  • Se agregó compatibilidad para índices únicos.
  • Se agregó compatibilidad para limitar el tamaño del token de continuación en opciones de fuente.
  • Se ha corregido un error en la serialización de Json (marca de tiempo).
  • Se ha corregido un error en la serialización de Json (enumeración).
  • Se ha actualizado la dependencia en com.fasterxml.jackson.core:jackson-databind a la 2.9.5.

1.16.0

  • Se ha mejorado la agrupación de conexiones para el modo directo.
  • Mejora mejorada de captura previa para la consulta entre particiones no ordenadas.
  • Se ha mejorado la generación de UUID.
  • Se ha mejorado la lógica de coherencia de sesión.
  • Se agregó compatibilidad con multipolygon.
  • Se agregó compatibilidad con las estadísticas de alcance clave de partición para recopilación.
  • Se ha corregido un error en la compatibilidad de varias regiones.

1.15.0

  • Se ha mejorado el rendimiento de serialización de JSON.
  • Esta versión del SDK requiere la versión más reciente del emulador de Azure Cosmos DB.

1.14.0

  • Se han realizado cambios internos en las bibliotecas de amigos de Microsoft.

1.13.0

  • Se ha corregido un problema al leer intervalos de claves de partición únicos.
  • Se ha corregido un problema en el análisis de ResourceID que afecta a la base de datos con nombres cortos.
  • Se ha corregido un problema causado por la codificación de claves de partición.

1.12.0

  • Correcciones de errores críticos solicitará el procesamiento durante la división en particiones.
  • Se ha corregido un problema con los niveles de coherencia seguro y BoundedStaleness.

1.11.0

  • Se agregó compatibilidad con un nuevo nivel de coherencia denominado ConsistentPrefix.
  • Se ha corregido un error en la lectura de la colección en modo de sesión.

1.10.0

  • Habilitada compatibilidad para las colecciones particionadas con al menos 2500 RU/s y aumentos de 100 RU/s.
  • Corrige un error en el ensamblado nativo, lo que puede provocar una excepción NullRef en algunas consultas.

1.9.6

  • Se ha corregido un error en la configuración del motor de consultas que podía provocar excepciones para las consultas en modo de puerta de enlace.
  • Se han corregido algunos errores en el contenedor de sesión que podrían provocar una excepción de "Recurso de propietario no encontrado" para las solicitudes inmediatamente después de la creación de la colección.

1.9.5

  • Se agregó compatibilidad con consultas de agregación (COUNT, MIN, MAX, SUM y AVG).
  • Compatibilidad agregada para cambiar la fuente.
  • Compatibilidad agregada para la recopilación de la información de cuota mediante RequestOptions.setPopulateQuotaInfo.
  • Compatibilidad agregada para el registro de scripts de procedimiento almacenados mediante RequestOptions.setScriptLoggingEnabled.
  • Se ha corregido un error por el que la consulta en modo DirectHttps podría dejar de responder al encontrar errores de limitación.
  • Se ha corregido un error en modo de sesión de coherencia.
  • Corrige un error, que podría provocar NullReferenceException en HttpContext cuando la tasa de solicitudes es alta.
  • Rendimiento mejorado del modo DirectHttps.

1.9.4

  • Con la API ConnectionPolicy.setProxy(), se ha agregado compatibilidad simple con proxy basada en instancias del cliente.
  • Se agregó la API DocumentClient.close() para cerrar correctamente una instancia de DocumentClient.
  • Rendimiento de consultas mejorado en modo de conectividad directa al derivar el plan de consulta desde el ensamblado nativo, en lugar de hacerlo desde la puerta de enlace.
  • Establezca FAIL_ON_UNKNOWN_PROPERTIES = false para que los usuarios no necesiten definir JsonIgnoreProperties en su objeto Java antiguo sin formato (POJO).
  • Se ha refactorizado el registro para que use SLF4J.
  • Se han corregido otros errores en el lector de coherencia.

1.9.3

  • Se ha corregido un error en la administración de conexiones para evitar pérdidas de conexión en el modo de conectividad directa.
  • Se ha corregido un error en la consulta TOP en la que podría producir una excepción NullReference.
  • Se ha mejorado el rendimiento al reducir el número de llamadas de red para las memorias caché internas.
  • Se ha agregado código de estado, ActivityID y URI de solicitud en DocumentClientException para una mejor solución de problemas.

1.9.2

  • Se ha corregido un problema en la administración de las conexiones para mejorar la estabilidad.

1.9.1

  • Compatibilidad agregada con el nivel de coherencia BoundedStaleness.
  • Se ha agregado compatibilidad con la conectividad directa de las colecciones particionadas.
  • Se ha corregido un error al realizar consultas en una base de datos con SQL.
  • Se ha corregido un error en la memoria caché de sesión en la que el token de sesión podría establecerse incorrectamente.

1.9.0

  • Compatibilidad agregada con las consultas paralelas entre particiones.
  • Se ha agregado compatibilidad con las consultas TOP y ORDER BY en las colecciones particionadas.
  • Compatibilidad agregada con Coherencia fuerte.
  • Se ha agregado compatibilidad con las solicitudes basadas en nombres al utilizar la conectividad directa.
  • Corrección agregada para mantener la coherencia de ActivityId en todos los reintentos de solicitud.
  • Se ha corregido un error relacionado con la caché de sesión al volver a crear una colección con el mismo nombre.
  • Se han agregado los tipos de datos Polygon y LineString al especificar la directiva de indización de colecciones para las consultas espaciales de geovallado.
  • Problemas corregidos con Java Doc para Java 1.8.

1.8.1

  • Se ha corregido un error en PartitionKeyDefinitionMap para almacenar en caché colecciones de partición única y no realizar solicitudes adicionales de clave de partición de búsqueda.
  • Se ha corregido un error para no realizar un reintento cuando se proporcione un valor de clave de partición incorrecto.

1.8.0

  • Se ha agregado compatibilidad con cuentas de base de datos de varias regiones.
  • Se ha agregado compatibilidad con el reintento automático en solicitudes limitadas, con opciones para personalizar el número máximo de reintentos y el tiempo de espera máximo de reintento. Para obtener más información, vea RetryOptions y ConnectionPolicy.getRetryOptions().
  • Se ha dejado de utilizar el código de creación de particiones personalizado basado en IPartitionResolver. Use colecciones con particiones para un mayor almacenamiento y rendimiento.

1.7.1

  • Se ha agregado compatibilidad con la directiva de reintentos para la limitación de velocidad.

1.7.0

  • Se ha agregado compatibilidad con período de vida (TTL) para los documentos.

1.6.0

1.5.1

  • Se ha corregido un error en HashPartitionResolver para generar valores hash en little-endian para ser coherentes con otros kits de desarrollo de software (SDK).

1.5.0

  • Se han agregado solucionadores de particiones de hash e intervalo para ayudar con el particionamiento de las aplicaciones entre varias particiones.

1.4.0

  • Implementación de Upsert. Se han agregado nuevos métodos upsertXXX para admitir la característica Upsert.
  • Se implementa el enrutamiento por identificador. Sin cambios en la API pública, todos los cambios son internos.

1.3.0

  • Versión omitida para alinear el número de versión con otros SDK

1.2.0

  • Admite el índice geoespacial.
  • Valida la propiedad ID para todos los recursos. Los identificadores de los recursos no pueden contener ?, /, #, , \caracteres ni terminar con un espacio.
  • Agrega el nuevo encabezado "progreso de transformación de índices" a ResourceResponse.

1.1.0

  • Implementación de la directiva de indexación V2

1.0.0

  • SDK de GA

Fechas de lanzamiento y de retirada

Microsoft notifica la retirada de un SDK con al menos 12 meses de antelación para facilitar la transición a una versión compatible o más reciente. Solo se han agregado nuevas características, funcionalidades y optimizaciones al SDK actual. Se recomienda actualizar siempre a la versión más reciente del SDK lo antes posible.

Advertencia

Después de 30 podría ser 2020, Azure Cosmos DB ya no realizará correcciones de errores, agregará nuevas características y proporcionará compatibilidad con las versiones 1.x del SDK de Java de Azure Cosmos DB para API para NoSQL. Si prefiere no realizar la actualización, el servicio Azure Cosmos DB seguirá atendiendo a las solicitudes enviadas desde la versión 1.x del SDK.

Después del 29 de febrero de 2016 Azure Cosmos DB ya no hará correcciones de errores, agregará nuevas características ni proporcionará soporte técnico para las versiones 0.x del SDK de Java para API para NoSQL de Azure Cosmos DB. Si prefiere no actualizar, el servicio Azure Cosmos DB seguirá atendiendo a las solicitudes enviadas desde la versión 0.x del SDK.

Versión Fecha de la versión Fecha de retirada
2.6.1 17 de diciembre, 2020 29 de febrero de 2024
2.6.0 16 de julio de 2020 29 de febrero de 2024
2.5.1 3 de junio de 2020 29 de febrero de 2024
2.5.0 12 de mayo de 2020 29 de febrero de 2024
2.4.7 20 de febrero de 2020 29 de febrero de 2024
2.4.6 24 de enero de 2020 29 de febrero de 2024
2.4.5 10 de noviembre de 2019 29 de febrero de 2024
2.4.4 24 de octubre de 2019 29 de febrero de 2024
2.4.2 26 de septiembre de 2019 29 de febrero de 2024
2.4.1 18 de julio de 2019 29 de febrero de 2024
2.4.0 04 de mayo de 2019 29 de febrero de 2024
2.3.0 24 de abril de 2019 29 de febrero de 2024
2.2.3 16 de abril de 2019 29 de febrero de 2024
2.2.2 05 de abril de 2019 29 de febrero de 2024
2.2.0 27 de marzo de 2019 29 de febrero de 2024
2.1.3 13 de marzo de 2019 29 de febrero de 2024
2.1.2 09 de marzo de 2019 29 de febrero de 2024
2.1.1 13 de diciembre de 2018 29 de febrero de 2024
2.1.0 20 de noviembre de 2018 29 de febrero de 2024
2.0.0 21 de septiembre de 2018 29 de febrero de 2024
1.16.4 10 de septiembre de 2018 30 de mayo de 2020
1.16.3 09 de septiembre de 2018 30 de mayo de 2020
1.16.2 29 de junio de 2018 30 de mayo de 2020
1.16.1 16 de mayo de 2018 30 de mayo de 2020
1.16.0 15 de marzo de 2018 30 de mayo de 2020
1.15.0 14 de noviembre de 2017 30 de mayo de 2020
1.14.0 28 de octubre de 2017 30 de mayo de 2020
1.13.0 25 de agosto de 2017 30 de mayo de 2020
1.12.0 11 de julio de 2017 30 de mayo de 2020
1.11.0 10 de mayo de 2017 30 de mayo de 2020
1.10.0 11 de marzo de 2017 30 de mayo de 2020
1.9.6 21 de febrero de 2017 30 de mayo de 2020
1.9.5 31 de enero de 2017 30 de mayo de 2020
1.9.4 24 de noviembre de 2016 30 de mayo de 2020
1.9.3 30 de octubre de 2016 30 de mayo de 2020
1.9.2 28 de octubre de 2016 30 de mayo de 2020
1.9.1 26 de octubre de 2016 30 de mayo de 2020
1.9.0 03 de octubre de 2016 30 de mayo de 2020
1.8.1 30 de junio de 2016 30 de mayo de 2020
1.8.0 14 de junio de 2016 30 de mayo de 2020
1.7.1 30 de abril de 2016 30 de mayo de 2020
1.7.0 27 de abril de 2016 30 de mayo de 2020
1.6.0 29 de marzo de 2016 30 de mayo de 2020
1.5.1 31 de diciembre de 2015 30 de mayo de 2020
1.5.0 04 de diciembre de 2015 30 de mayo de 2020
1.4.0 05 de octubre de 2015 30 de mayo de 2020
1.3.0 05 de octubre de 2015 30 de mayo de 2020
1.2.0 05 de agosto de 2015 30 de mayo de 2020
1.1.0 09 de julio de 2015 30 de mayo de 2020
1.0.1 12 de mayo de 2015 30 de mayo de 2020
1.0.0 07 de abril de 2015 30 de mayo de 2020
0.9.5-prelease 09 de marzo de 2015 29 de febrero de 2016
0.9.4-prelease 17 de febrero de 2015 29 de febrero de 2016
0.9.3-prelease 13 de enero de 2015 29 de febrero de 2016
0.9.2-prelease 19 de diciembre de 2014 29 de febrero de 2016
0.9.1-prelease 19 de diciembre de 2014 29 de febrero de 2016
0.9.0-prelease 10 de diciembre de 2014 29 de febrero de 2016

Preguntas más frecuentes

¿Cómo se me notificará de la retirada del SDK?

Microsoft le notificará 12 meses antes de la finalización del soporte técnico del SDK que se retira para facilitar una transición sin problemas a un SDK compatible. Se le notificará a través de diversos canales de comunicación: Azure Portal, actualizaciones de Azure y comunicación directa a los administradores de servicios asignados.

¿Puedo crear aplicaciones con un SDK de Azure Cosmos DB que se retirará durante el período de 12 meses?

Sí, podrá crear, implementar y modificar aplicaciones mediante el SDK de Azure Cosmos DB que se retirará durante el período de aviso de 12 meses. Se recomienda que migre a una versión compatible más reciente del SDK de Azure Cosmos DB durante el período de aviso de 12 meses, según corresponda.

Tras la fecha de retirada, ¿qué ocurre con las aplicaciones que usan el SDK de Azure Cosmos DB no compatible?

Después de la fecha de retirada, Azure Cosmos DB ya no hará correcciones de errores, ni agregará nuevas características, ni proporcionará soporte técnico para las versiones del SDK retiradas. Si prefiere no realizar la actualización, el servicio Azure Cosmos DB seguirá atendiendo las solicitudes enviadas desde las versiones retiradas del SDK.

¿Qué versiones del SDK tendrán las características y actualizaciones más recientes?

Se agregarán nuevas características y actualizaciones solo a la versión secundaria más reciente de la versión del SDK principal compatible más reciente. Se recomienda que use siempre la versión más reciente para aprovechar las ventajas de las nuevas características, mejoras de rendimiento y correcciones de errores. Si usa una versión anterior del SDK que no se haya retirado, las solicitudes realizadas a Azure Cosmos DB seguirán funcionando, pero no tendrá acceso a las nuevas funcionalidades.

¿Qué debo hacer si no puedo actualizar la aplicación antes de una fecha límite?

Se recomienda que actualice al SDK más reciente tan pronto como sea posible. Después de etiquetar un SDK para su retirada, tendrá 12 meses para actualizar la aplicación. Si no puede realizar la actualización en la fecha de retirada, Azure Cosmos DB seguirá atendiendo las solicitudes enviadas desde las versiones retiradas del SDK, por lo que las aplicaciones en ejecución seguirán funcionando. Aunque Azure Cosmos DB ya no hará correcciones de errores, ni agregará nuevas características ni proporcionará soporte técnico para las versiones del SDK retiradas.

Si tiene un plan de soporte técnico y requiere soporte técnico, póngase en contacto con nosotros al abrir una incidencia de soporte técnico.

¿Cómo puedo solicitar que se agreguen características a un SDK o conector?

No siempre se agregan de inmediato características nuevas a los SDK o conectores. Si no se admite una característica que le gustaría agregar, agregue comentarios a nuestro foro de la comunidad.