SOA Suite 12c Administrator’s Guide Released

 

clip_image002Your blogger, for the past few years have piled up more things that he can chew.  As a result the blog posts have dried up a little as blogging involves both time and novelty and I have been a little short on the first lately. Of that may activities that consumed me, none was more time taking, challenging and difficult as writing the Oracle SOA Suite 12c Administrator’s Guide . The book was announced a month ago and is finally out and available. Here is a sneak peak a the cover.

Oracle SOA Suite 12c is the most comprehensive and integrated infrastructure on the market today that is used for building applications based on service-oriented architecture. With the vast number of features and capabilities that Oracle SOA Suite 12c has to offer comes numerous complexities and challenges for administration. Oracle SOA Suite 12c Administrator’s Guide covers all the core areas of administration needed for you to effectively manage and monitor the Oracle SOA Suite environment and its transactions, from deployments, to monitoring, to performance tuning, and much, much more.

Manage, monitor, and troubleshoot SOA composites and OSB services from a single product set. Understand core administrative activities such as deployments, purging, startup and shutdown, configuration, backup, and recovery. Also learn about new features such as Oracle Enterprise Scheduler, lazy loading, work manager groups, high availability, and more. Get the SOA Administrator’s Guide here. For additional SOA books visit our wiki here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

SOA 12c QuickTip: Enable Servicebus message tracing in DefaultDomain by Sven Bernhardt

 

clip_image001Messsage or execution tracing in Servicebus (SB) allows insight into the message exchange between Servicebus and it’s communication partners (Client applications and Service providers) as well as the message processing within  a pipeline. Informations about incoming and outgoing messages, the corresponding headers, the course of variable manipulations and other things are written to the diagnostic logs and can be inspected there, when the tracing is active. By default the message and execution tracing are disabled, due to performance reasons and so it should only be enabled in development environments for debugging purposes.

Enablement of message tracing for proxy or business service or execution tracing on the pipeline level, can be done using Fusion Middleware Control (Enterprise Manager).Under a specific SB project, the corresponding services and pipelines can be found. Enabling the tracing can be simply done by checking the options for message tracing respectively execution tracing in the Operations tab. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

How to terminate an instance after transaction rollback and return response to caller by Rajeev Misra

clip_image002We have seen in several customer scenarios where a Parent BPEL process calls a child BPEL process asynchronously.  If child process runs into any kind of business or system fault,  fault handler sends callback to parent process with failure information.   Please note, since parent had invoked child process asynchronously,  child can’t throw fault back to parent.  Callback is only mechanism to inform parent about the failure in child process execution during asynchronous interaction.   This pattern works fine if transaction of child process is not getting rolled back.   If child process encounters some error where underlying JTA transaction is marked for rollback,  callback may not reach parent process if parent and child are collocated.   This is because,  callback invoke from child to parent will use the child’s JTA transaction to save callback in dehydration store, but since child’s transaction is in rollback state,  callback message information would be rolled back from dehydration store after JTA transaction rolls back.

Second issue is while trying to terminate an instance after it has encountered error which results into transaction rollback.  Since terminate state update of instance in dehydration store will be rolled back with transaction, any attempt to execute terminate in fault handler will be futile.

We are recommending a pattern that could help resolve both of above problems. Please look at the flow: Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Consume JSON based OData Service using SOA 12c by Krishna Hanumantharao

clip_image002

Please refer Consume OData using SOA 11g post for SOA 11g version.

As part of this post, we will see how to consume JSON based OData Service using SOA 12c.

OData

OData (Open Data Protocol), promoted by Microsoft, now an OASIS Standard,  helps service providers to expose their data using RESTful APIs. OData supports, exposing of data in two Formats, Atom and JSON. Please refer OData WebSite for information about OData.

Public OData Services

One of the publicly available OData Service can be accessed at Public OData Service

URI Notations

Let us create a SOA 12c composite to  consume the service for the following scenarios.

Following are the URI notations for

  • List All Categories in JSON Format

http://services.odata.org/V3/OData/OData.svc/Categories?$format=json

Adaptive Case Management Methodology published in Best Practices for Knowledge Workers (digital edition)

