Skip to content

Commit 3e5e9cc

Browse files
Merge pull request #490 from couchbase/release-notes-3.12.0
Release notes for 3.12.0 DOC-14412
2 parents b589f2c + 4a8929e commit 3e5e9cc

1 file changed

Lines changed: 70 additions & 1 deletion

File tree

‎modules/project-docs/pages/sdk-release-notes.adoc‎

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,83 @@ echo metrics-micrometer ; grep '<version>' $src/metrics-micrometer/pom.xml | hea
4646

4747

4848

49-
=== Version 3.12.0 (??? June 2026)
49+
=== Version 3.12.0 (02 June 2026)
5050

51+
https://packages.couchbase.com/clients/java/3.12.0/Couchbase-Java-Client-3.12.0.zip[Download] |
52+
https://docs.couchbase.com/sdk-api/couchbase-java-client-3.12.0/index.html[API Reference] |
53+
https://docs.couchbase.com/sdk-api/couchbase-core-io-3.12.0/[Core API Reference]
5154

55+
The supported and tested dependencies for this release are:
56+
57+
* io.projectreactor:**reactor-core:3.6.9**
58+
* org.reactivestreams:**reactive-streams:1.0.4**
59+
60+
Optional artifacts on top of this SDK version are tested for the following compatibilities:
61+
62+
.Optional Artifact Version Compatibility
63+
[options="header"]
64+
|=======================
65+
| Artifact | Built Against | API Stability
66+
| `tracing-opentelemetry` | OpenTelemetry 1.57.0 | Committed
67+
| `tracing-opentracing` | OpenTracing 0.33.0 | Committed
68+
| `metrics-opentelemetry` | OpenTelemetry 1.57.0 | Volatile
69+
| `metrics-micrometer` | Micrometer 1.12.9 | Volatile
70+
|=======================
71+
72+
==== Improvements
73+
74+
* https://jira.issues.couchbase.com/browse/JVMCBC-1722[JVMCBC-1722]:
75+
Simplified the transaction protocol implementation, and changed the threading model to make it easier to reason about thread safety. As a happy side effect, internal performance testing shows improved transaction throughput and latency for some workloads.
76+
+
77+
TIP: Developers using the SDK's reactive transaction API may see an increase in the number of threads spawned by the SDK, because each operation is now executed on its own dedicated thread. For high-concurrency transactions running on Java 21 and later, we recommend using the blocking API and virtual threads.
5278

79+
* https://jira.issues.couchbase.com/browse/JCBC-1739[JCBC-1739]:
80+
When inserting or replacing a document inside a transaction, it is now possible to specify an expiration time for the document.
5381

82+
* https://jira.issues.couchbase.com/browse/JVMCBC-1729[JVMCBC-1729]:
83+
When running on Linux, the SDK now sets the `TCP_USER_TIMEOUT` socket option so it can detect dead connections more quickly.
84+
By default, the SDK sets the timeout to 20 seconds.
85+
You can override the default by configuring the new `io.tcpUserTimeout` client setting.
86+
For example, to set the timeout to 30 seconds you would configure the `ClusterEnvironment.Builder` like this:
87+
+
88+
[source,java]
89+
----
90+
env.ioConfig(io -> io.tcpUserTimeout(Duration.ofSeconds(30)))
91+
----
92+
+
93+
Thank you to community member Omer Cilingir <omer.cilingir@bkm.com.tr> for this contribution.
94+
95+
* https://jira.issues.couchbase.com/browse/JVMCBC-1732[JVMCBC-1732]:
96+
Improved the error message when a Full-Text Search request fails due to insufficient user permissions. The message now indicates the cause of the failure, instead of "Request failed, but no more information available".
97+
98+
* https://jira.issues.couchbase.com/browse/JVMCBC-1725[JVMCBC-1725]:
99+
Added the `db.system.name` attribute to `OpenTelemetry` spans.
100+
101+
* https://jira.issues.couchbase.com/browse/JVMCBC-1735[JVMCBC-1735], https://jira.issues.couchbase.com/browse/JVMCBC-1736[JVMCBC-1736]:
102+
Hardened the code that handles cluster topology changes.
103+
Improved the diagnostics in this critical area by adding a limited number of new `INFO` log messages that describe topology changes.
104+
105+
* https://jira.issues.couchbase.com/browse/JVMCBC-1731[JVMCBC-1731]:
106+
Added a new `DEBUG` log message that shows the options used for socket connections.
107+
108+
* https://jira.issues.couchbase.com/browse/JVMCBC-1733[JVMCBC-1733]:
109+
Upgraded to `Netty` `4.2.14`.
110+
111+
* https://jira.issues.couchbase.com/browse/JVMCBC-1734[JVMCBC-1734]:
112+
Upgraded to `Jackson `2.21.4`.
113+
114+
==== Bug Fixes
54115

116+
* https://jira.issues.couchbase.com/browse/JVMCBC-1738[JVMCBC-1738]:
117+
Ignoring the result rows of a reactive query no longer causes future queries to time out.
55118

119+
* https://jira.issues.couchbase.com/browse/JCBC-2216[JCBC-2216]:
120+
`EventingFunctionManager.functionsStatus()` no longer throws an exception if a function is in the `"resuming"` state.
121+
The `EventingFunctionStatus` enum has two new values: `RESUMING` and `UNKNOWN` (a special value indicating the SDK did not recognize the status code returned by the server).
56122

123+
* https://jira.issues.couchbase.com/browse/JVMCBC-1728[JVMCBC-1728]:
124+
The durations reported by some transaction diagnostic messages are no longer inflated by a factor of 1,000,000.
125+
This bug had no effect on the SDK’s behavior, but could mislead developers reading the logs.
57126

58127

59128
== Java SDK 3.11 Releases

0 commit comments

Comments
 (0)