Задача состоит в том, чтобы ежедневный, автоматически и по электронной почте получал отчет Oracle.Задача БД для генерации/отправки отчета Oracle Oracle
Так что у меня есть такая работа (она работает, если я жестко задаю одно из имен сервера отчетов ниже).
Я создал задание в базе данных, которое будет генерировать отчет. Я в состоянии получить отчет по электронной почте в качестве PDF к месту назначения с помощью этой команды:
UTL_HTTP.REQUEST('http://server/reports/rwservlet?server=specific_report_server &report='||p_report_name||'&userid='||p_connstring||'&destype=mail'||p_parameters||'&desname='||p_to_recipientlist||' &cc='||p_cc_recipientlist||'&bcc='||p_bcc_recipientlist||'&subject=%22' || REPLACE(p_subject,' ','%20') || '%22¶mform=no&DESformat=pdf&ENVID='||p_envid);
Это прекрасно работает ...
Однако проблема в том, что моя организация имеет два сервера отчетов, которые балансировка нагрузки. Наша серверная команда может удалить один из серверов без каких-либо предупреждений, поэтому я не могу просто указать код сервера отчетов (параметр «server = выше») с одним из имен сервера отчетов, потому что он будет работать некоторое время, а затем когда этот сервер опустится, он перестанет работать.
Моя команда серверов попросила меня найти способ вытащить сервер из файла formsweb.cfg или из значения default.env в задании (там есть параметры, содержащие имя сервера). Идея заключается в том, что часть "http://server"
направит отчет для запуска на соответствующий сервер, и первая часть задания может получить имя сервера отчетов из файла конфигурации, в котором выполняется отчет. Я не уверен, что это возможно на уровне базы данных или как это сделать. Есть идеи?
Есть ли лучший способ, которым это можно сделать, возможно?
Это было то, что я обсуждал с командой сервера, когда я впервые задал им вопрос (так было, как это делала другая организация, с которой я работал). Они смогли помочь мне с частью «http: // server» из вышеперечисленной ссылки, чтобы указать имя VIP для этой части ... однако первым параметром в URL-адресе является указание процесса сервера отчетов имя (например, «server = rep_batch_somereportserver»), и именно там я повесил трубку. Я думал, что есть что-то, что они могли бы сделать на их конце тоже для этого, похожего на то, что вы предложили для доменной части URL-адреса. –
@UnsureHowToDoThis - Кажется сумасшедшим разработать сервис, который требует, чтобы вы ударили по VIP, а затем передали определенное имя сервера в качестве параметра. Это побеждает всю цель балансировки нагрузки. Мне также трудно поверить, что когда сервер падает, кто-то сначала должен обойти и обновить конфигурационные файлы на каждом сервере и «по умолчанию env» (не знаю, что это значит) и дождаться, что все кэшированные данные будут очиститесь, прежде чем отключать сервер, только чтобы отменить эти изменения, когда сервер возвращается. –
Я полностью согласен с вами: имя экземпляра сервера. Я вернусь к этой серверной команде и посмотрю, смогут ли они найти лучшее решение. Я как бы цифра, я пытаюсь решить проблему, на которую они должны найти решение. В любом случае, спасибо за быструю помощь! –