Blog Archives

How to Create a Diagram of an OSB Domain

A 10000-ft view of an OSB domain, in 5 minutes, with TransitMap. Is it possible to understand the inter-connectivity of a complex OSB domain? Is walking through the code step by step and making notes, both on paper and mentally, the only way? Can we generate a diagram of the

Read More…

Posted in OSB In General
Tags: , , ,

How to Use Unit of Order with OSB

Using Unit-of-Order with OSB. Download the test project. Unit-of-Order (UOO) is an Oracle (BEA) extension to standard JMS. It enforces the order of messages with the same key so that the messages are consumed in the order they were added to the queue. This functionality works in a cluster, too,

Read More…

Posted in OSB In General
Tags: , ,

JSON Proxies: Inspecting & Modifying the Payload

How to read and update JSON in OSB. Download the full example. UPDATE from future! DO NOT CONVERT JSON to XML! It is a pain if you need to convert it back! Use Javascript! Using Javascript to Inspect & Modify JSON Payload See other posts about OSB & JSON: Why

Read More…

Posted in OSB In General
Tags: , ,

GenericParallel Primer: Passing the User Headers

How to pass OSB user headers to and from the backend service in a parallel call. A split-join service drops all user headers. End of story. This is because split-join is not really an OSB service, but an implementation of a BPEL engine. It has no idea of OSB-specific concepts

Read More…

Posted in OSB In General
Tags: , , , ,

Split-Join: Getting Fault Details in CatchAll

To get fault details in split-join’s CatchAll, call an intermediary proxy. When split-join invokes an OSB business service and that call fails, CatchAll does not help. Instead of detailed information of what went wrong, the fault variable contains only a single element <soapFault> from the BPEL extensions namespace.

Posted in OSB In General
Tags: , , ,

GenericParallel Primer: Passing the SOAP Headers

How to pass SOAP headers to and from backend service in parallel calls. In an ideal world, a split-join service would pass any SOAP headers to the backend service and back without any effort. In the real world, the headers inevitably get lost along the way.

Posted in OSB In General
Tags: , , ,

GenericParallel Primer: Limiting the Concurrency

Putting a cap on the maximum number of parallel request in GenericParallel. Parallel calls are an extremely powerful tool and, like any powerful tool, can be dangerous. Hitting a backend service with 5 parallel requests will reduce the response time. Hitting the same service with 50 parallel requests may bring

Read More…

Posted in OSB In General
Tags: , , , , ,

GenericParallel Primer: Calling Multiple Services

This is the shortest guide for making an OSB parallel call with GenericParallel. I assume the GenericParallel service is already deployed on your domain. (If not, here’s the guide.) All you need to do then is to call the GenericParallel entry proxy located at GenericParallel/GenericParallel path. The entry proxy takes

Read More…

Posted in OSB In General
Tags: , , ,

Throttling, Unbalanced & Over-Allocated

A service’s domain-wide throttling value may be different from what you have configured for it. I have mentioned already that the throttling value assigned to a service on a specific managed server is calculated as the throttling value from the configuration divided by the number of managed servers, and rounded

Read More…

Posted in OSB In General
Tags: , ,

Work Manager Is Not A Thread Pool; Max Threads Constraint Is

Sharing Max Threads Constraint between multiple Work Managers causes them to share the same thread pool. It is natural to think of a Work Manager as a thread pool, and of Max Threads Constraint as a property of that pool. Therefore it is natural to create, say, 3 Work Managers

Read More…

Posted in OSB In General
Tags: , , ,