MongoDB Aggregation Pipeline Optimization

The Aggregation Pipeline Optimization helps in improving the overall pipeline performance. The Aggregation operations passes through the optimization phase where the MongoDB optimizer transforms the aggregation pipeline using the explain option and db.collection.aggregate() method.

Aggregation Pipeline Optimization Types

The below given are the optimization types available for Aggregation Pipeline:

  • Project Optimization
  • Pipeline Sequence Optimization
  • Pipeline Coalescence Optimization

Aggregation Pipeline – Project Optimization

The Project Optimization approach allows to determine if the subset of fields in the documents can help in achieving the required results and thus reduces the field data to be passed for the aggregation pipeline

Aggregation Pipeline –  Pipeline Sequence Optimization

The Pipeline sequence optimization allows to perform optimization on the aggregation pipeline which includes projection stage or sequence followed by $match operation. The below given are the possible pipeline sequence optimization types :

($project or $unset or $addFields or $set) + $match Sequence Optimization
  • The aggregation pipeline which includes projection stage ($project or $unset or $addFields or $set )  followed by $match operation
  • The aggregation pipeline could have multiple projection stages
  • There could be multiple $match stage including match filters
  • MongoDB performs optimization by executing $match filters before the projection stage which does not depend

 Consider the Aggregation Pipeline Stages with Sequence Optimization. The $match filter is applied at the end on the required fields from the projection stage . In such cases when the data volume is large , more processing time is consumed and $match filter is applied on the complete document data.

{ $addFields: {
maxSalary: { $max: "$salary" },
minSalary: { $min: "$salary" }
} },
{ $project: {
_id: 1, name: 1, times: 1, maxSalary: 90000, minSalary: 10000,
avgSalary: { $avg: ["$maxSalary", "$minSalary"] }
} },
{ $match: {
name: "Mohit Sharma",
maxSalary: { $lt: 90000},
minSalary: { $gt: 20000 },
avgSalary: { $gt: 45000 }
} }

Now, lets apply the $match filters on the fields which are not dependent on the Projection stage field data to apply sequence optimization 

{ $match: { name: "Mohit Sharma"} },
{ $addFields: {
maxSalary: { $max: "$salary" },
minSalary: { $min: "$salary" }
} },
{ $match: { maxSalary: { $lt: 90000 }, minSalary: { $gt: 20000 } } },
{ $project: {
_id: 1, name: 1, times: 1, maxSalary: 90000, minSalary: 10000,
avgSalary: { $avg: ["$maxSalary", "$minSalary"] }
} },
{ $match: { avgSalary: { $gt:45000 } } }

Multiple $ match filters are applied to filter the stage data based on Name, filter the stage data based on minSalary and maxSalary  and then $match filter which applicable on projection stage data.  

Here , each $match filter is reducing the document which are not applicable based on $match filter and thus improves the overall performance for the aggregation pipeline.

$sort + $match Sequence Optimization

If a sequence with $sort is followed by a $match, the $match moves before the $sort to minimize the No. of objects to sort

Consider the example of MongoDB Aggregation pipeline stage with $sort

{ $sort: { salary : -1 } },
{ $match: { status: 'Active' } }
After the optimization phase
{ $match: { status: 'Active' } },
{ $sort: { salary : -1 } }
$redact + $match Sequence Optimization
  • If the MongoDB aggregation pipeline has the $redact stage followed by $match stage, then it allows the aggregation move the portion of the $match stage before the $redact stage.
  • If  $match stage is added at the start of a pipeline, then aggregation can use an index or can query the collection to filter the documents in the pipeline

Consider the example of MongoDB Aggregation pipeline with below given stage

{ $redact: { $cond: { if: { $eq: [ "$Role", 5 ] }, then: "MANAGER", else: "DEVELOPER" } } },
{ $match: { department: "Finance", location: { $eq: "USA" } } }

In the optimization phase, the MongoDB optimizer transforms it to :


{ $match: { department: "Finance"} },
{ $redact: { $cond: { if: { $eq: [ "$Role", 5 ] }, then: "MANAGER", else: "DEVELOPER" } } },
{ $match: { department: "Finance", location: { $eq: "USA" } } }
$project/$unset + $skip Sequence Optimization

In this case of sequence optimization if a sequence with $project or $unset followed by $skip, then $skip moves before the $project

Consider the example of MongoDB aggregation pipeline with below given stages:

{ $sort: { salary : -1 } },
{ $project: { status: "Active" , name: 1 } },
{ $skip: 5 }

In the optimization phase, the MongoDB optimizer transforms it to :

{ $sort: { salary : -1 } },
{ $skip: 5 },
{ $project: { status: "Active" , name: 1 } }

 

Aggregation Pipeline –  Pipeline Coalescence Optimization

In this optimization scenario, the coalescence occurs after any sequence ordering optimization by placing a pipeline stage before its predecessor.


{ $sort : { age : -1 } },
{ $project : { age : 1, status : 1, name : 1 } },
{ $limit: 5 }

The optimizer calescence the $limit with $sort 

{
"$sort" : {
"sortKey" : {
"id" : -1,
},
"limit" : NumberLong(5)
}
},
{ "$project" : {
"id" : 1,
"status" : "OPEN",
"name" : 1
}
}
$sort + $limit Coalescence

Consider an scenario where a $sort precedes a $limit, then optimizer can coalesce the $limit into the $sort if no intervening stages (e.g. $unwind, $group) modify the number of documents

$limit + $limit Coalescence

Consider an scenario where a $limit is followed by $limit, then both $limit stages can coalesce into a single $limit considering the smaller amount from the two $limit

{ $limit: 5},
{ $limit: 12 }

The optimizer coalesce into a single $limit with the smaller $limit value

{ $limit: 5}
$skip + $skip Coalescence

Consider an scenario where a $skip is followed by $skip, then both $skip stages can coalesce into a single $skip 

{ $skip: 1 },
{ $skip: 7 }

The optimizer coalesce into a single $skip where the skip amount 8 is the sum of the two initial limits 1 and 7

{ $skip: 8}
$match + $match Coalescence

Consider an scenario where a $match is followed by $match, then both $match stages can coalesce into a single $match with an $and

{ $match: { course: "Data Science" } },
{ $match: { status: "Enrolled" } }

The optimizer coalesce into a single $match with an $and

{ $match: { $and: [ { course: "Data Science" }, { "status" : "Enrolled" } ] } }
$lookup + $unwind Coalescence

Consider an example where a $unwind is followed by $lookup and operates on the as field of the $lookup, then optimizer coalesce the $unwind into the $lookup stage to avoid large document creation

{
$lookup: {
from: "FacultyCollectionData",
as: "resultingArray",
localField: "StudentCourse",
foreignField: "AssignedFaculty"
}
},
{ $unwind: "$resultingArray"}

The optimizer coalesce the $unwind into the $lookup stage

{
$lookup: {
from: "FacultyCollectionData",
as: "resultingArray",
localField: "StudentCourse",
foreignField: "AssignedFaculty",
unwinding: { preserveNullAndEmptyArrays: false }
}
}
$sort + $skip + $limit Sequence

Consider a pipeline contains a sequence of $sort followed by a $skip followed by a $limit

{ $sort: { age : -1 } },
{ $skip: 10 },
{ $limit: 5 }

Then optimizer will transforms it into:

{
"$sort" : {
"sortKey" : {
"age" : -1
},
"limit" : NumberLong(15)
//MongoDB increases the $limit amount with the $skip amount when uses reordering

}
},
{
"$skip" : NumberLong(10)
}

 

 


Top 35 Oracle Service Bus (OSB) interview questions -Set 2

The blog provides the commonly asked Oracle Service Bus (OSB) Interview questions & answers to be helpful for beginners and experienced professionals.

What is the purpose of stages in Oracle Service Bus (OSB) ?

Stages are OSB Message Flow component used to contain the actions

What type of exceptions are handled by BPEL Transport Error Handling in Oracle Service Bus (OSB) ?

The BPEL Transport provides the support to communicate with the Oracle BPEL Process Manager and handles the below given exceptions:

  • Application Errors: 
  • Connection Errors
  • Other Errors

Which option to be enabled in Transport Configuration for Application retry in Oracle Service Bus (OSB) ?

The Retry Application Errors option on the transport configuration page to turn
application retries on and off

What are Routing Nodes in Oracle Service Bus (OSB) ?

The below given actions are performed by the Routing Node:

  • The Route Node is the last node in the Proxy Service
  • The Routing Node is used to route the message from Business Service and handle the response received 
  • Container for routing options are  Routing, Dynamic Routing, and Routing Table

What is Routing Table in Oracle Service Bus (OSB) ? 

The Routing Table performs the below given actions:

  • The Routing Table allows to select different routes based upon the result of a single XQuery expression
  • The Routing Table provides the set of routes wrapped in a switch-style condition table
  • Each Route includes one Routing

What is Dynamic Routing in Oracle Service Bus (OSB) ?

The Dynamic Routing is used when it is not known which service is to be invoked and to be determined at run-time of the pipeline. The dynamic routing performs the below given actions:

  • The dynamic routing is applicable for Abstracts WSDLs only
  • The Proxy Service or Business Service using the Abstract WSDL can be included for dynamic routing
  • If isProxy is set to True, the Dynamic Routing is enabled for Proxy Service
  • If isProxy is set to False, the Dynamic Routing is enabled for Business Service
<ctx: route>
<ctx: service isProxy='false'> {$routingtable/row[logical/text()=
$logicalidentifier]/physical/text()}
</ctx: service>
</ctx: route>

What are the Transport Exception Connection Errors ?

  • Naming Exception
  • Remote Exception

What is the purpose of “MessageID” or “Relates To” in Oracle Service Bus (OSB) ?

“MessageID” and “RelatesTo” are used for storing the conversation ID between Service Bus and Oracle BPEL Process Manager and ensures that all related messages
remain in the same conversation

What is the Publishing Node ? 

The Publishing Node is used to identify the target service and to configure how the message is packaged and sent to the service

What is the Publishing Table ?

The Publishing Table is used to publish a message to Zero or more  specified target services

What is Throttling in Oracle Service Bus (OSB) ?

Throttling in OSB  is termed as “regulate the flow” and helps in controlling the number of requests sent to target service

What is VETRO concept in Oracle Service Bus (OSB)?

VETRO stands for
V – Virtualization/Validation
E – Enrichment
T – Transform
R – Route
O – Operate

Which action can be used to move from one stage to another stage other than conditional logic in OSB?

