maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #04174
Re: jdbc failure after restart
Hi,
As documented here (
https://mariadb.com/kb/en/mariadb/mariadb-galera-cluster-known-limitations/)
:
>
> - A command may fail with ER_UNKNOWN_COM_ERROR producing 'WSREP has
> not yet prepared node for application use' (or 'Unknown command' in older
> versions) error message. It happens when a cluster is suspected to be split
> and the node is in a smaller part — for example, during a network
> glitch, when nodes temporarily lose each other. It can also occur during
> state transfer. The node takes this measure to prevent data inconsistency.
> Its usually a temporary state which can be detected by checking
> wsrep_ready
> <https://mariadb.com/kb/en/galera-cluster-status-variables/#wsrep_ready> value.
> The node, however, allows SHOW and SET command during this period.
>
>
if you have only 2 nodes : Quorum requires a majority, meaning that you
cannot have automatic failover in a two node cluster. This is because the
failure of one causes the remaining node automatically go into a
non-primary state.
Diego.
On Wed, Nov 23, 2016 at 12:00 AM, l vic <lvic4594@xxxxxxxxx> wrote:
> i have the following jdbc exception in my jdbc client for the node 1 after
> another node (node2) is removed:
> om.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
> WSREP has not yet prepared node for application use
> at sun.reflect.GeneratedConstructorAccessor9.newInstance(Unknown
> Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
> DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
> at com.mysql.jdbc.Util.getInstance(Util.java:387)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:917)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2503)
> at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1369)
> at com.mysql.jdbc.ConnectionImpl.loadServerVariables(
> ConnectionImpl.java:3833)
> at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(
> ConnectionImpl.java:3283)
> at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(
> ConnectionImpl.java:2297)
> at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
> at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
> at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
> at sun.reflect.GeneratedConstructorAccessor5.newInstance(Unknown
> Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
> DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
> at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
> at com.mysql.jdbc.NonRegisteringDriver.connect(
> NonRegisteringDriver.java:328)
> at java.sql.DriverManager.getConnection(DriverManager.java:664)
>
> I wonder why i have this failure when i just trying to read db from the
> unaffected node? The failure seems to be permanent, once it happened - all
> subsequent reads fail
>
> _______________________________________________
> Mailing list: https://launchpad.net/~maria-discuss
> Post to : maria-discuss@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-discuss
> More help : https://help.launchpad.net/ListHelp
>
>
Follow ups
References