Hi,

It's right, the 3.1.3 version have a bug in Log4JbackgroundProcess. 
I put in sourceforge.net a version 3.1.3.1.

I thinck is OK now.


Regards,
Guillaume Moulard

-----Message d'origine-----
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] 
Envoyé : mercredi 11 mai 2005 14:27
À : [email protected]
Objet : RE: [log4plsql] Problem using Log4j feature.

The problem is due to a bug in the listener thread.

messages in the pipe are not written and read in the same way, hance reading
in the pipe throws a SQLException.

Code from package plog
------------------------

        DBMS_PIPE.pack_message(pID);                    -- SEQUENTIAL ID
        DBMS_PIPE.pack_message(pLDATE);                 -- TIMESTAMP OF LOG
STATEMENT
                DBMS_PIPE.pack_message(MOD(pLHSECS,100));       --
HUNDREDTHS OF SECONDS FOR TIMESTAMP
        DBMS_PIPE.pack_message(pLLEVEL);                -- LOG LEVEL
        DBMS_PIPE.pack_message(pLSECTION);              -- LOG SECTION -
ANALOGUE TO LOG4J Logger NAME
        DBMS_PIPE.pack_message(LLTEXTE);                -- LOG MESSAGE
        DBMS_PIPE.pack_message(pLUSER);                 -- CALLING USER
        DBMS_PIPE.pack_message('SAVE_IN_LOG');          -- MESSAGE TYPE?
                DBMS_PIPE.pack_message(PMDC.getKeyString);      -- MAPPED
DOMAIN CONTEXT KEYS FOR LOG4J
                DBMS_PIPE.pack_message(PMDC.getValueString);    -- MAPPED
DOMAIN CONTEXT VALUES FOR LOG4J
                DBMS_PIPE.pack_message(PMDC.getSeparator);      -- MAPPED
DOMAIN CONTEXT SEPARATOR FOR LOG4J 

Code from ReaderLogDataBase.sqlj
--------------------------------

  long                piped_ID         ;                  
  String              piped_LDATE      ; 
  long                piped_LHSECS     ; 
  int                 piped_LLEVEL     ;    
  String              piped_LSECTION   ; 
  String              piped_LTEXTE     ;   
  String              piped_LUSER      ;  
  String              piped_COMMAND    = "WAIT";  

...

                #sql [ctx] { CALL DBMS_PIPE.unpack_message(:out piped_ID)} ;

                #sql [ctx] { CALL DBMS_PIPE.unpack_message(:out
piped_LDATE)}; 
                #sql [ctx] { CALL DBMS_PIPE.unpack_message(:out
piped_LLEVEL)}; 
                #sql [ctx] { CALL DBMS_PIPE.unpack_message(:out
piped_LSECTION)}; 
                #sql [ctx] { CALL DBMS_PIPE.unpack_message(:out
piped_LTEXTE)}; 
                #sql [ctx] { CALL DBMS_PIPE.unpack_message(:out
piped_LUSER)}; 
                #sql [ctx] { CALL DBMS_PIPE.unpack_message(:out
piped_COMMAND)};

piped_LDATE must be of type Date and pLHSECS is not retrieved.


-----Message d'origine-----
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Envoyé : mardi 10 mai 2005 19:41
À : [email protected]
Objet : RE: [log4plsql] Problem using Log4j feature.


In addition to my previous message I have written this procedure and it
works well. So it shows that the message is actually written to the pipe.