The OSB provides the Skip Action which can be used at the end of the stage to move to another stage without using the conditional logic (if-then-else)

Is it possible to connect to Database without using JCA adapter ?

XQuery execute-sql() function can be used to connect to database but recommended approach is to use JCA Adapter to Database Connectivity.

How Parallel processing of the message can be achieved in Oracle Service Bus (OSB) ?

OSB provides Spilt – Join for Parallel Processing of the message. 

How the File Polling can be achieved in Oracle Service Bus (OSB) ?

The Oracle Service Bus provides the File Transport  with the usage of below given components for file polling process

  • File Mask
  • Polling Interval
  • Read Limit
  • Post Read Action

What operations can be performed using File Transport / FTP Transport when used with Proxy Service and Business Service in OSB ?

The File Transport / FTP Transport can be used for both Proxy Service and Business Service

The File Transport / FTP Transport with Proxy Service is used for Reading the Files.

The File Transport / FTP Transport with Business Service is used for Writing the Files.

What nodes can be used for reporting in Oracle Service Bus (OSB) ?

The reporting in OSB can be done using the below nodes:

  • Alert
  • Log
  • Report

What nodes can be used for Flow Control in Oracle Service Bus (OSB) ?

The Flow Control in OSB can be done using the below nodes:

  • For Each
  • If Then
  • Raise Error
  • Reply
  • Skip
  • Resume

What nodes can be used for routing  in Oracle Service Bus (OSB) ?

The Routing in OSB can be done using the below nodes:

  • Routing
  • Dynamic Routing
  • Routing Table

What nodes can be used for Message Flow in Oracle Service Bus (OSB) ?

The Message Flow  in OSB can be done using the below nodes:

  • Pipeline Pair
  • Conditional Branch
  • Operational Branch
  • Stage
  • Route
  • Error Handler

Does OSB supports Global Variable in the Proxy Service Message Flow to be accessed by another Proxy Service? 

No, The Message Flow variable are restricted to the same Proxy Service.

What are the types of Split-Join in Oracle Service Bus (OSB) ?

The Split-Join can be categorized in 2 types:

  • Static 
  • Dynamic

Does multiple route nodes supported in Oracle Service Bus (OSB) ?

No, The message flow is always associated to single Route nodes to pass the message to the Defined Business Service and get the response back.

Does OSB supports Meta Data Store (MDS) ? 

No

Does OSB supports Domain Value Map (DVM) ?

No

Does OSB provides the supports for securing the web services ? 

Yes, OSB services can be secured using OWSM policies.

How the secured web services be invoked from OSB ? 

The OSB Client Policy need to be used to invoke the secured web services? 

How the OSB Services can be applied with security policies ?

The OSB Service Policy can be applied to Proxy Service for enforcing OWSM Policies

In which scenario Service Account should be used in Oracle Service Bus (OSB) ? 

The service which are enabled with the static authentication are invoked using the service account

Does OSB supports the invocation for the Restful Services ?

Yes, Restful Services can be invoked from OSB

What is SLA alert in Oracle Service Bus (OSB)?

SLA in Oracle Service Bus stands for the ‘Service Level Agreement’ which is a contract between the Service Provider and the Service Consumer. The violation of the SLA results in SLA Alert in OSB

Does OSB supports moving large files without reading the content ? 

Yes, the Content Steaming Option in the File Transport can be used for moving large file in OSB

Does OSB allows to expose Business Service to External Services for invocation ?

No, Business Services can not be exposed. The external services can invoke the exposed Proxy Service which in turn calls the defined Business Service. 


Top 30 Oracle Service Bus (OSB) Interview questions and answers

The blog provides the commonly asked Oracle SOA Oracle Service Bus (OSB)   Interview questions & answers to be helpful for beginners and experienced professionals.

Refer the below given blog for more OSB Interview Questions and Answers

OSB Interview Questions and Answers -Set 2

What is the role of Oracle Service Bus (OSB) in SOA Suite ?

  • Oracle Service Bus (OSB) is a configuration based policy driven enterprise service to manage the SOA Life Cycle management
  • Oracle Service Bus (OSB) follows the SOA principles of developing loosely coupled standard based services executing the business functions through service consumers.
  • Oracle Service Bus (OSB) provides service discovery, service provisioning and service deployment capabilities
  • Oracle Service Bus (OSB) provides the message brokering , message transformation and message routing  across heterogenous environments

What are the features of Oracle Service Bus (OSB) ?

 The Oracle Service Bus (OSB) provides the below features:

  • Provides Service Orchestration
  • Provides location transparency 
  • Provides Message Transformation
  • Provides message processing using multiprotocol
  • Provides support for Dynamic routing of the message
  • Provides Service Level Agreement
  • Provide Service Security using OPSS and OWSM

Explain how Oracle Service Bus (OSB) supports Adaptive Messaging ? 

The Oracle Service Bus (OSB) provides support for message handling and message transformation between client and services. For instance, the Client send the SOAP message over HTTP and transforms message and invoke JMS Adapter to put the message into Queue 

Another example could be of transforming the REST/ JSON message into SOAP /XML message for processing to service consumers. 

The OSB communication patterns like Request-Response, Publish -Subscribe , Split-Join, Synchronous – Asynchronous also considered as part of Adaptive messaging.

What are the levels where Service Security can be applied in Oracle Service Bus (OSB) ? 

The Oracle Platform Security Services (OPSS) and Oracle Web Service Manager (OWSM) allows Oracle Service Bus (OSB) to apply the service security at below given levels:

  • Transport Level Security  (includes SSL , Basic Authentication /Authorization, Custom Security) 
  • Message Level Security ( includes WS-Security , SAML, UserId /Password , Encryption, Custom Security) 
  • Console Level Security ( includes Single-Sign-On , Role based Access) 
  • Policy Security

What is Service Virtualization in Oracle Service Bus (OSB) ?

Service Virtualization provides agility through message manipulation and control by providing the flexibility to control message validation, message transformation, message content based routing, message parallel processing , error handling in the message flow. 

What features are provided by Configuration Framework in Oracle Service Bus (OSB) ?

The configuration framework in Oracle Service Bus provides the below features:

  • The Configuration framework provides control over the Service Bus Environment and associated resources
  • The configuration changes made within the session does not interrupt the running services
  • The Test Control allows user to validate the resources, expressions, pipelines and split -joins 
  • The Test Control allows to execute and validate the result data
  • The Import/ Export Tool allows to move the configuration data from one environment to another 
  • The configuration framework also includes metadata -driven interface for service discovery, publishing and UDDI registry synchronization

Describe the steps for message processing in Oracle Service Bus (OSB) ?

The Oracle Service Bus (OSB) performs the Adaptive Messaging , message transformation, and route messages based on message content which includes the below given sequence of steps :

  • The Oracle Service Bus (OSB) receives the message from client though Transport Protocol
  • The Transport Provides passes the inbound message  , communicates with the client end point considering as the entry point for the message
  • The Binding Layer preforms the Pack/Unpack of the messages , manages message security and pass on the message content to the Pipeline
  • The pipeline performs validation, transformation, logging, reporting and message routing to the target end point
  • The received response is sent back to the Client

What is Proxy Service in Oracle Service Bus (OSB) ?

The Proxy Service in Oracle Service Bus acts as the interface for the service consumers that connects with managed back-end services.  Proxy Services provides “Location Transparency” through isolation of Service Consumers from Service Providers and act as a proxy layer to transport the message

The Proxy Service interface can be defined as Web Services Description Language (WSDL)  or as Web Application Definition Language (WADL) using the transport protocol.

The Proxy Service can route message to multiple Business Services as per defined interfaces.

What is Business Service in Oracle Service Bus (OSB) ?

The Business Service in Oracle Service Bus acts as the interface which connects to the service producers to perform business processes. The Business Service interface can be defined as Web Services Description Language (WSDL)  or as Web Application Definition Language (WADL) using the transport protocol.

The Business Service is similar to Proxy Service but provides additional options for message
handling, endpoint throttling, and result caching, which help improve performance.

What is OSB Service Orchestration ?

The Oracle Service Bus (OSB) provides the Orchestration where single Proxy Service can route messages to multiple Web Services  based on the message content or message operations defined as per business validation / logic.

Explain Inbound Transport Layer in Oracle Service Bus (OSB) ?

The Inbound Transport Layer acts as the communication layer between client services ( service consumers) and Oracle Service Bus and passes the inbound message (raw bytes of message)  , communicates with the client end point considering as the entry point for the message.

The Inbound Transport Layer provides support for the transport protocol like HTTP, FTP, JMS, File and other protocols.

The Inbound Transport Layer returns the response messages to the service consumers

The Inbound Transport Layer handles transport headers, message metadata, endpoint URIs

Explain Outbound Transport Layer in Oracle Service Bus (OSB) ?

The Outbound Transport Layer acts as the communication layer between external services ( service producers) and Oracle Service Bus

The Outbound Transport Layer acts passes the message (raw bytes of message) from Service Bus to Business Service or Proxy Service. 

The Outbound Transport Layer provides support for the transport protocol like HTTP, FTP, JMS, File and other protocols.

The Outbound Transport Layer returns the response messages to the service producers

The Outbound Transport Layer handles transport headers, message metadata, endpoint URIs

What functions are performed by Binding Layer in OSB message processing ?

The binding layer performs the below functions for Inbound and Outbound messages:

  • Message Pack / Message Unpack
  • Message Security
  • Move Message to the Pipeline ( Request-Response) 

What is message flow ? 

A message flow determines on how a message is going to be Validated, Transformed and routed among services. A message flow can be defined using Pipeline and Split -Join for the Parallel Processing of the message.

What is the role of Pipeline in Oracle Service Bus (OSB) ?

The pipeline determines the transformation and message routing logic  and provides message handling options ( publishing, logging, reporting, alerts, and service exception )

What are the primary elements in pipeline for the message flow ?

The pipeline includes the below given elements for the message flow: 

  • A Start Node
  • A Pipeline Pair : includes one for request and one for receiving response
  • A Branch Node: based on operations invoking specified branch for message processing
  • A Route Node: includes the target end point definition
  • An Error Handler : handles run time errors 

What is Split-Joins in Oracle Service Bus (OSB) ?

The Split-Join is useful for splitting a message payload and processing through multiple operations and the received responses are combined for get the final result. 

What are the primary elements in Split – Join for the message flow ?

The split -Join includes the below given elements for the message flow: 

  • A Start Node
  • A Receive Node : to receive inbound messages
  • A Reply Node: to send outbound messages
  • A Scope Node: creates a context that influences the behavior of enclosed elements
  • A Parallel Node: placeholder for processing branches

What are the available Service Types in Oracle Service Bus (OSB) ?

The below given are the OSB Service Types: 

  • Web Based Services:  
  • Any SOAP Service 
  • Any XML Service  
  • Messaging Service 
  • Native REST Service

What is Message Enrichment and how it is supported in OSB ?  

The Message Enrichment helps in retrieving additional information from the existing service using Service Callout option

Pass the Additional Received Information to the Inbound Message

Route the Message to invoke the Target Business Service 

Route the Message to applications supporting Java using Java Callout

 

When should we use the Message Service Type? 

The Message Service Type should be used when one of the Request or Response messages are Non-XML as Service bus cannot identify automatically and performs the SOAP Header Validation.

What are available Content Types  for the request and response message? 

The below content types are supported:

  • Binary
  • Text
  • MFL
  • XML
  • Java
  • None

What response content type is supported by File , FTP and SFTP Transport Proxy Service?

The Transport Proxy Services for Email, File, FTP, SFTP with a message service type support only one way message processing and returns NO response.  Thus, the content type for response message should be set to None

When should we use Any SOAP or Any XML Service Types in OSB ?

When a single port is to be exposed for multiple enterprise applications, Any SOAP or Any XML should be used.  

For Any SOAP , must specify the SOAP 1.1 or SOAP1.2 specification.

 

 

 

 

 

 

 


Top 10 Oracle MDS Repository Interview questions and answers

The blog provides the commonly asked Oracle SOA Meta Data Store (MDS Repository)  Interview questions & answers to be helpful for beginners and experienced professionals.

1) What is MDS in Oracle SOA Suite ?

Metadata depicts the data about data and SOA MDS stands for Oracle Meta Data Service which acts as the Central Repository for storing , retrieving the service metadata in the Oracle Fusion Middleware.  XML, XSD, WSDL, SCA Composites, BPEL Process, Oracle ADF Pages are few example of the metadata components.

2) How Oracle MDS is useful in SOA Suite ?

The below advantages are provided by Oracle MDS Repository:

  • Provides all resources to be available at the Central Repository location to be accessed by any component
  • A Change in Metadata resources provides the updated metadata to other components 
  • Avoids redundancy and ensure consistency.
  • Metadata configured during design time is used at application runtime using metadata service layer.

3) What are the types of MDS Repository?

MDS Repository can be defined as: 

  • File based MDS Repository
  • DB based MDS Repository

4) Explain File-Based MDS Repository?

MDS used file based repository by default for storing / retrieving the service metadata. The file based repository provides the below usages:

  1. File based MDS Repositories are considered light-weight 
  2. File based MDS Repository is used primarily in local environments for configuring and validating the repository integrations 
  3. Reduces integration time to connect to external Database repositories and managing all configurations locally
  4. File based repositories provides directory structure to configure and maintain the data
  5. The file-based repository is located in <JDeveloper_Home>/integration folder

5) Explain DB-Based MDS Repository?

The Database based repository provides the below usages:

  • Database repositories are primarily used for real-time integrations in production environment
  • Database repositories resides in the Database Schema ( Tables, Objects) and are created using the Oracle Repository Creation Utility (RCU)  Tool 

6)  Which configuration file is used for storing the MDS configurations?

The adf-config.xml configuration file stores the MDS Configurations

7) How many types of WSDL can be stored in MDS Repository ?

MDS Repository only stores Abstract WSDLs.

8) How can we identify which MDS repository type used for Web Service ?

The MDS Repository type is stored in adf-config.xml

  • File Based MDS: oracle.mds.persistence.stores.file.FileMetadataStore
  • DB Based MDS : oracle.mds.persistence.stores.db.DBMetadataStore

9) Describe the reason for the MDS Error: MDS-00054: The file to be loaded does not exist ? 

The oramds: reference for the WSDL document could not be evaluated at run-time

10) Explain the steps for  transferring MDS artifacts from design time to run time

The below given steps can be performed :

  • SOA Design Time MDS connection -> Transfer
  • Select the resources to Transfer ( WSDL, XSD, Target MDS Connection) 
  • Click OK 
  • Refresh the Target MDS Connection and artifacts should be available now.

 


Top 25 Oracle BAM Interview Questions and Answers

The blog provides the commonly asked Oracle SOA BAM (Business Activity Monitoring) Interview questions & answers to be helpful for beginners and experienced professionals.

1) Explain the usage of Business Activity Monitoring (BAM) in SOA Suite ?

The Business Activity Monitoring (BAM) is useful in monitoring the business activities, helps in generating business reports, provides BAM Alerts when the specified threshold is reached or surpassed. It allows to perform analytical decisioning for the business data. 

2) Describe the New and changed features in SOA 12c for Business Activity Monitoring (BAM) ?

  • BAM provides support for JavaScript Extension Toolkit (JET) treemap view
  • allows support for group filters in the group queries
  • allows  aggregated field based filters in run time filters
  • allows to pass runtime parameter value to the target dashboards through  configuration
  • allows text wrapping in table data
  • allows column width in pivot tables

3) What are the components of Business Activity Monitoring (BAM) ?

The Business Activity Monitoring (BAM) provides the below given components:

  • Oracle Metadata Services Repository
  • Persistent Engine
  • Continuous Query Service
  • Report Cache
  • Alert Service
  • Data objects and the Process Star Schema
  • BAM Dashboards

4) For what purpose BAM Adapter can be used ? 

The Oracle BAM Adapter is useful for the monitoring process 

  • Monitoring at Composite Level
  • Monitoring the full message

5) What tasks can be performed by “Viewers” in

Business Activity Monitoring (BAM) ? 

Viewers perform the below given tasks:

  • Allows to View Dashboards indicating the real-time data with collections of tables and charts
  • Allows to Filter data using Type parameter values with different values in the dashboard
  • Allows to  View Alert notification 
  • Allows to  View Alert history data

6) What tasks can be performed by “Creators” in

Business Activity Monitoring (BAM) ? 

Creators perform the below given tasks:

  • Allows to View  Alert and tasks for dashboard as per given access
  • Allows to Create projects containing set of BAM entities
  • Allows to Add data objects to existing projects
  • Allows to Create queries and KPIs to fetch data objects
  • Allows to Create Business Views to display data in tables and charts
  • Allows to Create Alerts to notify users for out of range data
  • Allows to Create parameters for filter data in the dashboard

7) What tasks can be performed by “Architects” in

Business Activity Monitoring (BAM) ? 

Architects perform the below given tasks:

  • Allows to Create & Manage BAM data objects
  • Allows to Configure Enterprise Message Sources (EMS)
  • Allows to Run data simulators
  • Allows to Import, Export , Migrate Data Objects, Enterprise Message Sources (EMS)
  • Allows to Use BAM services for managing data objects

8) What tasks can be performed by “Administrators” in

Business Activity Monitoring (BAM) ? 

Administrators perform the below given tasks:

  • Provide Access to All Viewer, Creator, and Architect tasks, for the projects based on role
  • Allows to monitor continuous queries
  • Allows to Monitor Viewsets
  • Allows to Configure BAM Server Properties
  • Allows to Configure BAM Server Availability
  • Allows to Configure BAM Diagnostics
  • Allows to Configure BAM Security
  • Allows to Run BAM scripts in test & production
  • Allows to Import, Export , Migrate Data Objects, Enterprise Message Sources (EMS)
  • Allows to Use BAM services for managing data objects

9) When is the benefit of using sensors in the BAM Adapter ?

Sensors in BAM Adapter are used when monitoring is to be done at variable or at activity level.

10) What are the possible ways for monitoring SOA Services ?

The SOA Services can be monitored using below given options

  • BAM Adapter
  • Sensors

11) What are the types of sensor actions ?

The sensor actions are primarily divided into 2 types:

  • Sensor Action
  • BAM Sensor Action

12) What is sensor action ? 

Sensor action is the action linked to sensor to perform on the sensor data to publish data to Database, JMS Queue/ Topic, Custom Java Handler.

13) What is the purpose of BAM Sensor Data ?

BAM Sensor data can be used when we need to send the sensor data to the BAM data object.

14) What is BAM Alert ?

BAM provides the Alert feature to perform action based on data insertion or data change. 

15) Is it possible to use BAM Alert to invoke external web service ?

Yes, BAM Alerts can invoke external web service.

16) What all data can be updated as when BAM11g is upgraded to BAM12c ?

The below given data objects are updated as part of Upgrade Activity 

  • Data Object Data
  • Data Object Metadata
  • Enterprise Message Sources (EMS) Metadata

17) Is it possible to migrate BAM Data Objects from Source Environment to Test or Production Environment including the configurations ?

Yes, BAM can be moved from one environment to another as Oracle Fusion Middleware provides scripts to copy an Oracle home and domains, as well as the configuration of BAM. The move plan can be updated with the environment specific properties.

18) Name the Real -Time Data Sources for Oracle BAM ?

  • Java Message Service
  • Oracle BAM Adapter
  • Enterprise Java Beans
  • Oracle Web Services
  • Oracle® Data Integrator

19) Describe the tuning option for designing Dashboard in Oracle BAM ?

The below tuning options can be performed:

  • Dashboard should be designed for specific group
  • Create a report which is “management by exception”
  • Provides user access based on role 
  • Usage of Logical Data Object filter and dashboard parameters to filter data
  • Dashboard should be restricted to 4-5 views or should have multiple tabs to reduce overall data loading time
  • Limit the Data Object List View to 2000 -3000 records

20) Describe the Tuning options for Data Archiving & Purging in Oracle Business Activity Monitoring (BAM) ? 

The below tuning options can be performed:

  • Implement Database Partition to improve overall performance
  • Data Objects should be available with the necessary data only
  • Historical data should be kept in separate data objects specific for reporting
  • Schedule data retention during non- business hours and enable alert notification
  • Use Oracle Data Integrator Service to purge the data
  • Use Alerts to allow filter based purging

21) Describe the components of Business Activity Monitoring (BAM) ?

The Business Activity Monitoring (BAM) provides the below given components:

  • Active Viewer
  • Active Studio 
  • Architect
  • Administrator

 


Top 30 Oracle SOA AQ Adapter / MQ Adapter interview questions

The blog provides the commonly asked Oracle SOA AQ Adapter / MQ Adapter  Interview questions & answers to be helpful for beginners and experienced professionals.

1) For what purpose AQ Adapter is being used in SOA Services ? 

