From df454b68ec73eb102cea9836f5eafb941af6957f Mon Sep 17 00:00:00 2001 From: Thomas Segismont Date: Tue, 12 Sep 2023 18:01:09 +0200 Subject: [PATCH] Document bug in Reactive Extensions of the Oracle JDBC driver See https://github.com/quarkusio/quarkus/issues/35477 --- docs/src/main/asciidoc/datasource.adoc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/src/main/asciidoc/datasource.adoc b/docs/src/main/asciidoc/datasource.adoc index 684fe97a8c08a..fb5c57e747b2d 100644 --- a/docs/src/main/asciidoc/datasource.adoc +++ b/docs/src/main/asciidoc/datasource.adoc @@ -301,6 +301,22 @@ Quarkus offers several reactive clients for use with a reactive datasource. + The installed extension must be consistent with the `quarkus.datasource.db-kind` you define in your datasource configuration. +[WARNING] +==== +The Reactive Oracle datasource depends on the https://docs.oracle.com/en/database/oracle/oracle-database/23/jjdbc/jdbc-reactive-extensions.html[Reactive Extensions] provided by Oracle in its JDBC driver. + +There is a bug in versions 23.2 and 21.11 of the Oracle JDBC driver that prevents from getting any response if: + +* Reactive Extensions are used to execute an update/insert query that ends with an error (e.g. constraint violation), and +* https://vertx.io/docs/vertx-oracle-client/java/#_retrieving_generated_key_values[generated keys retrieval] is enabled. + +It is not known yet when the bug will be fixed. +In the meantime, you can either: + +* change the version of the driver in your project to `com.oracle.database.jdbc:ojdbc11:21.10.0.0`, or +* avoid executing queries with generated keys retrieval (e.g. load sequence value before inserting) +==== + . After adding the driver, configure the connection URL and define a proper size for your connection pool. + [source,properties] @@ -318,7 +334,6 @@ Be aware that setting the pool size too low might cause some requests to time ou For more information about pool size adjustment properties, see the <> section. - ==== JDBC and reactive datasources simultaneously When a JDBC extension - along with Agroal - and a reactive datasource extension handling the given database kind are included, they will both be created by default.