image

Working on an Adaptive Case Management (ACM) opportunity? Read the ACM Methodology published in the Best Practices for Knowledge Workers (Digital edition) book.

BPM-based solutions have brought major advances to work organization and automation. However, given BPM’s strong basis on formal workflow definition, oftentimes BPM solutions are not well suited for work scenarios where a precise workflow cannot be strictly defined. Work in such scenarios is highly dependent on knowledge-based decisions about activities and outcomes, leading to multiple work paths and business rules that can become quite complex or even unfeasible to model and completely automate. In these cases, a different technology support approach is required. The focus is not to isolate and automate decisions and rules, but rather to deliver opportunistic information support to the knowledge worker to accomplish them. Adaptive Case Management (ACM) rises as a successful design pattern for this. Get the eBook here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Integration Workload Statistics (IWS) on untyped JSON and JavaScript in Composites by Maarten Smeets

 

clip_image001SOA Suite 12.2.1 introduces Integration Workload Statistics. This is a powerful new feature which can be used to do performance measures. Oracle SOA Suite 12.2.1 also introduces untyped JSON support and JavaScript support in composites and Service Bus. What better way to take a good look at both features by doing some performance measures using IWS on composites using untyped JSON and JavaScript!

I created 4 HelloWorld BPEL processes. Two of them are SOAP services and two of them are JSON services (not REST since they do not conform to REST architecture style). Two of these processes contain an assign activity using a JavaScript expression and one of them uses XPATH. I used SOAPUI to fire lots of messages on all services and measured responses. At the same time I had IWS activated to collect data on my processes. The results are quite interesting!

IWS + SOAPUI vs untyped JSON and JavaScript support in SOA Suite 12.2.1

Integration Workload Statistics

Introduction

Integration Workload Statistics provides valuable performance related information on your SOA Suite environment. This ranges from JVM memory usage to duration of BPEL activities. It even provides insight in the functioning of the SOA Suite by providing information on the transfer of messages over composite wires. You can not use it on the integrated WebLogic server provided with the quickstart of JDeveloper though.

Using IWS is simple. First you have to activate it (it’s off by default) by right-clicking the soa-infra application, Monitoring, IWS Reports. Here you can click configure and set the level of detail. After you have applied this setting, you can run reports on the collected data. Report formats supported are CVS, XML and HTML. HTML provides a readable format which also contains some explanation on specific results. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

New SOA Diagnostics Tool – IWS Reports – Overview by Malkit

 

clip_image002Introduction

Among many new features added for 12.2.1 version of Oracle Fusion Middleware (announcement link) and demoed at this year’s recently concluded Oracle Open World, I’m particularly excited about brand new diagnostics feature of Oracle SOA Suite called IWS Reports – being the lead designer and implementer of this project.

IWS stands for Integration Workload Statistics and is intended to provide Oracle DB AWR like diagnostics for SOA applications. At high level, IWS can help user with two common challenges faced in SOA:

1 – Scaling Issue

2 – Performance Bottlenecks

Diagnosing performance and scalability issues in SOA can be hard. Performance of a system depends on number of factors. SOA Systems pose particular challenge since large installations typically involves interactions between partners and services – internal and external, stateful and stateless components, synchronous and asynchronous communications, deployment over multi-domain clusters etc.

Main causes for performance/scalability issues:

  1. Insufficient resources – CPU/Memory/network bandwidth
  2. Improper configurations – thread pools/data-sources etc.
  3. Slow partners
  4. Slow database (back-end)
  5. Lower stack (such as application server or operating system) performance issues

The above causes can manifest in following:

  • Lower overall throughput
  • Large increase in response time
  • Backups in global queues
  • System stuck in extreme cases
  • Random errors/non-deterministic behavior (extreme low memory situations)

IWS Reports provide variety of statistics such as system resource usage, message flows at key points in the system, backlogs at various components and activity execution times which can diagnose performance/scaling issues.