Oracle Advanced Queue (AQ) is an Oracle Database feature provides scalable, reliable and flexible approach for bidirectional asynchronous message exchange among different applications. 

2) Does AQ Adapter supports integration with Mediator ? 

Yes, AQ Adapter can be integrated with mediator to process message to single or multiple queues. 

3) Describe the Binding properties for Oracle AQ Adapter ? 

The below given are the Oracle AQ Adapter binding properties

 AQ Adapter Binding Property  AQ Adapter Binding Property  Description
ConnectionRetryDelay indicates the waiting time for Oracle AQ Adapter to retry the connection after a connection is lost. default value is 15 sec
DequeueTimeOut indicates the waiting time after which the dequeue() API times out if no message is received on the inbound queue. The default value is 1sec
adapter.aq.dequeue.threads indicates the total poller threads that are created when an endpoint is activated. The default value is 1.

4) Which property can be used to process AQ/ MQ messages through single node in the Clustered Environment ?

We need to add singleton property in the composite.xml as given below:

<property name="singleton" type="xs:boolean" many="false" override="may">true</property>

5) Which property allows AQ Adapter messages to be processed sequentially through single node in the Clustered Environment ?

  1. Enable  singleton property for AQ adapter in cluster environment
  2. Set activtionInstances=1

6) Which property also AQ Adapter to consume the single message by multiple AQ consumers? 

The Oracle AQ Adapter enqueue header property (jca.aq.RecipientList) enables to override the recipient list (AQ subscriber separated by commas)to retrieve messages from a queue. Each consumers (AQ subscriber) must have unique values for the Recipient parameter

7) Describe the few JCA properties for Oracle AQ Adapter ? 

The below given are the Oracle AQ Adapter JCA properties

AQ Adapter JCA Property AQ Adapter JCA Property Description
QueueName indicates the AQ Queue Name
DatabaseSchema indicates the Database Schema where AQ Queue resides
SchemaValidation When set to true, payload is validated against the schema
RecipientList allows to provide multiple consumers with comma separated for dequeuing the message
Consumer consumers to dequeue the message and applicable to multiple consumer queues
DequeueCondition Can be used for Dequeue Operations. It allows to provide Boolean Expression or PL/SQL  or SQL Function to add the Dequeue Condition for retrieving messages that matches the condition. 
PayloadHeaderRequired enables when ObjectFieldName value is set to ‘true’ and allows non payload attributes of ADT to be processed as Normalized messages.
MessageSelectorRule In case of dequeueing the message from multiple consumer queue, specific conditions need to be applied to accept the message meeting the criteria. These condition can be applied using MessageSelectorRule.
Correlation dequeues the message based on the Correlation Id 
PayloadSizeThreshold indicates the payload size threshold limit 

8) What are the supported ADT Types in AQ Adapter ?

The below given types are supported for ADT in AQ Adapter

BLOB FLOAT VARCHAR2
CLOB INTEGER DOUBLE PRECISION
CHAR NUMBER TIMESTAMP
DATE REAL  
DECIMAL SMALLINT  

9) What are the supported Payload  Types in AQ Adapter ?

The below given types are supported for Payload in AQ Adapter

  • CLOB
  • VARCHAR2
  • BLOB
  • XMLTYPE

10) Which property allows support for multiple threads in AQ Adapter ? 

Set the value for adapter.aq.dequeue.threads property to increase the total poller threads that are created when an endpoint is activated. Default value is 1.

11) Which property determines the  waiting time for the Dequeue Polling threads?  

Set the DequeueTimeOut property in the composite.xml to with the time Dequeue() API waits before starting the dequque polling threads.

<property name="DequeueTimeOut" type="xs:integer" many="false"override="may">10
</property>

12) Does AQ Adapter supports stream payload and how it can be achieved ? 

Yes, the Oracle AQ Adapter provides support for streaming the payload and allows to stream to database instead of using SOA run time in memory as DOM. The below property need to be added in the .jca file

<activation-spec className="oracle.tip.adapter.aq.inbound.AQDequeueActivationSpec">
<property name="QueueName" value="TEST_AQ_INBND_Q"/>
<property name="DatabaseSchema" value="AQTESTSCHEMA"/>
<property name="EnableStreaming" value="true"/>
</activation-spec>

13) For what purpose MQ Adapter is being used in SOA Services ?

Message queuing is the communication method where independent applications communicate through message data on a distributed system. The message is sent to the queue by the application, owned by a queue manager and other applications can retrieve the message from the queue.

Messaging: In synchronous commination, message sent by one application is retrieved by another application. The sender application waits for the reply to ensure message is read by another application.

Message: Message is a structured data agreed by the application for send/receive communication.

Message Queue: Message queue is an object that stores the message.

Queue Manager: A queue manager provides the messaging services to the applications using application programming interface.

Message Channel: provides the communication path between 2 queue managers.

Transmission Queue: used to temporary store message that are destined for remote queue manager. 

Message Segment:  Large messages are divided into small messages called message segment.

Message Group: indicates the set of related messages with the same Group Id.

14) What is the message structure of the MQ Series message ? 

 The MQ Series message includes the below details

  • Message Header:  includes the header details for the message like Message Id, Message Type, Message Priority, routing information
  • Optional Header:  includes additional details as part of message header
  • Application Data: Message in the form of structured data to be processed.

15) Which property is required to process group messages using MQ Adapter ?

Group Messages indicates the set of related messages with the same Group Id. MQ Series Adapter enabled with Group messages cannot process non-group messages in the queue and thus will not be picked for processing. 

The below property can be added in the composite.xml for enabling group messages

<property name ="ProcessGroupMessages" value ="true"/>

16) Which property we need to use to control number of message processed from MQ at one time?

Oracle MQ Series Adapter provides the parameter to control the number of threads that dequeue the messages from the inbound queue. 

Set the Value for InboundThreadCount  =’N’  in the .jca file where N is the Number of threads to be considered

17) Describe advantages of MQ Series Adapter over JMS Adapter ?

The MQ Series Adapter provides the below advantages: 

  • The Oracle MQ Series Adapter supports Positive Action Notification (PAN) and Negative Action Notification (NAN)
  • The Oracle MQ Series Adapter supports report messages like message delivery, message arrival, exception report, message expiry report.
  •  The Oracle MQ Series Adapter supports sending unwanted or corrupted messages to a dead-letter queue
  •  The Oracle MQ Series Adapter provides advanced filter options, such as filtering message belonging to a group
  • The Oracle MQ Series Adapter is faster and easier to use

18) What are the operations supported by MQ Adapter when used with BPEL /Mediator ?

The below given operations are supported:

  • Enqueue message
  • Dequeue message
  • Request -Response
  • Outbound Queue

19) Does MQ Adapter support message communication using SSL Protocol ?

Yes, MQ Adapter supports SSL communication and below given properties must be set 

  • SSL Enable
  • KeyStoreLocation
  • KeyStorePassword
  • TrustStorePassword
  • Protocol
  • KeyStoreProviderName
  • KeyStoreType
  • KeyStoreAlgorithm
  • CipherSuite

20) Does MQ Adapter supports XA Transactions ?

Yes, MQ Adapter supports both Inbound and Outbound XA Transactions. The below steps need to be performed in the Weblogic Application Server to enable XA Transactions

  • Click Domain Structure -> Deployments
  • Click MQ Series Adapter -> configuration -> Outbound Connection Pools
  • Select javax.resource.cci.ConnectionFactory for eis/MQ/MQAdapter
  • Select XA Transaction and set value as true

Enable the below property in the composite.xml for Inbound XA Transactions

<property name="bpel.config.transaction">required</property>

21) Does MQ Adapter support retry mechanism and how it can be achieved ?

The Retry mechanism is supported by MQ Adapter can be achieved using below given approach

  • JCA Inbound Retry Mechanism: The JCA Retry mechanism is supported by other adapters and supports retry for connection failure. With MQ Adapter, it also supports retry to put the message into a queue.
  • Message Backout Queue: is used for storing the rejected messages from the Inbound message queue for retry. The maximum messages can be placed as per the MaximumBackoutCount property value which defines the count for rejected messages in the back out queue.

22) What are the properties required to enable Backout Queue in the Inbound MQ Adapter Service ?

The below properties need to be added in the .jca file for Inbound MQ Adapter

<property name="BackoutQueueName" value="BACKOUT.QUEUE"/>
<property name="MaximumBackoutCount" value="5"/>
<property name="BackoutRetries" value="3"/>

23) Does MQ Adapter supports reading message as  attachment ?

Yes, MQ Adapter supports reading messages as attachment.  

24) How partial delivery is supported by MQ Adapter ?

The partial delivery in MQ Adapter is applicable when a single message is to be transmitted to multiple queues.

When partial delivery is set to true, then even if the message is failed for some queues, it will still put the message in the remaining queues. 

When partial delivery is set to false, if message delivery fails for even a single queue, the message processing is stopped for other queues also.

25) What are the types of reports supported by MQ Adapter ?

The below given reports can be retrieved as message processing

  • Confirmation on Arrival
  • Confirmation on Delivery
  • Exception Report
  • Expiry Report
  • Positive Action Notification (PAN)
  • Negative Action Notification (PAN)

26) Describe the header properties that can be used to filter the dequeue message in MQ Adapter ?

The below given header properties can be used to filter the dequeued message based on Message Id and Correlation Id

  • jca.mq.MQMD.MsgId: indicates the message filter option based on the Message Id (hexadecimal-encoded value)
  • jca.mq.MQMD.CorrelId: indicates the message filter option based on the Correlation Id (hexadecimal-encoded value)

27) What message types are supported by MQ Adapter ?

The below given are the MQ Adapter supported message types:

  • Normal Message : indicates the message without no response required
  • Request Message: indicates the message without response required
  • Reply Message: message sent by a program in response to a request message
  • Report Message: message indicating the confirmation of message received or message failure details

28) what actions can be taken on the message delivery failure for MQ Adapter ?

The message delivery failure can be handled in the below given ways:

  • Place message on a dead letter queue: storing the rejected / failed message to a backout / dead letter queue for retry
  • Discard message

29) Which property is required to enable large payloads for the Inbound MQ Adapter ?

Select the option – Use Large Message Support  while configuring inbound MQ Adapter for large payloads

30) Which property is required to enable large payloads for the Outbound MQ Adapter ?

The below given configurations options can be provided to support laerge payloads for outbound MQ Adapter

  • SegmentIfRequired: If the property SegmentIfRequired set to true, then Allow message to segmented when necessary and becomes useful for large payloads processing
  • MaximumSegmentLength : allows to provided the maximum length to be provided for each segment . Be default, set to ‘Maximum Allowed’

