Skip Headers
Oracle® Real-Time Collaboration Administrator's Guide
10g Release 1 (10.1.2)

Part Number B25460-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

5 Monitoring Oracle Real-Time Collaboration Processes

This chapter describes how you can monitor Oracle Real-Time Collaboration components to provide quality of service for conferences and instant messages and uninterrupted availability for conference and messaging services. This chapter contains the following sections:

Automatic Process Monitoring

The Oracle Real-Time Collaboration Process Manager (rtcpm) is a Java-based process that runs as a daemon, managing all Oracle Real-Time Collaboration processes in an instance. The Process Manager opens an HTTP listening point to accept requests to start and stop processes. Specifically, it does the following:

The Process Manager monitors the following Oracle Real-Time Collaboration component processes:

Process Manager and Oracle Process Management and Notification

The Process Manager is integrated with the Oracle Process Management and Notification system (OPMN) when you install Oracle Real-Time Collaboration. The OPMN system monitors the Process Manager and automatically restarts rtcpm if it appears to be inactive. The Process Manager can recover its state without affecting the processes that it was monitoring before it went down.

Process Manager and rtcctl

When you enter the rtcctl start command, Oracle Process Management and Notification and rtcpm (if necessary) automatically start. Then rtcpm starts all the other Oracle Real-Time Collaboration processes it needs to manage.

If you use rtcctl start with another option (for example, to start a specific component or instance) the Process Manager process must already be running.

The rtcctl stop command with no arguments shuts down rtcpm and all of the processes it is managing.

High-Availability Process Manager for Oracle Presence Server Process

The Oracle Presence Server provides the services required for instant messaging, chat conferences, and publishing presence of Oracle Messenger users. You may have installed Oracle Real-Time Collaboration core components on more than one instance, and therefore have more than one presence server process available, but only one of those processes can be running at any given time. Each server process has a special high-availability monitoring process associated with it, which is started when the server process is started. The monitoring process will attempt to restart the presence server process if it goes down; if the monitoring process is not able to restart the server process, the monitoring process for the next available presence server will make its server the active process.

Each presence server process has its own high-availability process. When you stop the server process (using rtcctl stop -cname rtc-imrtr), the high-availability process will stop as well. As with all Oracle Real-Time Collaboration processes, you can view logs for the high-availability process in the log file directory, at $ORACLE_HOME/imeeting/logs/imHaProcess.

Monitoring Service Availability

Although processes to support services such as Web Conferencing may be running, you also must ensure that the processes can actually support those services on a particular instance. Use the rtcctl runTests command to run tests to determine the availability of Oracle Real-Time Collaboration services.

Oracle Real-Time Collaboration also publishes interfaces for service availability monitoring that can be integrated into any monitoring infrastructure. See "Oracle Real-Time Collaboration Monitoring Interfaces" for more information.

For details about the syntax of rtcctl runTests, see "Testing and Monitoring the System".

The following sections cover these service tests:

See "Running Configuration Tests" for details about using the additional runTests command options that let you check system configuration.

Web Client Service Availability

The apptest option tests whether the Applications tier can access the Oracle Real-Time Collaboration Web Client pages through HTTP.

If this test fails, check that the Oracle HTTP Server and OC4J_imeeting processes are running. If they are not running, stop and restart them as follows:

$ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=HTTP_Server
$ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=HTTP_Server
$ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=OC4J process-type=OC4J_imeeting
$ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=OC4J process-type=OC4J_imeeting

Database Connectivity

The dbtest option tests the connectivity between Oracle Real-Time Collaboration and the database.

If this test fails, use sqlplus to log in to the database from the Applications tier. If that connection is successful, then stop and restart the OC4J_imeeting process:

$ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=OC4J process-type=OC4J_imeeting
$ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=OC4J process-type=OC4J_imeeting

Document Conversion Service Availability

The docconvtest option tests the availability of the Document Conversion service by uploading a test document and trying to convert that document using the Document Conversion Server available to the instance.

