Re: logging mechanism
From: Kay Kanekowski <kkanekowski_at_a-m-c.de>
Date: Tue, 8 May 2001 07:56:53 +0200
Message-ID: <9d81en$3sn$1_at_fermi.tro.net>
--
BEGIN
--
END log_pipe;
Date: Tue, 8 May 2001 07:56:53 +0200
Message-ID: <9d81en$3sn$1_at_fermi.tro.net>
Hi,
[Quoted] if you have an Oracele 8.x.x (?) is simple with an procedure like that:
PROCEDURE log_sql (
msg_level_in IN msg_level_typ, message_in IN VARCHAR2, userid_in IN VARCHAR2 := USER, log_time_in IN DATE := SYSDATE, job_id_in IN NUMBER := NULL, job_typ_in IN job_typ_typ := NULL) IS PRAGMA AUTONOMOUS_TRANSACTION;
--
BEGIN
--
INSERT INTO logging_table ( msg_level, message, userid, log_time, job_id, job_typ) VALUES ( msg_level_in, message_in, userid_in, log_time_in, job_id_in, job_typ_in);END log_sql;
--
COMMIT;
--
EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR (-20903, 'log_sql: ' || SQLERRM);
In Oracle 7.x.x. you need the DBMS_PIPE mechanism. And you have to start a
second process, who will
listened to PIPE and then writes to the logging_table (with COMMIT).
PROCEDURE log_pipe (
msg_level_in IN msg_level_typ, message_in IN VARCHAR2, userid_in IN VARCHAR2 := USER, log_time_in IN DATE := SYSDATE, job_id_in IN NUMBER := NULL, job_typ_in IN job_typ_typ := NULL) IS
--
status INTEGER; antwort VARCHAR2 (100) := ''; BEGIN DBMS_PIPE.PACK_MESSAGE (MESSAGE_TYP_NORMAL); DBMS_PIPE.PACK_MESSAGE (msg_level_in); DBMS_PIPE.PACK_MESSAGE (message_in); DBMS_PIPE.PACK_MESSAGE (userid_in); DBMS_PIPE.PACK_MESSAGE (log_time_in); DBMS_PIPE.PACK_MESSAGE (job_id_in); DBMS_PIPE.PACK_MESSAGE (job_typ_in);
--
status := DBMS_PIPE.SEND_MESSAGE (PIPE_SEND); status := DBMS_PIPE.RECEIVE_MESSAGE (PIPE_ACKNOWLEDGE, MAX_ACK_TIME); -- acknowledge-Meldung holen
--
IF status = TIMEOUT THEN RAISE_APPLICATION_ERROR (-20900, 'Listener-ProzeĆ nicht aktiv oder [Quoted] Time-Out'); ELSE DBMS_PIPE.UNPACK_MESSAGE (antwort); IF antwort <> MESSAGE_TYP_ACKNOWLEDGE THEN RAISE_APPLICATION_ERROR (-20901, 'Falsche Synchronisation mit Listener'); END IF; END IF;
--
END log_pipe;
HTH
Kay
another Oracle Developer
Received on Tue May 08 2001 - 07:56:53 CEST