As part of our analysis, we verified the POM database connectivity from the AEP/POM server and observed the following:
- The POM database is configured to connect to the SQL Server Availability Group (AG) Listener.
- Network connectivity from the AEP/POM server to the SQL Server AG Listener was successfully verified.
- The pomdb database is in the ONLINE state.
- However, while executing the POM database initialization (
installDB.sh), the following SQL Server exception was observed:
com.microsoft.sqlserver.jdbc.SQLServerException:
The target database, 'pomdb', is participating in an availability group and is currently not accessible for queries. Either data movement is suspended or the availability replica is not enabled for read access.
Log Analysis:
[root@ITRADREPM bin]# ./installDB.sh
16:41:13.991 [main] ERROR com.zaxxer.hikari.pool.HikariPool - PIMADMIN - Exception during pool initialization. com.microsoft.sqlserver.jdbc.SQLServerException: The target database, 'pomdb', is participating in an availability group and is currently not accessible for queries. Either data movement is suspended or the availability replica is not enabled for read access. To allow read-only access to this and other databases in the availability group, enable read access to one or more secondary availability replicas in the group. For more information, see the ALTER AVAILABILITY GROUP statement in SQL Server Books Online. ClientConnectionId:caa7049f-ceff-4919-8486-63d21b397890 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:299) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:132) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:37) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:6162) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:4785) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:90) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:4723) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7785) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3793) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3233) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2833) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2671) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1640) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:936) ~[mssql-jdbc-10.2.0.jre8.jar:?] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.1.jar:?] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:353) ~[HikariCP-3.4.1.jar:?] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) ~[HikariCP-3.4.1.jar:?] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) ~[HikariCP-3.4.1.jar:?] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:562) ~[HikariCP-3.4.1.jar:?] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-3.4.1.jar:?] at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81) ~[HikariCP-3.4.1.jar:?] at com.zaxxer.hikari.hibernate.HikariConnectionProvider.configure(HikariConnectionProvider.java:87) ~[HikariCP-3.4.1.jar:?] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] at com.avaya.pim.jdbc.hibernate.HibernateUtil.prepareSessionFactory(HibernateUtil.java:241) ~[avaya-pim-hibernate.jar:?] at com.avaya.pim.jdbc.hibernate.HibernateUtil.initializeSessionFactory(HibernateUtil.java:97) ~[avaya-pim-hibernate.jar:?] at com.avaya.pim.util.SetConnectorMode.main(SetConnectorMode.java:43) ~[avaya-pim-common.jar:?] Caught Exception Setting Contact Center Configuration mode DONE ... Running script to update EP pages. Executing script updateEPPagesForCCaaS.sh Mode is not CCaaS-Outbound. Script will revert the settings for EP pages in CCaaS mode to original. Reverting /opt/Tomcat/tomcat/lib/config/voiceportal.properties Reverted /opt/Tomcat/tomcat/lib/config/voiceportal.properties Reverting /opt/Tomcat/tomcat/lib/config/help.properties Reverted /opt/Tomcat/tomcat/lib/config/help.properties Reverting
Additionally, the SQL Server Always On Availability Group status indicates that the local replica is operating in the SECONDARY role:
Replica Server : ITRADRPOMDB1
Role : SECONDARY
State : CONNECTED
Health : HEALTHY
The Availability Group configuration also shows:
Replica Server Secondary Connections
---------------------- ---------------------
ITRADRPOMDB1 NO
ITRADRPOMDB NO
This indicates that client connections are not permitted when the replica is operating in the SECONDARY role. Since Avaya POM requires read/write access to the pomdb database, SQL Server is rejecting the connection request.
Request:
Kindly have your SQL Server DBA verify the following:
- Confirm which SQL Server replica currently owns the PRIMARY role.
- Verify that the Availability Group Listener DB is routing client connections to the current PRIMARY replica.
- Verify that the pomdb database is synchronized and accessible on the PRIMARY replica.
- Confirm that Server connecting through the Availability Group Listener can successfully establish a read/write connection to the pomdb database.
Based on the above observations, the issue appears to be related to the SQL Server Always On Availability Group configuration rather than the Avaya POM Server.