31) Which property manages the Oracle AQ Adapter Inbound retries ?

The jca.retry.count property can be specified with the Number of retries . 

When jca.retry.count property is enabld, ensure the max_retries value is updated properly in the queue. 


Oracle SOA Top 25 JMS Adapter interview questions

The blog provides the commonly asked Oracle SOA JMS Adapter  Interview questions & answers to be helpful for beginners and experienced professionals.

1) What is JMS used for ?

Java Message Service (JMS) is an API used for Reading /writing messages to / from message queues . JMS is loosely coupled, reliable and provides asynchronous message communication.

2) What are the advantages of using JMS for message communication ?

The below given are the advantages:

  1. Asynchronous: Message sent to the message queue does not require immediate response.  
  2.  Reliable: message assurance to subscribers.

3)  What are the JMS elements ?

The below given are the JMS elements: 

  1. JMS Provider:  implementation of the JMS interface for message-oriented middleware (MOM) like Java programs, JMS Adapter.
  2. JMS Client: JMS application that produces/receives messages.
  3. JMS Producer/ Publisher: JMS Client that send messages.
  4. JMS Consumer/Subscriber: JMS Client that receive messages.
  5. JMS Message: The JMS object that contains the message to be transferred between JMS Clients.
  6. JMS Queue: Its an staging area for storing sent messages which are waiting to be read 
  7. JMS Topic:   Message distribution technique where single published message is delivered to multiple subscribers

4) What is JMS Connection factory ?

The JMS Connection Factory is an object that a JMS client such as  java program or service that uses JMS API to create connections to the associated JMS provider of JMS destinations, for both point-to-point and publish/subscribe messaging.

5)  How Persistent Store is used for Java Messaging Service (JMS) ?

The persistent store provides a built-in, high-performance storage solution for WebLogic Server subsystems and services that require persistence. Weblogic Server provides the below given persistence stores
1. File stores
2. JDBC accessible stores

Persistent storage provided high performance as a single resource by the transaction manager even if the transaction involves multiple services that use the same store

6) What are the supported Models by JMS API  ?

The JMS API Supports below given JMS Models:

  1. Point-to-Point Model:
  • indicates one-to-one message processing 
  • The message are build on the concept of message queue.
  • Each message is addressed to a specific message queue
  • The client creates the JMS connection factory to connect to particular JMS Queue
  • Multiple producers can send the message to the same message queue
  • Only one consumer to read the received messages
  • Queue retains the message until it is read by the consumer and thus assures message is guaranteed to be delivered.

  2. Publisher-and-Subscriber Model: 

  • The Publisher sends the message to a specific message topic
  • The client creates the JMS connection factory to connect to particular JMS Queue
  • Multiple subscribers can subscribe to the same message
  • The publisher is required to create a message topic for clients to subscribe
  • The subscriber has to remain continuously active to receive messages, unless it has established a durable subscription.
  • If the subscriber is not active, then the message is delivered when it reconnects to the message topic.

7) Is it possible to add custom JMS header properties while sending messages to JMS Queues/ JMS Topic ?

Yes, JMS header properties can be customized.

8) What are the supported message types by JMS ?

  • Text Messages:  The JMS message supporting the text message body
  • Stream Messages: The JMS message supporting the primitive data types in the Java programming language.
  • Map Messages: The JMS message that contains a set of name-value pairs, where the names are String objects, and values are Java primitives
  • Bytes Messages : The JMS message that contains the a stream of uninterrupted bytes
  • Object Messages :  The JMS message that contains a serializable Java object in its message body

9) Describe the steps for creating Durable JMS subscriber in Weblogic ?

How to create durable JMS Subscriber in Weblogic Server

10) Is Oracle JMS Adapter a transactional or non -transactional adapter ? 

Oracle JMS Adapter is a transactional adapter. 

11)  What are the exceptions that can be thrown in the JMS message processing? 

The JM Exception Class  handles the few below given exceptions in the JMS API 

  • IllegalStateException
  • InvalidClientIDException
  • InvalidDestinationException
  • InvalidSelectorException
  • JMSSecurityException
  • MessageEOFException
  • MessageFormatException
  • MessageNotReadableException
  • MessageNotWriteableException
  • ResourceAllocationException
  • TransactionInProgressException
  • TransactionRolledBackException

12) Is Oracle JMS Adapter  DOM2 complaint ? 

Yes, Oracle JMS Adapter can process and generate document objects that are compliant with DOM2 specification

13) What are the types of acknowledgments that can be sent by the JMS publisher ?

There are 3 types of acknowledgements sent by JMS Publisher: 

  1. DUPS_OK_ACKNOWLEDGE : informs about the Duplicate message.
  2. AUTO_ACKNOWLEDGE : acknowledgment for the receipt of the message
  3. CLIENT_ACKNOWLEDGE: acknowledgment by the client for the message

14) Explain the parameters that are required to be set in the Delivery Failure Tab ?

The below given are the parameters to be set for JMS delivery failure:

  1. Redelivery Delay Override:  indicates the Time interval between retries (millisecs)
  2. Redelivery Limit:  indicates the number of retries
  3. Expiration Policy: indicates when the message is lost or expired.
  4. Redirect: redirect message to different queue.
  5. Log: logging  the message.
  6. Discard:  indicates that the message is discarded and will not be retained. 
  7. Error Destination: indicates the “queue” name when selected “redirect” for sending failed messages.

14) What is JMS administered object?

JMS administered object is a pre-configured JMS object that is created by an administrator for the use of JMS clients and placed in JNDI namespace.

15) What is the purpose of message selector in JMS Adapter? 

The message selector in the JMS Adapter allows to perform filtering while subscribing to JMS message queue / JMS message topic. 

16) What are the binding properties for Oracle JMS Adapter ? 

The below given are few of the binding properties for Oracle JMS Adapter:

JMS Binding Property JMS Binding Property Description
adapter.jms.encoding used for JMS message encoding for Inbound and Outbound messages
adapter.jms.DistributedDestinationConnec
tionEveryMember
When Enabled(True) , JMS Adapter create a consumer/subscriber for each member of the distributed destination on a remote cluster or a server on remote domain
adapter.jms.receive.threads indicates the number of poller threads that are
created when an endpoint is activated. Default Value is 1.
adapter.jms.receive.timeout the timeout value used for the synchronous receive call. Default Value is 1sec.
adapter.jms.registration.interval not supported anymore.
adapter.jms.retry.interval indicates the waiting time for Oracle Inbound JMS Adapter before trying to re-create a connection after a connection is lost. The default value is 30s
JMSReplyToDestinationProperties indicates if custom property settings can be applied on Destination objects received during inbound request/reply messages.
JMSReplyUseCorrelationIdForCorrelation indicates if a correlation ID for correlation is applied or not. 
JMSReplyUseMessageIdForCorrelation indicates if a message ID can be used for correlation
JMSReplyPropagateJMSExpiration indicates the message expiration time.  If set to 0, message never expires.
RequestReply.cacheReceivers indicates if the same number of JMS receivers are used for the same request destination repeatedly
RequestReply.useCorrelation If enabled, applies the message selector for filtering the received messages. . If the request Normalized Message property jca.jms.JMSCorrelationID is specified, then it is used for correlation, otherwise the JMS Message ID property is used
SuppressHeaders If true, then JMS headers are bypased.

17) Does JMS Adapter supports normalized messages ? 

Yes, JMS Adapter supports normalized message processing.   Normalized message are divided into properties and payload where properties are name-value pairs.

Oracle JMS Adapter facilitates asynchronous request/response by providing the correlationId and the JMSReplyTo address as JMS headers

18) Is it possible to track the message size using JMS Adapter ?

Yes, The Oracle JMS Adapter calculates the message size and sends the message size to the JCA Binding Component from where it can be retrieved for reporting.

19) Does JMS Adapter supports streaming large payloads ? 

Yes, large payloads can be processing using JMS Adapter.  Select the Enable Streaming Check box in the Consume Operations Parameters during design-time to get it appended in the Activationspec in the .jca file

When enabled JMS Adapter to process large payloads , the payloads are streamed to Database instead of SOA run time as in a memory DOM. 

 <activation-spec className="oracle.tip.adapter.jms.inbound. JmsConsumeActivationSpec">
<property name="DestinationName" value="jms/JMSCustomerInQueue"/>
<property name="UseMessageListener" value="false"/>
<property name="PayloadType" value="TextMessage"/>
<property name="EnableStreaming" value="true"/>
</activation-spec>

20) Name the property in JMS Adapter to support Multiple Consumer Threads ?

adapter.jms.receive.threads property in the composite.xml to support multiple poller threads of the JMS Inbound Message Flow.
Multiple poller threads dequeue message using round robin technique which improves the overall performance.

21) Which property is required to be enabled when JMS Adapter is connected to distributed destination on a remote cluster or a server on remote domain ?

The adapter.jms.DistributedDestinationConnectionEveryMember property is the Service binding property for the JMS Adapter.
Set adapter.jms.DistributedDestinationConnectionEveryMember to True in the composite.xml when JMS Adapter creates a consumer/subscriber for each member of the distributed destination.

<property name="adapter.jms.DistributedDestinationConnectionEveryMember"
type="xs:string" many="false" override="may">false</property>

22) What are the available XA and Non- XA based Connection factory for JMS Adapter in Weblogic Server? 

When JMS Adapter requires to have a connection factory in a global transaction, then XA-based connection factory is to be used, else non-XA based connection factory.

• QueueConnectionFactory
• TopicConnectionFactory
• ConnectionFactory
• XAQueueConnectionFactory
• XATopicConnectionFactory
• XAConnectionFactory


Oracle SOA Top 20 File / FTP Adapter Interview questions & answers

The blog provides the commonly asked Oracle SOA File  Adapter / FTP Adapter Interview questions & answers to be helpful for beginners and experienced professionals.

1) what is the major difference between File Adapter and FTP Adapter ? 

File Adapter integration is useful when performing file operations from /to the local file system.

FTP Adapter integration is useful when performing file operations from /to the remote  file system

2) What are the operations provided by File Adapter ? 

 File Operation Name   File Operation Description
Read File  Inbound Operation
Write File  Outbound Operation
Synchronous Read File Outbound Operation
List File Outbound Operation

3) What are the operations provided by FTP Adapter ? 

 FTP Operation Name   FTP Operation Description
Get File  Inbound Operation
Put File  Outbound Operation
Synchronous Get File Outbound Operation
List File Outbound Operation

