3 Building a Data Exchange Connector
A Data Exchange Connector is a JMS server-based integration vehicle that helps you to build a bi-directional data exchange setup between Enterprise Manager and other management systems. The Data Exchange Connector architecture is based on open standards such as Java Message Service (JMS) and XML. This helps in facilitating easy extensibility and interoperability.
The data exchange environment necessitates creation of a data exchange hub and data exchange sessions. This chapter explains the key concepts, components, and features involved in the data exchange process.
Also provided are specific steps to integrate Enterprise Manager with Oracle Business Activity Monitoring Server (OBAM).
This chapter discusses these topics:
Introduction to the Data Exchange Connector
Typically, an enterprise may have Enterprise Manager monitoring most of the systems and services within it. However, other monitoring systems or external management systems such as the Oracle BAM server might also exist within the business environment of the enterprise. These management systems and Enterprise Manager might be collecting monitoring information that is different, yet related to the same business application. It is imperative for the business that Enterprise Manager and these external management systems co-exist and interact seamlessly.
A Data Exchange Connector effectively addresses this communication requirement by transferring data in XML format using JMS Topic or Queue messages. This is made possible by creating a data exchange hub and a data exchange session.
Figure 3-1 provides an architectural overview of the Data Exchange Connector.
Figure 3-1 Data Exchange Architecture

