<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
I really appreciate your effort on this project. It will be a great resource for Java programmers, regardless of which database they want to use.
<div>Personally, I’m very happy to see the Oracle Database driver has held up to independent verification. We did a lot of testing on our end, but we don’t always think of everything. </div>
<div><br>
</div>
<div>Thank you!</div>
<div><br>
</div>
<div>— Michael</div>
<div>
<div><br>
<blockquote type="cite">
<div>On Jun 29, 2023, at 1:29 PM, Attila Kelemen <attila.kelemen85@gmail.com> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div dir="ltr">
<div>I have installed Oracle the "normal" way, and spent like a day on configuring it to my liking :)</div>
<div><br>
</div>
<div>Anyway, now with Oracle added, I think most relevant DBs are there.</div>
<div><br>
</div>
<div>Also, I have confirmed what you wrote by benchmarking "com.oracle.database.jdbc:ojdbc8:19.19.0.0" against "com.oracle.database.jdbc:ojdbc11:21.9.0.0", and as expected the new version is considerably faster.</div>
<div><br>
</div>
<div>Attila</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Michael McMahon <<a href="mailto:michael.a.mcmahon@oracle.com">michael.a.mcmahon@oracle.com</a>> ezt írta (időpont: 2023. jún. 27., K, 23:23):<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>Hi Attila,
<div><br>
</div>
<div>For Oracle JDBC, I replaced almost all usages of “synchronized” with a ReentrantLock. This change first appears in version 21.1. The driver is distributed on Maven Central:</div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div style="font-size:12pt;background-color:rgb(245,245,245);color:rgb(68,68,68);font-family:"Source Code Pro",monospace">
<pre><div style="font-size:12pt;white-space:normal;font-family:"Source Code Pro",monospace"><pre><span style="background-color:rgb(239,239,239)"><</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">dependency</span><span style="background-color:rgb(239,239,239)">></span><br> <span style="background-color:rgb(239,239,239)"><</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">groupId</span><span style="background-color:rgb(239,239,239)">></span>com.oracle.database.jdbc<span style="background-color:rgb(239,239,239)"></</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">groupId</span><span style="background-color:rgb(239,239,239)">></span><br> <span style="background-color:rgb(239,239,239)"><</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">artifactId</span><span style="background-color:rgb(239,239,239)">></span>ojdbc11<span style="background-color:rgb(239,239,239)"></</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">artifactId</span><span style="background-color:rgb(239,239,239)">></span><br> <span style="background-color:rgb(239,239,239)"><</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">version</span><span style="background-color:rgb(239,239,239)">></span>21.9.0.0<span style="background-color:rgb(239,239,239)"></</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">version</span><span style="background-color:rgb(239,239,239)">></span><br><span style="background-color:rgb(239,239,239)"></</span><span style="color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">dependency</span><span style="background-color:rgb(239,239,239)">></span></pre></div></pre>
</div>
</blockquote>
<div>To detect thread pinning, you might try:</div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div><code>-Djdk.tracePinnedThreads=full</code></div>
</blockquote>
<div><font face="monospace"><br>
</font></div>
<div><span>This system property is documented in JEP 444:</span><span></span></div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><span>The system property jdk.tracePinnedThreads triggers a stack trace when a thread blocks while pinned. Running with -Djdk.tracePinnedThreads=full prints a complete stack trace when a thread
blocks while pinned, highlighting native frames and frames holding monitors. Running with -Djdk.tracePinnedThreads=short limits the output to just the problematic frames.</span></blockquote>
<span>
<div><a href="https://openjdk.org/jeps/444#Executing-virtual-threads" target="_blank">https://openjdk.org/jeps/444#Executing-virtual-threads</a></div>
<div><br>
</div>
Hope this helps.</span>
<div><span><br>
</span></div>
<div><span>Thanks,</span></div>
<div><span><br>
</span></div>
<div><span>Michael<br>
</span><span><br>
</span></div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</body>
</html>