Skip to main content

Posts

Showing posts with the label Dynamic Routing

When Why to use Work Managers in Weblogic

" If you do nothing on dispatch policies in OSB proxy or business services, all is done in the Default Workmanager. But since some constructions, not only service call-outs, need other threads to finish the job,  you can get stuck threads because the workmanager's threadpool gets empty having all or near to all threads waiting , leaving no threads to pickup work to free the others.  If all threads in the default queue become stuck, the server changes its health state to "critical. If all threads in weblogic.admin.HTTP, weblogic.admin.RMI, or a user-defined execute queue become stuck, the server changes its health state to "warning. Work Managers have a Ignore Stuck Thread options that gives the ability to execute long running jobs.  " Based on our need we can create one of following work manager's: For OSB to work optimally and prevent floading WebLogic’s threadpool with hogged/stuck threads you should create 3 FairShareRequest classes ...

Dynamic XML element processing & Dynamic JSON generation from XML

xquery version "1.0" encoding "utf-8"; (:: OracleAnnotationVersion "1.0" ::) declare namespace www="http://www.inc.teamshare.gems.com"; (:: import schema at "../Schemas/GemsTeamshareData.xsd" ::) declare namespace pul="http://xmlns.oracle.com/pcbpel/adapter/db/top/Pull_GEMS_INCREMENTAL_DATA"; (:: import schema at "../Schemas/Pull_GEMS_INCREMENTAL_DATA_table.xsd" ::) declare variable $inputVariable.GemsIncrementalDataCollection as element() (:: schema-element(pul:GemsIncrementalDataCollection) ::) external; declare variable $TempListExtractData as element() (:: schema-element(www:TeamShareData) ::) external; declare function local:funcJsonteamshare($inputVariable.GemsIncrementalDataCollection as element() (:: schema-element(pul:GemsIncrementalDataCollection) ::),                                          $TempListExtractData as element() (:: schema-element(www:TeamShareDa...

Multiple Runtime Endpoint Locations for Partner Link

Hello All, Hope you all are doing well!!! Oracle SOA Suite provides support for specifying multiple partner link endpoint Locations. This capability is useful for failover purposes if the first endpoint is down. “ endpointURI ” is the property that we need to add in partner link reference to support multiple endpoint location. <property name=”endpointURI”>endpoint</property> Below is sample code: <reference name=”SayHello” ui:wsdlLocation=”SayHello.wsdl”> <interface.wsdl interface=”http://xmlns.oracle.com/TestApplication/First/BPELProcess1#wsdl.interface(BPELProcess1)”/> <binding.ws port=”http://xmlns.oracle.com/TestApplication/Second/BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1_pt)” location=”http://localhost:8001/soa-infra/services/default/First/bpelprocess1_client_ep?WSDL” > <property name=”endpointURI”> http://localhost:8001/soa-infra/services/default/Second/bpelprocess1_client_ep </property> </binding.ws...

Dynamic Routing in OSB 12C

Dynamic Routing in OSB cab be used when the BusinessService endpoint required to be determine at runtime in message flow. Consider a scenario where OSB has to route the incoming requests to 2 different services based on the CustomerType element value sent in the payload. So create a XQuery resource with the following contents. Observe that we are using the absolute path of business service in configuration as required by dynamic routing. Following is the XML schema that we use:>>  Customer.xsd <?xml version="1.0" encoding="windows-1252" ?> <xsd:schema targetNamespace="http://xmlns.oracle.com/schema/Customer" xmlns:xsd="http://www.w3.org/2001/XMLSchema"             xmlns:ns1="http://xmlns.oracle.com/schema/Customer">   <xsd:complexType name="Customer">     <xsd:sequence>       <xsd:element name="CustomerId" type="xsd:string"/>       <xsd:elemen...