Checks for read-only status of high-availability secondary servers
You can write applications to check for read-only server status, so that update operations are not attempted on read-only secondary servers.
The HCL Informix® JDBC driver has extension methods to
the java.sql.Connection class that provide a way to check the HDR
secondary server's status. Users can type cast connection objects
to 'com.informix.jdbc.IfmxConnection' to access the following extension
methods.
Information obtained | Method signature | Additional information |
---|---|---|
Whether the server is read-only (a secondary server) | public boolean is ReadOnly() throws SQLException | Returns true if the active server is a secondary
server Returns an exception if a database access error occurs If ENABLE_HDRSWITCH is set to false, isReadOnly() returns the value that is initially set after the last successful HDR connection was obtained. |
Whether HDR is enabled | public boolean is HDREnabled() | Returns true if both servers in the HDR pair are
available Returns false if one of the servers is unavailable |
The type of the server (primary, secondary, or standard) | public string getHDRtype() | Returns primary or standard for a primary server,
secondary for a secondary server The database administrator can manually reset the type of the server. |
For example, you can use one of the following strategies:
- Use the isReadOnly() method before each SQL statement that might contain an update operation. If the value of isReadOnly() is true, perform an appropriate action, such as sending an error message to the user or notifying the server administrator.
- You call the isReadOnly() method after you establish a connection and then set a flag, like READ_ONLY, and then perform operations that are based on the flag value.
An administrator can manually switch a secondary server to a primary server to allow update operations. However, the server must be shut down in the process, which can cause uncommitted transactions to be lost.