我有一个发送电子邮件的程序,这个程序被其他函数和程序调用(主要用于发送警报和通知)。
我面临的一个问题是,如果我们的邮件服务器出现故障,那么调用函数或过程就会停止执行,我的意思是他们没有执行他们应该执行的任何功能。我如何确保调用函数或过程或任何调用 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;
/