If this test fails, it may be that no Document Conversion Server has been installed. If you have installed a server and have also created clusters, make sure that the server has the same InstanceLocation value as the instances it serves. Use the getProperty command as described on to see the InstanceLocation value. See "Configuring Clusters" for details about how to set the value.

If you have set up a Document Conversion Server for this instance, use rtcctl getState on the Oracle Real-Time Collaboration Applications tier to make sure the Applications tier processes are up and running. If they are, stop and restart the Document Conversion Server:

%ORACLE_HOME%\imeeting\bin\rtcctl
rtcctl> stop -ct docconv
rtcctl> start -ct docconv
rtcctl> getState

If the test still fails, stop and restart the OC4J_imeeting process:

$ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=OC4J process-type=OC4J_imeeting
$ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=OC4J process-type=OC4J_imeeting

Oracle Messenger Service Availability

The imtest option tests that Oracle Messenger services are available by mimicking the flow of two users sending and receiving messages.

If users are able to sign in to the Oracle Messenger, and the rtcctl getState command shows that all Oracle Messenger components are running, but the imtest shows as failed in the Status report under the System tab, you should check the connectivity to the database from the Oracle Presence server. Make sure that the tnsnames.ora file on the Applications tier is correctly configured to let you to run sqlplus from $ORACLE_HOME to the database containing the RTC schema.

If, after several hundred users were online with Oracle Messenger, the Oracle Real-Time Collaboration server was restarted and the imtest fails, wait and restart the imtest again. Oracle Messenger is configured to auto-reconnect when a server disconnects. All users who were online and who have opted to save their login information will auto-reconnect after one to six minutes, so there is considerable load on the server-side for authenticating and logging in all the users. The imtest is not expected to succeed reliably during that time. However, approximately six minutes after restarting the Oracle Presence server, the imtest should pass consistently.

Web Conferencing Service Availability

The mtgtest option tests the Web Conferencing Server by mimicking the flow of a user going through the Web Client to start an instant conference. It makes sure that the conference starts successfully on one of the available conference servers in an instance. It then joins another client to the same conference, and makes sure that the new client gets a conference state consistent with what the host client receives. Then it ends the test conference.

If this test fails, do the following:

  1. Use rtcctl getState to make sure that one or more multiplexer (mx) and one or more conferencing server (confsvr) processes are up in this instance. If they are not, skip to Step 4. If they are, go on to Step 2.

  2. Go to the login page for your Oracle Real-Time Collaboration Web Client, for example, http://yourcompany.com/imtapp/app/prelogin.uix. What you do next depends on the error message you see in the browser:

    • If you see a DNS server error, stop and restart the Oracle HTTP Server:

      $ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=HTTP_Server
      $ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=HTTP_Server
      
      
    • If you see a 500 Internal Server error, stop and restart both the Oracle HTTP Server and the OC4J_imeeting processes:

      $ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=HTTP_Server
      $ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=HTTP_Server
      $ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=OC4J process-type=OC4J_imeeting
      $ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=OC4J process-type=OC4J_imeeting
      
      
    • If you see the login page, log in.

      If you cannot log in, then there is a Single Server Sign-On problem.

      If you can log in, go on to Step 3.

  3. On the Oracle Real-Time Collaboration home page, try to start an instant conference.

    If you see the message, Cannot find suitable collaboration server, stop and restart OC4J_imeeting as described in Step 2.

  4. If the mtgtest test still fails, enter the following on the Oracle Real-Time Collaboration Applications tier:

    $ORACLE_HOME/imeeting/bin/rtcctl getMonitorStats
    
    

    If no results are shown, stop and restart the Web Conferencing Applications tier:

    $ORACLE_HOME/imeeting/bin/rtcctl
    rtcctl> stop
    rtcctl> start
    rtcctl> getState
    

Voice Conversion Service Availability

The voiceconvtest option tests the Voice Conversion service for streaming voice data, by attempting to connect to an available Voice Conversion Server, making sure the T1 line is up, that voice channels are available, and that the server is able to stream audio.

