Skip to main content
Skip table of contents

Application Monitoring for Oracle Siebel CRM (Configure)

Features

Guideline to enable monitoring of Siebel Enterprise, Web Server, Gateway and other Object Manager (a.k.a Siebel Component). This assumes you have already deployed Germain UX - Engine for your Siebel CRM instance.

Our Recommendations: Synthetic / RPA Bots should be the first thing you ever implement for Siebel (or any other application), in order to be alerted when major availability issues occur. Then everything should come next: Siebel Web, Application, Gateway, Database can all be monitored with GermainUX. our 20-year experience with Siebel is preconfigured in GermainUX, and any of that is easily customizable.

Configure

Essential health and Application Performance Monitoring for Oracle Siebel CRM occurs via Germain UX Engine.

Log on to Germain Workspace > left menu > Wizards > Siebel

Siebel Wizards (App Server, Gateway Server, OpenUI, Web Server) - Germain UX

Import Siebel Component Types

For new deployment, please import Siebel seed data from all json files under Server Distribution/configuration/siebel by making REST calls using “REST Client” in the Germain Configuration Console. Select “merge” option while executing the REST calls. Check that the following components exist under germain.apm.monitoringConfig.components:

  • Siebel Object Manager Parser

  • Siebel Enterprise Manager Parser

  • Siebel Crash Parser

  • Siebel 7.x FDR Parser

  • Siebel 8.x FDR Parser

  • Siebel Crash Directory Monitor

  • Siebel Log Directory Monitor

  • Siebel Component Monitor (WMI)

  • Siebel Component Monitor (SSH)

  • Siebel HTTP Monitor

  • Siebel Enterprise Configuration Monitor

  • Siebel Collator

Add the Siebel Server

  • Germain Workspace > Left Menu > Wizard > Siebel App Server

Siebel App Server Wizard - Germain UX

Add credentials

Germain Workspace > Left Menu > Systems > Auth Settings > Authentications

Siebel Authentication - Germain UX

Enter the credentials for you Siebel server, usually it is SADMIN. If needed, enter the Domain, Secure Key

Siebel Task level Monitoring

It is critical to enable Task level monitoring properly and inline to the below best practices. Often customers ignore those and always end up restart the whole enterprise when an issue comes up since they have no visibility as to what is causing an issue. Monitoring Tasks to this level will help avoid enterprise downtime and other errors.

  1. Adjust the below Thresholds based on what is running on your Siebel environment. These values may need to be adjusted according to the Siebel version, etc.

  2. Get management approval for these SLA:

Siebel Component

Acceptable CP_DISP_RUN_STATE

CP_NUM_RUN_TASKS Threshold(s)

CP_ACTV_MTS_PROCS
Threshold

WorkActn

Status = Running, Shutdown

n/a

CP_MAX_MTS_PROCS

WorkMon

Status = Running, Shutdown

n/a

CP_MAX_MTS_PROCS

Wf*

Status = Running, Shutdown or Online

CP_NUM_RUN_TASKS<95% of CP_MAX_TASKS

CP_MAX_MTS_PROCS

*ObjMgr*

Status = Running, Shutdown or Online

CP_NUM_RUN_TASKS<95% of CP_MAX_TASKS

CP_MAX_MTS_PROCS

SRBroker

Status = Running, Shutdown or Online

CP_NUM_RUN_TASKS<95% of CP_MAX_TASKS

CP_MAX_MTS_PROCS

SRProc

Status = Running, Shutdown

CP_NUM_RUN_TASKS=DfltTasks (should be 2)

CP_MAX_MTS_PROCS

SCBroker

Status = Running, Shutdown

CP_NUM_RUN_TASKS=DfltTasks (should be 2)

N/A

Other Siebel Component

Status = Running, Shutdown or Online

CP_NUM_RUN_TASKS<95% of CP_MAX_TASKS

CP_MAX_MTS_PROCS

38c4cba0-535e-477f-877d-8321319f876c.png
fe31b270-ba8a-4570-a4c0-82c98cacc152.png

  • Germain Workspace > Left Menu > Analytics > Rules > siebel-app-monitor-drl > Component Task Metrics

Example:

CODE
rule "Component Task Metrics"
when
    $r : ListComponentsOutputRecord( cpDispRunState in ( "Online", "Running" ), cpMaxTasks > 0 )
    $tasks : List( ) from collect ( ListTasksOutputRecord( ccAlias == $r.ccAlias ) )
then
    StringBuilder sb = new StringBuilder();
    for (ListTasksOutputRecord t : $tasks) {
        sb.append(t.svName);
        sb.append("\t");
        sb.append(t.ccAlias);
        sb.append("\t");
        sb.append(t.cgAlias);
        sb.append("\t");
        sb.append(t.tkTaskId);
        sb.append("\t");
        sb.append(t.tkPid);
        sb.append("\t");
        sb.append(t.tkDispRunstate);
        sb.append("\t");
        sb.append(t.ccRunmode);
        sb.append("\t");
        sb.append(t.tkStartTime);
        sb.append("\t");
        sb.append(t.tkEndTime);
        sb.append("\t");
        sb.append(t.tkStatus);
        sb.append("\t");
        sb.append(t.tkParentTaskId);
        sb.append("\t");
        sb.append(t.ccIncarnationNum);
        sb.append("\t");
        sb.append(t.tkLabel);
        sb.append("\t");
        sb.append(t.tkTasktype);
        sb.append("\t");
        sb.append(t.tkPingTime);
        sb.append("\n");
    }

    // Number of running tasks per component
    GenericMetric m = new GenericMetric();
    m.timestamp = OffsetDateTime.now();
    m.type = "Siebel:Task";
    m.name = $r.ccRunmode;
    m.value = (double)$r.cpNumRunTasks;
    m.details = sb.toString();
    m.application.component = $r.ccAlias;
    datamart.insert(m, context);

    // Pct of max tasks running per component
    m = new GenericMetric();
    m.timestamp = OffsetDateTime.now();
    m.type = "Siebel:TaskPct";
    m.name = $r.ccRunmode;
    m.value = Math.round(((double)$r.cpNumRunTasks / (double)$r.cpMaxTasks) * 100.0 * 1000.0) / 1000.0;
    m.details = sb.toString();
    m.application.component = $r.ccAlias;
    datamart.insert(m, context);

    // Number of running tasks per process for this component
    int numProcs = $r.cpActvMtsProcs == 0 ? 1 : $r.cpActvMtsProcs;
    m = new GenericMetric();
    m.timestamp = OffsetDateTime.now();
    m.type = "Siebel:Running Tasks Process";
    m.name = $r.ccRunmode;
    double numTasksPerProc = (double)$r.cpNumRunTasks / (double)numProcs;
    m.value = numTasksPerProc;
    m.details = sb.toString();
    m.application.component = $r.ccAlias;
    datamart.insert(m, context);

    // Max number of running tasks per process for this component
    int maxProcs = $r.cpMaxMtsProcs == 0 ? 1 : $r.cpMaxMtsProcs;
    m = new GenericMetric();
    m.timestamp = OffsetDateTime.now();
    m.type = "Siebel:Max Tasks Process";
    m.name = $r.ccRunmode;
    double maxTasksPerProc = (double)$r.cpMaxTasks / (double)numProcs;
    m.value = maxTasksPerProc;
    m.details = sb.toString();
    m.application.component = $r.ccAlias;
    datamart.insert(m, context);

    // Pct of max tasks per process for this component
    m = new GenericMetric();
    m.timestamp = OffsetDateTime.now();
    m.type = "Siebel:TaskPct Process";
    m.name = $r.ccRunmode;
    m.value = Math.round((numTasksPerProc / maxTasksPerProc) * 100.0 * 1000.0) / 1000.0;
    m.details = sb.toString();
    m.application.component = $r.ccAlias;
    datamart.insert(m, context);
