Throttling in OSB

Hi,
We are looking for Throttling in OSB, where in an OSB service should process only x requests at any given point of time. Work Manager maximum thread constraint is one way we found which enables throttling and can limit the number of threads processing the requests for a Proxy.
Other way is to set throttling in business service, but it has limitation with the throtlling queues and issues of message getting discarded.
Few questions on this approach are:
1) Once max limit is reached OSB should return the denial of service request, how can it be done?
2) How can we alert the max limit exceeding scenarios?
3) Is there any other approach to achieve throttling?
Thanks,
Sowmya

Hi Sowmya,
First of all I would like to know why do you want to throttle inbound transactions to OSB? Which transport are you working with?
1) Once max limit is reached OSB should return the denial of service request, how can it be done?Usually this is done at application server level instead of doing it at application level. In weblogic server, you may achieve it by setting value of "Maximum Open Sockets". You may also like to refer -
http://www.ravisaraswathi.com/2010/03/configuring-weblogic-server-to-avoid.html
2) How can we alert the max limit exceeding scenarios?You may use OSB alert framework -
http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15867/monitoring_ops.htm#i1116097
3) Is there any other approach to achieve throttling?same as 1st
Regards,
Anuj

Similar Messages

  • Help on OSB

    Hi
    Here is the scenario:
    I want to send only 5 request to my endpoint through OSB and queue the remaining request.
    I tried using Service Throttling in OSB but dnt kw how to make osb send only request 5 in say 30 sec ,after 30 sec another 5 req???

    Hi there,
    You can enable throttling by restricting the number of messages that can concurrently be processed for a particular Business Service. It cannot be set at design time so you have to use the built-in Oracle Service Bus Administration Console to do it. Follow these steps to enable it:
    1. In Change Center, click Create to start a new Session
    2. Select Project Explorer, and navigate to the Business Service you want to limit
    3. Select the Operational Settings tab of the View a Business Service page
    4. In this tab, under Throttling, select the Enable check box. Specify a value for Maximum Concurrency
    5. To backlog messages that has exceeded the message concurrency limit, specify a positive integer value for Throttling Queue.
    5. Click Update
    6. Click Active in Change Center to active the new settings
    If you re-publish the service, it will not overwrite the settings. Only if the resource is renamed or moved, it will.
    Please note that a throttling queue is an in-memory queue. Messages that are placed in this queue are not recoverable when a server fails or when you restart a server.
    Regards,
    Knut

  • OSB Business Service Work Manager Doesnt Throttle

    Hi,
    I have a requrirement to throlle the number of concurrent requests going to an end point.
    So i have used OSB business service where in i am calling an end point webservice, and configured a work manager in console and selected it in the dispatch policy
    I deployed the workmanager on managed server. i specified max concurrent threads as 3.
    I tried to test it and see that throttling doesnt really work.. All the requests sent are being sent at once not 3 at a time.
    The expected behavior is first 3 sdhud go and then onc ethey complete next 3 similary next 3. But i dont see that behavior. Please let me know if i am doing any worng
    below is my work manager configuration
    Service Type Any XML Service
    Transport Configuration
    Protocol http
    Load Balancing Algorithm round-robin
    Endpoint URI <Specified the end point URI>
    Retry Count 0
    Retry Iteration Interval 0
    Retry Application Errors Yes
    HTTP Transport Configuration
    Read Timeout 0
    Connection Timeout 0
    HTTP Request Method POST
    Authentication None
    Proxy Server
    Follow HTTP redirects Disabled
    Use Chunked Streaming Mode Enabled
    Dispatch Policy WorkManagerTest
    Message Handling Configuration
    XOP/MTOM Support Disabled
    Page Attachments to Disk No
    Result Caching Not Supported
    Any suggestions on this?
    Edited by: 791951 on Mar 17, 2011 7:51 AM

    If you need to throttle the Business service, then you should configure the throttling parameters in the Business Service -> Operational Settings tab
    Choose your Business Service in the OSB Console -> Operational Settings
    Throttling -Check this box to enable the throttling. Maximum Concurrency to 3, and Throttling Queue to x number of messages you wish to hold in the throttling queue

  • OSB Reporting Performance Metrics Throttling

    Hi Friends,
    Can someone give me an idea around how can I achieve following for my OSB services? Like pointers towards, is it available out of the box or should i use some APIs to generate these statistics would be very helpful.
    •     Reporting / Analytics
    o     Ability to report service consumption per service per application
         Calls per sec/min/hour/day
         Error Counts
    o     Performance Metrics?
         Anything we can know from this perspective? Can we get performance matrix for Business services?
    - We are collecting this in ou
    •     Quotas / Throttling
    o     Max Requests per second/minute/hour/day
    o     Ability to restrict per consuming application
    o     Auto shut off and re-enable when time period expires
    Thanks.

    Have tried to answer what I know.
    You have to enable the Monitoring feature for the proxy/business services.This would help you collect req counts/response times etc.
    http://docs.oracle.com/cd/E14571_01/doc.1111/e15867/monitoring_ops.htm
    Ability to restrict per consuming application - For this you can use throttling work manager of OSB.

  • OSB: Is it possible to change throttling settings with WLST?

    Hi all,
    I am trying to find a solution to change the throttling settings of a business service with WLST, since it is not possible to set it in the customization file.
    I already know the parameter alsbImportPlan.setPreserveExistingOperationalValues(boolean) to preserve or change the operational values with the imported jar file, but I cannot find how to change the parameters separately for a business service (e.g. throttling state, max concurrency).
    Thanks for any help,
    Katja

    Hi Fabio,
    thanks for your approach. Could you give me some more ideas how to do that exactly? What do you mean with "write a code"? With WLST it does not work, I think. So you mean some code to extract the jar, change the xml, package the jar again and then deploy it? We need the changes at deployment time, because the settings have to be adjusted for the different environments.
    Best regards,
    Katja

  • Throttling the JMS Transport in OSB

    Hi All,
    I have a requirement if i have 10 messages in the JMS Queue .
    If i create a proxy service it should read one message at a time . How will i configure this in JMSTransport .
    I know how to do this JMSAdapter .
    Thanks
    Phani

    Apart from assigning a single thread work manager, also make sure that you change the Maximum Messages per Session setting to 1 in Connection Factory Client tab.

  • OSB - Business Service Import Problem

    Hi,
    When I import my OSB project (from an Oracle Service Bus Configuration .jar) for the first time, it imports my business service perfectly. However, in the second half when the project already exists on the workspace, new tags are added to the xml even though I have not made any changes in the business service.
    Thats my problem:
    First Import:
    <ser:coreEntry isProxy="false" isEnabled="true">
    After Second Import:
    <ser:coreEntry isProxy="false" isEnabled="true" isTracingEnabled="false">
    and a few other tags are added to the file:
    <ser:throttling enabled="false">
    <ser:capacity>0</ser:capacity>
    <ser:maxQueueLength>0</ser:maxQueueLength>
    <ser:timeToLive>0</ser:timeToLive>
    </ser:throttling>
    <tran:delay-interval-configuration isEnabled="false">
    <tran:delay-interval>0</tran:delay-interval>
    </tran:delay-interval-configuration>
    Any help on how to import the project without these new tags in my business service will be very welcome.
    Regards,
    Ricardo Azevedo

    you can influence the amount of info actually imported choosing to override operational settings, environment setting etc (I can't remember by heart and I am too lazy to start my server now and verify)
    Anyway unless this impacts your operations I would not be too worried that some defaults are explicitly stated in the xml. Surely if you import in Production a BS with "message tracing" on, this can affect seriously your performance.

  • Need JAVA API to list down all the Proxy Services in OSB Console 11g

    Hi,
    I need a java API to List down all the Proxy Services present in OSB Console for SOA 11g (11.1.1.5). I am in a situation where I cant use python script for the same.
    any help will be much appreciated.
    Thanks in Advance,
    Ravi
    Edited by: 899443 on Oct 1, 2012 4:13 AM

    AFAIK it is proprietary.
    What I do in a similar situation is to form XML for the services, package them into JAR the same way as an import JAR is packaged (creating ExportInfo resource, ...) and deploy with standard WSLT script. Works for simplest services only (direct proxies mostly) but I can also form security, alerts, throttling etc etc etc -- all in one shot.
    Out of sheer interest, may I ask you a question? Why do you need to create OSB services from Java?
    Vlad
    http://vladimirdyuzhev.com

  • Features to isolate OSB services from just one slow business service.

    Hi,
    Here is a OSB question around a quick business service that suddenly turn to be a slow one and the impact on the overall OSB performance.
    Suppose you have a critical OSB cluster in production with many proxy and business services.
    Because of requirements, you have a specific sync http business service (web service) that has an acceptable response time around 1 secs. But suddenly the response time goes to 30 secs or even more due to some problem, generating a great impact on thread and resource consumption on OSB side.
    Suppose a http time out configuration of 2 secs on the business service is just not enough. OSB continues to crash.
    You can use OSB throttling feature but doing that you have to fix a maximum concurrency.
    If the service implementation is down, OSB can handle that using "Offline Endpoint URIs" in the operational settings of sbconsole. But in this situation the service is online accepting requests. It's just slow to respond.
    This is a hypothetical situation just to stress the problem.
    Besides business service time-out configuration and throttling and dispatch-policies on proxy/business services are there any other features that can be used ?

    Wesley,
    Ok, once the business service request is sent, the thread is freed. When the response comes, a new thread is picked up to handle the business service response. So in the mean time there's no blocking thread. Yes. It is correct.
    Just to make sure, what about the waiting synchronous http client calling the proxy service ?
    I mean, this fire-and-forget feature works only on the business service side or entirely for the proxy/business service (That separation would not make sense I suppose) ? The same case with http proxy. The request thread will be used till the BS is invoked in the route node or end-of the request pipeline. After this thread is released. Once the response comes from the http bs on a different thread, that thread will be used till the end of the responsepipeline
    eg
    Client---->Http Proxy---->Thread1{Request Pipeline--->Routenode---->End of Request actions in the Routenode--->Call BS Request} ----->Thread2{BS gets response--->Response Pipeline --->send response back to the client}
    For example, a http client is waiting for the proxy service response, but while the business service does not respond, there is no blocking thread at all in the proxy service side too ?Yes. That is true
    So, there could be many waiting http clients calling this proxy service, all http business service requests sent, and no blocking threads ?Yes.
    What would be the drawbacks of this feature ?Nothing I can think off. Therotically we will be forced to do extra over head when BS latencies are low which might of little practical impact. In that case you can change QOS=Exactly once. BS request and response will be on the same thread , but proxy response thread will be always different from that of proxy request thread no matter what the QOS is set
    Cheers
    Manoj

  • How to implement message throttling in DB adapter for outbound message

    Hi all,
    In my current we need to insert huge amount of data in the Oracle database. But the database will provide us limited amount connection. As per our observation number of total incoming request will exceed the total number available connection. In this case we have to throttle the incoming message. I know message throttling can be done very easily using OSB. But in this project we are not using OSB. We are using BPEL Process Manager and Mediator. I tried to specify the number of thread in the outbound DB adapter but it seems there is no such property in oracle.tip.adapter.db.DBWriteInteractionSpec or oracle.tip.adapter.db.DBStoredProcedureInteractionSpec.
    Can anybody inform me what is the possible solution. Thanks in advance.

    Check http://docs.oracle.com/cd/E21764_01/core.1111/e10108/adapters.htm#BABDJIGB
    Unfortunatly currently valves are not supported by JMS or Database Adapter – only for file and ftp. Maybe you could use it on the incomming side check http://technology.amis.nl/blog/13849/soa-suite-file-adapter-pre-and-post-processing-using-valves-and-pipelines
    little off topic; would it be possible to use ODI? Seems more suitable for the job...
    hth,
    Peter Paul

  • Sequencing in OSB

    Hi,
    I have a small issue regarding sequence in OSB. I have to poll data from Oracle DATABASE and push data  to another Oracle DATABASE. For polling I made a one DBadapter. and for insert I made another DBadapter. The polling and insert operation is working fine but I have to make it synchronusly. means Whatever data comes first in polling DB will be picked up first and until and unless all the transformation is processed and inserted into DB, the second data will not be processed.
    My enviornment is cluster enviornment ,There is 3 OSB manage server and 1 application server.
    Should I introduced any JMS between transportation, or we need to introduced anything between them. 
    Please help
    Thanks
    1005175

    With current setup you'll have concurrent requests from each of your managed servers.
    Moreover, since you're using the standard DB adapter you just cannot grab the lock in time (before obtaining the record). Grabbing a lock in proxy will not guarantee the order.
    Hence => You'll need to target the DB adapter to one managed server only.
    I was told setting JCA to "singleton" would put the DB adapter into master/slave mode (i.e. only one MS works at a time, the rest are on standby), but that setting unfortunately doesn't work under OSB.   I did not verify it though -- who knows, may be it got fixed in the latest versions? I'd try if I were you - if it works, you do not need anything else.
    Biz: throttling is per domain; at runtime it is distributed equally between managed servers => you should set concurrency to the value equal to number of managed servers.
    Workmanager: I'd created 2 -- one for proxy and one for biz.
    Vlad
    http://vladimirdyuzhev.com

  • Oracle service bus: Work manager and Throttling

    Hi
    Flow is PS_C--->BS_A (based on PS_A)
    I created a http protocol based proxy service PS_A and a business service based on PS_A, i.e. BS_A.
    Now this BS_A is deployed on four different managed servers. I have implemented failover so at a time copy of only one of the managed severs will be accessed by multiple external clients through PS_C. To say all will hit Managed server-1 copy of BS_A. If Managed server-1 is down then it will hit Managed server-2 copies of BS_A.
    I have created a workmanager named "CustomWorkManager" which has MaxThreadConstraint=1. PS_A has not enabled CustomWorkManager. i.e. PS_A works under default policy.
    My goal is to process only one request at one time through BS_A.
    In business service, BS_A I can see work manager and throttling options.
    My question is this:
    Scenario I: I make throttling enabled and set maximum concurrency=1 for BS_A
    Scenario II: I apply CustomWorkManager to BS_A
    Scenario III: I do both Scenario I and Scenario II
    What is the difference between I, II and III?
    Fundamentally, what is the difference between throttling with maxConcurrency=1 and MaxThreadConstraint of workmanager=1 for a http business service?
    Thanks and Regards,
    Swapnil Kharwadkar

    @Abhishek: Thanks for descriptive reply.
    @Anuj: Thanks for links, I am having a look..
    Use case:
    What is the target app/service? Is it DB, HTTP or anything else?
    Back end: Amadeus web services
    Role of DB:
    1. It will store data to attach transaction context to a request. This is to call more than one services in the backend - it is necessary for backend to understand in which context services are being invoked.
    For example, if I need to make PNR related changes, I need to invoke service X and fetch transaction context from back-end. The transaction specific identifier (read session) will be received in header part. After retrieve suppose I need retrieve PNR, I will invoke service Y. When I invoke, I need to put the transaction specific header part received in response of service X and then change body as per request format of service Y (read the response header of X will be the same as request and response header of Y) which will actually make changes and commit in the backend. (So back-end will understand that service X and Y are invoked as a part of single transaction, and transaction can be identified through logs)
    3. Once my X+Y call is over and transaction is committed, the context for transaction specific part received in header to the transaction is removed from back-end. Then I can use session again for the next transaction.
    4. To re-use session I am storing it in DB and retrieving as per need for each call to Amadeus.
    Problem is, it is absolute necessary for all transactions which are being processed simultaneously, to have unique session in header.
    For example,
    I do the following:
    Request 1: receives session from service X, uses for service Y. After use, inserts session in DB. Now context for that session is removed from back-end.
    Request 2: looks for session DB, puts in header and invokes backend. Context for Request 2 is attached to session retrieved from DB.
    Request 3: looks for session DB, puts in header and invokes backend. Context for Request 3 is attached to session retrieved from DB.
    As you can see if Request 2 and Request 3, pick up the same session from DB and invoke back-end, back-end services won't be able to understand which request the session belongs to, and will fail both requests. Ideally Request 2 should retrieve it from DB use for itself and Request 3 should make a call to service X at back-end to receive context. With this new context Request 3 should proceed for transaction.
    Why are you using a BS to call from one Proxy to another Proxy?:
    1. To interact with DB, I use DBAdapter business services with QueryByExample/Update/Insert operation.
    2. My PS_A is proxy which orchestrates these operations. (Read: SelectandUpdateDBForSessionRetrieve, UpdateDBWhenTransactionOver functionaries) Since there are two admin and four managed servers, all copies of PS_A will try to access DB simultaneously, and concurrency will fail.
    3. Hence I made BS_A on the basis of PS_A. BS_A is deployed on all four managed servers, used Load Balancing Algorithm as "None" and gave hard-coded urls of four managed servers in sequence of MS1, MS2, MS3 and MS4.
    4. Idea is if MS1 is ok, all requests will go to BS_A of MS1 only, and if somehow if I make it single threaded *(Read from DB+mark retrieved data as "in use" so other request can not use it)*, concurrency issue will not arise. In case MS1 is down, the requests will automatically forwarded to MS2 and since that is also single threaded, concurrency issue won't arise. In short both fail-over and concurrency can be achieved with BS_A making out of PS_A.
    The problem as you have correctly pointed out, is that OSB is stateless and one request has no relation with another. Somehow, I need to make every retrieve/update/insert to database as single threaded, i.e. once one is done then another should not be done at the same time. Else entire point of this pooling will fail.
    Please share any thoughts you might have. Even another approach to handle this single threaded need will do.
    Thanks and Regards,
    Swapnil Kharwadkar

  • Need Java API's to create OSB proxy and Business Services

    Hi All,
    I need to create OSB proxy and business services using Java API's. Does any one have reference to the OSB APIs??

    AFAIK it is proprietary.
    What I do in a similar situation is to form XML for the services, package them into JAR the same way as an import JAR is packaged (creating ExportInfo resource, ...) and deploy with standard WSLT script. Works for simplest services only (direct proxies mostly) but I can also form security, alerts, throttling etc etc etc -- all in one shot.
    Out of sheer interest, may I ask you a question? Why do you need to create OSB services from Java?
    Vlad
    http://vladimirdyuzhev.com

  • OSB- Any Soap type Proxy service URL issue.

    Hi,
    There is an issue which i am facing and stuggling with it for sometime :(
    Requirement - Using OSB 11g i had created 12 different services based on WSDLs provided by the client and all of them are working fine.However the client wanted a OSB router service on top of these 12 services which wil search for a string in the input xml and then route it to the required Proxy service (amongst the 12 services developed).
    Problem- I was able to create the router Proxy service which was a Any Soap type of proxy service as i didnot have a WSDL for the router service.The router service is working fine when we test it from the OSB console.
    When We tried to test the flow from SOAPUI (we used the WSDL of one of the 12 webservices developed and modified the uri to the uri of the router service ie. http://hostname:port/router/routerProxy) and it does not work.
    The error returned is ERROR 404 nothing found by this name.
    As The router proxy is a Any Soap kind of service i do not have the option of providing the client with the WSDL.
    I would want to know how to i call this router service from an external source like SOAPUI so that the client is able to hit it.Also what would be the end point uri of this router service ?
    Kindly Help
    Thanks
    Pranav Shah

    Hi anuj,
    Here you have the configuration
    <?xml version="1.0" encoding="UTF-8"?>
    <xml-fragment xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env" xmlns:con="http://www.bea.com/wli/sb/pipeline/config" xmlns:con1="http://www.bea.com/wli/sb/stages/routing/config" xmlns:con2="http://www.bea.com/wli/sb/stages/config" xmlns:con3="http://www.bea.com/wli/sb/stages/transform/config">
    <ser:coreEntry isProxy="true" isEnabled="false" isAutoPublish="false" isTracingEnabled="false">
    <ser:description/>
    <ser:binding type="abstract SOAP" xsi:type="con:AnySoapBindingType" isSoap12="false" xmlns:con="http://www.bea.com/wli/sb/services/bindings/config"/>
    <ser:monitoring isEnabled="false">
    <ser:aggregationInterval>10</ser:aggregationInterval>
    <ser:pipelineMonitoringLevel>Pipeline</ser:pipelineMonitoringLevel>
    </ser:monitoring>
    <ser:reporting>true</ser:reporting>
    <ser:logging isEnabled="true">
    <ser:logLevel>debug</ser:logLevel>
    </ser:logging>
    <ser:sla-alerting isEnabled="true">
    <ser:alertLevel>normal</ser:alertLevel>
    </ser:sla-alerting>
    <ser:pipeline-alerting isEnabled="true">
    <ser:alertLevel>normal</ser:alertLevel>
    </ser:pipeline-alerting>
    <ser:ws-policy>
    <ser:binding-mode>service-policy-bindings</ser:binding-mode>
    <ser:policies/>
    </ser:ws-policy>
    <ser:throttling enabled="false">
    <ser:capacity>0</ser:capacity>
    <ser:maxQueueLength>0</ser:maxQueueLength>
    <ser:timeToLive>0</ser:timeToLive>
    </ser:throttling>
    <ser:messageTracing enabled="false">
    <ser:detailsLevel>Terse</ser:detailsLevel>
    <ser:maxSize>8192</ser:maxSize>
    </ser:messageTracing>
    <ser:pageAttachments isEnabled="false"/>
    <ser:transactions isRequired="false" sameTxForResponse="false"/>
    </ser:coreEntry>
    <ser:endpointConfig>
    <tran:provider-id>http</tran:provider-id>
    <tran:inbound>true</tran:inbound>
    <tran:URI>
    <env:value>/testRouter/test</env:value>
    </tran:URI>
    <tran:inbound-properties/>
    <tran:all-headers>true</tran:all-headers>
    <tran:provider-specific xsi:type="http:HttpEndPointConfiguration" xmlns:http="http://www.bea.com/wli/sb/transports/http">
    <http:inbound-properties/>
    </tran:provider-specific>
    </ser:endpointConfig>
    <ser:router>
    <con:flow>
    <con:route-node name="RouteNode1">
    <con:context/>
    <con:actions>
    <con3:ifThenElse>
    <con2:id>_ActionId-9110389481588294027-8fc6726.12c833ed7e1.-7c90</con2:id>
    <con3:case>
    <con3:condition>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config">fn:contains(fn-bea:serialize($body), 'ImsersoSiebelContactInsert')</con:xqueryText>
    </con3:condition>
    <con3:actions>
    <con1:route>
    <con2:id>_ActionId-9110389481588294027-8fc6726.12c833ed7e1.-7c8f</con2:id>
    <con1:service ref="ServiWebEntrada/AltaExpediente/ProxyService/AltaExpedienteProxyService" xsi:type="ref:ProxyRef" xmlns:ref="http://www.bea.com/wli/sb/reference"/>
    <con1:operation>ImsersoSiebelContactInsert</con1:operation>
    <con1:outboundTransform/>
    <con1:responseTransform/>
    </con1:route>
    </con3:actions>
    </con3:case>
    <con3:case>
    <con3:condition>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config">fn:contains(fn-bea:serialize($body), 'CreaContacto')</con:xqueryText>
    </con3:condition>
    <con3:actions>
    <con1:route>
    <con2:id>_ActionId-9110389481588294027-8fc6726.12c833ed7e1.-7c8b</con2:id>
    <con1:service ref="ServiWebEntrada/CuidContact/ProxyService/CuidContactProxyService" xsi:type="ref:ProxyRef" xmlns:ref="http://www.bea.com/wli/sb/reference"/>
    <con1:operation>CreaContacto</con1:operation>
    <con1:outboundTransform/>
    <con1:responseTransform/>
    </con1:route>
    </con3:actions>
    </con3:case>
    </con3:ifThenElse>
    </con:actions>
    </con:route-node>
    </con:flow>
    </ser:router>
    </xml-fragment>
    Regards
    Pranav

  • Which component to chose in my use case ( BPEL / OSB / Mediator)

    All,
    I have gone through various blogs and documentation explaining the reasons for choosing a specific component,But,It is always a close call when it comes to making a very important decision as
    the real time uses case we generally deal with always fall in a border making it difficult to decide.
    Use case:
    A legacy system has to communicate with a third party system for sending some job details. For the same it uses an service intermediary.
    This service intermediary has to
    a) Receive the message from the legacy system. ( Preferably as EDN event as its easy for the legacy system to through an event)
    b) Very light orchestration ( in the future)
    c) Route it to the Mobile enablement application/ system.
    Generic:
    d) Need to provide a fault management / handling.
    e) Authentication / Authorization.
    Having these requirements, I thought an OSB would be a right component to be used as we are focused on routing in a decoupled way with light orchestration and business agility. However can OSB support
    a. subscribe to EDN events ? If yes how ? Can it have Oracle Apps adapter to get the events from R12 like BPEL?
    b. Can it use the same fault management framework written for SOA suite ( policies and bindings) ?
    On the other hand, I am having thoughts on why not use BPEL process itself. We can turn Auditing to off and will not have any dehydration points in the bpel process thus making it stateless ( just like OSB ?) if that is the major difference we are looking at ? Service virtualization ( dynamically changing the end point ) can also be acheived in bpel.
    and why not Mediator ? I know everywhere people talk about using mediator for intra composite commmunication but at the same time they suggest using it while writing to file / adapter or call a external service exposed as SOAP WSDL too. Now for our use case, a mediator can listen to events from the legacy system and route it to the target mobile enablement service.
    ( Note : BPEL and mediator can use fault management , EDN's, Oracle apps adapter and also can be made stateless by turning the audit to off . So if you are still suggesting OSB please back it up with strong reason rather than just theoritcally saying that its a standard to use in case of routing and stateless etc..)
    Kindly help !
    Regards,
    Sridhar.

    Realized that OSB can
    a. Read an AQ using AQ adapter and thus can subscribe to the Events raised using AQ in Oracle Ebsuiness Suite applications.
    b. OSB has its own way of handling faults. ( does not use SCA fault handling framework).
    The important question I want to focus here is
    In the above use case when everything can be acheived using either of OSB, BPEL or Mediator. ( ie., from ease of developement, performance and management) how to chose a specific component ?
    Service virtualization that OSB boasts can be done by BPEL.
    BPEL can also be made lieght weight by turning the dehydration to off ( auditing to off)
    Result cache can be achieved in bpel by using some custom coherence api.( which is one time effort and simple to use)
    Message throttling can be done using a queue in between.
    Really need a very practical reason to prefer OSB and not BPEL or Mediator in my case. Help appreciated

Maybe you are looking for

  • HP Envy dv6 Trackpad issues

    I have a Hp Envy dv6 with nVIdia GT630M graphics. A lot of times, my trackpad has died on me and has left me in the blind. And recently, after installing the new updates on 01/11/2014, the multi-finger gestures on the trackpad do not work. It would b

  • F-47 park and post option OR F110 block option for payment requests

    HI experts, current business scenario: F-47 payment request by AP users F110 payment run (including payment requests) by manager so between F-47 & F110  system doesnt trigger for payment approvals Business requirement: After F-47 system should trigge

  • Lion vs Front Row

    Since Lion installation the remote control first generation, doesn't work as usually. On Leopard when I pushed the menu button, it opened a menu that showed Front Row. Now it doesn't work anymore. Is there anyone to explain me why this happen or is t

  • Journal tables in SQL Developer Data Modeler

    In my database I use journal tables, which can be generated automatically by Oracle Designer. Now that I'm trying to start using SQL Developer Data Modeler, I can't find how to make journal tables with it. Does anyone know whether Data Modeler suppor

  • Reading old message from Topic or queue

    How i can read old message from jms topic or queue?