If this test fails, it may be that no Voice Conversion Server has been installed. If you have installed a server and have also created clusters, make sure that the server has the same InstanceLocation value as the instances it serves. Use the rtcctl getProperty command to see the InstanceLocation value. See "Configuring Clusters" for details about how to set the value.

If the test fails, do the following on the Applications tier where the Voice Conversion Server instance is running (a Windows machine):

%ORACLE_HOME%\imeeting\bin\rtcctl
rtcctl> stop -ct voiceconv
rtcctl> start -ct voiceconv
rtcctl> getState

If the test still fails, stop and restart the Web Conferencing Applications tier:

$ORACLE_HOME/imeeting/bin/rtcctl
rtcctl> stop
rtcctl> start
rtcctl> getState

Viewing Automated Test Results in the Status Page

The Status report available from the System tab includes the results of service availability tests run periodically on the system. The tests include those for the Web Conferencing services, Document and Voice Conversion services, and Oracle Messenger services. You can click to expand or contract hierarchical lists of instances and their components.

The report also shows information about active conferences and chat sessions, the properties set for the system, and details about currently running Web Client sessions.

Only users with the businessadmin role can use the System tab. See "Setting User Roles" for details about setting user roles.

Setting Service Availability Tests

You can set up a monitoring infrastructure to periodically ping the Oracle Real-Time Collaboration core components. For example, assuming the URL for the instance is my.company.com, you can set a cron job (on UNIX or Linux) to ping the following URLs. You can then plug the output in to an alert management system. You can test for any of the services that the runTests command can test, as well as run any of the configuration tests. The syntax of the URL is:

http://my.company.com/imtapp/RtcServiceTests?test_name=true

The testname can be any of the following:

  • apptest web client service test

  • dbtest database connectivity test

  • docconvtest document conversion service test

  • emailtest e-mail configuration test

  • imtest Oracle Messenger system test

  • mtgtest conference service test

  • voiceconvtest voice conversion service test

Monitoring Components

You can use the rtcctl getMonitorStats command to view monitoring data for some of the key components in the system.

For each Web Conferencing Server on an instance, you can list the number of active conferences and users, the total available and used memory, and the total number of conferences since this process was started.

For each Voice Conversion Server on an instance, you can list the total number of voice streaming channels, currently used channels, bad channels, and the status of the T1 line.

For the running Presence Server on an instance, you can list its status.

The -publish true option outputs XML data. If you have your own monitoring infrastructure, you can run this process periodically to gather XML data that your monitoring system can use for historical analysis.

For details about getMonitorStats syntax, see "Testing and Monitoring the System".

Monitoring Current Conferences

The Monitor tab on the Oracle Real-Time Collaboration Web Client pages lets you interactively monitor the conferences that are currently running on the system. Only users with the businessmonitor or businessadmin role can use the Monitor tab. See "Setting User Roles" for details about setting user roles.

The Current Conference Status page lists all the conferences that are currently running on the system. For each conference, it provides the conference ID, conference title, host name, conference type, site, start time, total attendees, and current status of the conferences. If many conferences are running on this server, you can choose to display conferences by ID, conference title, host name, or the site from which this conference was started.

Clicking on the Conference Details link lets you choose to view basic details about the conference (start date and time, host name, and so forth).

You can click Diagnostics on the Details page to view all events that occur for this conference as it runs. You can use this page to monitor important conferences, so that you can take action if problems occur.

Clicking the Attendees tab on the Details page displays the list of attendees that are participating in this conference. Click Attendee Details next to the attendee's name to view details about how long the attendee has been in the conference, whether they are attending anonymously, whether they have had to reconnect to the conference, and whether they are using streaming voice. You can also see the operating system and screen resolution of the computer the attendee used to connect to the conference, and the connection type used to connect the client.

Running Configuration Tests

You can use the runTests command to confirm that the Oracle Real-Time Collaboration system has been configured properly. These tests need to be run only once after an installation, and need not be run periodically. The following sections describe each test and the option you use to run it.

