電子メールを送信するプロシージャがあり、このプロシージャは他の関数やプロシージャから呼び出されています(主にアラートと通知の送信に使用されます)。
私が直面している問題の1つは、メールサーバーがダウンしている場合、関数またはプロシージャを呼び出すと実行が停止することです。つまり、本来の機能を実行しないということです。関数やプロシージャの呼び出し、さらに言えば、MailProcedureを呼び出すクライアントが、メールサーバーがダウンしている場合でもその機能を実行するようにするにはどうすればよいですか。
どうすればこれを達成できますか?どんな助けでも非常に高く評価されます。
メール手続き
CREATE OR REPLACE PROCEDURE MailProcedure(frm_id IN VARCHAR2, to_id IN VARCHAR2, subject IN VARCHAR2, body_text IN VARCHAR2)
AS
c utl_tcp.connection;
rc integer;
BEGIN
c := utl_tcp.open_connection('email_server', 25);
rc := utl_tcp.write_line(c, 'string');
rc := utl_tcp.write_line(c, 'from address');
rc := utl_tcp.write_line(c, 'to address');
rc := utl_tcp.write_line(c, 'Subject');
rc := utl_tcp.write_line(c, 'body');
utl_tcp.close_connection(c);
EXCEPTION
WHEN OTHERS
THEN
null;
END;
/