Integrating PCS, DOCS and BI Publisher using OSB/SOACS – Part 3

Introduction In the part 1 and part 2 of this blog, I’ve covered the overview, setup and OSB design, in this part 3 of the blog, I will be covering the PCS design. PCS Design In PCS, we will need to create 2 web service connectors, the first connector is for DOCS folder creation using […]

Integrating PCS, DOCS and BI Publisher using OSB/SOACS – Part 2

Introduction In this part 2 of the blog, we will examine the OSB design used in this demonstration.  OSB is used as an integration layer for PCS, DOCS and BI Publisher as OSB plays an important role acting as an integration layer for protocol translation and message transformation, and it will also serve as a […]

Integrating PCS, DOCS and BI Publisher using OSB/SOACS – Part 1

Introduction In this 3 part blog series, I will be demonstrating on how to use PCS to invoke OSB (On-Prem or SOACS) services and upload a report/doc generated using BI Publisher to DOCS.  The following components are used in this demonstration: Oracle Document Cloud Service (DOCS) Process Cloud Service (PCS) with DOCS integration configured. BI […]

Poller Transport Based Service Management Scripts

The polling transports (Email, File, FTP) in Service Bus only poll on one managed server for a given service, which is defined in the service configuration.  However, if the polling managed server is not running, polling is not resumed automatically on another managed server in the cluster. The zip file below contains a collection of […]

Addition by Subtraction – A Quick Win in Performance

Recently, I worked with a customer where we would notice severe performance degradation over time within JCS (Java Cloud Service). The product used was Oracle Service Bus (OSB) where it would take around 2 seconds to process a request and send a response.  Over time, we would see the same request/response take over 1 minute!  If we […]

Performance Study – REST vs SOAP for Mobile Applications

Introduction To build functional and performant mobile apps, the back-end data services need to be optimized for mobile consumption. RESTful web services using JSON as payload format are widely considered as the best architectural choice for integration between mobile apps and back-end systems. Nevertheless, we have seen many customers of Oracle’s Mobile Application Framework (MAF) […]

Creating a Mobile-Optimized REST API Using Oracle Service Bus – Part 4

Introduction To build functional and performant mobile apps, the back-end data services need to be optimized for mobile consumption. RESTful web services using JSON as payload format are widely considered as the best architectural choice for integration between mobile apps and back-end systems. At the same time, most existing enterprise back-end systems provide a SOAP-based […]

Creating a Mobile-Optimized REST API Using Oracle Service Bus – Part 3

Introduction To build functional and performant mobile apps, the back-end data services need to be optimized for mobile consumption. RESTful web services using JSON as payload format are widely considered as the best architectural choice for integration between mobile apps and back-end systems. At the same time, most existing enterprise back-end systems provide a SOAP-based […]

Creating a Mobile-Optimized REST API Using Oracle Service Bus – Part 2

Introduction To build functional and performant mobile apps, the back-end data services need to be optimized for mobile consumption. RESTful web services using JSON as payload format are widely considered as the best architectural choice for integration between mobile apps and back-end systems. At the same time, most existing enterprise back-end systems provide a SOAP-based […]

One-Way Authentication Policies in OSB

Introduction Sometimes, using OSB, it may be necessary to attach credentials, such as username and password, on an outbound SOAP request to a remote server for authentication. While the OWSM policy store available with WebLogic Server provides policies that can inject username and password (e.g. “oracle/wss_username_token_over_ssl_client_policy”), OSB causes OWSM policies to be enforced on the […]

Introduction to FMW 12C REST adapter

In this entry, I will present the usage of the new REST adapter using OSB 12C.  This adapter is a new feature providing support for RESTful web services; it also supports JSON request and response.   One important thing to keep in mind is the internal implementation of the message within OSB is SOAP/XML, there are […]

OSB MQ Transport Tuning – Proxy Service threads

The MQ Transport is a polling transport.  At the user defined interval, a polling thread, fired by a timer, checks for new messages to process on a designated queue.  If messages are found, a number of worker thread requests are scheduled to execute via the WebLogic work scheduler.  Each of these worker threads will get […]

