rss
SOATUBE
Oracle
Custom Search SOABYTE here

Sunday, February 27, 2011

Basic FAQs of SOA Suite 11g Part 4


Is OWSM being released in 11gR1?

Yes, OWSM is the strategic security and policy framework for Oracle Fusion Middleware.
Agents and policy manager are built in FMW 11g (service infrastructure, EM, etc.) but not sold standalone at this point.

Will OWSM still be sold as part of the SOA Suite?

Yes, in fact the plan is for OWSM to be sold only in SOA Suite (no longer sold as a standalone item). Of course, without the gateway, OWSM really becomes part of the infrastructure, so this approach is probably the only one which makes sense.

Is it possible to log/audit web services conversations handled by a SOA composite?

Yes. For this you could simply attach a Management policy to your web services binding (name: oracle/log_policy). Each response/request going through that binding will then go an OWSM log (in the case of the JDev ADRS container, this file is called diagnostic.log and stored in %JOH%\system11.1.1.0.22.48.95\o.j2ee\embedded-oc4j\log\owsm\msglogging). Here's an example of the information you will find in this file:
[2008-03-27T14:36:04.175-07:00] [wsm] [NOTIFICATION] [] [management.logging] [tid: 33] 
[ecid: 0000HZmAo8v00000000000000002G6Oxb0000000CM,0:1] [WSM_PolicyName: oracle/log_policy] 
[WSM_BindingWSPort: http://xmlns.oracle.com/test/Project1/test#wsdl.endpoint(client/test_pt)] 
[WSM_RemoteAddress: 127.0.0.1] [WSM_MessageId: 0000HZmAo8v00000000000000002G6Oxb0000000CM,0:1] 
[WSM_LogType: Request] [WSM_LogLevel: all] [ WSM_ModelObjName: client] 
[WSM_ServiceID: default/Project1/client] [WSM_AppicationName: default] [WSM_OperationName: process] 
[APP: soa-infra] [WSM_PolicyVersion: none]
[[
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body xmlns:ns1="http://xmlns.oracle.com/test/Project1/test">
        <ns1:testProcessRequest>
            <ns1:input>PROJECT</ns1:input>
        </ns1:testProcessRequest>
    </soap:Body>
</soap:Envelope>
]]
[2008-03-27T14:36:04.205-07:00] [wsm] [NOTIFICATION] [] [management.logging] [tid: 33] 
[ecid: 0000HZmAo8v00000000000000002G6Oxb0000000CM,0:1] [WSM_PolicyName: oracle/log_policy] 
[WSM_BindingWSPort: http://xmlns.oracle.com/test/Project1/test#wsdl.endpoint(client/test_pt)] 
[WSM_RemoteAddress: 127.0.0.1] [WSM_MessageId: 0000HZmAo8v00000000000000002G6Oxb0000000CM,0:1] 
[WSM_LogType: Response] [WSM_LogLevel: soap_body] [ WSM_ModelObjName: client] 
[WSM_ServiceID: default/Project1/client] [WSM_AppicationName: default] 
[WSM_OperationName: process] [APP: soa-infra] [WSM_PolicyVersion: none]
[[
<?xml version = '1.0' encoding = 'UTF-8'?>
<env:Body xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
   <testProcessResponse xmlns="http://xmlns.oracle.com/test/Project1/test">
   <result>PROJECT</result>
</testProcessResponse>
</env:Body>
]]
(the policy definition is at %JOH%\system11.1.1.0.22.48.95\o.j2ee\embedded-oc4j\gmds\owsm\policies\oracle\log_policy)

Basic FAQs of SOA Suite 11g Part 3


How can I propagate the file name from input file adapter to output file adapter using JCA headers?

Mediator supports JCA header manipulation in newly introduce assign construct or inside XSL through extension functions.

Is there a property that we can set to point at alternative locations for wsdl of a SOAP service endpoint?

You can set alternative location url in WS-binding reference to archive this.

Is there a technical solution to guarantee once and once only processing in Mediator assuming the failure of the processing node?

Reliability of message delivery always depends on used protocol. If you use JMS (and e.g. DB adapter, Java binding, EJB call as well), required "once and once" delivery is guaranteed. You just have to use reliable (persistent) messaging as JMS provider (like Oracle Advance Queuing) to avoid losing message in case of system crash, etc.
If you use SOAP over HTTP, situation is more complicated. There is WS-Reliability standard to achieve guaranteed delivery, no duplicates and guaranteed message ordering of SOAP messages, but Mediator doesn't support it (and you would also need to modify your existing services).

Does Mediator support web service end point URL resolution using UDDI?

Yes. This happens at WS-binding layer and can be used from all service components.

What are the DB tables used for mediator instance tracking infrastructure ?

Mediator_Instance - master table for mediator instances. Contains one row for each mediator flow.
Description of important fields:
Field Description
ecid Unique id across j2ee components
composite_instance_id Unique id for a composite instance
id Unique id for a mediator instance
parent_id Instance id of the component which had invoked this mediator instance. For ex : BPELProcess1 is invoking Mediator1 then this would contain the instance id of BPELProcess1.
parent_ref_id Unique reference id of parent component (required for audit trail linking in console)
component_name Name of the component(This is in the format compositeDN + meditor_component_name)
outcome Component specific outcome string. Not used in mediator-mandated by instance tracking
component_state State of this mediator instance. 3 bit pattern represented as an number. Here is the list in the format "columnValue(bit pattern):0(000) - No faults in any of the cases till now but some might be running. (Running and completed can be verified by case_num and completed_case_num. Details below)1(001) - At least one case is aborted by user2(010) - At least one case is faulted(non-recoverable)3(011) - At least one case is faulted and at least one case is aborted4(100) - At least one case is in recovery required state5(101) - At least one case is in recovery required state and at least one case is aborted6(110) - At least one case is in recovery required state and at least one case is faulted7(111) - At least one case is in recovery required state, at least one case is aborted and at least one case is faulted
source_type event - If event initiated this instanceoperation - If a component initiated this instance
source_action_name Event or operation name that the initiated this instance
case_num Total number of cases for this mediator instance
completed_case_num No of completed cases(this includes faulted ones also). So a mediator instance is completed successfully only when case_num=completed_case_num and component_state=0
Mediator_Case_Instance - Details table for mediator instances. Contains one row for each mediator case of a mediator instance. So if a mediator contains three cases (routing rules) then this would contain three rows, one for each case.
Description of important fields:
Field Description
id Unique id for this case
instance_id Mediator instance id from mediator_instance table
case_name Case name defined in mediator mplan
target_type Type of target for this case (event or operation)
exception_type Type of exception if the case encountered an error. (system or business)
short_exception_msg Short exception message
exception_msg Long exception message
exception_trace Exception trace
fault_name Name of the fault thrown - required for fault policy handling
fault_obj Blob containing the fault object - required for fault policy handling.
retry_count No of times this case has been retried till now.
retry_interval The retry interval for the next retry. Changes when user configures for exponentialBackOff.
recoverable Whether this case is recoverable or not. (0 - non recoverable, 1 - recoverable)
status Status of this case - used by DB based error handling infrastructure. Does not represent the actual case state which is represented by mediator_case_detail.state.(details below)
Mediator_Case_Detail - Details table for mediator case instances. May contain more than one row for each mediator case of a mediator instance. The number of rows for a mediator case depends on the complexity of the scenario. For ex: If a mediator case is asynchronous callback then this would contain two rows one for request and another for the response. Similarly each retry for a case will create a row in this table.
Description of important fields:
Field Description
instance_id Mediator instance id from mediator_instance table
case_id Case instance id from mediator_case_instance table
trail_seq Sequence of the actions happened on the case. For ex: In async callback scenario, request will have 1 while response will have 2.
state State of this part/trail of the case. For ex: In async callback scenario, if request is completed successfully then this col value will be 0 and if response is faulted then this will have 2. Various trail states are:0 - Completed successfully1 - Aborted2 - Faulted3 - Running4 - Recovery requiredOverall state of the case is determined by the state of the last trail for a case in this table. There is view which captures this -mediator_case_detail_v.
audit_trail Blob containing the audit trail xml for this trail of the case.
Other tables are used for callback and DB based message handling for mediator. Those are not important for instance tracking.

What is the Mediator "Number of Workers" and how is it used for performance tuning?

This controls the number of worker threads the Mediator engine spawns to process all parallel routings rules. So if you are using Mediator parallel routing rules then you can increase this number to increase throughput. By default it is configured to 4.

Can I use Mediator for data enrichment?

Mediator can be used for simple data enrichment scenarios - mostly revolving around data substitutions and lookups. Many customer use cases require Mediator to provide service chaining orchestration and out-of-box 10.1.3.1 implementation is limited to the cases described below however the AS11 mediator component will provide a much richer experience that will satisfy these use cases.
Lighweight enrichment functional that Mediator provides out of box includes:
·         the Domain-Value Map feature (DVM)  to substitute/expand on certain data fields.
·         the database query function in XSLT to look up certain fields.
·         the response or callback or fault forwarding and other interaction patterns  to gather external data from a database, file, etc. and add it to a message payload (or use it for routing).
For more complex data aggregation scenarios (for instance, waiting for multiple processes to complete to aggregate their result sets), a stateful engine such as BPEL PM is required.

Can I invoke an Mediator Service using a Java API other than SOAP or JCA?

Yes. This will be same API shared by all service components in SOA Suite 11g.

Are Partnerlinks now called Services (or References)?

Not exactly. Partnerlinks is a BPEL terminology, and remains in use when you work within the BPEL environment. But these BPEL partnerlinks are surfaced at the SCA level as either a Service (i.e. inbound binding) or References (i.e. outbound binding).

Is BPEL PM 11gR1 BPEL 2.0-compliant?
Technically, BPEL PM 11gR1 still use bpel 1.1 but with most 2.0 functionality available as extensions.
The salient facts:
·         Oracle supports the majority of the BPEL 2.0 functionalities in the current 10gR3 and 11gR1 releases:
Details: Current 10gR3 release supports semantics of BPEL 2.0, but not all all the syntax. For example, in BPEL 2.0, there are two ways to do variable manipulation: (1) $varX.partN (2) getVariableData(varX,partName/XPATH). These two are functionally equivalent so our current BPEL server supports only the latter syntax. However, functionally and semantically, Oracle's current BPEL implementation supports all the significant BPEL 2.0 capabilities (new compensation rules, dynamic parallelism, etc).
Additional details: Specifically, we will support the rest of the BPEL 2.0 syntax in our BPEL engine in 11gR1 patchset 2 (scheduled 1H CY'10).
As background, there are some vendors that have earlier support for the BPEL 2.0 syntax than we do and they are pushing hard on that, since there have been few windows of opportunity for competitors to challenge Oracle's clear leadership in the BPEL space. However, this window is a small one and is only open due to the timing of the finalization of the BPEL standard and our release cycles. In general, however, Oracle's leadership in this space is very clear

What is the identity/security provider for SOA

The JPS security layer supports various identity providers - LDAP, XML, XS, OID etc. In AppsDrop3, the SOA infrastructure will be using the XML file based provider with users/roles stored in the system-jazn-data.xml file. Note that some ADF apps may use the XS provider (based on 11g RDBMS) for authentication. If you are using an ADF app that uses XS along with the SOA infrastructure - you would need to synchronize users in the XS store with the XML file based store

Use advanced routing rules (Oracle Business Rules) for workflow routing

You'll notice an "Advanced Routing rules" button in the human task editor. Using this you can wire a business rule service to human workflow for sophisticated routing patterns such as "move forward x levels", "move back to previous user based on outcome" etc. Since the business rules component is not supported for AppsDrop3 - this feature is also temporarily not supported. This will be supported in AppsDrop4

Channels for workflow notification

As part of the BPEL process or human workflow, you may send notifications to users via various channels - email, SMS, voice etc. This feature leverages the new 11g User Messaging Service

Which WLS to use for the "Human task form"?
To design a form for Human tasks - you need to create a project of type "ADF task flow based on human task". Note that this project needs to be deployed on the standalone WLS that hosts the SOA infrastructure. In general, all other ADF projects are deployed on the JDev-embeddeded WLS - but this one interacts with the human task service hence should be colocated. It can be on a different instance as well - but that configuration is a little more complicated. When deployed on the same container as SOA, no additional configuration is needed
How to cleanup jdev task flow application based on human task?
1.      Select TaskFlow application in jdev and click left mouse button -> Erase Application From Disk
2.     This will popup window for user confirmation to delete .jws file.  Once user says OK, it will delete jws file only.
3.     Go to parent directory of .jws file and remove parent directory.


How does the MDS get used - if at all - for centralization and sharing of common business rules? Or is there another way to do this?

Rulesets are stored in MDS and therefore can be shared. One could create an MDS connection in JDeveloper and explore rules created by other developers.

In JDeveloper, can you browse & consume services from OSR or OER?

Yes, certainly. You can create a connection to OSR or OER from JDeveloper, and browse the assets therein.

Is a plugin required in JDeveloper to create connections to OSR & OER?

A connection to OSR can be created out of the box in JDeveloper using the standard Connection Navigator, where you go to create a Database or AS connection.
For OER, you need to download a plugin. In Oracle JDeveloper 11g Release 1(11.1.1.2) release, the Oracle Enterprise Repository adapter and the SOA adapter were bundled together. When you installed SOA, you automatically received the Oracle Enterprise Repository adapter. In the Oracle JDeveloper 11g Release 1(11.1.1.3) release, there are three separate plugins:
•    a plugin for the SOA extensions
•    a plugin for Oracle Enterprise Repository that provides Oracle Enterprise Repository search capability
•    an Oracle Enterprise Repository harvester plugin

Where can I get the OER Connection plugin JDeveloper 11g?

To obtain the Oracle Enterprise Repository plugins for Oracle JDeveloper:
1.    In Oracle JDeveloper, click Help, Check for Updates.
2.    In the Check for Updates wizard, select the Internal Automatic Updates option, select the OER plugin that shows up & click Next to install the updates.

Does the new separate OER Connection plugin introduced in JDeveloper 11g R1 (11.1.1.3) work with OER 11g R1 (11.1.1.2)?

Yes, the plugin works with both OER 11.1.1.2 & OER 11.1.1.3. With 11gr1, we only support browse/consume from JDev to OSR. JDev OER support is planned for the fall 2009 OER 11g "wildcat" release.

Can artifacts be physically stored in the repository behind OER?

Yes some but not always recommended especially in the case where OSR/UDDI or SOA 11 MDS would refer back to OER via http to access a WSDL. It's best to think of OER being for DT only. OER does not live in RT env and does not scale to meet production demands for hosting WSDL's. That is more the job for MDS.

Is it possible to use OSR/UDDI at Design Time & for Dyanmic Runtime binding in SCA Model Tooling in a SOA project?

Yes, you can configure your SOA project to invoke a service from OSR, using an OSR Connection you defined earlier in your JDeveloper
.

Do the actual artifacts of assets get physically stored in the OER repository or does it just store the metadata (links, information etc)?

 Yes, they could reside in OER for manual download via the web console.

What is the recommended best practice with regards to using OER & OSR?

OER is meant for design time, for the service lifecycle management. On the other hand, OSR is meant for runtime, to publish your assets when they are ready on production for discovery by customers. OSR is scalable for production scenarios and manags the runtime aspect of SOA Governance.

Basic FAQs of SOA Suite 11g Part 2


How can I call the Rules Engine from the Mediator?

Oracle Rules can be integrated with Mediator through [ Mediator Dynamic Routing functionality | http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/med_createrr.htm#BGBFCGJB

Does Mediator support a management/monitoring API ?

Mediator can be monitored by EM. It also exposes those monitoring functionality through remoteable Facade API.
Mediator also expose it's management functionality through EM and MBea

Does Mediator support BAM?

Mediator does not support the BAM design time sensors like BPEL does through BAM Sensors. But BAM can be configured as BAM Service reference inside the same composite of the mediator component and mediator can publish data to BAM for reporting purpose

What size XML documents can Mediator support?

Check out this for how SOA Suite 11g handles large payload

Does Oracle Mediator support message ordering?

For a synchronous flow, order will be guaranteed if the inbound source adapter is configured with one thread for the source endpoint and there is only one target endpoint. Ordering for Async routing rules will be guaranteed if the outbound endpoint is not clustered/multi-threaded.
In 11gR1 PS1, a message resequencer has been added which has more elaborate support for resequencing.

Can Mediator pass security credentials when invoking an external web service?

Yes through Security Policy in outbound WS-Binding reference. See this for more details

How can I disable the auditing messages for mediator ?

Mediator provides Admin and MBean interface through EM to manage audit level settings. Check out Mediator Audit Setting configuration

What sort of Transaction support does Mediator have?

·         Oracle Mediator provides full support for participating and initiating JTA/XA transactions across any service interactions that use Java which can be from the following destinations.*
·         JCA adapters such as Database, JMS, AQ, MQ
·         Java programs invoked using the Oracle Mediator invocation API
·         Any other SCA components
·         Mediator Inherits Inbound Global Transactions
·         An "Async" Routing Rule ends the scope of the current transaction
·         New Mediator initiated transactions are grouped by Mediator System
·         Transaction Exception Handling and Rollback
·         Errors on existing inbound transactions are rolled back to initiator
·         Errors on Mediator initiated transactions can be resubmitted from the Mediator Control
·         The End-to-end message flow will terminate on the 1st failed service regardless of transaction state or owner  

Will the fault policies be executed in the same transaction context as the Mediator execution thread ?

No. Fault handling based on fault policy executed in separate transaction and separate thread.

If a routing service has 2 async services, what happens if they both fail? Do two error hospital messages get generated or one?

Both will show up as two different re-submittable instances in EM console.

Can auto retry be configured in the following scenario and if so, how?

I'm trying to configure good old fashioned pub-sub. I have the subscribers transacting independently (Asynch routing rules with adapters in different systems) and I can manually resubmit failures from the Error Hospital.
You can configure the adapter to retry through setting properties in JCA binding in composite.xml. So for instance if an endpoint is down for a couple minutes, setting retryCount = 5 and retryInterval = 60 would cause it to retry for 5 minutes before it gives up and sends back to error hospital for manual resubmit.
Additionally, if you want to do auto resubmit of errors from Error Hospital, you can utilize mediator fault-policy framework for doing so [http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/med_faulthandling.htm#CHDJAADA ]
Instance can be resubmitted through EM console.
You can achieve the same with programmatic interface.

What is the correct way to purge Mediator instance data?

There are at least 3 options:
1) Use the SOA EM instance tracking page purge using time based filter criteria. The filter criteria is also expanded to the search dialog such as instanceid, service name and status.
2) Use Facade API to purge the instance data.
3) Use DB scripts to purge the instance data post-PS1.

Basic FAQs of SOA Suite 11g

What SOAP versions are supported by Oracle SOA Suite?

Oracle SOA Suite 11g supports both SOAP 1.1 and SOAP 1.2.

What WSDL version does the Oracle SOA Suite support?

Oracle SOA Suite supports WSDL 1.1. You can find more information on supported standards at http://download.oracle.com/docs/cd/E12839_01/web.1111/e13759/standards.htm#i1077678

How can I change the SOAP version that is exposed by my services?

You need to change the soapVersion property of the WS binding used to expose that service:
·         select the WS binding in JDev
·         select the Property Inspector tab at the bottom of the JDev window
·         In the Bindings section, click on the Properties View button.
·         add or edit the soapVersion attribute and set it to either 1.1 or 1.2

Are change data capture adapters included with SOA Suite license or is an ODI license required?

The CDC adapters are licensed separately from SOA Suite.

What exactly is the Socket Adapter? What kind of socket are we talking about here? A networking socket?

It is a TCP/IP socket adapter, often used to integrate with exotic, older system with no standard API. For instance you could interact with telnet using this adapter.

How hard is it to work with the socket adapter to interact with a custom system?


What is the difference between managed and non-managed mode in JCA Adapter configuration?

In managed mode, the connection information is picked up from the connection factory in WLS. In non-managed mode the connection information configured in wsdl (from jdev) is used. The recommended best practice for production is to use managed mode. Managed mode is a more scalable mode where the connection information is setup once using connection factory and multiple services can reuse it. Non-managed mode is for quick testing.

For a JCA DB Adapter, why do I need to configure connection information twice - once in JDev and again in WLS?

The connection information configured in JDev serves two purposes. It is used during design time to connect to the DB to get the data model so the toplink file can be created (this is the more important of the two purposes). Since this information is already there, it can then be used at runtime (in non-managed mode) to connect to the same DB (for test purpose). However, the DB used to get the data model can be a non-production DB. At runtime connection to a production DB might be required. This is where managed mode comes handy. Hence, the reason to configure connection information (via Connection Factory) in WLS (for managed mode). 

How will I influence the sequence generation for an outbound FileAdapter?

If you're using "eis/FileAdapter" as the JNDI, the FileAdapter stores the sequence numbers in a binary file ("control_ob.properties") under the control directory. If you're running the File Adapter with default configuration, the control directory is created under "$FMW_HOME/user_projects/domains/soainfra/fileftp/controlFiles/<Digest>/outbound" where Digest is a SHA-256 digest so that the control directory is unique to the particular composite.
The sequence numbers are stored in the "control_ob.properties" in binary form for performance reasons. If you've a binary editor, please feel free to update this file. However, if you do not want to use a binary editor, do the following:
i)  Find the control file being used by the outbound scenario. In order to find the control file, you will need to run the adapter in debug mode and look in the soa diagnostic log for the contrl file. This log statement would start like this: "Digest BaseDir is [control file]". On my setup, this looks like "Digest BaseDir is [/scratch/oracle/fmwhome/user_projects/domains/soainfra/fileftp/controlFiles/+kBt8d4YgJFpd5rWOSyMmZchfEFilru2z2HCGMByUBI=]"
ii) List the directory to see the control file: control_ob.properties
iii) Truncate the control file. If you're running Linux, go to the control directory and run ": > controlFile_ob.properties" in order to empty the control file.
iv) Create an empty marker file (SEQ_ABS_<nnnn> where 'nnnn' is the sequence number) in the control directory with the sequence number you would like to start from. For example, if you wish to start the sequence from 100, touch SEQ_ABS_99 in the control directory. For the next run, the adapter would start the sequence from from (99 + 1) = 100.
If you simply want to reset the sequence, remove the control file and the sequence number would reset automatically. 
If you're using "eis/HAFileAdapter", then the sequence number is actually maintained in your SOA-INFRA schema as an Oracle SEQUENCE. Usually (though not always), these sequences are generated dynamically with this naming convention: SEQ_<Digest>. You can query the USER_SEQUENCES table to get the sequence info. You can use "ALTER SEQUENCE" command change the increment, minimum and maximum values, cached numbers, and behavior of an existing sequence.

