Oracle9i Application Server Wireless Edition Configuration Guide Release 1.1 Part Number A86701-01 |
Library | Service | Contents | Index

# 3
Logging

The document describes the logging capability of Wireless Edition. Each section of this document presents a different topic. These sections include:

- Section 3.1, "Overview"

- Section 3.2, "Database Logging"

- Section 3.3, "Service Designer Logging"

- Section 3.4, "Server Logging"

- Section 3.5, "Transaction Logging"

- Section 3.6, "Configuring the Runtime Monitor and Management"

## 3.1 Overview

Wireless Edition generates logging information for both the server and development client components.

## 3.2 Database Logging

Wireless Edition database logging records each authenticated service invocation request and each successful user session. Database logging is required for performance monitoring and measurement using Oracle Enterprise Manager. The logged information includes service access patterns, response times for services, and the number of sessions. This data can be used by remote management tools to display results such as service access patterns, throughput, and average response times. Database logging is handled asynchronously.

### 3.2.1 Configuring the Database Logger

The database logger of a Wireless Edition instance must point to a database schema to log the information. This configuration is done in the System.properties file of each Wireless Edition instance.

    #
    #System Logger related parameters
    #

    # Number of minutes after which the logger thread wakes up to flush
    # the log entries to the database. This parameter is optional.
    SystemLog.logger.wakeupFrequency=10

    # The maximum number of entries cached by the logger thread.
    # This parameter is optional.
    SystemLog.logger.maxSize=100

    # Whether service logging should be enabled
    SystemLog.enableServiceLogging=true

    # Whether session logging should be enabled
    SystemLog.enableSessionLogging=true

    # The request listener class
    locator.request.listener.classes=oracle.panama.core.admin.SystemLogger

    # The session listener class
    locator.session.listener.classes=oracle.panama.core.admin.SystemLogger

    # Enable event request logging
    event.before.request=true
    event.request.end=true
    event.request.error=true
    event.after.request=true

    # Enable event session logging
    event.session.begin=true
    event.session.end=true

    # System Log Database connect string <String>
    # Syntax for this property is similar to db.connect.string
    # System Logs can be present in a separate database
    #
    # NOTE: For the OEM cartrige queries, Make sure the user specified below has
    select access to the V$ tables.
    #   Usage example: log in as system and say "grant select any table to %PANAMA_
    USERNAME%"
    #SystemLog.db.connect.string=%PANAMA_USERNAME%/%PANAMA_USER_PW%@%PANAMA_
    HOST%:%PANAMA_PORT%:%PANAMA_SID%

If the SystemLog.db.connect.string parameter is set, logged information is stored in a separate database. This parameter should not be set if the logged information is to be stored in the same repository.

Note: The database user name used here (the one replacing %PANAMA_USERNAME%) must have select access to all tables. In this example "PANAMA" is Wireless Edition.

### 3.2.2 Database Table Contents

Data logged to the database is stored in two tables, ptg_service_log and ptg_session_log.

Table 3-1 Contents of the ptg_session_log Table

Column Name | Description
--- | ---
session_id | The identifier of the session.
user_id | The Object Identifier (OID) of the user of the session.
user_name | The user name.
ptg_instance_id | A unique identifier, for the database instance.
logical_device | The logical device which invoked the service.
login_time | The timestamp when the session was created.
login_hour | The hour when the session was created.
expiry_time | The timestamp when the session expired.
timestamp | The time when the data is logged.

Table 3-2 Contents of the ptg_service_log Table

Column Name | Description
--- | ---
service_id | The Object Identifier (OID) for the invoked service.
service_name | The name of the invoked service.
ptg_instance_id | A unique identifier, for the database instance.
final_service_id | The OID of the final service, for example the master service or folder.
final_service_name | The name of the final service.
session_id | The session identifier for which the service was invoked.
service_arguments | The arguments of the service, in XML format.
bookmark | The external link, if the invoked service is a bookmark.
service_type | The type of service.
invocation_hour | The hour when the service was invoked.
invocation_time | The date when the service was invoked.
response_time | The response time for the service.
request_status | The status of the request, a non-zero value indicates an error number.
error_description | The error message, if one occurred while invoking the service.
user_id | The OID for the user.
user_name | The name of the user.
remote_address | The host IP address and name.
logical_device | The logical device which invoked the service.
external_user_id | The external user ID.
external_user_name | The external user name.
adapter_type | The type of adapter.
adapter_home | The time taken by the adapter.
transformation_time | The time taken by the transformer.
timestamp | The time when the data is logged.

## 3.3 Service Designer Logging

By default, the Service Designer writes error information to the log directory of the Service Designer home directory. You can modify this setting, and the log naming pattern, in the preferences.xml file. The file is in the WE_HOME/tools/ServiceDesigner/resources directory.

## 3.4 Server Logging

The Wireless Edition writes server error information to the files and directory specified in the System.properties file. You can open the log files directly, or view them from the Wireless Edition Runtime Information and Management interface (the Probe interface) at port 8090. Click the "Files" link.

The Wireless Edition specifies these types of errors:

Table 3-3 Server Error Information

Error | Value
--- | ---
ERR_SERVICE_UNAVAILABLE | PTG-001
ERR_SERVICE_ERROR | PTG-002
ERR_SERVICE_NOT_FOUND | PTG-003
ERR_CONFIGURATION_ERROR | PTG-004
ERR_INTERNAL_ERROR | PTG-005
ERR_DATABASE_ERROR | PTG-006

In addition to error messages, the Wireless Edition provides extensive runtime exception logging. When fatal exceptions occur, the Wireless Edition logs the exceptions and stack traces in the global log file. If you need to contact Oracle Support Services, you should have the log information available.

## 3.5 Transaction Logging

The transaction log is a log file on the Wireless Edition server that provides information regarding user access. To enable transaction logging, you must include transaction logging as a log level in the System.properties file. For example:

    log.level=Warning, Error, Notify, Transaction

You can use the System.properties file to set the directory to which the Wireless Edition writes transaction logs, and to specify a file name pattern for the log files. You can also configure the transaction record pattern.

If you enable transaction logging when a user accesses a service that has a cost value set, the transaction log generates data. You can set a cost for a master service using the Wireless Edition Service Designer. You can access the transaction log data programmatically, to generate billing information or to integrate the Wireless Edition transaction information with an external billing management system.

The following sample shows the log results of four stock quote queries by a single user. The sample uses the default logging pattern, which you can modify in the System.properties file. It lists the time of access, the user name (Sample), the service, and the price per access (25):

    [11/14/99 4:03:26 PM] Sample   /master/OnlineQuoteOracle 25
    [11/14/99 4:03:29 PM] Sample   /master/OnlineQuoteOracle 25
    [11/14/99 4:03:35 PM] Sample   /master/OnlineQuoteOracle 25

## 3.6 Configuring the Runtime Monitor and Management

The probe is a daemon that displays runtime information about:

- Log files

- Active objects

- Active sessions

- Active threads

The probe performs simple runtime management including:

- Shutting down an active object instance.

- Refreshing persistent attributes on an active object.

- Setting the global debug flag to on or off.

- Reloading properties for device recognition when adding a new device to a running system.

By default, the Wireless Edition installation installs and initiates the probe runtime monitor with the listening port 8090. To access the probe from a browser enter the following URL:

http://host_name:8090

You can configure the probe component by editing the www-server.properties file in the WE_HOME/server/classes/oracle/panama/core/probe directory. The following daemon manages the implementation:

    oracle.panama.core.probe.WebServer

| Copyright © 2001 Oracle Corporation. All Rights Reserved. |
Library | Service | Contents | Index