See "Testing and Monitoring the System" for details about the syntax of the runTests command and its options.

The following section covers this configuration test:

See "Monitoring Service Availability" for details about using the additional runTests command options that let you test the availability of different Oracle Real-Time Collaboration services.

E-Mail Configuration Test

To let meeting hosts to send e-mail invitations from a scheduled conference, an administrator must set the enterprise SMTP host and port through Oracle Web Conferencing properties. The emailtest option makes sure that these properties are set and that the SMTP server is accessible from the Oracle Real-Time Collaboration Applications tier.

If the test fails, follow the steps in "Setting Up Oracle Real-Time Collaboration E-mail and Administration".

Checking System Configuration Status

The Configuration status report available from the System tab shows the current settings for all hosts for this Oracle Real-Time Collaboration system. It displays the host name, type of service, deployment information (whether the host is in the intranet, Internet, or DMZ), instance location if any, operating system, and hardware information (platform, CPU, and total memory). The report also has an Edit button to let you interactively edit some of the properties for each server listed, and a Delete button to let you delete the service.

Only users with the business administrator role can use the System tab. See "Setting User Roles" for details about setting user roles.

Oracle Real-Time Collaboration Monitoring Interfaces

This section discusses Oracle Real-Time Collaboration monitoring interfaces that can be plugged in to any monitoring infrastructure. There are two types of interfaces:

You use the rtcctl getMonitorStats -publish true command to gather component statistics in XML format for output to a monitoring infrastructure. See "Monitoring Components" for more details about the statistics gathered.

By default, you can use rtctest.jsp to run the servlet as an authenticated user who has administrator privileges. If you want to run the servlet without requiring authentication, you must set the RtcTestServlet property to true, and use http://host:port/imtapp/RtcServiceTests.

If enabled, RtcServiceTests lets the service tests of the runTests command be run by any monitoring infrastructure. RtcServiceTests acts as an API that makes all Oracle Real-Time Collaboration tests available as a Web application to HTTP-based Web application monitoring. The servlet is accessible to standard HTTP-based monitoring clients, and its results are designed for automated analysis.

You can display the output of your monitoring infrastructure under the Availability sub-tab of the Reports tab, by pointing that page to a web-based report you generate. See "Configuring the Availability Report" for details.

Both rtctest.jsp and RtcServiceTests use the inputs listed in Table 5-1, and produce the same output.

Running the Test Servlet as an Authenticated User

To run the servlet as an authenticated user, such as an administrator with businessadmin privileges, you use rtctest.jsp, as follows:

http://host:port/imtapp/app/rtctest.jsp?alltests=true

Running the Test Servlet Without Requiring Authentication

If you want to run the servlet without requiring authentication, you must set the RtcTestServlet property to true, and use RtcServiceTests, as follows:

http://host:port/imtapp/app/RtcServiceTests?alltests=true

For security reasons, access to RtcServiceTests is disabled by default. If you enable access to it, it is recommended that you use Oracle HTTP server access control or some other mechanism to limit access to RtcServiceTests.

RtcTestServlet

Description: Sets whether RtcServiceTests can be run.

Default Value: false

Valid Value: false, true

Scope: system

Example: To enable access to RtcServiceTests without requiring authentication, set the property to true:

rtcctl> setProperty -pname RtcTestServlet -pvalue true -system true

Inputs to the Test Servlet

The servlet gets all input information from HTTP requests sent by the client. The servlet accepts parameters either through a URL query string or within a POST body.

Input parameters control which tests are run and the information that is returned in the case of success or failure. Table 5-1 lists all the input parameters.

Table 5-1 Servlet Inputs

Name of Test Options Default Function

alltests

true, false

false

Runs all tests supported by the servlet (other test selection parameters are ignored).

mtgtest

true, false

false

Runs the end-to-end conference test to verify that conference functionality is available.

voiceconvtest

true, false

false

Runs the Voice Conversion Server test to verify that voice support is available for conferences.

docconvtest