OSB Http Transport Client Certificate Authentication Common Pitfall

I recently worked with a customer to help them resolve some issues they were having with configuring client certificate authentication (2-way SSL) for an Http Business Service in Oracle Service Bus (OSB).  This blog is to discuss a common issue encountered and how to fix it. The customer’s use case was to invoke a service […]

OSB Threading and the HTTP Transport White Paper

I have created a white paper explaining the OSB threading model with a focus on the HTTP transport.  I have heard from several customers who have experienced difficulty with tuning HTTP services with relation to the use of work managers.  This paper’s goal is to explain the threads involved in servicing a proxy and how […]

Oracle Service Bus JMS Deployments Utility

For proxy services utilizing the JMS transport, OSB receives messages from destinations by using an MDB.  These MDBs get generated and deployed during activation of the service configuration.  OSB creates a random, unique name for the J2EE application that gets deployed to WLS.  The name starts with “_ALSB_” and ends in a unique series of […]

Part 3: Kerberos Authentication, RBAC and SAML Identity Propagation in OAG

Introduction This post is the third one of a series by Andre Correa and Paulo Pereira on OAG (Oracle API Gateway). In the first post we introduced the use case and talked about the Kerberos authentication part. In the second post we talked about Role Based Access Control. In this one we describe how to […]

OSB Performance Tuning – RouterRuntimeCache

Many customers start out with smaller projects for an initial release.  Typically, these applications require 20-30 Proxy services.  But as time goes on and later phases of the project rollout, the number of proxy services can increase drastically.  The RouterRuntimeCache is a cache implemented by OSB to improve performance by eliminating or reducing the amount of time spent on compiling the proxy pipeline. 

By default, OSB will not compile a pipeline until a request message for a given service is received.  Once it has been compiled, the pipeline is cached in memory for re-use.  You have probably noticed in testing that the first request to a service takes longer to respond than subsequent requests, and this is a big part of the reason.  Since free heap space is often at a premium, this cache can not be infinite in size so this cache has a built in limit.  When the cache is full, the least recently used entry is released and the pipeline that is currently being requested is placed into cache in its place.  The next time a request comes in for the service who’s pipeline was released, that pipeline has to be re-compiled and placed in cache, again forcing out the least recently used pipeline.  Once a pipeline is placed in cache it is never removed from cache unless forced out by a full cache scenario as above, or if the service is updated, forcing it to be recompiled.

The default size limit of the RouterRuntimeCache is 100 entries (or pipelines).  It is limited by the number of services in the cache, not the memory used by the cache so the amount of memory used by a full cache will vary greatly based on the complexity of the services, the extent and complexity of inline xquery, etc.  If your project grows beyond 100 proxy services, system performance can degrade significantly if the cache size is not increased to hold all frequently used services. 

Unfortunately,
the way to tune this cache is not exposed through the OSB console.  As
of 11g PS5, the only way to set this parameter is via a system property
specified on the Java command-line.  The property name is com.bea.wli.sb.pipeline.RouterRuntimeCache.size.   For
example,

“java … -Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.size=500 …
weblogic.Server …”. 

In this example, OSB will cache 500 proxies,
instead of the default 100.  Because
increasing the RouterRuntimeCache.size value will
require more space in the heap to hold the additional proxies, be aware that you may need to
reevaluate your JVM memory settings to allow OSB to
continue to perform optimally.

OSB, Service Callouts and OQL – Part 3

In the previous sections of the “OSB, Service Callouts and OQL” series, we analyzed the threading model used by OSB for Service Callouts and analysis of OSB Server threads hung in Service callouts and identifying  the Proxies and Remote services i…

OSB, Service Callouts and OQL – Part 2

This section of the “OSB, Service Callouts and OQL” blog posting will delve into thread dump analysis of OSB server and detecting threading issues relating to Service Callout and using Heap Dump and OQL to identify the related Proxies and Business serv…

OSB, Service Callouts and OQL – Part 1

Oracle Fusion Middleware customers use Oracle Service Bus (OSB) for virtualizing Service endpoints and implementing stateless service orchestrations. Behind the performance and speed of OSB, there are a couple of key design implementations that can aff…