![]() ![]() ![]() ![]() ![]() ![]() |
The Archive component of the WebLogic Diagnostic Framework (WLDF) captures and persists all data events, log records, and metrics collected by WLDF from server instances and applications running on them. You can access archived diagnostic data in online mode (that is, on a running server). You can also access archived data in off-line mode using the WebLogic Scripting Tool (WLST).
You can configure WLDF to archive diagnostic data to a file store or a Java Database Connectivity (JDBC) data source, as described in the following sections:
You can also specify when and under what conditions old data will be removed from the archive, as described in the following section:
You configure the diagnostic archive on a per-server basis.The configuration is persisted in the config.xml
file for a domain, under the <server-diagnostic-config>
element for the server. Example configurations for file-based stores and JDBC-based stores are shown in Listing 5-1 and Listing 5-3.
Note: | Resetting the system clock while diagnostic data is being written to the archive can produce unexpected results. See Resetting the System Clock Can Affect How Data Is Archived and Retrieved. |
For a file-based store, WLDF creates a file to contain the archived information. The only configuration option for a WLDF file-based archive is the directory where the file will be created and maintained. The default directory is DOMAIN_NAME/servers/
SERVER_NAME/data/store/diagnostics
, where DOMAIN_NAME is the home directory for the domain, and SERVER_NAME is the home directory for the server instance.
When you save to a file-based store, WLDF uses the WebLogic Server persistent store. For more information, see “Using the WebLogic Persistent Store” in Configuring WebLogic Server Environments.
An example configuration for a file-based store is shown in Listing 5-1.
<domain>
<!-- Other domain configuration elements -->
<server>
<name>myserver</name>
<server-diagnostic-config>
<diagnostic-store-dir>data/store/diagnostics</diagnostic-store-dir>
<diagnostic-data-archive-type>FileStoreArchive
</diagnostic-data-archive-type>
</server-diagnostic-config>
</server>
<!-- Other server configurations in this domain -->
</domain>
To use a JDBC store, the appropriate tables must exist in a database, and JDBC must be configured to connect to that database.
If they do not already exist, you must create the database tables used by WLDF to store data in a JDBC-based store. Two tables are required:
The SQL Data Definition Language (DDL) used to create tables may differ for different databases, depending on the SQL variation supported by the database. The following code listing shows the DDL that you can use to create WLDF tables in the PointBase database.
-- DDL for creating wls_events table for instrumentation events
DROP TABLE wls_events;
CREATE TABLE wls_events (
RECORDID INTEGER IDENTITY,
TIMESTAMP NUMERIC default NULL,
CONTEXTID varchar(128) default NULL,
TXID varchar(32) default NULL,
USERID varchar(32) default NULL,
TYPE varchar(64) default NULL,
DOMAIN varchar(64) default NULL,
SERVER varchar(64) default NULL,
SCOPE varchar(64) default NULL,
MODULE varchar(64) default NULL,
MONITOR varchar(64) default NULL,
FILENAME varchar(64) default NULL,
LINENUM INTEGER default NULL,
CLASSNAME varchar(250) default NULL,
METHODNAME varchar(64) default NULL,
METHODDSC varchar(4000) default NULL,
ARGUMENTS clob(100000) default NULL,
RETVAL varchar(4000) default NULL,
PAYLOAD blob(100000),
CTXPAYLOAD VARCHAR(4000),
DYES NUMERIC default NULL,
THREADNAME varchar(128) default NULL
);
-- DDL for creating wls_events table for instrumentation events
DROP TABLE wls_hvst;
CREATE TABLE wls_hvst (
RECORDID INTEGER IDENTITY,
TIMESTAMP NUMERIC default NULL,
DOMAIN varchar(64) default NULL,
SERVER varchar(64) default NULL,
TYPE varchar(64) default NULL,
NAME varchar(250) default NULL,
ATTRNAME varchar(64) default NULL,
ATTRTYPE INTEGER default NULL,
ATTRVALUE VARCHAR(4000)
);
COMMIT;
Consult the documentation for your database or your database administrator for specific instructions for creating these tables for your database.
After you create the tables in your database, you must configure JDBC to access the tables. (See Configuring and Managing WebLogic JDBC.) Then, as part of your server configuration, you specify that JDBC resource as the data store to be used for a server’s archive.
An example configuration for a JDBC-based store is shown in Listing 5-3.
<domain>
<!-- Other domain configuration elements -->
<server>
<name>myserver</name>
<server-diagnostic-config>
<diagnostic-data-archive-type>JDBCArchive
</diagnostic-data-archive-type>
<diagnostic-jdbc-resource>JDBCResource</diagnostic-jdbc-resource>
<server-diagnostic-config>
</server>
<!-- Other server configurations in this domain -->
</domain>
If you specify a JDBC resource but it is configured incorrectly, or if the required tables do not exist in the database, WLDF uses the default file-based persistent store.
WLDF includes a configuration-based data retirement feature for periodically deleting old diagnostic data from the archives. You can configure size-based data retirement at the server level and age-based retirement at the individual archive level, as described in the following sections.
You can set the following data retirement options for a server instance:
When the size of the store is found to exceed the preferred maximum, an appropriate number of the oldest records in the store are deleted to reduce the size below the specified threshold. This is called “size-based data retirement.”
Note: | Size-based data retirement can be used only for file-based stores. These options are ignored for database-based stores. |
For file-based stores, this enables or disables the size-based data retirement options discussed above. For both file-based stores and database-based stores, this also enables or disables any age-based data retirement policies defined for individual archives in the store. See Configuring Age-Based Data Retirement Policies for Diagnostic Archives, below.
The data store for a server instance can contain the following types of diagnostic data archives whose records can be retired using the data retirement feature:
Note: | WebLogic Server log files are maintained both at the server level and the domain level. Data is retired from the current log using the log rotation feature. See “Configuring WebLogic Logging Services” in Configuring Log Files and Filtering Log Messages. |
Age-based policies apply to individual archives. The data store for a server instance can have one age-based policy for the HarvestedDataArchive
, one for the EventsDataArchive
, and one each for any custom archives.
When records in an archive exceed the age limit specified for records in that archive, those records are deleted.
Data retirement configuration settings are persisted in the config.xml
configuration file for the server’s domain, as shown in Listing 5-4.
<domain>
<!-- other domain configuration settings -->
<server>
<name>MedRecServer</name>
<!-- other server configuration settings -->
<server-diagnostic-config>
<diagnostic-store-dir>data/store/diagnostics</diagnostic-store-dir>
<diagnostic-data-archive-type>FileStoreArchive
</diagnostic-data-archive-type>
<data-retirement-enabled>true</data-retirement-enabled>
<preferred-store-size-limit>120</preferred-store-size-limit>
<store-size-check-period>1</store-size-check-period>
<wldf-data-retirement-by-age>
<name>HarvestedDataRetirementPolicy</name>
<enabled>true</enabled>
<archive-name>HarvestedDataArchive</archive-name>
<retirement-time>1</retirement-time>
<retirement-period>24</retirement-period>
<retirement-age>45</retirement-age>
</wldf-data-retirement-by-age>
<wldf-data-retirement-by-age>
<name>EventsDataRetirementPolicy</name>
<enabled>true</enabled>
<archive-name>EventsDataArchive</archive-name>
<retirement-time>10</retirement-time>
<retirement-period>24</retirement-period>
<retirement-age>72</retirement-age>
</wldf-data-retirement-by-age>
</server-diagnostic-config>
</server>
</domain>
![]() ![]() ![]() |