end

rule "Component Mts Metrics"
when
    $r : ListComponentsOutputRecord( cpDispRunState in ( "Online", "Running" ), cpMaxMtsProcs > 0 )
then
    // Number of running processes
    GenericMetric m = new GenericMetric();
    m.timestamp = OffsetDateTime.now();
    m.type = "Siebel:MtsProcs";
    m.name = $r.ccAlias;
    m.value = (double)$r.cpActvMtsProcs;
    m.application.component = $r.ccAlias;
    datamart.insert(m, context);    

    // Percent running of max processes
    m = new GenericMetric();
    m.timestamp = OffsetDateTime.now();
    m.type = "Siebel:MtsProcsPct";
    m.name = $r.ccAlias;
    m.value = ((double)$r.cpActvMtsProcs/(double)$r.cpMaxMtsProcs) * 100.0;
    m.application.component = $r.ccAlias;
    datamart.insert(m, context);
end

Siebel Component / Object Manager Parser (Configuration)

  • Germain Workspace > Left Menu > Wizards > Parser

Parser for Siebel Log file - Germain UX

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine)

  • Fill the details as

    • Parser Component Type: Siebel Object Manager Parser (Windows/Unix as applicable)

    • Monitored Application: Siebel (or change if application name changed)

    • Monitored Application Component: None (or change if needed)

    • Number of instances: 1

  • Additional Configuration - Set the localized resource files for Siebel log parsers

    • Set resourceFile to /com/germainsoftware/apm/localization/parser-siebel-objmgr-enu.properties

Siebel Server Manager Parser (Configuration)

  • Germain Workspace > Left Menu > Wizards > Parser

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine) , Click Next

  • Fill the details as

    • Parser Component Type: Siebel Enterprise Manager Parser

    • Monitored Application: Siebel (or change if application name changed)

    • Monitored Application Component: None (or change if needed)

    • Number of instances: 1

  • Click Next, Verify the details and click Submit

  • Additional Configuration - Set the localized resource files for Siebel log parsers

    • Set resourceFile to /com/germainsoftware/apm/localization/parser-siebel-em-enu.properties

 Directory Manager for Siebel log Files

  • Germain Workspace > Left Menu > Wizard > Directory Monitor

Directory Monitor Deployment for Siebel log Files

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine) , Click Next

  • Fill the details as

    • Directory Component Type: Siebel Log Directory Monitor

    • Name – Name to the monitor, Default is Siebel Log Directory Monitor

    • Monitored Server: Select the Server which is created in above steps

    • Path to Monitor: Point to the log files' location on the Siebel Server; reachable from the Germain Server

    • Watch Subdirectories: no

    • Process Existing Files: yes

    • Process Empty Files: no

    • Force Polling: yes

    • Polling Interval (seconds): 300000 (**these are milliseconds **)

 

 Click Next, Verify the details and click Submit

 Directory Monitor for Siebel Core Files

  • Germain Workspace > Left Menu > Wizard > Directory Monitor

 Directory Monitor for Siebel Core Files - Germain UX

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine) , Click Next

  • Fill the details as-

    • Directory Component Type: Siebel Crash Directory Monitor

    • Name – Name to the monitor, Default is Siebel Crash Directory Monitor

    • Monitored Server: Select the Server which is created in above stepsr

    • Path to Monitor: Point to the "crash" files' location

    • Watch Subdirectories: no

    • Process Existing Files: yes

    • Process Empty Files: no

    • Force Polling: yes

    • Polling Interval (seconds): 300000 (**these are milliseconds **)                                                                                  

Directory Monitor for Siebel Gateway

  • Germain Workspace > Left Menu > Wizard > Directory Monitor

