タスクは、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);
それはうまくいきます...
ただし問題は、私の組織には、負荷分散された 2 つのレポート サーバーがあることです。私たちのサーバー チームは、実際には何の警告もなしにサーバーの 1 つを停止することができました。そのサーバーがダウンすると、機能しなくなります。
サーバー チームから、formsweb.cfg ファイルまたはジョブ内の default.env 値 (サーバー名を保持するパラメーターが含まれています) からサーバーを取得する方法を探すように依頼されました。"http://server"
ピースがレポートを適切なサーバーで実行するように指示し、ジョブの最初の部分で、レポートが実行される構成ファイルからレポート サーバー名を取得できるという考えがあります。これがデータベースレベルから可能かどうか、またはこれを行う方法がわかりません。何か案は?
おそらくこれを行うためのより良い方法はありますか?