Troubleshooting Control Center Agent
By qianqian on Jan 15, 2010
The control center agent, as a runtime middle-tier, is integrated in OWB 11g Release 2 to support heterogeneous access. It is essential for users to get an insight into how to troubleshoot and diagnosis the control center agent. This article describes some common approaches to help users to diagnosis the control center agent.
- The Oracle Diagnostic Logging (ODL)
After users deploy and execute a code template map in the design center, they may encounter deployment or execution error. We take a simple code template map as an example. The CT_MAP is a simple TABLE-to-TABLE map. After the CT_MAP is executed, the error is shown below.
To see detailed error stack trace, users need to diagnosis the ODL job log file. The Oracle Diagnostic Logging (ODL) logging API is provided by the Oracle Application Server. The ODL framework provides plug-in components that complement the standard Java framework to automatically integrate log data with Oracle log analysis tools. The control center agent will create job logs in the file system during deployment and execution of the CT_MAP. The audit information will be logged into XML files. Users can see the job ID, phases of the job, tasks under each phase and steps within each task.
The job log file for Job 9 is located in the log root directory, which by default is in LOG_ROOT/jrt/job9/log.xml. If users use built-in OC4J, the LOG_ROOT is OWB_HOME/owb/jrt/log. If users use managed OC4J on Oracle Application Server, the LOG_ROOT is AS_HOME/j2ee/home/log. The part of the job log is shown below.
- Job Log Querying via Audit Information Panel
The most apparent way that users diagnosis the above execution error is by utilizing the audit information panel. The audit panel displays detailed information of the tasks and steps within each execution job. In the design center, it is viewable by selecting View/Audit Information. The audit panel is shown below.
After the CT_MAP is executed, the error occurs in the step JDBC of the task INSERT_NEW_ROWS in the Job 9. Click the tab “Message”. The detail of the error is shown in the right hand side.
java.sql.SQLException: ORA-00942: table or view does not exist
Click the tab “Executed Statement”. The above SQL exception occurs when executing the JDBC statement shown in the right hand side as follow.
This SQL exception statement indicates that the table TGT_T does not exist in the database.
- The Runtime Logging
The runtime log records the control center agent running details. It is used to log administrative log messages. The runtime log is intended to be viewed by administrator and developers to get some sight on what’s happening in control center agent.
The runtime log is stored in LOG_ROOT/jrt.log. If users use built-in OC4J, the LOG_ROOT is OWB_HOME/owb/jrt/log. If users use managed OC4J on Oracle Application Server, the LOG_ROOT is AS_HOME/j2ee/home/log. The runtime log file location can be accessed by running cca_admin utility or via Enterprise Manager. It is noted that the runtime log file location is read-only and users are not permitted to change it.
The runtime log support log level filtering. By default, the log level is set to ALL indicating that all messages will be logged. If users are only interested in the any exception or serious errors occurred in control center agent, they could filter the log level and set it to SEVERE. Users can change the log level by running cca_admin utility or via Enterprise Manager. Here we take Enterprise Manager as an example.
In web browser, navigate to Enterprise Manager Homepage (e.g. http://hostname:8888/em). Log in using oc4jadmin username and password. Navigate to Applications --> jrt --> Administration --> Application Defined Mbeans. There is an attribute “RuntimeLogLevel” in the JRTAdministrator page. Set the log level to SEVERE, and click Apply. Now only the messages with level SEVERE will be logged to runtime log file.
Now we assume the J2EE administrator wants to modify the ODL job log root. There is an attribute “LogRoot” in the page. He changes it to a wrong log root. After clicking Apply and the error occurs:
To find out the cause of the error, check the runtime log file. The following exception is captured in the file.
CCA-1232: Invalid value /data/oracle/owb/owb/jrt/log/tmp provided for Control Center Agent setting Log Root. Directory /data/oracle/owb/owb/jrt/log/tmp either does not exist or cannot be accessed.
Now we have navigated how to diagnosis the control center agent with the simple examples. It’s a good entry point for novice users to start using the control center agent.