SSRS Масштабирование развертывания, принудительное использование другого сервера для некоторых отчетов. - PullRequest
0 голосов
/ 26 марта 2019

У меня большой набор отчетов на нашем сервере.Один набор отчетов требуется обновлять каждые 30 секунд и обычно работает на 15-20 разных компьютерах постоянно.Мы получали частые ошибки, и я не могу вспомнить точную ошибку, но, основываясь на ограниченной информации на других форумах, я внес коррективы в сам сервис, который помог, в основном.Мы все еще время от времени видим ошибки, и теперь меня просят выложить больше на сервер.Этот конкретный набор отчетов я настроил для записи данных обратно в нашу базу данных приложения, и поскольку этот конкретный набор пользователей больше не имеет прав на приложение, мне нужно иметь их на другом сервере, чтобы ничто иное не влияло на их содержимое.

- BACKSTORY -

Я - администратор одного из крупнейших приютов для животных в стране.У нас есть сотни добровольцев, которые выгуливают наших собак, которые в настоящее время проживают в нашем приюте, пока их не усыновят в их дома навсегда.Когда я начал здесь, волонтеры имели неограниченный доступ к нашему заявлению о предоставлении убежища, которое я с самого начала возражал.Прошлым летом волонтер изменил важную информацию, которая негативно сказалась на лечении одной из наших собак.К счастью, с собакой все было в порядке, и приложение регистрирует все, чтобы мы могли выяснить, кто это сделал.Это был момент, когда руководство наконец поняло мою точку зрения и согласилось ограничить доступ.

Большинству добровольцев не нужен доступ к нашему заявлению о предоставлении убежища.На самом деле, из почти 1500 добровольцев только 200 действительно нуждались в доступе, поэтому я настроил этих пользователей только на то, что им нужно.Тем не менее, для тех сотен, которые гуляют с нашими собаками, им все еще нужен был доступ, чтобы видеть собак, нуждающихся в прогулке, и записывать информацию, требуемую государством для каждой прогулки с собакой.Я построил серию отчетов в SSRS, которые заботятся о наших собачниках.Нам просто нужно поддерживать его стабильность, поскольку у них больше нет доступа к приложениям.

- END OF BACKSTORY -

Я начал с установки нового экземпляра SSRS на другом сервере.Я следовал за процессом горизонтального развертывания, чтобы присоединить новый экземпляр к существующей базе данных SSRS, и он работает, как и ожидалось.Теперь мне нужно знать, как направить пользователей к новому экземпляру.Вот как у меня это настроено сейчас:

  1. Пользователь открывает панель инструментов операций.Внизу есть график со сводной информацией о выгулах собак, и у меня есть текстовое поле заголовка графика со ссылкой действия, чтобы перейти на панель мониторинга «Прогулка с собакой» (ссылка действия передает параметр местоположения на панель мониторинга «Прогулка с собакой»).Приборная панель Dog Walk обновляется каждые 30 секунд, поэтому добровольцы за любым компьютером могут видеть, кто уже вышел на прогулку, и не тратят время на посещение питомника.Это позволяет службе быть занятой.

  2. Волонтер нажимает на имя собаки, которую хочет прогулять.Здесь есть ссылка на действие «Начать прогулку», которая передает идентификационный номер животного.Этот отчет сначала запрашивает инициалы добровольца в качестве дополнительного параметра.Затем отображается информация о собаке, которую они выбрали.Возникает вопрос, если это правильное животное, а также поле «Да» и «Нет» в отчете.Поле «Нет» имеет ссылку на действие на панели мониторинга «Прогулка с собаками».Поле Да ссылается на другой отчет, передавая идентификационный номер животного и инициалы добровольца.В этом отчете выполняется хранимая процедура, которая записывает начало прогулки и возвращает добровольца обратно на главную панель управления Dog Walk.

  3. В конце прогулки волонтер выполняет аналогичные шаги,просто с разными ссылками для записи информации о прогулке.

Есть еще детали, которыми я не буду утомлять вас на данный момент (если не желаю). Шаг 1, где мне нужна помощь. На нашей основной панели инструментов операций (на сервере 1), когда волонтер нажимает на ссылку, чтобы перейти на панель мониторинга Dog Walk, я хочу, чтобы они были перенесены на новый сервер (сервер 2). Все остальные оперативные сотрудники могут оставаться на исходном сервере. Я нашел документацию, в которой я могу разместить ссылку примерно так:

="javascript:void(window.open('http://[server2]/ReportServer?/Operations%20Dashboard/Dog%20Walk&rc:Parameters=Collapsed&Location=[shelter location]" + "','_blank'))"

Проблема, которую я обнаружил, заключается в том, что, хотя это «работает», открыть инструментальную панель Dog Walk на новой вкладке в браузере, проблематично передать местоположение. Во-первых, я теряю кнопку «Вернуться к родительскому отчету» и не могу найти способ сохранить ее там. Вторая проблема заключается в том, что если местоположение передается по URL-адресу, а не «за кулисами» с отчетом на одном сервере, перемещение к другим отчетам сбрасывает мое местоположение, если я его изменяю. Например, у меня есть другое поле в каждой строке, где пользователь может щелкнуть, чтобы открыть другой отчет с подробностями о животных. Поскольку у меня нет кнопки «Вернуться к родительскому отчету», я должен использовать кнопку «Назад» браузера, которая сбрасывает мое местоположение до того, что я изначально передал.

Мысли

Моя единственная другая идея состояла в том, чтобы настроить балансировку псевдозагрузки (две записи DNS с одинаковыми именами, но разными IP-адресами), поскольку у нас нет бюджета на официальный балансировщик нагрузки. Я сделал это у моего предыдущего работодателя для большого веб-приложения, и нагрузка на оба сервера была относительно сбалансированной.

...