Enterprise Manager and External Management System
Table 3-1 explains the data requirements and purpose of data exchange between Enterprise Manager and an external management system.
Table 3-1 Data Exchange between Enterprise Manager and External Management System
Data Exchange | Requirement | Purpose |
---|---|---|
From Enterprise Manager to external management system |
|
|
|
|
|
From external management system to Enterprise Manager |
|
|
Integrating the two systems using Data Exchange Connector helps the systems to complement each other and serve business requirements effectively and economically.
Data Forwarding Frequency Options and Modes
The following list explains the normal process followed when sending data from Enterprise Manager to external management systems.
-
Real-time metric, availability, and SLA values are forwarded, as well as historical data.
-
Historical data is forwarded for the last 24 hours, 7 days, and 31 days. Historical data for the target status is sent as the percentage of time in which the target is available during the time period.
-
Metric data is forwarded in batches at scheduled intervals. In each batch, a maximum of 100 data points can be sent. An interval of two seconds is maintained between subsequent forwarding to reduce the JMS server load.
-
For a given metric, all new data points in the interval are sent to the external system. If there are no new values, no data is sent. For the initial forwarding, data points since the previous one hour are considered. One hour is the default interval, but you can configure this to a different time interval.
For example, if an outbound session is scheduled from 9:00 a.m. to 9:00 p.m. with an interval frequency of 30 minutes, initially (at 9:00 a.m.) metric values collected between 8:00 a.m. and 9:00 a.m. are forwarded. Subsequently, the metric values received in that interval are sent. So at 9:30 a.m., metric values received between 9:00 a.m. and 9:30 a.m., and at 10:00 a.m. metric values received between 9:30 a.m. and 10:00 a.m., are forwarded.
-
Alerts are sent without latency. Each outbound message only has one alert embedded in it.
-
Forwarded Service-level Agreement (SLA) data is the SLA value for the selected time period. For a 24-hour scenario, if an outbound session with an SLA metric is scheduled at January 15th at 4:00 p.m., the value forwarded is the SLA value from January 14th at 4:01 pm to January 15th at 4:00 p.m.
Data Exchange Concepts
The following sections explain the major concepts that you must understand to successfully set up a data exchange environment between Enterprise Manager and an external management system:
Data Exchange Hub
A data exchange hub is a JMS-compliant server that acts as the conduit between Enterprise Manager and an external management system. Data is sent and received between external systems and Enterprise Manager through such a hub. The hub should be configured with known JMS destination information (Outbound JMS Destinations) so that the messages can be sent and retrieved seamlessly. The Data Exchange Hub page shows a list of existing Data Exchange hubs and their related JNDI Service Provider URLs, provided that at least one hub has already been created. Examples of a hub are WebLogic Server (WLS), Oracle Containers for JEE (OC4J), and so forth.
Inbound Data Exchange Session
An inbound data exchange session is created to receive business indicators, events, or both from the data source of an external system to Enterprise Manager.
Outbound Data Exchange Session
An outbound data exchange session is created to send metric values, alerts, target availability, or a combination of them from Enterprise Manager to an external system.
The data can be sent in either of the following formats:
Normalized Message Format
In this format, data is sent in two phases.
-
Session Setup Phase — Meta information for targets and metrics such as target name, target type, metric name, and metric column are sent along with their GUIDs when the session is created in Enterprise Manager.
-
Session Execution Phase — Actual metrics are sent when the session is executed. They are tagged with the GUIDs to avoid sending redundant meta information for every message, thereby keeping the wire footprint low.
This message format is effective if the external system is backed by a persistence store, such as a database, so that it can retrieve the metadata by joining the tables when rendering the charts or reports based on GUIDs.
Denormalized Message Format
In this format, target and metric meta information is sent along with every message in the session execution phase. No messages are sent during the session setup phase. This message format is effective if the external system is not backed by a persistence store. Though each message repeats the meta information, digesting the data for charting and reporting is easier.
Message Schemas
To correctly parse and interpret the contents, it is imperative for the external system to understand the syntax and semantics of the XML messages embedded in the JMS destinations. The schema of the message varies depending on the message format (normalized or denormalized).
The same JMS destinations are used for both formats; therefore, sessions with different message formats should not run concurrently because it confuses the consumer of these messages. Oracle recommends that the sessions with different formats be run exclusively.
Data Source
Data source is a logical representation of an external system source from which business indicators or events are retrieved. A data source definition represents the following:
-
The structure and schema of the business content (business indicators) received from the external system.
-
The transport (JMS destinations) information by way of which the external data (business events and indicators) is received.
-
Associated target in Enterprise Manager to which the external data (business events and indicators) is associated.
Average Data
Besides selecting raw metrics, you can also select average metrics for intervals of 24 hours, 7 days, and 31 days. The following conditions apply:
-
The default is raw metrics per session.
-
You cannot mix and match raw data or different levels of average data per session. For a given session, all data must be raw, one of the average types, or of the same average level.
-
Alerts are always sent real-time and have no bearing for the average selection.
-
You can also send SLA and target availability using average data, expressed as a percentage.
Setting up a Data Exchange Connector
This section describes how to set up a data exchange connector. The following topics are discussed:
To get started with setting up a data exchange connector:
Creating a Data Exchange Hub
The following JMS servers are certified and supported:
-
WebLogic Server 8.1 series and above
-
OC4J 10.1.3.1 series
-
Oracle Enterprise Service Bus (OESB) 10.1.3.1 series
-
OC4J 10.1.2.0 series
Note:
The use of other third-party JMS-compliant servers may be possible, but such usage is neither certified nor supported. See Using a Third-Party JMS Server as a Data Exchange Hub for information on using a third-party JMS server.
Do the following to create a data exchange hub:
-
In the Data Exchange: Data Exchange Hub page click Create. The Create Data Exchange Hub page appears.
-
Specify a unique name for the Data Exchange hub.
-
Provide the JNDI Service Provider URL for the Data Exchange hub.
-
Select a context factory name from the list according to the matrix in Table 3-2.
Table 3-2 Context Factory Name
Hub Corresponds to ... Context Factory WebLogic Server
weblogic.jndi.WLInitialContextFactory
10.1.2.X OC4J
com.evermind.server.rmi.RMIInitialContextFactory
10.1.3.X OC4J
oracle.j2ee.rmi.RMIInitialContextFactory
Non-WebLogic Server and non-OC4j JMS Server
For third-party servers, select Other and provide a factory name in the Enter JNDI Initial Context Factory Name field.
-
Provide the user credentials to access this hub.
-
-
Configure the JMS server with the required JMS topic names and/or queue names.
Note:
-
Click OK to save the configuration and return to the Data Exchange: Data Exchange Hub page.
After you create a hub for data exchange, you can set up an outbound or inbound data exchange session.
Using a Third-Party JMS Server as a Data Exchange Hub
Caution:
The use of third-party JMS servers is uncertified and unsupported.
Although such usage is uncertified and unsupported, it is possible to use third-party JMS servers as a Data Exchange hub in a development or test scenario by performing the following procedure.
-
Copy your JMS server's JMS client libraries to the following location:
$ORACLE_HOME/middleware/oms/sysman/archives/emgc/deployments/EMGC_DOMAIN/emgc.ear/APP-INF/lib
-
Restart Cloud Control after copying the .jar file(s).
-
Create the JMS destinations according to the procedures specified for your JMS server. Refer to the list of Topics and Queues.
Creating an Outbound Data Exchange Session
Outbound JMS Destinations
Predefined topic and queue names are used to send data from Enterprise Manager to external systems through the hub. You should configure the data exchange hub with the JMS destination information specified in Table 3-3 through Table 3-9. It is not mandatory to define both topics and queues. If you always want to use the topics, for example, you can remove the queue definitions or not initially create them, and vice versa.
Example - Configuring JMS Destinations for WebLogic Server
You can use any JMS-compliant server with the Data Exchange Connector as described in this example.
To configure the JMS destinations for WebLogic Server, do the following:
-
Use the pre-packaged WLST python scripts available in the $ORACLE_HOME/sysman/bam directory.
-
Set the proper CLASSPATH before going to the next step. You can set the CLASSPATH by running setWLSEnv.sh found under ORACLE_HOME (typically in the middleware/wlserver_10.3/server/bin directory).
-
Use configEMSYSJMSSystemResource.py found in the directory in step 1 to create the required JMS topics and queues:
java weblogic.WLST comfigEMSYSJMSSystemResource.py <jndi provider URL> <username> <password> <WLS server name>
Example:
java weblogic.WLST configEMSYSJMSSystemResource.py "t3://localhost:7001" weblogic <password> AdminServer
A successful run of the script produces the following components:
-
Resources and Destinations:
-
EMSYSJMSServer for JMS Server
-
EMSYSJMSSystemResource for JMS System Resource
-
EMSYSJMSServerDeployment for sub-deployment
-
-
Connection Factories:
-
jms/EMSYSTopicConnectionFactory
-
jms/EMSYSQueueConnectionFactory
-
-
Topics:
-
jms/EMSYSTargetsTopic
-
jms/EMSYSMetricsTopic
-
jms/EMSYSAlertsDataTopic
-
jms/EMSYSMetricsDataTopic
-
jms/EMSYSSecurityFilterTopic
-
jms/EMSYSTargetStatusTopic
-
jms/EMSYSTargetSLATopic
-
jms/EMSYSMetricsDataLast24HoursTopic
-
jms/EMSYSMetricsDataLast7DaysTopic
-
jms/EMSYSMetricsDataLast31DaysTopic
-
jms/EMSYSTargetStatusLast24HoursTopic
-
jms/EMSYSTargetStatusLast7DaysTopic
-
jms/EMSYSTargetStatusLast31DaysTopic
-
jms/EMSYSTargetSLALast24HoursTopic
-
jms/EMSYSTargetSLALast7DaysTopic
-
jms/EMSYSTargetSLALast31DaysTopic
-
-
Queues:
-
jms/EMSYSTargetsQueue
-
jms/EMSYSMetricsQueue
-
jms/EMSYSAlertsDataQueue
-
jms/EMSYSMetricsDataQueue
-
jms/EMSYSSecurityFilterQueue
-
jms/EMSYSTargetStatusQueue
-
jms/EMSYSTargetSLAQueue
-
jms/EMSYSMetricsDataLast24HoursQueue
-
jms/EMSYSMetricsDataLast7DaysQueue
-
jms/EMSYSMetricsDataLast31DaysQueue
-
jms/EMSYSTargetStatusLast24HoursQueue
-
jms/EMSYSTargetStatusLast7DaysQueue
-
jms/EMSYSTargetStatusLast31DaysQueue
-
jms/EMSYSTargetSLALast24HoursQueue
-
jms/EMSYSTargetSLALast7DaysQueue
-
jms/EMSYSTargetSLALast31DaysQueue
-
-
-
Use EMSYSJMSSystemResource.py to remove and clean up the JMS destinations the script configEMSYSJMSSystemResource.py created. CLASSPATH should also be set as defined in Step 2 for the following command:
java weblogic.WLST deleteEMSYSJMSSystemResource.py <jndi provider URL> <username> <password>
Example:
java weblogic.WLST deleteEMSYSJMSSystemResource.py "t3://localhost:7001" weblogic <password>
The JMS destinations shown in Table 3-3 are used for an outbound Data Exchange session.
Table 3-3 JMS Destination for Targets
Properties | Description |
---|---|
ConnectionFactory Name |
jms/EMSYSTopicConnectionFactory or jms/EMSYSQueueConnectionFactory |
Destination Name |
jms/EMSYSTargetsTopic or jms/EMSYSTargetsQueue |
JMS Message Type |
Text message |
Description |
Target metadata information, such as target name and type are sent on this destination. |
Note:
-
For outbound sessions using Topic as Destination Type, jms/EMSYSTopicConnectionFactory and all topic versions (ms/EMSYSTargetsTopic and so forth) are used.
-
For Destination Type as Queue, jms/EMSYSQueueConnectionFactory and queue versions (jms/EMSYSTargetsQueue and so forth) are used.
Table 3-4 JMS Destination for Metrics
Properties | Description |
---|---|
ConnectionFactory Name |
jms/EMSYSTopicConnectionFactory or jms/EMSYSQueueConnectionFactory |
Destination Name |
jms/EMSYSMetricsTopic or jms/EMSYSMetricsQueue |
JMS Message Type |
Text message |
Description |
Metric metadata information, such as metric name, column, and target type are sent on this destination. |
Table 3-5 JMS Destination for Raw or Average Metric Data
Properties | Description |
---|---|
ConnectionFactory Name |
jms/EMSYSTopicConnectionFactory or jms/EMSYSQueueConnectionFactory |
Destination Name |
|
JMS Message Type |
Text message |
Description |
This destination is used to send raw or average metric values. |
Table 3-6 JMS Destination for Raw or Average Target Status
Properties | Description |
---|---|
ConnectionFactory Name |
jms/EMSYSTopicConnectionFactory or jms/EMSYSQueueConnectionFactory |
Destination Name |
|
JMS Message Type |
Text message |
Description |
This destination is used to send raw (numeric value) or average (percentage) target status information. |
Table 3-7 JMS Destination for Security Filter
Properties | Description |
---|---|
ConnectionFactory Name |
jms/EMSYSTopicConnectionFactory or jms/EMSYSQueueConnectionFactory |
Destination Name |
jms/EMSYSSecurityFilterTopic |
JMS Message Type |
Text message |
Description |
Security filter information is sent on this destination. |
Table 3-8 JMS Destination for Alert Data
Properties | Description |
---|---|
ConnectionFactory Name |
jms/EMSYSTopicConnectionFactory or jms/EMSYSQueueConnectionFactory |
Destination Name |
jms/EMSYSAlertsDataTopic |
JMS Message Type |
Text message |
Description |
Alerts are sent on this destination. |
Table 3-9 JMS Destination for Raw or Average SLA Data
Properties | Description |
---|---|
ConnectionFactory Name |
jms/EMSYSTopicConnectionFactory or jms/EMSYSQueueConnectionFactory |
Destination Name |
|
JMS Message Type |
Text message |
Description |
This destination is used to send raw or average target SLA data. Raw or average SLA metrics are only shown for Service targets. |
Outbound Message Schema
The following sections explain the outbound message schema. The schema varies depending on whether the message format is normalized or denormalized.
To avoid regressions and conflicts between different type of metric data, the XML element and target names differ for raw versus historical data. Table 3-10 shows the differences for these based on the type of granularity generated.
Table 3-10 Raw Versus Historical Data
Granularity | Metric Element Name | Target Status Element Name | SLA Target Name |
---|---|---|---|
Raw |
MetricData |
TargetStatus |
TargetSLA |
Last 24 Hours |
MetricDataLast24Hours |
TargetStatusLast24Hours |
TargetSLALast24Hours |
Last 7 Days |
MetricDataLast7Days |
TargetStatusLast7Days |
TargetSLALast7Days |
Last 31 Days |
MetricDataLast31Days |
TargetStatusLast31Days |
TargetSLALast31Days |
Normalized Message Format
The schema for outgoing messages for a normalized format is as follows:
Normalized Target Message
For each selected target, corresponding target metadata information is sent to the external system during the session setup phase. The schema of these messages is as follows:
Table 3-11 Normalized Target Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/Target |
Schema File Location |
$ORACLE_HOME/sysman/bam/OutboundTarget.xsd |
Destination |
jms/EMSYSTargetsTopic or jms/EMSYSTargetsQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="Target" type="de:TargetType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Target Type --> <xs:complexType name="TargetType"> <xs:all> <xs:element name="TargetName" type="xs:string"/> <xs:element name="TargetType" type="xs:string"/> <xs:element name="TargetGUID" type="xs:string"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/"> <Target> <TargetName>/ade/foo_core9/host1.example.com_home</TargetName> <TargetType>oc4j</TargetType> <TargetGUID>123abc456example1</TargetGUID> </Target> <Target> <TargetName>host1.example.com</TargetName> <TargetType>host</TargetType> <TargetGUID>123abc456example2</TargetGUID> </Target> </de:EMSYSData> |
Normalized Metric Message
For each selected metric, corresponding metric metadata information is sent to the external system during the session setup. The schema of these messages is as follows:
Table 3-12 Normalized Metric Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/Metric |
Schema File Location |
$ORACLE_HOME/sysman/bam/OutboundSecurityFilter.xsd |
Destination |
jms/EMSYSMetricsTopic or jms/EMSYSMetricsQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="Metric" type="de:MetricType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Metric Type --> <xs:complexType name="MetricType"> <xs:all> <xs:element name="MetricName" type="xs:string"/> <xs:element name="MetricType" type="xs:string"/> <xs:element name="MetricGUID" type="xs:string"/> <xs:element name="MetricColumn" type="xs:string" minOccurs="0"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/"> <Metric> <MetricColumn>DiskActivityavserv</MetricColumn> <MetricGUID>123abc456example1</MetricGUID> <TargetType>host</TargetType> <MetricName>DiskActivity</MetricName> </Metric> <Metric> <MetricColumn>cpuUtil</MetricColumn> <MetricGUID>123abc456example2</MetricGUID> <TargetType>host</TargetType> <MetricName>Load</MetricName> </Metric> </de:EMSYSData> |
Normalized Security Filter Message
External systems that consume data from Enterprise Manager can enforce access control based on the session name. This can be achieved by capturing the security filter. The schema of these security filter messages is as follows:
Table 3-13 Normalized Security Filter Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/SecurityFilter |
Schema File Location |
$ORACLE_HOME/sysman/bam/OutboundMetric.xsd |
Destination |
jms/EMSYSSecurityFilterTopic or jms/EMSYSSecurityFilterQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="SecurityFilter" type="de:SecurityFilterType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Security Filter Type --> <xs:complexType name="SecurityFilterType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="UserName" type="xs:string"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/"> <SecurityFilter> <SessionName>LoanSession</SessionName> <UserName>LoanAdminUser</UserName> </SecurityFilter> </de:EMSYSData> |
Normalized Metric Data Message
In the normalized message format, the metrics are sent along with the GUIDs to avoid sending meta information for every message. The schema of this metric message is as follows:
Table 3-14 Normalized Metric Data Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/MetricData |
Schema File Location |
$ORACLE_HOME/sysman/bam/ OutboundNormalizedMetricsData.xsd |
Destination |
jms/EMSYSMetricsDataTopic or jms/EMSYSMetricsDataQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="MetricData" type="de:MetricDataType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Metric Data Type --> <xs:complexType name="MetricDataType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetGUID" type="xs:string"/> <xs:element name="MetricGUID" type="xs:string"/> <xs:element name="Timestamp" type="xs:dateTime"/> <xs:element name="Value" type="xs:float" minOccurs="0"/> <xs:element name="StringValue" type="xs:string" minOccurs="0"/> <xs:element name="KeyValue" type="xs:string" minOccurs="0"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/ 10203/OutboundData/"> <MetricDataLast24Hrs> <MetricGUID>123abc456example1</MetricGUID> <Value>0.67</Value> <Timestamp>07/13/2012 14:44:42</Timestamp> <SessionName>Session1</SessionName> <TargetGUID>123abc456example2</TargetGUID> </MetricDataLast24Hrs> </de: EMSYSData > |
Normalized Alert Message
In the normalized message format, the alerts are sent along with the GUIDs to avoid sending meta information for every message. The schema of this alert message is as follows:
Table 3-15 Normalized Alert Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/Alert |
Schema File Location |
$ORACLE_HOME/sysman/bam/ OutboundNormalizedAlertsData.xsd |
Destination |
jms/EMSYSAlertsDataTopic or jms/EMSYSAlertsDataQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="Alert" type="de:AlertType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Alert Type --> <xs:complexType name="AlertType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetGUID" type="xs:string"/> <xs:element name="MetricGUID" type="xs:string"/> <xs:element name="Timestamp" type="xs:dateTime"/> <xs:element name="Severity" type="xs:string"/> <xs:element name="Value" type="xs:float" minOccurs="0"/> <xs:element name="Message" type="xs:string" minOccurs="0"/> <xs:element name="KeyValue" type="xs:string" minOccurs="0"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/ /10203/OutboundData/"> <Alert> <MetricGUID>123abc456example1</MetricGUID> <Value>25.35</Value> <Message>CPU Utilization is 25.35%, crossed warning (15) or critical (95) threshold.</Message> <Severity>Warning</Severity> <Timestamp>07/13/2012 14:59:42</Timestamp> <SessionName>Session9</SessionName> <TargetGUID>123abc456example2</TargetGUID> </Alert> </de:EMSYSData |
List of Severities
-
CLEAR
-
INFO
-
WARNING
-
CRITICAL
-
AGENT UNREACHABLE CLEAR
-
AGENT UNREACHABLE START
-
BLACKOUT END
-
BLACKOUT START
-
METRIC ERROR END
-
METRIC ERROR START
Normalized Target Availability Message
The schema of a normalized target availability information message is as follows:
Table 3-16 Normalized Target Availability Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/TargetStatus |
Schema File Location |
$ORACLE_HOME/sysman/bam/OutboundNormalizedTargetStatus.xsd |
Destination |
jms/EMSYSTargetStatusTopic or jms/EMSYSTargetStatusQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="TargetStatus" type="de:TargetsStatusType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Target Status Type --> <xs:complexType name="TargetStatusType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetGUID" type="xs:string"/> <xs:element name="Status" type="xs:integer"/> <xs:element name="Timestamp" type="xs:dateTime"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203 /OutboundData/"> <TargetStatusLast7Days> <Status>1</Status> <Timestamp>07/11/2012 16:21:53</Timestamp> <SessionName>Session1</SessionName> <TargetGUID>123abc456example1</TargetGUID> </TargetStatusLast7Days> </de:EMSYSData> |
Possible status values are provided in the following table:
Value | Status |
---|---|
1 |
Target is up and reachable |
-1 |
|
0 |
|
Normalized Target SLA Message
The schema of a normalized target SLA information message is as follows:
Table 3-17 Normalized Target SLA Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/TargetSLA |
Schema File Location |
$ORACLE_HOME/sysman/bam/OutboundNormalizedTargetSLA.xsd |
Destination |
jms/EMSYSTargetSLATopic or jms/EMSYSTargetSLAQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <!-- Schema for Normalized Outbound Target Status message --> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/ DataExchange/10203/OutboundData/"xmlns:de="http://xmlns.oracle.com/ EnterpriseManager/DataExchange/10203/OutboundData/ " xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- Define the root element --> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root type --> <xs:complexType name="EMSYSDataType"> <!-- Zero or more TargetSLA elements --> <xs:sequence> <xs:element name="TargetSLA" type="de:TargetSLAType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the TargetSLA Type --> <xs:complexType name="MetricDataType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetGUID" type="xs:string"/> <xs:element name="SLA" type="xs:integer"/> <xs:element name="Timestamp" type="xs:dateTime"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<?xml version="1.0" encoding="UTF-8"?> <!-- Schema for Normalized Outbound Target Status message --> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/ DataExchange/10203/OutboundData/"xmlns:de="http://xmlns.oracle.com/ EnterpriseManager/DataExchange/10203/OutboundData/ " xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- Define the root element --> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root type --> <xs:complexType name="EMSYSDataType"> <!-- Zero or more TargetSLA elements --> <xs:sequence> <xs:element name="TargetSLA" type="de:TargetSLAType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the TargetSLA Type --> <xs:complexType name="MetricDataType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetGUID" type="xs:string"/> <xs:element name="SLA" type="xs:integer"/> <xs:element name="Timestamp" type="xs:dateTime"/> </xs:all> </xs:complexType> </xs:schema> <de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203 /OutboundData/"> <TargetStatusLast7Days> <Status>1</Status> <Timestamp>07/11/2012 16:21:53</Timestamp> <SessionName>Session1</SessionName> <TargetGUID>123abc456example1</TargetGUID> </TargetStatusLast7Days> </de:EMSYSData> |
Denormalized Message Format
Following sections describe the schema for the outgoing messages for denormalized format.
Denormalized Metric Data Message
Schema of a denormalized metric data message is as follows:
Table 3-18 Denormalized Metric Data Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/MetricData |
Schema File Location |
$ORACLE_HOME/sysman/bam/ OutboundDenormalizedMetricsData.xsd |
Destination |
jms/EMSYSMetricsDataTopic or jms/EMSYSMetricsDataQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="MetricData" type="de:MetricDataType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Metric Data Type --> <xs:complexType name="MetricDataType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetName" type="xs:string"/> <xs:element name="TargetType" type="xs:string"/> <xs:element name="MetricName" type="xs:string"/> <xs:element name="MetricColumn" type="xs:string" minOccurs="0"/> <xs:element name="Timestamp" type="xs:dateTime"/> <xs:element name="Value" type="xs:float" minOccurs="0"/> <xs:element name="StringValue" type="xs:string" minOccurs="0"/> <xs:element name="KeyValue" type="xs:string" minOccurs="0"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/"> <MetricDataLast24Hours> <SessionName>Session1</SessionName> <TargeName>OC4J 10.1.3</TargetName> <TargetType>generic_service</TargetType> <MetricName>Usage Value</MetricName> <Timestamp>2001-12-17T09:30:47-05:00</Timestamp> <Value>3.14159</Value> </MetricDataLast24Hours> </EMSYSData> |
Denormalized Alert Message
Schema of a denormalized alert message is as follows:
Table 3-19 Denormalized Alert Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/Alert |
Schema File Location |
$ORACLE_HOME/sysman/bam/ OutboundDenormalizedAlertsData.xsd |
Destination |
jms/EMSYSAlertsDataTopic or jms/EMSYSAlertsDataQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="Alert" type="de:AlertType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Alert Type --> <xs:complexType name="AlertType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetName" type="xs:string"/> <xs:element name="TargetType" type="xs:string"/> <xs:element name="MetricName" type="xs:string"/> <xs:element name="MetricColumn" type="xs:string" minOccurs="0"/> <xs:element name="Timestamp" type="xs:dateTime"/> <xs:element name="Severity" type="xs:string"/> <xs:element name="Value" type="xs:float" minOccurs="0"/> <xs:element name="Message" type="xs:string" minOccurs="0"/> <xs:element name="KeyValue" type="xs:string" minOccurs="0"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/"> <Alert> <SessionName>Session9</SessionName> <TargeName>OC4J 10.1.3</TargetName> <TargetType>generic_service</TargetType> <MetricName>Usage Value</MetricName> <Value>25.35</Value> <Message>CPU Utilization is 25.35%, crossed warning (15) or critical (95) threshold.</Message> <Severity>Warning</Severity> <Timestamp>07/13/2012 14:59:42</Timestamp> </Alert> </de:EMSYSData> |
Denormalized Target Availability Message
Schema of a denormalized target availability message is as follows:
Table 3-20 Denormalized Target Availability Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/TargetStatus |
Schema File Location |
$ORACLE_HOME/sysman/bam/ OutboundDenormalizedTargetStatus.xsd |
Destination |
jms/EMSYSTargetStatusTopic or jms/EMSYSTargetStatusQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root element --> <xs:complexType name="EMSYSDataType"> <xs:sequence> <xs:element name="TargetStatus" type="de:TargetStatusType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Target Status Type --> <xs:complexType name="TargetStatusType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetName" type="xs:string"/> <xs:element name="TargetType" type="xs:string"/> <xs:element name="Status" type="xs:integer"/> <xs:element name="Timestamp" type="xs:dateTime"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/"> <TargetStatus> <Status>1</Status> <Timestamp>07/11/2012 16:21:53</Timestamp> <SessionName>Session1</SessionName> <TargeName>OC4J 10.1.3</TargetName> <TargetType>generic_service</TargetType> </TargetStatus> </de:EMSYSData> |
Denormalized Target SLA Message
The schema of a denormalized target SLA information message is as follows:
Table 3-21 Denormalized Target SLA Message
Elements and Sample | Description |
---|---|
Path Expression |
EMSYSData/TargetSLA |
Schema File Location |
$ORACLE_HOME/sysman/bam/OutboundDenormalizedTargetSLA.xsd |
Destination |
jms/EMSYSTargetSLATopic or jms/EMSYSTargetSLAQueue |
Schema |
<?xml version="1.0" encoding="UTF-8"?> <!-- Schema for Denormalized Outbound Target Status message --> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/ DataExchange/10203/OutboundData/" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/ 10203/OutboundData/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- Define the root element --> <xs:element name="EMSYSData" type="de:EMSYSDataType"/> <!-- Define the root type --> <xs:complexType name="EMSYSDataType"> <!-- zero or more target status elements --> <xs:sequence> <xs:element name="TargetSLA" type="de:MetricDataType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Define the Target Status Type --> <xs:complexType name="TargetSLAType"> <xs:all> <xs:element name="SessionName" type="xs:string"/> <xs:element name="TargetName" type="xs:string"/> <xs:element name="TargetType" type="xs:string"/> <xs:element name="SLA" type="xs:integer"/> <xs:element name="Timestamp" type="xs:dateTime"/> </xs:all> </xs:complexType> </xs:schema> |
Sample |
<de:EMSYSData xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/OutboundData/"> <TargetSLA> <SLA>100</SLA> <Timestamp>07/11/2012 16:21:53</Timestamp> <SessionName>Session1</SessionName> <TargeName>OC4J 10.1.3</TargetName> <TargetType>generic_service</TargetType> </TargetSLA> </de:EMSYSData> |
Tuning Outbound Session Message Parameters
You can tune outbound session message parameters using the emctl command, as shown in Table 3-22.
Note:
For the parameters to become effective, you need to restart OMS after setting the properties.
Table 3-22 Tuneable Outbound Session Message Parameters
Property Name | Default Value | Semantics |
---|---|---|
oracle.sysman.core.dataExchange.MaxData PointsPerMessage |
100 |
Number of metric data points within a message. |
oracle.sysman.core.dataExchange.Interval BetweenMessage |
2 seconds |
Time gap between subsequent JMS messages in seconds. |
oracle.sysman.core.dataExchange.FirstDatasetWindow |
60 minutes |
When sending the first message, date for the past first set data window is sent. The unit is in minutes. |
Example 3-1 Command Syntax for Tuning Outbound Session Message Parameters
emctl {set property|get property} {oracle.sysman.core.dataExchange.MaxDataPointsPerMessage | oracle.sysman.core.dataExchange.IntervalBetweenMessage | oracle.sysman.core.dataExchange.FirstDatasetWindow}
You need to restart OMS after the properties have been set to be effective.
Creating an Inbound Data Exchange Session
Inbound JMS Destinations
Unlike the outbound data exchange setup wherein pre-defined topics and queues are used to send Enterprise Manager data, no pre-defined topics or queues are used to receive business performance indicators and events.
However, you should configure the JMS topics or queues used for the data sources in the JMS server used for inbound data exchange session.
Inbound Message Schemas
The following sections define the inbound message schemas. Samples messages are provided along with each schema.
Inbound Indicators Schema
After creating the session, the sender can forward the data in XML format using the data exchange hub through the JMS destinations defined in the inbound data exchange session.
Messages can be either namespace qualified or unqualified. If the messages are namespace qualified, the namespace should be entered during the data source setup time.
Qualified XML Message Sample
<po:PurchaseOrder xmlns:po:"http://example.com/Orders"> <OrderAmount>5000</OrderAmount> <NoOfItems> 15 </NoOfItems> </po:PurchaseOrder>
Unqualified XML Message Sample
<PurchaseOrder> <OrderAmount>5000</OrderAmount> <NoOfItems> 15 </NoOfItems> </PurchaseOrder>
Message Semantics
The incoming messages should follow the semantics provided below:
-
The local name of the top-level element should be same as the data source name as in Example 3-2.
-
If the message is qualified, the namespace should be defined during the data source setup time.
-
One or more indicators can be sent as child elements within this element as in Example 3-2.
-
A sub-element with the Timestamp as the name has special semantics. If a sub-element with the Timestamp name exists, the indicators are inserted with this Timestamp value. If no Timestamp element exists, the current time is used when inserting the indicator into the repository.
For example, if the request is received as follows with the Timestamp sub-element, the indicators are inserted with this timestamp (2012-09-30 17:43:19.474):
<po: PurchaseOrder xmlns:po:"http://example.com/Orders"> <OrderAmount>5000</OrderAmount> <NoOfItems> 15 </NoOfItems> <Timestamp>2012-10-30 17:43:19.474</Timestamp> </po: PurchaseOrder>
If no Timestamp sub-element is present, the indicators are inserted to the repository with the current timestamp at which they are received.
Example 3-2 Data Source Scenario
You create a Data Source for the incoming business indicators with the Data Source name Order
. You add the following three KPIs:
-
OrderAmount
-
NoOfItems
-
Credit
In this case, the incoming XML message should be in the following format:
<Order> <OrderAmount>35</OrderAmount> <NoOfItems>102</NoOfItems> <Credit>72</Credit> <Timestamp>2007-01-16 16:29:00.978</Timestamp> </Order>
Note:
In the example, the local name of the top-level element should be same as the Data source name
<Order>
.Also, the indicators such as
Credit
are sent as child elements with the same name.
Message Element Defaults
-
If
TargetName
andTargetType
are part of the message, they should match the target name and type for the associated target (for that data source). -
If
TargetName
is not part of the message, it defaults to the target to which the data source was associated. -
If
TargetType
is not part of the message, it defaults to the target type of the target. -
If
Timestamp
is not included in the message, it defaults to the current timestamp. -
If
Category
is not included in the message, it defaults to the categoryGenericExternalAlertMetric
. -
If
MetricName
is not included in the message, it defaults to the Alert metric. -
ProducerID
is optional for the categoriesGenericExternalAlertMetric
andMetric
.However, producer ID is needed for user-defined metrics. In this case,
ProducerID
should be same as the metric author.
Inbound Alert Schema
External systems can send their own alerts/events to Enterprise Manager for display in the Enterprise Manager pages and be computed as part of SLA.
This schema is available in the following location:
$ORACLE_HOME/sysman/bam/InboundEvents.xsd
The schema of the incoming Alert message is as follows:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/InboundEvents/" xmlns:de="http://xmlns.oracle.com/EnterpriseManager/DataExchange/10203/InboundEvents/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- Define the Alert element --> <xs:element name="Alert" type="de:AlertType"/> <!-- Define the Alert Type --> <xs:complexType name="AlertType"> <xs:all> <xs:element name="TargetType" type="xs:string" minOccurs="0"/> <xs:element name="TargetName" type="xs:string" minOccurs="0"/> <xs:element name="Category" type="xs:string" minOccurs="0"/> <xs:element name="MetricName" type="xs:string" minOccurs="0"/> <xs:element name="ProducerID" type="xs:string" minOccurs="0"/> <xs:element name="Severity" type="xs:string"/> <xs:element name="Message" type="xs:string" minOccurs="0"/> <xs:element name="Key1" type="xs:string" minOccurs="0"/> <xs:element name="Key2" type="xs:string" minOccurs="0"/> <xs:element name="Key3" type="xs:string" minOccurs="0"/> <xs:element name="Key4" type="xs:string" minOccurs="0"/> <xs:element name="Value" type="xs:string" minOccurs="0"/> <xs:element name="TimeStamp" type="xs:dateTime" minOccurs="0"/> </xs:all> </xs:complexType> </xs:schema>
Using an OC4J as a Data Exchange Hub
To use an OC4J as a data exchange hub instead of WebLogic Server, perform the following steps:
Tips and Troubleshooting Information
The following sections provide various tips and troubleshooting information that might help in resolving various issues you encounter during the data exchange process:
Data Exchange Hub Connection Errors
A data exchange hub connection created in Cloud Control can error out due to authentication issues. These errors can appear in the following places:
-
Cloud Control log files
-
Cloud Control data exchange pages. For example:
An error occurred while verifying the Data Exchange hub <hub_name>: You are not authorized to access the Data Exchange hub. The <session_name> session was not created successfully.
-
Data exchange hub logs, such as an OC4J container error from OC4J logs. For example:
2008-01-29 17:37:28.259 NOTIFICATION J2EE RMI-00004 Invalid username or password for default (oc4jadmin). Authentication failed. 08/02/28 17:37:28 INFO: RMIProto .readConnectionHeader Local ORMI version = 1. 3 different from remote version 1.1 will use 1.1 2008-01-29 17:37:28.290 ERROR [RealmLoginModule] authentication failed
Follow these steps to resolve the connection problem:
-
Make sure the username/password combination is correct for the data exchange hub. You can check this with client programs, such as JDeveloper or a JMS client.
-
Recreate the Data Exchange hub connection entry in Cloud Control as follows:
-
Log in to Cloud Control as a super user/administrator.
-
From Enterprise Manager Cloud Control, click Setup.
The setup links appear in the left margin.
-
Click Data Exchange.
The Data Exchange page appears.
-
In the Data Exchange Hub tab, select the hub connection and click Delete.
-
Create a new Data Exchange hub. See Creating a Data Exchange Hub.
-
Notification Methods and Rules
Note:
The verifications suggested in this section are meant for troubleshooting purposes and not for modification. Updating notification methods or rules can result in undesirable consequences.
The following sections are described:
Notification Method
For each data hub used for an outbound session, a new notification method is created. The name of the method is hub_name
NotifDevice
, where hub_name
is the name of the data hub for which the method is created.
Data Flow Tips
-
Ensure that the following JNDI details are correctly entered for the Data Hub you use:
-
JNDI URL
-
Username
-
Password
-
-
For an inbound session setup, do not provide JNDI credentials for JMS in the data source definitions.
If the JMS topic or queue is secured by providing authentication details, provide the username and password. If not, leave the fields blank.
-
Ensure that the JMS server is up and running and configured with the required JMS topic and queue names.
-
Ensure that either an inbound or outbound session is scheduled and is running.
-
For an inbound session data source, to ensure that the topic details are correctly entered, click Test Connection.
-
Using the same topic or queue name for two active inbound sessions could result in corrupted data.
-
Frequency for an inbound session should either be synchronized with or relative to the frequency at which the external system sends data.
For example, setting the inbound session frequency to 2 minutes is ineffective if the external system sends data only once in 10 minutes.
-
For an outbound session, ensure that Receiver or EL Plans (in the case of Oracle BAM) are running.
-
To improve efficiency, outbound session schedule frequency should be relative or synchronized with the frequencies at which Enterprise Manager collects the metrics defined in the session.
For example, in Enterprise Manager, if the collection frequency for metrics defined in the outbound session is 5 minutes, setting a lesser outbound frequency (one minute, for instance) is ineffective, as the possibility of new data is remote. In such cases, setting the outbound frequency to 5 or 10 minutes would be effective.
Note that only new metric values (if any) are forwarded.
-
Do not schedule two or more outbound sessions with different message formats at the same time.
-
Unless a lower frequency level is absolutely required, always set higher frequency intervals. This helps to reduce the Enterprise Manager/JMS server load.
End-to-End Flow Sample Demonstrations
For the convenience of integrators, Oracle provides sample demonstrations detailing the end-to-end data flow. To access the demonstrations, go to the following directory:
$ORACLE_HOME/sysman/bam
Instructions for an outbound session sample are provided in the file outboundsession_sample_readme.txt
. You can create the report required for the demonstration by importing the file outboundsession_report.xml
as detailed in the readme file.
Instructions for an inbound session sample are provided in the file inboundsession_sample_readme.txt
. You can create the artifacts required for the demonstration by importing the file inboundsession.xml
as detailed in the readme file.
Suggested Reading
The following list provides online resources that can help you effectively use all associated technologies involved in the data exchange process.
-
Oracle Business Activity Monitoring:
https://www.oracle.com/middleware/technologies/business-activity-monitoring.html
-
Java Message Service
-
Java Message Service Concepts:
http://docs.oracle.com/javaee/6/tutorial/doc/bncdq.html
-
Java Message Service Specification:
https://java.net/projects/jms-spec/pages/Home
-