Directory Monitor for Siebel Gateway - Germain UX

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine) , Click Next

  • Fill the details as-

    • Directory Component Type: Siebel Enterprise Configuration Monitor

    • Name – Name to the monitor, Default is Siebel Enterprise Configuration Monitor

    • Monitored Server: Select the Server which is created in above steps

    • Path to Monitor: Point to the "siebns.dat" file's location

    • Watch Subdirectories: no

    • Process Existing Files: yes

    • Process Empty Files: no

    • Force Polling: yes

    • Polling Interval (seconds): 300000 (**these are milliseconds **)

Remote Monitor for Siebel Server Performance

  • Germain Workspace > Left Menu > Wizard > Directory Monitor

Remote Monitor for Siebel Server Performance

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine) , Click Next

  • Fill the details as

    • Name: Components Status Monit

    • Monitored Server: Select the Server which is created in above steps

    • Monitored Application: Siebel (or change if application name changed)

    • Credentials: Select the credentials created in above steps

    • Interval: 300

    • Local Connection for WMI?: no

    • Component Type: Siebel Component Monitor (Windows|Unix)

  • Click Next, Verify the details and click Submit

  • Additional Configuration - The following configuration references have to be added to the component deployments in the config console

    • SiebelCredentials [e.g. key: germain.apm.monitoringConfig.credentials, itemName: Siebel Admin]

    • SiebelGateway [e.g. value: gcgsiebel77]

    • SiebelServer [e.g. key: germain.apm.monitoringConfig.servers, itemName: gcgsiebel77]

    • SiebelEnterprise [e.g. value: sba_81]

    • SiebelPath [e.g. value: C:\sba811v2]

    • ExcludedComponents [Optional; value: can be empty, or a comma-seperated list of components names to exclude]

Siebel Config Collator

  • Germain Workspace > Left Menu > System > Root Config > MonitoringConfig > Siebel Config Collator

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine) , Click Next

  • Fill the details as

    • Component Type: Siebel Config Collator

    • Name: Name default is Siebel Config Collator, can be changed.

  • Click Next, Verify the details and click Submit

Siebel Config Collator - Germain UX

Siebel HTTP and SISNAPI

  • Germain Workspace > Left Menu > System > Root Config > MonitoringConfig >  Siebel HTTP Monitor

  • Select the Germain Monitoring Node ( UX ) and Engine (DefaultEngine) , Click Next

  • Fill the details as-

    • HTTP Component Type: Siebel HTTP Monitor

    • Name: Siebel HTTP Monitor

    • Server: Select the Server which is created in above steps

    • Application: Application to monitor

    • Scheme: HTTP

    • Port: 80 (or change if needed)

    • repeatSeconds: 300                                               

  • Click Next, Verify the details and click Submit

  • Additional Configuration - The following configuration references have to be added to the component deployments in the config console

    • For the HTTP Monitor from 4.10

  • From Germain Configuration Console, go to your monitoring node, DefaultEngine, components and Siebel HTTP Monitor

    • SiebelCredentials [e.g. key: germain.apm.monitoringConfig.credentials, itemName: Siebel Admin]

    • SiebelComponent [e.g, value: component to test]

Include/Exclude Siebel Components

To exclude Siebel components from being monitored by Germain UX, we will need to create a reference called “ExcludedComponents” on the monitor. Follow the same logic to include one.

  • Go to you monitor and click the (plus) to the right of “References”

Siebel Availability Monitor - Germain UX

  • Enter the name as “ExcludedComponents” and enter the names of the components is a comma separated list as you see below.

Configuration Reference - Germain UX

KPIs

Please go here to see KPIs for Siebel Component/Object Manager.

Dashboards

A number of dashboards are preconfigured for Siebel CRM, here are just a few main ones, but there might be more.

  • Go to Germain Workspace > Left Menu > Dashboards > All

  • Search for any “Siebel…” dashboards, such as:
    Siebel Performance
    Siebel Availability

Component: Engine

Feature Availability: 2014.1 or later

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.