IWS in nutshell

  • Helps in identifying bottlenecks and/or backups in the system
  • Useful for tuning for scaling or performance improvement
  • Snapshot based (configurable)/Automatic 
  • Central – collects stats from components and bindings/adapters in single output
  • Lends top-down/outside-in or direct analysis
  • Statistics maps to user application/project environment
  • Single point filtering based on Application/Composite/Component
  • Adds very little memory/processing overhead. Can be left always-on in production systems (off by default)
  • Snapshots persisted – for historical analysis/bench-marking/baseline and snapshot comparison

Note that there are two patents pending around concepts of diagnostics and backlog calculations as used in IWS Reports.  Read the complete article here & part 2 here & part 3 here & part 4 here & part 5 here

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

12c XSLT Editor – XSLT View Overview

 

clip_image002XSLT View is one of two graphical views provided by the new 12c XSLT Editor. 

(For a quick introduction to the graphical views in the 12c XSLT Editor see here.)

XSLT View provides the ability to edit any XSLT file graphically. It is intended for XSLT developers who have a general understanding of XSLT and have written XSLT source code in a text editor.

XSLT View is effectively a graphical source view. It has many advantages over editing XSLT source in a text editor.  Many of these are listed in the XSLT Editor Overview at the link above.  I think the best way to show these advantages is through specific examples.  In this post I will use an identity template to create a complex XSLT map.

For our example we will work with a PurchaseOrder to PurchaseOrder map.

Our goal for this map is to copy the source tree to the target tree, and while we are doing the copy, we want to copy the ShipTo CustomerName value into the BillTo Address, so that when we are done, the ShipTo and BillTo elements will both use the same CustomerName.

We could do this by explicitly mapping each node, however, we can also use an identity template to copy the source.  Identity templates are often used to copy an input document to the output document, but make some modification while the copy is being done. If the source input at runtime is small compared to the number of elements defined in the source schema, it can be significantly faster to copy the tree using an identity template, compared to creating explicit XSLT statements for every node in the schema. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Monitor SOA Suite service response times with Splunk by Maarten Smeets

 

clip_image001Measuring performance of services can be done in various ways. In this blog article I will describe a method of measuring Oracle SOA service response times with Splunk a popular monitoring tool. In order to monitor service response times with Splunk, Splunk needs to obtain its data from somewhere. In this example I’ll use the HTTP access log which I expand with a time-taken field. Disclaimer; my experience with Splunk is something like 2 hours. This might also be an indication of what can quickly be achieved with Splunk with little knowledge.

Making service response times available

log_policy

At first I thought about using the OWSM policy oracle/log_policy. This policy can be applied to an endpoint. The policy logs request and response messages. There is however not (without alteration of the policy) a way to correlate the request with the response message. See the image below. An ECID is logged, but the ECID can differ for a request and response. The ECID can also be the same for different requests in a call chain. Several HTTP or SOAP headers could potentially be used for this, but they have to be present in the request and in the response. This can require some work, especially if you want to add them in the request, since all consumers need to use these headers.

Correlation of request and response messages is not possible OOTB with the log_policy

access.log

The access.log file stores by default some data on HTTP requests such as timestamp, HTTP status code, url and the size of the request. This can easily be expanded with the time which is required to process a request. You can configure this from the WebLogic Console. Go to your server, Logging, HTTP and click the Advanced button. Here you can add time-taken as a field to log in the Extended Logging Format Fields. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

VirtualBox with SOA, BPM, OSB and BAM in 33 minutes by Peter van Nes

clip_image002

The Oracle Quick Start installers for Developers are great for probably many developers, but they are limited. Shutting down (or crashing of) JDeveloper will shutdown the domain and there are separate Quick Start installers for SOA and BPM suite. When installing a SOA or BPM environment for development or research purposes i prefer an environment which is more close to a production configuration. Setting up an new environment can take some time when you have to go through the wizards and remembering the options chosen the previous time you installed. Therefore i scripted the installation proces, the scripts are divided per product so that i a later stage easily can replace specific stages in the installation proces and am not bound to a specific virtualization product or installation tool.

In this article i will show you how to configure a VirtualBox machine, install Oracle Linux 6U7, Oracle BPM (including SOA), OSB & BPM. And configure a Weblogic 12cR1 domain with separate managed servers forSOA/BPM, OSB and BAM in less than 33 minutes. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki