db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oskar Zinger <oska...@yahoo.com>
Subject Re: Finding a role of Derby pair in Replication (Master or Slave)
Date Wed, 27 Feb 2013 04:49:07 GMT
hi Dag,


Thanks for reply.

Currently what I do is the following, in nested try / catch blocks:

I try to execute stopMaster=true which will either work, or will give me an SQL Exception:
Error Code: '0', SQL State Code: 'XRE07' and Exception: 'java.sql.SQLException: Could not
perform operation because the database is not in replication master mode.'

I then try to execute stopSlave=true which will either work, or will give me an SQL Exception:
Error Code: '0', SQL State Code: 'XRE40' and Exception: 'java.sql.SQLException: Could not
perform operation because the database is not in replication slave mode.'

or

Error Code: '40000', SQL State Code: 'XRE41' and Exception: 'java.sql.SQLException: Replication
operation 'failover' or 'stopSlave' refused on the slave database because the connection with
the master is working. Issue the 'failover' or 'stopMaster' operation on the master database
instead.'


I then try to execute remote call stopMaster=true which will either work, or will give me
an SQL Exception:
Error Code: '0', SQL State Code: 'XRE07' and Exception: 'java.sql.SQLException: Could not
perform operation because the database is not in replication master mode.'

or

Error Code: '40000', SQL State Code: '08001' and Exception: 'java.sql.SQLNonTransientConnectionException:
java.net.ConnectException : Error connecting to server romelab.it.ibm.com on port 1527 with
message Connection refused.'

I also execute remote call stopSlave=true, which probably will never get executed anyway.

So this approach seems to work reliably.


Regards,
Oskar



________________________________
 From: Dag Wanvik <dag.wanvik@oracle.com>
To: derby-dev@db.apache.org 
Sent: Tuesday, February 26, 2013 10:37 PM
Subject: Re: Finding a role of Derby pair in Replication (Master or Slave)
 

The replication feature in Derby is pretty much bare bones still. I don't believe there is
an easy API to enquire about the
state as you request. I think you should be able to detect if the
    slave has failed over, by seeing you can now connect to it (when it
    is still a slave it isn't fully booted an normal connection attempt
    will fail).

As for an active Derby db instance being master, I think you can
    inspect the log file to detect that state. Trying a startMaster
    would fail if it is already a master, but that could have side
    effects you don't want of course.

Hope this helps,
Dag



On 27.02.2013 00:44, Oskar Zinger wrote:

Is there a way to find out if a replicating pair of Derby is either master or slave? Or if
the derby pair is participating in replication (mode)?
>
>
>It would be nice to have a way to find out a role and if its in replicating mode.
>
>
>This would be useful and easy way to determine which stopMaster=true or stopSlave=true
attribute to use.
>
>
>
>Thanks,
>Oskar
>
Mime
View raw message