Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
1.4.6
-
None
-
Windows
Description
We configured the MariaDB server and Connector/J to attempt connections via named pipe. In parallelized unit tests, multiple threads concurrently access different databases via this named pipe. In some cases, creating a new connection fails, because the server didn't yet handle the previous connection attempt. This results in the FileNotFoundException below.
According to the MSDN, this is a standard case and has to be handled by the client by trying the connection again after a backoff time. Such a mechanism was already implemented by another open-source JDBC driver, where a template for a Connector/J patch is readily available.
java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=13307)(type=master) : \\.\pipe\MySQL (Alle Pipeinstanzen sind ausgelastet)
|
at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:123)
|
at org.mariadb.jdbc.internal.util.ExceptionMapper.throwException(ExceptionMapper.java:69)
|
at org.mariadb.jdbc.Driver.connect(Driver.java:110)
|
at java.sql.DriverManager.getConnection(Unknown Source)
|
at java.sql.DriverManager.getConnection(Unknown Source)
|
... 39 more
|
Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Could not connect to address=(host=localhost)(port=13307)(type=master) : \\.\pipe\MySQL (Alle Pipeinstanzen sind ausgelastet)
|
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:718)
|
at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:471)
|
at org.mariadb.jdbc.Driver.connect(Driver.java:105)
|
... 42 more
|
Caused by: java.io.FileNotFoundException: \\.\pipe\MySQL (Alle Pipeinstanzen sind ausgelastet)
|
at java.io.RandomAccessFile.open0(Native Method)
|
at java.io.RandomAccessFile.open(Unknown Source)
|
at java.io.RandomAccessFile.<init>(Unknown Source)
|
at java.io.RandomAccessFile.<init>(Unknown Source)
|
at org.mariadb.jdbc.internal.socket.NamedPipeSocket.connect(NamedPipeSocket.java:99)
|
at org.mariadb.jdbc.internal.socket.NamedPipeSocket.connect(NamedPipeSocket.java:83)
|
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:349)
|
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:713)
|
... 44 more
|
Attachments
Issue Links
- relates to
-
CONJ-36 implement Windows named pipe support in JDBC
- Closed