4) What are the file formats supported by File Adapter / FTP Adapter ?

The Oracle File and FTP Adapters can read and write the below given file formats

  1. XML (both XSD- and DTD-based)
  2. Delimited
  3. Fixed positional
  4. Binary data
  5. COBOL Copybook data

5) Does File Adapter / FTP Adapter supports Native format ?

Yes, File Adapter / FTP Adapter supports native format as opaque objects (such as Jpgs and GIFs)  and pass the contents in their original format without performing transformation.  

6) Describe the common File Adapter Inbound parameters in the .jca configuration ? 

<adapter-config name="fileInboundReference" adapter="file" wsdlLocation="../WSDLs/fileInboundReference.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
<connection-factory UIincludeWildcard="cust*.txt" location="eis/HAFileAdapter"/>
<endpoint-activation portType="Read_ptt" operation="Read">
<activation-spec className="oracle.tip.adapter.file.inbound.FileActivationSpec">
<property name="PhysicalDirectory" value="C:\tmp"/>
<property name="UseHeaders" value="false"/>
<property name="MinimumAge" value="0"/>
<property name="Recursive" value="true"/>
<property name="PollingFrequency" value="60"/>
<property name="DeleteFile" value="true"/>
<property name="IncludeFiles" value="cust.*\.txt"/>
</activation-spec>
</endpoint-activation>
</adapter-config>

7) How single Threaded Model is supported in File Adapter / FTP Adapter ? 

The File /FYP Adapter used the global pool of processor for executing file processing.  The single Threaded Model modifies thread execution by not using the default pool processor and allows poller thread to process the file in the single running thread. The below configuration can be updated in the File / FTP Adapter .JCA file.

<activation-spec className="oracle.tip.adapter.file.inbound.FileActivationSpec">
<property../>
<property name="SingleThreadModel" value="true"/>
<property../>
</activation-spec>

8) How Partitioned Threaded Model is supported in File Adapter / FTP Adapter ? 

The partitioned thread model is the modified thread model which allows each composite application to use in-memory queue in the partitioned form. The below configuration can be updated in the File / FTP Adapter .JCA file.

<activation-spec
className="oracle.tip.adapter.file.inbound.FileActivationSpec">
<property../>
<property name="ThreadCount" value="4"/>
<property../>
</activation-spec>

9) What are the available File Polling Options ?

The Oracle File / FTP Adapter provides the below polling configurations

  1. Polling Frequency: Define the time after which File / FTP Adapter check for polling the file.
  2. Minimum File Age : The Oracle File / FTP Adapter reads the file which are older than the minimum age value (determined by the last modified time stamp)  in the directory. This option is useful when large file which take 3-4 mins to be copied are to be polled for processing . In that case, Minimum file Age is to be set as 5 mins so that such files can be read without failure.
  3. Use Trigger File: The Oracle File / FTP Adapter starts file polling when specified file is available in the local or remote file system. 

Consider an example where BPEL Process1 writes the file into the directory and BPEL Process2 read those files for processing.  In this case, trigger file option could be useful.

File Adapter Polling Configuration

10) what is the difference between Physical Directory and Logical Directory in File / FTP Adapter  processing ?

Physical Directory Path:
1. requires the full directory path from where the file is to be picked for polling.

2. requires manual change in the directory path when deployed to different environments.

Logical Directory Path:

  1. can provide logical name and path value in the composite.xml
  2. logical path can be change from em console.
  3. can replace the logical path in case of deployment to different environment using Config plan.

11) What is the difference between Read and Sync Read operation

in File / FTP Adapter  processing ?

Read Operation: The File /FTP Adapter uses Read operation for polling the file to read its content. 

Sync Read Operation:  The File /FTP Adapter uses SyncRead operation to read the file in between the flow when requires to perform Synchronous communication

12) Does File Adapter / FTP Adapter supports polling from multiple directory ?

Yes, polling from multiple directories is supported by File / FTP Adapter in a single activation for both Physical and Logical Directory Path. The multiple directory can be set during design time using JDeveloper. 

13) Is File Adapter / FTP Adapter  transactional and non-transactional adapters ?

Transactional Adapters: Database Adapter, JMS Adapter, AQ Adapter, MQ Adapter
Non- Transactional Adapters: File Adapter, FTP Adapter

14) what is File Debatching Process in File / FTP Adapter ? 

The File / FTP Adapter allows to read multiple messages in a file using Debatching which provides the option to to publish messages in a specific number of batches.
During Debatching, the file reader, on restart, proceeds from where it left off in the previous run, thereby avoiding duplicate messages. 

16) Can we append to existing file using File / FTP Adapter ? 

Yes.

16)   File / FTP Adapter allow to read the file without reading its content?

Yes, File / FTP Adapter provides the option for the Read operation. 

Select Operation: Read

Select Check box:  Do not read the file content

File Adapter Read Operation

17)  What Inbound Header metadata is published by File Adapter in the Inbound Service ?

The File Adapter publishes the below given inbound metadata as part of Inbound Header

File Adapter Inbound Header  Inbound Header Description 
jca.file.FileName name of the file
jca.file.Directory directory name for the file
jca.file.Batch indicates unique batch name in case of debatching
jca.file.BatchIndex indicates batch index for each message within the batch for debatching
jca.file.Size size of the file
jca.file.LastModifiedTime last modified time for the file

File Adapter Inbound Header Metadata

18) Provide the steps to specify the dynamic outbound directory name ?

  1. Create the File Adapter Read operation using the Adapter Wizard in JDeveloper
  2. Provide the Physical Directory name as C:\ReadFileDir
  3. Double-Click Invoke Activity
  4. Select Browse Variables -> Variable Choose Dialog 
  5. Select Create an Object icon 
  6. Create Variable newOutboundDir, type xsd:string
  7. Now drop Assign Activity between Receive and Invoke Activity
  8.  Perform Copy Operation, Select Expression and set the value as C:\ReadFileOutDir
  9. Now Select Invoke Activity -> Properties 
  10. Select jca.file.Directory and set value  as newOutboundDir and Type as input

19) Provide the steps to specify the dynamic outbound file name ?

  1. Create the File Adapter Read operation using the Adapter Wizard in JDeveloper
  2. Provide the Physical Directory name as C:\ReadFileDir
  3. Double-Click Invoke Activity
  4. Select Browse Variables -> Variable Choose Dialog 
  5. Select Create an Object icon 
  6. Create Variable newOutFileName, type xsd:string
  7. Now drop Assign Activity between Receive and Invoke Activity
  8.  Perform Copy Operation, Select Expression and set the value as customer.txt
  9. Now Select Invoke Activity -> Properties 
  10. Select jca.file.Directory and set value  as newOutFileNameand Type as input

20) Does Debatching support native format and XML ?

Yes , debatching support boith XML and native format for multiple message processing.

21) What is ChunkedRead feature in File / FTP Adapter?

The File / FTP Adapter allows processing of large files using the ChunkedRead feature which uses an invoke activity within a while loop to process the target file. File processing using ChunkedRead  does not throw an exception in case of Invalid Payload and the return header contains the translation exception message indicating the line and column where error is encountered in the below given header fields

  • jca.file.IsMessageRejected
  •  jca.file.RejectionReason
  •  jca.file.NoDataFound

22) Explain UseStaging property in File Adapter / FTP adapter?

The UseStaging property can be set in the File Adapter / FTP Adapter .JCA File.

If UseStaging property set to true, then 

  1. The Oracle outbound File Adapter / FTP Adapter writes data to staging file.
  2. Streams the Staging File data to the Target File

If UseStaging property set to false, then outbound File Adpater / FTP Adpater does not use staging and transfers the file from source file location to target file location


Oracle Event Processing (OEP) features in SOA Suite 12c

Oracle Event Processing (OEP) 12c is used for design, develop and deploy the complex event processing applications that needs monitoring of real-time streaming events (IoT) providing high throughput and low latency platform. 

Oracle Event Processing consists of the below given components
1. Oracle Event Processing server : where the Oracle Event Processing applications are hosted / deployed
2. Oracle Event Processing Visualizer: web based interface to configure, deploy and manage Oracle Event Processing applications
3. Command-line administrative interface : command line interface to start and stop domains , deploy , resume or uninstall an application on Oracle Event Processing Server.
4. Oracle JDeveloper IDE : enables to design, develop and deploy the Oracle Event Processing applications

An Oracle Event Processing application receives and processes data streaming from an event source. Oracle Event Processing follows the event-driven architecture called SEDA which is comprises of into a set of stages (nodes) connected by queues. Oracle Event Processing application, the channel represents queues, other components are considered as stages in the processing.

The Event Processing Network (EPN) is the combination of stages and queues for processing the data streaming and helps in performing the below execution steps

  1. Input received in EPN is through and adapter.
  2. Adapter converts input into an event
  3. An event is processed from one stage to another stage using channels / queues.
  4. Events are similar to database rows and acts as tuples to execute queries with Oracle Continuous Query Language (Oracle CQL) desinged to execute streaming data.
  5. Each stage can make connections with external components if required for processing logic. Stages also enable to capture multiple processing paths connected with multiple downstream for processing streaming data.

Oracle Event Processing Application development in JDeveloper

Project Templates: Oracle Event Processing applications can be developed using the below provided application templates.

OEP Application Templates OEP Application Template Description
Empty OEP Project  template provides the basic structure for Oracle Event Processing applications
FX Template template useful for simulating a Foreign Currency exchange application  
Hello World Template simple OEP application sending Hello World message to the server
Signal Generation Template template useful for simulating events and generating signal for the change in price or volumes data streaming 

Oracle Event Processing project Options:

Oracle Event Processing project provides the below actions to be performed in the context menu.

OEP context Menu Option OEP context Menu Option Description
Open EPN Diagram

The EPN Diagram provides many features and is used as the Optimised layout. It allows to create Event Types to carry event data using Java Bean or Tulep Event Type and is registered in the Event Type Repository.  It allows to Add Component onto an empty area in the EPN to build the EPN diagram

Configure JDBC Context Allows to create an application context with the instance of Oracle JDBC Data
Configure Spatial Context Allows to to manage large number of moving objects like polygons,circles,3D positioning and spatial clustering
Deploy > oep-profile Allows to deploy Oracle Event Processing  application deployment bundle
Deploy > New Deployment profile Allows to deployment profile for the  Oracle Event Processing application
Encryption Manager
Allows to to encrypt the application

EPN Components:

