Исключение приложения AlwaysON SQL Server 2014: не удалось обновить базу данных, поскольку база данных доступна только для чтения

У нас есть группа доступности двух узлов. Два узла: SQL cluster1- node1 и SQL cluster 2- node2, а также прослушиватель группы доступности. Приложение Java подключается к этому прослушивателю, и изначально все работает нормально, т. е. приложение может выполнять как чтение, так и запись в базе данных, пока мы не выполним отработку отказа.

Строка соединителя: driverURL=jdbc:jtds:sqlserver://[Listerner DNS Name]:[Port]/[Database]

Скажем, изначально node1 был первичным, а node2 — вторичным. После отработки отказа узел 1 становится вторичным, а узел 2 — основным. Теперь приложение по-прежнему может подключаться к базе данных, но может выполнять только чтение базы данных. Приложение выдает исключения (упомянутые в заголовке), если мы пытаемся выполнить вставку в эту БД.

В основном мне нужно, чтобы приложение могло выполнять чтение/запись все время, независимо от того, какой узел является основным. Любые идеи ?


person Crabster    schedule 09.10.2015    source источник


Ответы (1)


Не должно быть никаких причин, по которым вы получаете базу данных только для чтения, когда строка подключения указывает на прослушиватель. В этом смысл прослушивателя avail grp — направить поток в базу данных для чтения/записи (первичную). Пропингуйте DNS-имя и убедитесь, что оно разрешается в прослушиватель (до и после отработки отказа группы доступности). К сожалению, я не использую Java, поэтому больше ничем помочь не могу. Здоровья, Марк.

person Mark    schedule 11.04.2016