Jon,

If I recall correctly, the Oracle JVM closes files after each flush operation. I 
suggest that you use the SocketAppender/SocketServer combination assuming that sockets 
is not an issue... Cheers, Ceki

At 10:35 22.02.2001 -0500, John Collier wrote:
>I am having a problem using log4j inside of an EJB; I can only
>log to a file on the first call to the EJB.  Subsequent attempts
>to log from other methods in the EJB fail due to an IOException
>on the call to flush() the log output.
>
>The environment is as follows.  We are developing an Oracle-based
>client-server application using Oracle 8i and their JDeveloper 3.2
>development environment.  This also comes with its own JVM (Aurora).
>We have upgraded this environment to use JDK 1.3.  Oracle and our
>server application both run on Solaris.  The client (and JDeveloper
>3.2) executes on a PC running Windows 2000.  I think that is all
>the pertinent system information.  
>
>As far as log4j is concerned, we have a thin wrapper class of our 
>own that we use for logging.  All of this wrapper class's methods
>are static and basically format messages the way want them formatted
>and then call log4j methods.  We configure our logging environment
>via an XML file using the DOMConfigurator class.  We use a standard
>FileAppender object with fairly standard formatting.  In addition
>to logging to a file, we also log to "Standard out" via a second
>FileAppender.
>
>The behavior I am seeing is as follows.  We create a session EJB.
>Inside of the "ejbCreate()" method (a standard method on the EJB
>interface, at least I think--I'm still kind of new to this...),
>I have placed several logging messages.  All of the logging messages
>inside "ejbCreate()" work just fine.  After "ejbCreate()" returns, 
>we call another method on the EJB.  Let's call it "methodA()".  
>Inside of "methodA()", we attempt to log to the same file that we
>logged to back inside of "ejbCreate()".  If fact, we are using the
>same objects we used earlier.  However, this time we fail due to
>an IOException when attempting to flush() the output (basically, this
>operation gets done by the FileWriter.flush() method which simply
>calls "flush()" on its associated output stream object).  Because
>of this failure, no log output from "methodA()" is ever recorded
>in the log file.  However, this output is written to "Standard
>out".
>
>The IOException I am getting originates from native code and doesn't
>seem to tell me exactly what the problem is.  My suspicion is that
>the file descriptor was closed somehow, but thus far I am unable
>to prove this (and am not sure what I would do about it if I did
>prove this theory).  I modified a local copy of the log4j code to
>tell me if any "close()" method was being called, but--at least as
>far as I can tell--neither log4j, our Log wrapper class, nor our
>EJB code is intentially closing any file object.  This may be some
>"side effect" of using EJBs (or, particularly, session EJBs); I'm
>not yet knowledgeable enough in this area to know for sure and none
>of the document that I have access to indicates that this is standard
>behavior for EJBs.
>
>As a work-around, we can configure our XML file to send all of our
>log4j output to "Standard out", which means it will wind up in some
>Oracle trace file and be a tad bit difficult to locate, but we can
>live with that for now.  However, in the long run, we would really
>like our log output to wind up in a seperate data file like it does
>everywhere else we've been using it (log4j and our Log wrapper work
>fine everywhere else in our system).
>
>Any thoughts, comments, suggestions, or answers would be greatly
>appreciated.
>
>
> 
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]

----
Ceki Gülcü          Web:   http://qos.ch      
av. de Rumine 5     email: [EMAIL PROTECTED] (preferred)
CH-1005 Lausanne           [EMAIL PROTECTED]
Switzerland         Tel: ++41 21 351 23 15


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to