true, false

false

Runs the Document Conversion Server test to verify that document conversion is available.

dbtest

true, false

false

Runs the Oracle Real-Time Collaboration Repository test to verify that it is available.

imtest

true, false

false

Runs the end-to-end Oracle Messenger test to verify that messaging services are available.

errorcode

any valid HTTP response code

500

Sets the HTTP response code sent when any of the selected tests fail.

successcode

any valid HTTP response code

200

Sets the HTTP response code sent when all of the selected tests succeed.

errormsg

Any string

null

Includes a message in the response body when any of the selected tests fail. (Note: the response body may include additional text.)

successmsg

Any string

"Test(s) successful."

Includes a message in the response body when all of the selected tests succeed. (Note: the response body may include additional text.)


Output from the Test Servlet

The servlet provides results in an HTTP response. Results either report that all of the selected tests succeeded or that some test failed. If multiple tests are selected with input parameters, the result provides no details about which particular tests failed. Furthermore, no messages associated with the failure are returned.

The result of the test or tests is reflected in both the HTTP response code and, optionally, in a static string returned in the response body.

Because the test reports only aggregate results when running multiple tests, if you need fine-grained detail in your results, run multiple tests, each calling one of the individual service availability tests. If you just want a single indicator of the system's health, run a single test using the alltests option.

Examples of Running the Test Servlet

Following are some examples of output from the test servlet.

http://host:port/imtapp/app/rtctest.jsp

Confirms that the test servlet has been properly installed, but does not run any tests.

http://host:port/imtapp/RtcServiceTests

Confirms that the test servlet has been properly installed, but does not run any tests. You must set the RtcTestServlet property to true to use RtcServiceTests since it is disabled by default.

http://host:port/imtapp/RtcServiceTests?alltests=true

Runs all of the tests returning the standard error (500) and success (200) codes.

http://host:port/imtapp/RtcServiceTests?mtgtest=true&errorcode=404

Runs only the end-to-end conference test and returns 404 if the test fails.

http://host:port/imtapp/RtcServiceTests?mtgtest=true&voiceconvtest=true&errormsg=mtgorvoicefailed

Runs the conference and voice tests and reports a custom message on failure, in addition to a standard 500 response code.

Limitations of the Test Servlet

The servlet is currently limited in the following way. Because the servlet runs in an OC4J_imeeting process, the inaccessibility of the OC4J_imeeting will prevent granular detection of failures in other Oracle Real-Time Collaboration components, such as the Web Conferencing or Document Conversion Servers. However, this limitation is minor, because OC4J_imeeting is the gatekeeper for all Oracle Real-Time Collaboration services. Inaccessibility of OC4J_imeeting is equivalent to inaccessibility of all Oracle Real-Time Collaboration services from a client's perspective.

During the shutdown phase of Oracle Application Server Containers for J2EE (OC4J), the OC4J container may send a response code of 200 and a body of size 444 without actually invoking the test servlet or any tests. The message returned is probably a generic message about the servlet not being loaded. Because the standard test success code is 200, a monitoring application may incorrectly interpret this result as test success.

It is unlikely that the OC4J behavior can be changed. Instead, monitoring applications must do either of the following:

  • Search the actual response body to be sure that the tests actually ran. Searching for "<test-failure-count>0" is a positive confirmation that the tests ran and that none failed.

  • Customize the monitoring application to expect a response code other than 200 for test success using the "successcode" query string parameter. For example, the unassigned HTTP success code 299 could be used to indicate actual test success. The monitoring application should then be configured to treat anything other than 299 as a test failure. For example:

    http://host:port/imtapp/RtcServiceTests?alltests=true&successcode=299
    
    

If the monitoring application cannot be customized to recognize an alternate response code for success or to search for a particular pattern in the response body, then the results of the monitoring application must be treated as unreliable during OC4J shutdown. Tests failures during a shutdown are expected because the OC4J will be temporarily unavailable, but test successes around the time of shutdown are equally unreliable under these conditions.