Are both Mediator and OSB strategic moving forward?

Yes, both are strategic. Mediator is a thin layer which allows routing, event delivery and transformation inside of a composite. OSB is a full service bus for endpoint virtualization, enrichment, exposing canonical services, etc.
To summarize:
·         Mediator
·         Main use case: Intra-composite  routing & mediation."impedance matching SCA components"
·         Main audience: Ccomposite builders
·         OSB
·         Main use case: Inter-composite, infrastructure routing & virtualization. Enterprise-wide ESB
·         Main audience: SOA operations

What interaction patterns does Oracle Mediator support?

Mediator supports all different interaction pattern supported by service infrastructure i.e. one-way , request-response-fault, request-callback.

What rule execution types does Oracle Mediator support?

Mediator supports two different rule execution types :
·         Sequential - Execution happens in same thread of caller thread. No dehydration of messages and same transaction spanned across all routing rules.
·         Parallel - Caller thread is released after message dehydration successful. Separate threads used for processing the message. Each parallel routing rule executed in different thread and transaction.
These are named as Synchronous and Asynchronous in 10g but the underlying concept is same.

Does Mediator support filtering or assignment message headers?

Yes, you can do header based filtering as well as set standard and custom header properties for adapters (JMS, AQ ...) and SOAP services through Mediator assign construct or inside XSL transformation. Check samples showing how to do this at http://www.oracle.com/technology/sample_code/products/mediator/index.html

Does Mediator support multi-part messages or binary attachments?

Full support for multi-part messages is included in mediator. Every part of the message can be used for assign , transformation or filtering inside mediator.
Attachment also can be used to pass-through mediator.

What is Error Hospital? Is this out of the box? Do we have to set up the Error Hospital?

Error Hospital is a term we use for Guaranteed and Reliable delivery of messages .Certain pieces of it are provided out of box and others may require custom work to retry a failed message.


 
Blogger Profile