Oracle Event Processing application comprises of different components to be added in the EPN. These components allows to create Event Types, handling inbound and outbound adapter data streaming , helps in using CQL query code and perform various other operations. 

EPN component  EPN Component Description
Adapter Allows OEP application to connect to External Input or outputdata data for processing
Beans Allows to create Event Beans using Java Spring technology for handling event business logic
Cache Allows to create a Cache System Component in the EPN to create space / area for random access memory (RAM) that holds recently accessed data by an OEP application
Channel Allows to to transfer events from stage to stage in the EPN
Event Bean Allows to create application event logic in Java 
Processor Allows to create CQL query code to read data from big data Hadoop or NoSQL Database.
Table as an external relation source to store events in the database , configured as a listener 

Advanced Adapters in OEP Application:

Below given are the advanced adapters which can be used in the Oracle Event Processing application to connect to External Input or output data data for processing.

Adapter Name  Adapter Description
CVS Inbound Adapter Allows to READ data in the form of commaseparated values in the EPN
CVS Outbound Adapter Allows to SEND data in the form of commaseparated values from the EPN
HTTP Publisher Adapter Allows to SEND JavaScript Object Notation (JSON) event data from EPN to a web-based user interface
HTTP Subscriber Adapter Allows to READ JavaScript Object Notation (JSON) event data sent from HTTP Server to EPN.
JMS Inbound Adapter Allows to READ Java Message Service (JMS) topics data in the EPN
JMS Outbound Adapter Allows to SEND Java Message Service (JMS) topics data from the EPN
REST Inbound  Adapter Allows to READ events from HTTP Post requests
REST Outbound  Adapter Allows to SEND events in REST format from EPN

OEP integration with Big Data Extensions: 

The Oracle Event Processing applications handles huge volume of event data which needs to be processed and stored.  The below given are the big data extensions being used with OEP applications for storing huge event data providing  high throughout and low latency.

Database Name  Database Description
Hadoop Database  Oracle CQL processor executes large data volumes using non-relational data store Hadoop distributed file system (HDFS)
NoSQL Database Oracle CQL processor executes large data volumes using Oracle NoSQL Database which stores data in key-value pairs
HBase Database Oracle CQL processor executes large data volumes using HBase Database

Cache system in Oracle Event Processing: OEP provides the below mechanism for providing cache using OEP applications.

Cache System Description
Coherence Cache System OEP provides Coherence Cache System component to maintain the data stored on a shared resource
Local Cache System OEP provides Local Cache System to access data files through network

CQL Patterns in Oracle Event Processing:

Oracle CQL patterns are stored within the context of an Oracle CQL processor and helps in Oracle CQL query formation. 

CQL Pattern CQL Pattern Description
Averaging Rule The component helps nin computing an average for the specified number of events (table rows)
Detect Missing Event Rule The component in identifying the expected event that does not occur
Partitioning Rule The component performs the event panel partition by an event property and display partitioned events
Select With Subsequent Filtering Query The component filter events to populate the view with events that pass the filter criteria.
Select From Multiple Streams The component joins two streams to select from correlated events
Select With From The component select events from a channel according to the specified properties
Select With Pattern Matching The component select events from a channel according to specified property values

WLS Extensions in Oracle Event Processing:

WLS Extension Name  WLS Extension Description
RMIInbound The adapter helps in receiving incoming data sent from Oracle WebLogic Server over the remote method invocation (RMI) protocol
RMIOutbound The adapter helps in sending outgoing data to Oracle WebLogic Server over the remote method invocation (RMI) protocol

EDN Adapters in Oracle Event Processing:

WLS Extension Name  WLS Extension Description
EDNInbound The adapter helps in receiving incoming data from the Oracle SOA Suite event network

EDNOutbound The adapter helps in sending outgoing data to the Oracle SOA Suite event network

 

Points to Consider:

  • EPN components helps in exchanging data with external sources like external databases, caches, HTTP messages, Java Message Service (JMS) messages, files, and big data storage.
  • Event Data is modelled as event types so that it can be accessed by the Oracle Event Processing application.
  • Oracle Continuous Query Language (Oracle CQL) helps in querying the streaming data
    Oracle Event Processing applications supports Spring Framework for writing Java Classes for adding additional logic as Spring beans to retrieve and send event data like other EPN components
  • OSGi (Open Services Gateway initiative) that that implements a complete and dynamic component model in the form of Bundles for deployment and can be installed, started, stopped, updated, and uninstalled remotely. Oracle Event Processing application components are assembled and deployed as OSGi bundles.
  • XML configuration file: Oracle Event Processing configuration files are defined in XML like assembly file which provides mapping between EPN stages and other design-time configurations
  • Hadoop / NoSQL Integration:  Oracle Event Processing can access the data from big data Hadoop or from NOSQL Database using the CQL query code. 
  • REST Adapters: Oracle Event Processing integrates with REST Inbound and Outbound Adapters to consume events from HTTP POST requests to be processed by the EPN.
  • Oracle Business Rules: Oracle Event Processing integrates with Oracle Business Rules to develop custom business logic in OEP applications.

REFERENCES:

Oracle Middleware Event Processing


Describe SOA Suite’s role in cloud integration and mobile applications ?

SOA Suite is one of the popular middleware integration mechanism for providing service based integrations in the heterogeneous environment.  With the increased demand for Cloud based and mobile integrated applications, Oracle SOA Suite 12c  provides enhanced features providing SOA Solutions for On-premises applications, cloud based applications, mobile applications and Internet of Things (IoT). It also provides support for lightweight REST and JSON integration standards.

Oracle SOA Suite 12c cloud and mobile integration features

The below given are the enhanced features provided in the SOA Suite 12c release

End-to-End-Integration Flow: SOA Suite provides the improved integration process which helps in automating the data flow integrations across third party systems, external services, cloud based applications and thus reduces speed time to market, increase productivity, and lower costs

SOA suite In-built cloud application adapters:  SOA Suite 12c provides support for adapter integration to connect virtually any application , service, data store, ,messaging system including the  in-built cloud application adapters for  on-premises as well Cloud based applications. The below given are the few SOA Suite cloud adapters available as part of SOA Suite installation

Component Name Cloud Adapter Connector 
CX Connectivity 
  • Oracle Commerce Cloud
  • Oracle CPQ Cloud
  • Oracle Eloqua Cloud
  • Oracle Engagement Cloud
  • Oracle Service Cloud (RightNow)
  • SAP Commerce Cloud (Hybris)
Database Connectivity 
  • Oracle Database Cloud Service
Enterprise Messaging Connectivity 
  • Oracle Messaging Cloud Service
ERP Connectivity
  • Oracle ERP Cloud
  • Oracle EPM Cloud
  • Oracle Utilities Cloud
  • Oracle Logistics Cloud
HCM Connectivity
  • Oracle Cloud HCM
  • Oracle Talent Acquisition Cloud Service (Taleo Enterprise Edition)

Business Activity Monitoring: Oracle SOA Suite provides business analytics with Oracle Business Activity Monitoring (BAM) for real-time operational intelligence for mission-critical business processes

Oracle Managed File Transfer (MFT)  Service: Oracle SOA Suite provides easy to use web based design tool for Oracle Managed File Transfer Cloud Service to securely exchanges files between internal and external FTP Servers . It also supports PGP encryption and decryption of files,  file transfer reporting for quick data analysis,  file purge scripts , file notification mechanism.  Oracle MFT also provides dashboard metrics to track file size, file volume, and elapsed time for inbound and outbound transfers and service endpoints. 

Oracle Event Processing:Oracle Event Processing (OEP) 12c is used for design, develop and deploy the complex event processing applications that needs monitoring of real-time streaming events (IoT) providing high throughput and low latency platform. 

Oracle Event Processing consists of the below given components
1. Oracle Event Processing server : where the Oracle Event Processing applications are hosted / deployed
2. Oracle Event Processing Visualizer: web based interface to configure, deploy and manage Oracle Event Processing applications
3. Command-line administrative interface : command line interface to start and stop domains , deploy , resume or uninstall an application on Oracle Event Processing Server.
4. Oracle JDeveloper IDE : enables to design, develop and deploy the Oracle Event Processing applications

Virtual Administrative Access: Oracle SOA Suite provides the web based console and connectivity to Virtual machines using SSH and provides all integration capabilities at one place which reduces the complexity and overall maintenance cost. 

SOA Composite deployment on Cloud or on-premises Environment: Oracle SOA Suite allows to deploy the SOA composites for  on-premises or in the SOA cloud environment to optimize security, cost, and regulatory requirements.

REFERENCES:

Oracle SOA Integration features

Oracle SOA Application Adapters

 

 


Oracle SOA 12c tutorial on JCA Adapter Architecture

The blog contains the detailing about Adapter Role in composite application, features of JCA Adapters, Adapter types, File Adapter interview questions, FTP Adapter interview questions, File / FTP Adapter configurations, File / FTP Adapter Design and Run-time properties. The blog could be helpful in the preparation of oracle SOA Suite 12c essentials 1z0-434 Certification.

Describe the adapters role in a SOA composite application ? 

Oracle JCA Adapters provides the standard based integration framework for integrating SOA Services with packaged applications, legacy applications, Database systems and with other custom web services.  JCA Adapters enables to integrate application running in heterogeneous environment ( services available from different vendors, running on different technologies , deployed on different environments like Unix, Linux , solaris, etc)

SOA applications with JCA Adapter integration provides a robust, lightweight, highly-scalable applications ensuring high interoperability.

Features of JCA Adapters:

  1. JCA Adapters provides the connectivity platform to integrate applications with mainframe and legacy applications with ERP and CRM applications, packaged applications like SAP and Siebel , databases, and messaging systems ( like Messaging Queues, Oracle Adavanced Queue). 
  2. JCA Adapters are built on standard  like J2EE Connector Architecture (JCA) version 1.5, Extensible Markup Language (XML), and Web Service Definition Language (WSDL) and reduces the dependency on a single vendor. 
  3. SOA Composite applications integrated with JCA Adapters implements SOA Component Architecture (SOA)  which provides the service details and its inter-dependencies and represent the business logic as a reusable service components.
  4. JCA Adapters support open standards which enables it to implement Service-Oriented Architecture (SOA) and thus provides loose coupling, flexibility, and extensibility.
  5. JCA Adapters provides supports integration with other back-end applications and transforms native APIs to standard XML and back. The adapters can be configured during design time to support such integrations.   
  6. JCA Adapters provides two-way communication for supporting real-time event notifications with other back end applications like creating, updating and deleting the data.  This reduces the cost of integration and provides fast & reliable integration.
  7. J2CA 1.5 specification in the JCA Adapters provides  high scalability and availability of the Oracle Application Server platform.
  8.  JCA Adapters provides the user interface for configuring the adapter properties during design time and helps in easy implementation and deployment activities.
  9. JCA Adapters provides integration with the JCA Binding component of Oracle Fusion Middleware platform and thus can be integrated with other binding components and service engines seamlessly. 

