У меня есть кластерная установка OpenText Content Server 10.5 Update 2015-09 вместе с кластерным сервером архивации, работающим с Microsoft Cluster в Windows 2012R2.
Режим кластера активный/пассивный.
Конфигурация следующая:
Кластер MS Server: отвечает на адрес, оканчивающийся на .99
- Узел 1: приложение OTCS ВКЛЮЧЕНО, отвечая на vip-адрес, оканчивающийся на .47
- Узел 2: приложение OTCS ВЫКЛЮЧЕНО
Кластер MS Server: отвечает на адрес, оканчивающийся на .98
- Узел 1: Приложение OTAS ВКЛЮЧЕНО, отвечая на vip-адрес, оканчивающийся на .48
- Узел 2: приложение OTAS ВЫКЛЮЧЕНО
У меня есть приложение, которое вызывает веб-службы OT Java, настроенные так, чтобы они указывали непосредственно на адрес кластера, а не на отдельные серверы.
Шаг, который я выполнил:
- Аутентификация по OTDS, установленной сначала на сервере AS, с использованием клиента, созданного с использованием
otdsws/services/Authentication wsdl
. Это возвращает токен OTDSSO для пользователя. - Проверка пользователя по CS с использованием метода ValidateUser и параметра OTDSSO в качестве параметра, созданного
cws/Authentication.svc wsdl
Проблема в том, что когда приложение запускается, оно может правильно взаимодействовать с сервером CS, используя WS, но когда кластер переключается на другой узел, построение URL для вызова метода ValidateUser соответствует vip кластера MS (.99) вместо OTCS приложение вип (.47).
Пока эти приложения находятся на разных узлах, я получаю следующую ошибку:
Не удалось получить доступ к серверу. Не удалось установить соединение, так как целевая машина активно отказалась от него 172.30.136.99:2099 в OpenText.Livelink.Service.Core.ExceptionUtil.handleException(Exception ex) в OpenText.Livelink.Service.Core.Authentication.ValidateUser(String capToken) в OpenText.Livelink.Service.Core.Authentication_WCF.ValidateUser(запрос ValidateUserRequest) в SyncInvokeValidateUser(Object , Object[] , Object[] )
в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(экземпляр объекта, Object[] входы, Object[]& outputs) в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) в System. .ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) OpenText.Livelink.Service.Core.ServiceEx восприятие
Я выполнил тот же тест, используя SoapUI, и получил ту же ошибку. Мне интересно, почему вызов направляется на vip-приложение кластера, а не на vip-приложение OTCS.
Обновление 2015-12-15
Также проверил настройки конфигурации параметров безопасности, предложенные @Matthew Barben, но безуспешно. Кажется, что каждому IP-адресу разрешено вызывать систему OTCS по умолчанию, фактически читая со страницы справки:
Клиентские хосты сервера содержимого
Поле Content Server Client Hosts содержит IP-адреса серверов, от которых должны приниматься запросы. По умолчанию поле пусто, и все клиентские подключения принимаются.