declare
s integer ;
id number;
ldate  date;
lhsecs number;
lhlevel number;
lsection varchar2(2000);
ltext varchar2(2000);
luser varchar2(30);
begin
plog.error('erreur toto');
s := dbms_pipe.receive_message('LOG_PIPE',1);
dbms_output.put_line(to_char(s));
dbms_pipe.unpack_message(id);
dbms_pipe.unpack_message(ldate);
dbms_pipe.unpack_message(lhsecs);
dbms_pipe.unpack_message(lhlevel);
dbms_pipe.unpack_message(lsection);
dbms_pipe.unpack_message(ltext);
dbms_pipe.unpack_message(luser);
dbms_output.put_line(id||' '||ldate||' '||lhsecs||' '||lhlevel||'
'||lsection||' '||ltext||' '||luser); end;

-----Message d'origine-----
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Envoyé : mardi 10 mai 2005 18:50
À : [email protected]
Objet : [log4plsql] Problem using Log4j feature.



Hi all,

I try to use the log4j feature with log4plsql.

Unfortunetly, the listener process seems not to receive messages from the
DBMS_PIPE.

Here is a fragment of the listener's ouput : 

---------------------------------------------------------------------------
2005-05-10 17:29:03,382 INFO  [main] backgroundProcess.Run (Run.java:62) -
start   log4plsql.properties: ./properties/log4plsql.xml
2005-05-10 17:29:03,388 DEBUG [main] backgroundProcess.Run (Run.java:63) -
log4j  .properties : /ulis/users/ulisu9/Log4plsql/properties/log4j.xml
2005-05-10 17:29:03,430 DEBUG [main] backgroundProcess.ReaderThread
(ReaderThrea  d.java:40) - ReaderLogDataBase : Connect
2005-05-10 17:29:03,461 DEBUG [main] backgroundProcess.ReaderLogDataBase
(Reader  LogDataBase.sqlj:78) - Start logSource:source1
dbURI:jdbc:oracle:thin:@127.0.0.1  :1542:PRODU9 dbUser:ulog dbPass:ulog
pipeName:LOG_PIPE                            2005-05-10 17:29:04,207 INFO
[main] backgroundProcess.ReaderLogDataBase (Reader  LogDataBase.sqlj:85) -
Startup logSource:source1 dbURI:jdbc:oracle:thin:@127.0.0  .1:1542:PRODU9
dbUser:ulog dbPass:ulog pipeName:LOG_PIPE
2005-05-10 17:29:04,355 DEBUG [main] backgroundProcess.DynamicLevel
(DynamicLeve  l.java:34) - Level Creation name:OFF level:99999
syslogEquiv:10                   

.....

 2005-05-10 17:29:48,999 DEBUG [Thread-1]
backgroundProcess.ReaderLogDataBase (Re aderLogDataBase.sqlj:147) - Start
Log4j Backgroung fetching                      2005-05-10 17:29:49,002 DEBUG
[Thread-1] backgroundProcess.ReaderLogDataBase (Re aderLogDataBase.sqlj:169)
- DBMS_PIPE.receive_message:1                          2005-05-10
17:29:49,003 DEBUG [Thread-1] backgroundProcess.ReaderLogDataBase (Re
aderLogDataBase.sqlj:210) - Nbr line read in logSource:source1 : 0


---------------------------------------------------

You can see that the DBMS pipe name is the default and that's the same in
the PLOGPARAM package.

By inserting some debug code to the PLOG.LOG procedure I noticed that it
actually writes to the pipe (the following code is executed and ret is 0).

        ret := DBMS_PIPE.send_message(pCTX.DBMS_PIPE_NAME);        
        IF RET <> 0 then
             raise_application_error(ERR_CODE_DBMS_PIPE, MES_CODE_DBMS_PIPE
|| RET);
        END IF;         


But the "DBMS_PIPE.receive_message:1" message seems to mean that the
listener process finds no message in the pipe. Am I right ?

Do you know where it comes from ?




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the
first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_ids93&alloc_id281&op=ick
_______________________________________________
Log4plsql-all-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/log4plsql-all-info
log4plsq : http://log4plsql.sourceforge.net


-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the
first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_ids93&alloc_id281&op=ick
_______________________________________________
Log4plsql-all-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/log4plsql-all-info
log4plsq : http://log4plsql.sourceforge.net


-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the
first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_ids93&alloc_id281&op=ick
_______________________________________________
Log4plsql-all-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/log4plsql-all-info
log4plsq : http://log4plsql.sourceforge.net



-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_idt12&alloc_id344&op=click
_______________________________________________
Log4plsql-all-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/log4plsql-all-info
log4plsq : http://log4plsql.sourceforge.net

Reply via email to