This discussion is archived
1 Reply Latest reply: May 6, 2010 2:26 AM by RenévanWijk RSS

[WLS - 10.3] - Issue with Diagnostic Archive.

748650 Newbie
Currently Being Moderated
Hi All.

I am facing an Out of Memory situation owing to a large number of File handles being created while writing the Diagnostics file located under /server/<server-name>/data/diagnostics

I have <preferred-store-size> configured at 100MB, however the file seems to grow to about 2GB in size, even when DataRetirementEnabled is enabled(default).
I have stopped the file size growth by setting the following param in the startup script:
-Dcom.bea.wlw.netui.disableInstrumentation=true but has the following questions:

Why does the file size grow to ~ 2GB and stop or rotate after that? Do we have some sort of hard limit for WLS_DIAGNOSTICS.DAT file and if so, why is it set to 2 Gigs?

I would like to read the contents of the diagnostic file, for which we have tried to export the diagnostics archive using the WLST offline option exportDiagnosticData() but we can’t seem to make any sense out of the resultant xml files. They are either empty templates or unreadable binary files. Is there some way we can create some file which will give us data with timestamps so as to see when the data was updated in the .DAT file?
Here’s the command we used:
exportDiagnosticData(logicalName='HTTPAccessLog', logName='WLS_DIAGNOSTICS000000.DAT', exportFileName='myExport.xml', beginTimestamp=0, storeDir='/local/apps/oas/tms/servers/tms1/datbak')

Thanks in advance.

Best Regards,
Nilesh
  • 1. Re: [WLS - 10.3] - Issue with Diagnostic Archive.
    RenévanWijk Oracle ACE
    Currently Being Moderated
    The <store-size-check-period> sets the interval at which the <preferred-store-size-limit> is checked if the size is exceeded. So it could be that your file is growing very fast in this interval.

    To obtain data, you should first connect to the server in question, for example,

    connect('username','password', 't3://hostname:port');

    and run the command

    exportDiagnosticDataFromServer(logicalName="HTTPAccessLog", exportFileName="file")

    Then you get something like to following output:

    <?xml version='1.0' encoding='utf-8'?>
    <DiagnosticData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90/diagnostics/accessor/export.xsd export.xsd" xmlns="http://www.bea.com/ns/weblogic/90/diagnostics/accessor/Export">
    <DataInfo>
    <ColumnInfo><Name>RECORDID</Name><Type>java.lang.Long</Type></ColumnInfo>
    <ColumnInfo><Name>HOST</Name><Type>java.lang.String</Type></ColumnInfo>
    <ColumnInfo><Name>REMOTEUSER</Name><Type>java.lang.String</Type></ColumnInfo>
    <ColumnInfo><Name>AUTHUSER</Name><Type>java.lang.String</Type></ColumnInfo>
    <ColumnInfo><Name>TIMESTAMP</Name><Type>java.lang.String</Type></ColumnInfo>
    <ColumnInfo><Name>REQUEST</Name><Type>java.lang.String</Type></ColumnInfo>
    <ColumnInfo><Name>STATUS</Name><Type>java.lang.String</Type></ColumnInfo>
    <ColumnInfo><Name>BYTECOUNT</Name><Type>java.lang.String</Type></ColumnInfo>
    </DataInfo>
    <DataRecord><ColumnData>1</ColumnData><ColumnData>127.0.0.1</ColumnData><ColumnData>-</ColumnData><ColumnData>-</ColumnData><ColumnData>05/May/2010:16:42:25 +0200</ColumnData><ColumnData>GET /favicon.ico HTTP/1.1</ColumnData><ColumnData>404</ColumnData><ColumnData>1214</ColumnData></DataRecord>
    <DataRecord><ColumnData>2</ColumnData><ColumnData>127.0.0.1</ColumnData><ColumnData>-</ColumnData><ColumnData>-</ColumnData><ColumnData>05/May/2010:16:42:27 +0200</ColumnData><ColumnData>GET /favicon.ico HTTP/1.1</ColumnData><ColumnData>404</ColumnData><ColumnData>1214</ColumnData></DataRecord>
    <DataRecord><ColumnData>3</ColumnData><ColumnData>127.0.0.1</ColumnData><ColumnData>-</ColumnData><ColumnData>-</ColumnData><ColumnData>05/May/2010:16:42:29 +0200</ColumnData><ColumnData>GET /favicon.ico HTTP/1.1</ColumnData><ColumnData>404</ColumnData><ColumnData>1214</ColumnData></DataRecord>
    <DataRecord><ColumnData>4</ColumnData><ColumnData>127.0.0.1</ColumnData><ColumnData>-</ColumnData><ColumnData>-</ColumnData><ColumnData>05/May/2010:16:42:29 +0200</ColumnData><ColumnData>GET /favicon.ico HTTP/1.1</ColumnData><ColumnData>404</ColumnData><ColumnData>1214</ColumnData></DataRecord>
    </DiagnosticData>

    As you see the timestamps are in the data. A very good example on how to process WLDF data can be found here: http://www.oracle.com/technology/pub/articles/dev2arch/2007/09/mining-wldf-xslt3.html

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points