   |  | | after servererror trigger | after servererror trigger 2006-07-28 - By Niall Litchfield
errrm the 9291 error surely should only be a temporary error and not one regular enough to email about :)
for errors that don't have a user or termin al then don't try and capture them.
On 7/28/06, Wojciech Skrzynecki <wojciech.skrzynecki@(protected)> wrote: > > Hello > > > > I would like to ask you about after servererror trigger. I wrote trigger > as below: > > > > CREATE OR REPLACE TRIGGER notification_error > > after servererror on database > > declare > > d_sender varchar2(30) := ora_database_name; > > d_user varchar2(30) :=ora_login_user; > > d_rcp varchar2(100) := ' test'; > > d_mailhost VARCHAR2(30) := 'test'; > > d_mail_conn utl_smtp.connection; > > d_terminal VARCHAR2(30) :=userenv('terminal'); > > d_current_nr_error number := ora_server_error(1); > > ora_server_error_msg varchar2(100); > > BEGIN > > if d_current_nr_error between 01800 and 02231 > > or d_current_nr_error in (09291,16014) > > then > > ora_server_error_msg := SQLERRM(-d_current_nr_error); > > d_mail_conn := utl_smtp.open_connection(d_mailhost); > > utl_smtp.helo(d_mail_conn, d_mailhost ); > > utl_smtp.mail(d_mail_conn, d_sender); > > utl_smtp.rcpt(d_mail_conn, d_rcp); > > utl_smtp.open_data(d_mail_conn); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'From: ' || > ora_database_name); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Subject: ' || > ora_server_error_msg); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'User: ' || > ora_login_user); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Terminal: ' || > d_terminal); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Date: ' || > to_char(sysdate, 'RRRR-MM-RR HH24:MI:SS') ); > > utl_smtp.close_data(d_mail_conn); > > utl_smtp.quit(d_mail_conn); > > end if; > > > > I do not know how to intercept background ORA error example "ORA-01652 (See ORA-01652.ora-code.com): > unable to extend temp segment by 512 in tablespace TEMP" or > > "ORA-9291 (See ORA-9291.ora-code.com) invalid device specified for archive destination " > > > > Could you explain me how to do this? > > > > Thanks for help > -- > > Wojciech Skrzynecki > Database Administrator >
-- Niall Litchfield Oracle DBA http://www.orawin.info
<div>errrm the 9291 error surely should only be a temporary error and not one regular enough to email about :) </div> <div> </div> <div>for errors that don't have a user or termin al then don't try and capture them. <br><br> </div> <div><span class="gmail_quote">On 7/28/06, <b class="gmail_sendername">Wojciech Skrzynecki</b> <<a href="mailto:wojciech.skrzynecki@(protected)">wojciech .skrzynecki@(protected)</a>> wrote:</span> <blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0 .8ex; BORDER-LEFT: #ccc 1px solid"> <div> <p><span style="FONT-FAMILY: Arial">Hello</span></p> <p><span style="FONT-FAMILY: Arial"> </span></p> <p><span style="FONT-FAMILY: Arial">I would like to ask you about after servererror trigger. I wrote trigger as below:</span></p> <p><span style="FONT-FAMILY: Arial"> </span></p> <p><span style="FONT-FAMILY: Arial">CREATE OR REPLACE TRIGGER notification _error</span></p> <p><span style="FONT-FAMILY: Arial">after servererror on database</span></p> <p><span style="FONT-FAMILY: Arial">declare</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d_sender<span> </span><span> </span>varchar2(30) := ora_database _name;</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d_user varchar2 (30) :=ora_login_user;</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d_rcp <span>  ; </span><span> < /span>varchar2(100) := ' test';</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d_mailhost <span> </span><span> </span>VARCHAR2(30) := 'test';</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d_mail_conn <span > </span><span>   ;</span>utl_smtp.connection;</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d_terminal VARCHAR2(30) :=userenv('terminal');</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d_current_nr _error <span> </span><span> </span>number := ora_server_error(1);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>ora_server_error _msg<span> </span>varchar2(100);</span></p> <p><span style="FONT-FAMILY: Arial">BEGIN<span> </span></span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>if <span> </span>d _current_nr_error<span> </span>between 01800 and 02231</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>or d_current_nr _error<span> </span>in (09291,16014)</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>then</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>ora _server_error_msg := SQLERRM(-d_current_nr_error);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>d _mail_conn := utl_smtp.open_connection(d_mailhost);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.helo(d_mail_conn, d_mailhost );</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.mail(d_mail_conn, d_sender);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.rcpt(d_mail_conn, d_rcp);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.open_data(d_mail_conn);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'From:<span> < /span>' || ora_database_name);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Subject: ' || ora_server_error _msg);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'User: ' || ora_login_user);</span ></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Terminal: ' || d_terminal);</span ></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Date: ' || to_char(sysdate, 'RRRR -MM-RR HH24:MI:SS') );</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.close_data(d_mail_conn);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>utl _smtp.quit(d_mail_conn);</span></p> <p><span style="FONT-FAMILY: Arial"><span> </span>end if;</span></p> <p><span style="FONT-FAMILY: Arial"> </span></p> <p><span style="FONT-FAMILY: Arial">I do not know how to intercept background ORA error example "ORA-01652 (See ORA-01652.ora-code.com): unable to extend temp segment by 512 in tablespace TEMP" or </span></p><pre><span style="FONT-SIZE: 12pt; FONT -FAMILY: Arial"> "ORA-9291 (See ORA-9291.ora-code.com) invalid device specified for archive destination "</span>< /pre><pre><span style="FONT-SIZE: 12pt; FONT-FAMILY: Arial"> </span></pre> <p><span style="FONT-FAMILY: Arial">Could you explain me how to do this?</span> </p> <p><span style="FONT-FAMILY: Arial"> </span></p> <p><span style="FONT-FAMILY: Arial">Thanks for help</span></p>-- <br> < /div> <div><span class="sg">Wojciech Skrzynecki<br>Database Administrator </span>< /div></blockquote></div><br><br clear="all"><br>-- <br>Niall Litchfield<br >Oracle DBA<br><a href="http://www.orawin.info">http://www.orawin.info </a>
|
|
 |