You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Oracle R2DBC 0.2.0 updates the implemented SPI version to 0.9.0.M1. With the
23
-
0.9.0.M1 SPI update, Oracle R2DBC 0.2.0 introduces support for procedural
24
-
calls (PL/SQL), the ```Statement.bind(...)``` methods are enhanced to accept
25
-
```io.r2dbc.spi.Parameter``` objects, and the
26
-
```Connection.beginTransaction(TransactionDefintion)``` method is
27
-
implemented to support named and read-only/read-write transactions.
28
-
29
-
# Performance Goals
22
+
The 0.3.0 release Oracle R2DBC implements version 0.9.0.M2 of the R2DBC SPI.
23
+
The 0.9.0.M2 SPI update introduces support for consuming a `Result` as a
24
+
stream of `Segment` objects, configuring statement execution timeouts, and
25
+
managing pooled `Connection`s with the `LifeCycle` interface.
26
+
27
+
The 0.3.0 release updates the Oracle JDBC dependency to 21.3. The 21.3 release
28
+
introduces several improvements for the Reactive Extensions:
29
+
- Substantial reduction in object allocation costs.
30
+
- Row mapping functions will no longer contend with other threads for
31
+
access to the JDBC connection.
32
+
- Blocking database calls are no longer required for PreparedStatements
33
+
returning values generated by DML.
34
+
35
+
### Spring Integration
36
+
Use the 0.1.0 version of Oracle R2DBC if you are programming with Spring.
37
+
The later versions of Oracle R2DBC implement the 0.9.x versions of the R2DBC
38
+
SPI. Currently, Spring only supports drivers that implement the 0.8.x versions
39
+
of the SPI.
40
+
41
+
### Performance Goals
30
42
The primary goal of these early releases of Oracle R2DBC is to support the R2DBC
31
43
SPI on Oracle Database. The only performance goal is to enable concurrent
32
44
database calls to be executed by a single thread.
@@ -48,18 +60,20 @@ Artifacts can also be found on Maven Central.
48
60
<dependency>
49
61
<groupId>com.oracle.database.r2dbc</groupId>
50
62
<artifactId>oracle-r2dbc</artifactId>
51
-
<version>${version}</version>
63
+
<version>0.3.0</version>
52
64
</dependency>
53
65
```
54
66
55
67
Oracle R2DBC is compatible with JDK 11 (or newer), and has the following runtime dependencies:
56
-
- R2DBC SPI 0.9.0.M1
68
+
- R2DBC SPI 0.9.0.M2
57
69
- Reactive Streams 1.0.3
58
-
- Project Reactor 3.0.0
59
-
- Oracle JDBC 21.1.0.0 for JDK 11 (ojdbc11.jar)
60
-
- Oracle R2DBC relies on the Oracle JDBC Driver's [Reactive Extensions](https://docs.oracle.com/en/database/oracle/oracle-database/21/jjdbc/jdbc-reactive-extensions.html#GUID-1C40C43B-3823-4848-8B5A-D2F97A82F79B) APIs. These APIs were introduced in the 21.1 release of Oracle JDBC, and are only available with the JDK 11 build (ojdbc11).
70
+
- Project Reactor 3.3.0.RELEASE
71
+
- Oracle JDBC 21.3.0.0 for JDK 11 (ojdbc11.jar)
72
+
- Oracle R2DBC relies on the Oracle JDBC Driver's [Reactive Extensions
- The DATABASE ConnectionFactoryOption is interpreted as the
152
166
[service name](https://docs.oracle.com/en/database/oracle/oracle-database/21/netag/identifying-and-accessing-database.html#GUID-153861C1-16AD-41EC-A179-074146B722E6) of an Oracle Database instance.
153
167
System Identifiers (SID) are not recognized.
@@ -175,7 +189,7 @@ Options. For Options having any of the following names, a CharSequence value may
- Out of band (oob) breaks effect statement timeouts. Set this to "true"
192
+
- Out of band (OOB) breaks effect statement timeouts. Set this to "true"
179
193
if statement timeouts are not working correctly.
180
194
- Oracle Net Descriptors of the form ```(DESCRIPTION=...)``` may be specified as an io.r2dbc.spi.Option having the name `oracleNetDescriptor`.
181
195
- If `oracleNetDescriptor` is specified, then it is invalid to specify any other options that might conflict with information in the descriptor, such as: `HOST`, `PORT`, `DATABASE`, and `SSL`.
@@ -210,8 +224,9 @@ or Oracle JDBC Driver error message](https://docs.oracle.com/en/database/oracle/
210
224
- READ COMMITTED is the default transaction isolation level, and is the
211
225
only level supported in this release.
212
226
- Transaction savepoints are not supported in this release.
213
-
- TransactionDefinition.LOCK_WAIT_TIMEOUT is not supported in this release.
214
-
- Oracle Database does not support a lock wait timeout that applies to all statements within a transaction.
227
+
- Oracle Database does not support a lock wait timeout that is configurable
228
+
within the scope of a transaction or session. SPI methods that configure a
- Batch execution is only supported for DML type SQL commands (INSERT/UPDATE/DELETE).
@@ -229,12 +244,6 @@ of each row affected by an INSERT or UPDATE.
229
244
- The ROWID of a row may change.
230
245
- After a row is deleted, its ROWID may be reassigned to a new row.
231
246
- Further Reading: https://asktom.oracle.com/pls/apex/asktom.search?tag=is-it-safe-to-use-rowid-to-locate-a-row
232
-
- A **blocking database call** is executed by a Statement returning generated
233
-
values for a non-empty set of column names.
234
-
- The **blocking database call** is a known limitation that will be resolved
235
-
with a non-blocking implementation of
236
-
java.sql.Connection.prepareStatement(String, String[]) in the Oracle JDBC Driver.
237
-
The Oracle JDBC Team is aware of this problem and is working on a fix.
238
247
- Returning generated values is only supported for INSERT and UPDATE commands when a RETURNING INTO clause can be appended to the end of that command. (This limitation may be resolved in a later release)
239
248
- Example: `INSERT INTO my_table(val) VALUES (:val)` is supported because a RETURNING INTO clause may be appended to this command.
240
249
- Example: `INSERT INTO my_table(val) SELECT 1 FROM sys.dual` is not supported because a RETURNING INTO clause may not be appended to this command.
@@ -260,9 +269,9 @@ values for a non-empty set of column names.
0 commit comments