Describe the JCA adapter architecture ? 

The JCA Adapter integration allows to communicate with the Legacy applications, packaged applications, Databases and Oracle applications like ERP and CRM.  The JCA Adapter  can be classified into the below given categories:

  1. Oracle Technology Adapters
  2. Legacy Adapters
  3. Oracle E-Business Suite Adapters
  4. Packaged Applications Adapters

The below given is the High Level Architecture for JCA Adapters

JCA Adapter Architecture Diagram

What are Oracle Technology Adapters ? 

The Oracle Technology Adapters allow to integrate Oracle application Server and Oracle Fusion Middleware components like BPEL Process Manager, Mediator to File / FTP systems, Database Systems including Tables and Advanced Queue (AQ), Java Message Services (JMS) and message queues (MQ Series). 

The adapters are configurations can be done using JDeveloper at the Design-time which generates JCA Binding XML Configuration files to be used by the JCA Binding Components for the seamless integration among applications.

The Oracle JCA technology adapters are deployed in the J2CA container of the Oracle WebLogic Server and alloes to integrate with JCA Binding components to convert Web service messages into J2CA interactions and vice-versa. The Oracle Fusion Middleware integrates the request-response service with a SCA composite reference and publish the adapter events to a SCA composite service.

Oracle Technology Adapters are based on J2EE Connector Architecture (JCA) 1.5 standards. These adapters are deployed as a resource adapter in the same Oracle WebLogic Server as Oracle Fusion Middleware. The connection factory details for technology adapters are updated in the weblogic-ra.xml to be read by Weblogic Server during run-time.

Oracle Technology Adapters Architecture

Oracle Technology Adapter Architecture Diagram

The below given technology adapters can be used for application integrations.

  1. Oracle JCA Technology Adapter for Files/FTP
  2. Oracle JCA Technology Adapter for Sockets

  3. Oracle JCA Technology Adapter for AQ

  4. Oracle JCA Technology Adapter for JMS

  5. Oracle JCA Technology Adapter for Database

  6. Oracle JCA Technology Adapter for MQ Series

  7. Oracle JCA Technology Adapter for UMS

  8. Oracle JCA Technology Adapter for LDAP

  9. Oracle JCA Technology Adapter for Microsoft Message Queueing

  10. Oracle JCA Technology Adapter for Coherence

  11. Oracle JCA Technology Adapter for JDE Edwards World

You can also read the below given blog on the Technology Adapter Configuration at Design -Time and other related properties.

SOA 12c DB Adapter Polling Configuration at design -time

SOA 12c DB Adapter configuration for reading table data

SOA 12c Enable Trigger File Option in File Adapter

SOA 12c File Adapter Read File Configuration at design time 

 

What are Legacy Adapters ?

Legacy adapters integrate Oracle Application Server with legacy and mainframe applications using legacy communication protocols. The legacy adapters comprises of 3 components ( Oracle Connect, Oracle Studio and J2CA Adapters) for integration with the legacy applications.

Oracle Connect: Oracle Connect components resides in the mainframe / legacy systems and includes native adapters which help in communicating Oracle Application Server with the Legacy Systems for data exchange.

  • Server Processes: includes multiple servers to process client requests
  • Native Adapters: Provides various native adapters to communicate with Tuxedo and IMS-TM transaction systems, database and file systems on mainframe systems such as VSAM and IMS-DB
  • Native adapters: It  converts legacy applications data to XML format.
  • Daemon: is an RPC-based listener deployed on legacy system and helps in managing multiple server configurations like user authentication, user authorization, connection allocation and server process management.
    Repository: Oracle Connect deployed on leagacy systems provides repository for strong XML based schema and configurations like user profile to enable single sign-on, connection configurations, adapter metadata such as adapter request -response and adapter event services.
    Oracle Legacy Adapter Architecture Diagram

J2CA Adapter: The applications deployed on Weblogic server communicates with the Oracle Connect on legacy systems using the J2CA Adapter for the data exchange.

Oracle Studio: It provides the design-time tool for configuring Oracle AS Adapters for mainframes like configure services, configure events, adapter connection information,etc.

What are Packaged Application Adapters ? 

These adapters allow to integrate Oracle Application Server with other available packaged applications like SAP , Siebel , PeopleSoft and JDEdwards. 

The JCA Packaged application adapters can be deployed as J2EE Connector Architecture (J2CA) 1.5 resource adapters ,  or the JCA Packaged application adapters can be deployed as Web service servlets within the Oracle WebLogic Server container.  

With support for J2CA interface, it also supports the Web Service Definition Language (WSDL) and Simple Object Access Protocol (SOAP) interface.  
weblogic-ra.xml contains the connection name defined in the repository project as part of J2CA deployment.

JCA Packaged Application Adapter Architecture Diagram

Application Explorer is a Java swing-based design-time tool for configuring packaged-application adapters. Application Explorer works with BSE (Business Service Engine) and deployed in the Oracle Application Server , uses SOAP Protocol for accepting requests. The schemas can be defined as XSD, BSE or WSDL with SOAP Binding. 

The below given adapter are available for integrations

  1. OracleAS Adapter for PeopleSoft

  2. OracleAS Adapter for SAP R/3 (availble as “out of the box” Adapters with SOA Suite 12.1.3.0)

  3. OracleAS Adapter for Siebel

  4. Oracle AS Adapter for J.D.Edwards EnterpriseOne and OneWorld (availble as “out of the box” Adapters with SOA Suite 12.1.3.0) 

What is Oracle E-Business Suite Adapter ?

The adapter allows you to integrate Non- Oracle Applications with the Oracle ERP Product to get information related to Customers, Suppliers, Account Receivables, Financials , Oracle Reporting, etc by using Oracle E-Business Suite Adapter.

What are the types of Oracle JCA Adapter Services ?

The Oracle JCA Adapter Services can be broadly divided into 3 types:

 

  1. Request-Response (Outbound Interaction) Service : This service process the synchronous request and response data exchange.  
  •  The adapter receives the request from the adapter client.
  • Translate the request into native format 
  • Invoke the back end application method 
  • The Back end application response translates the native format to XML Standards
  • The response is sent to the JCA Binding Component
  • JCA Binding Component returns the response to SOA Composite reference.

  2. Event Notification (Inbound Interaction) Service: This service process the asynchronous request

  • An adapter registers as a listener for the back-end application
  • Back-end application pushes the event to the adapter. 
  • The adapter sends the event notification to the adapter client. 

3. Metadata Service: This service allows to browse and store metadata and a runtime component for running services like connection details, schema for business objects and services. The adapter metadata definitions are generated as XSD, WSDL and binding configuration files.

 

REFERENCES:

SOA 12c Oracle Technology Adapter Guide 

 


Oracle Event Processing (OEP) 12c installation guide

Oracle Event Processing (OEP) 12c is used for developing, administering, and managing applications that needs monitoring of real-time streaming events (IoT) providing high throughput and low latency platform. The blog provides the Oracle Event Processing (OEP) installation and configuration steps. 

Pre-requisites for Oracle Event Processing (OEP) 12c

  1. The Oracle Event Processing (OEP) 12c  installer can be downloaded from the Oracle Edelivery download page. 
  2. The Oracle Event Processing (OEP) 12c  is to be installed on the existing middleware home with SOA Suite installed.  Refer the blog SOA Suite 12c quickstart installation guide
  3. Oracle Event Processing (OEP) 12c  installer provides Oracle JRockit as the Default JVM  at the below location <Middleware_Home>/jrockit_<Java-Version>_<RjRockit-Version>
  4. If Oracle Event Processing (OEP) 12c is to be installed on Solaris SPARC then Sun JVM is the default JVM and is included in the Solaris SPARC installer for OEP 12c
  5. The Oracle Event Processing (OEP) 12c  Typical Domain Configuration option is recommended for installing OEP for the production environment. 
  6. Select Custom domain configuration to get the OEP installed with the default ocep_domain

OEP 12c Installation Process with Screenshots

Open the Command Prompt and Run it as Administrator

Open the folder where quick start installer are being downloaded and extracted

Execute the below command in the Command Prompt

%JAVA_HOME%\bin\java.exe -jar fmw_<12c-version>_oep.jar

The Installer opens the Oracle Event Processing (OEP) 12c installation window

Skip the Auto Update Screen

Enter the directory location for the Oracle Event Processing (OEP) 12c Installation , Click Next

Oracle Event Processing Installation screenshot

Select Event Processing with Examples to install the event server with sample applications

The next screen provides the Installation pre-requisite check performed

The next screen provides the Oracle Event Processing (OEP) 12c Installation summary details

Click Next and OEP installation progress can be tracked.

Oracle Event Processing Installation progress

Click Finish 

Oracle Event Processing (OEP) 12c Domain Configuration Steps

Once the Oracle Event Processing installation  is completed, we need to configure the domain ocep_domain for the OEP Server.

  1. Navigate to the Configuration Wizard location 
<OEP_Installation_Home>/oep/common/bin/config.cmd  (Windows) 
<OEP_Installation_Home>/oep/common/bin/config.cmd (Linux)

2. The OEP Configuration Wizard screen appears. 

Oracle Event Processing configuration wizard

Click Next 

Select the Create New Domain Option  . Click Next . 

Configure Administrator Password:

Enter the Username and Password for the New OEP domain.  Click Next. 

Configure Server:

Enter the Server Name : oep_server

Enter the port: <listen-port-number>.   Click Next

Configure Domain Identity Keystore:

Enter the keystore file :  <DOMAIN-NAME> /ss/evsidentity.jks

Enter the keystore password:  

Configuration Options:

Do you want to perform any optional configurations for JDBC Datasources :  Select No

Create OEP Domain:

Domain Name: oep_domain

Domain Location:  <OEP_Middleware_Home>/user_projects/domains

Click Next . The domain creation progress can be seen. 

Configuration wizard confirms the successful completion of oep_domain. 

Click  Done. 

Start OEP Server 

Navigate to the OEP Domain location  (<OEP_Middleware_Home>/user_projects/domains /oep_domain) 

Run the startwlevs.sh script on Linux /  Run the startwlevs.cmd script on Windows