Dynamic Routing

Hi,
Can anyone explain how ESB works using Dynamic Routing?
Thanks

or in case of the 'old' oracle esb use :
http://soaranch.wordpress.com/2008/09/04/dynamic-soap-endpoint-routing-via-oracle-esb/
http://www.oracle.com/technology/products/integration/esb/files/esb-presentation-headers.pdf

Similar Messages

  • Issue in Dynamic routing (OSB)

    Hi,
    I implemented dynamic routing in OSB,using xQuery:-
    +<tradingPartnerList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\bea910\user_projects\eclipse\TradingPartners.xsd">+
    +     <tp>+
    +          <Name>Platinum</Name>+
    +          <URL>DynamicDispatch/p1</URL>+
    +     </tp>+
    +<tp>+
    +          <Name>Gold</Name>+
    +          <URL>DynamicDispatch/p2</URL>+
    +     </tp>+
    +</tradingPartnerList>+
    I am routing it on to another proxy using following xml:-
    <ctx:route>
    <ctx:service isProxy='true'>{$endpoint}</ctx:service>
    <ctx:operation>null</ctx:operation>
    </ctx:route>
    Where the Endpoint is from the above xQuery..
    All work fine but i have a one Issue:-
    In <ctx:service isProxy='true'>{$endpoint}</ctx:service> we specify the folder structure of the proxyservice. but what if i move my proxy in future,if i move some of my proxy to other folder the xquery need to be changed which i feel is vv poor design.
    Is there any way where is can specify URL or URI of the proxy service????

    Is there any way where is can specify URL or URI of the proxy service????First of all, you would not like to move your resources here and there frequently in production. Secondly, if you move the resources, definitely you have to change X-Query/Message flow. There is no alternative.
    If you want this feature to be enhanced, please raise a ER with Oracle Support and if they find it valid, will provide a patch for the same.
    Regards,
    Anuj

  • Problem in dynamic routing through ESB

    Hi All,
    I am trying dynamic routing through ESB, So I created routing service in my esb with WSDL of BPEL Process1 and a soap service with same wsdl. Then created a xsl transformation. In this xsl transformation I added below code to route to BPEL process 2.
    <xsl:variable name="LocationIn"
    select="http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0/SyncBPELProcess2"/>
    <xsl:variable name="LocationOut"
    select="ehdr:setOutboundHeader('/shdr:ESBHeader/shdr:location',
    $LocationIn, 'shdr=http://xmlns.oracle.com/esb;')"/>
    But when I am invoking this ESB through another BPEL process, Got below error message:, Is there any solution for that , I am using 10.1..3.4.0, (JDEV, and BPEL).
    receiveInput
    [2010/02/25 17:50:39] Received "inputVariable" call from partner "client" More...
    View xml document
    Invoke_1 (faulted)
    [2010/02/25 17:50:39] Faulted while invoking operation "initiate" on provider "PartnerLink_1".less
    -<messages>
    -<input>
    -<Invoke_1_initiate_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    <SyncBPELProcess1ProcessRequest xmlns="http://xmlns.oracle.com/SyncBPELProcess1"/>
    </part>
    </Invoke_1_initiate_InputVariable>
    </input>
    <fault>
    ORABPEL-08034
    JTA Rollback requested.
    The current JTA transaction has been aborted due to rollback request received from partner invocation.
    </fault>
    </messages>
    </sequence>
    [2010/02/25 17:50:39] There is a system exception while performing the BPEL instance, the reason is "Namespace prefix 'http' used but not declared.". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point. More...
    oracle.xml.xpath.XPathException: Namespace prefix 'http' used but not declared.
         at oracle.xml.xslt.XSLBuilder.startElement(XSLBuilder.java:468)
         at oracle.xml.parser.v2.XMLElement.reportStartElement(XMLElement.java:3703)
         at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:3564)
         at oracle.xml.parser.v2.XMLElement.reportChildSAXEvents(XMLElement.java:3576)
         at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:3566)
         at oracle.xml.parser.v2.XMLElement.reportChildSAXEvents(XMLElement.java:3576)
         at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:3566)
         at oracle.xml.parser.v2.XMLElement.reportChildSAXEvents(XMLElement.java:3576)
         at oracle.xml.parser.v2.XMLDocument.reportSAXEvents(XMLDocument.java:1537)
         at oracle.xml.jaxp.JXSAXTransformerFactory.newTemplates(JXSAXTransformerFactory.java:379)
         at oracle.tip.esb.server.service.EsbTransformer.getXSLTTransformer(EsbTransformer.java:147)
         at oracle.tip.esb.server.common.cache.TransformCachePolicy.loadEntry(TransformCachePolicy.java:50)
         at oracle.tip.esb.server.common.cache.Cache.setEntry(Cache.java:306)
         at oracle.tip.esb.server.common.cache.Cache.setEntry(Cache.java:270)
         at oracle.tip.esb.server.common.cache.Cache.getEntry(Cache.java:208)
         at oracle.tip.esb.server.common.cache.Cache.getEntry(Cache.java:181)
         at oracle.tip.esb.server.common.cache.RuntimeCache.getXSLTransformer(RuntimeCache.java:324)
         at oracle.tip.esb.server.service.EsbTransformer.doTransform(EsbTransformer.java:101)
         at oracle.tip.esb.server.service.EsbTransformer.transform(EsbTransformer.java:90)
         at oracle.tip.esb.server.service.EsbTransformer.transform(EsbTransformer.java:83)
         at oracle.tip.esb.server.service.EsbRouterSubscription.transform(EsbRouterSubscription.java:388)
         at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:208)
         at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
         at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
         at oracle.tip.esb.wsif.WSIFOperation_ESB.executeRequestResponseOperation(WSIFOperation_ESB.java:288)
         at oracle.tip.esb.wsif.WSIFOperation_ESB.executeInputOnlyOperation(WSIFOperation_ESB.java:357)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:472)
         at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:437)
         at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:251)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:826)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:402)
         at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3698)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1655)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:217)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:314)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5765)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1087)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:546)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:342)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
         at com.evermind.server.ThreadState.runAs(ThreadState.java:693)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:140)
         at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
         at java.lang.Thread.run(Thread.java:595)
    [2010/02/25 17:50:39] BPEL process instance "260032" cancelled
    Regards

    In below I changed http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0/SyncBPELProcess2 to http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0 . this is working.
    <xsl:variable name="LocationIn"
    select="http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0/SyncBPELProcess2"/>

  • Dynamic routing in OSB

    Environment: OSB 10.3.1
    To avoid manual configuring all published services one-by-one (eg. alter logging), I'd like to implement a generic proxy pattern in OSB. Assume that I have business services at /bs1, /bs2, etc, proxy services at /ps1, /ps2, etc.
    What I'd like to achieve is to publish proxy services which routes to the generic proxy first and then reroute to the original proxy service. For this I published eg. /pps1, /pps2, etc all with an Insert action which saves $inbound/ctx:transport/ctx:uri to . in $header and then route to the genericproxy proxy service.
    Generic proxy starts by executing common logic in the pipeline (log, etc), then should fetch the original routing information from the header and use dynamic routing to direct the message to the right proxy service (/ps1, /ps2, etc).
    Now the questions:
    1. is this the right approach to solve the problem of generic configuration of multiple published services in OSB?
    2. appearently the uri itself is not enough for dynamic routing - what else do I need to save from the original message?
    3. can I construct a <ctx:route><ctx:service..><ctx:operation..> construct with only Insert actions? I'd need a concrete example here accomplishing this.
    Thanks.

    Well you have to add Route Node to your proxy pipeline and inside it add a Dynamic Routing action.
    If you select the Dynamic Routing action you'll see in the Properties view something like:
    Service: <Expression>
    Here is where you have to define the <ctx:route> element. You can basically paste the text here.
    You could also create an XQuery transformation (so you can reuse it later) and invoke it here (with the XQuery Resources tab). But if you're not very familiar with XQuery I'd advise to start with the first option just to see it working.
    At first you could also omit the {$proxy} variable and statically specify the service you want to route to. Or you could use an Assign action to define the $proxy (or any name you want to give it) variable. And then once that's working see if you can get the service path from the headers.
    Hope that helps

  • Information on Dynamic Routing

    Hello!
    I am writing my diploma thesis as Oracle Germany. At the moment I am interested in Application Server's load balancing feature called "Dynamic Routing" ([1] p11, middle). But I cannot find any detailed information about it. Can you help me?
    Thanks,
    Ralf
    [1] http://www.oracle.com/technology/products/ias/hi_av/OracleApplicationServer10gR3HA-WP.pdf

    Hi!
    Thanks for your reply. Now I know that this dynamic routing is not as smart as I expected it to be. But if you add the dynamic routing, which automatically uses all available targets, and metric based routing then the resuilt seem to be quite "smart". :-)
    Ralf

  • Good CCIE question: Can multiple site-2-site VPNs support dynamic routing protocols?

    Hi All,
    Was not sure if this should be posted in LAN routing, WAN routing or VPN forums: I have posted here as the VPN tunnels are the limiting factors...
    I am trying to understand if it is possible to have dynamic routing between LANs when using site to site VPNs on three or more ASA55x5-x (9.0).
    To best explain the question I have put together an example scenario:
    Lets say we have three sites, which are all connected via a separate site-2-site IKEv2 VPNs, in a full mesh topology (6 x SAs).
    Across the whole system there would be a 192.168.0.0/16 subnet which is divided up by VLSM across all sites.
    The inside / outside interfaces of the ASA would be static IPs from a /30 subnet.
    Routing on the outside interface is not of concern in this scenario.
    The inside interface of the ASA connects directly to a router, which further uses VLSM to assign additional subnets.
    VLSM is not cleanly summarised per site. (I know this flys against VLSM best practice, but makes the scenario clearer...)
    New subnets are added and removed at each site on a frequent basis.
    EIGRP will be running on each core router, and any stub routers at each site.
    So this results in the following example topology, of which I have exaggerated the VLSM position:
    (http://www.diagram.ly/?share=#OtprIYuOeKRb3HBV6Qy8CL8ZUE6Bkc2FPg2gKHnzVliaJBhuIG)
    Now, using static route redistribution from the ASAs into EIGRP and making the ASAs to be an EIGRP neighbour, would be one way. This would mean an isolated EIGRP AS per site, but each site would only learn about a new remote subnet if the crypto map match ACL was altered. But the bit that I am confused over, is the potential to have new subnets added or removed which would require EIGRP routing processes on the relevant site X router to be altered as well as crypto map ACLs being altered at all sites. This doesn't seem a sensible approach...
    The second method could be to have the 192.168.0.0/16 network defined in the crypto map on all tunnels and allow the ASAs routing table to chose which tunnel to send the traffic over. This would require multiple neighbours for the ASA, but for example in OSPF, it can only support one neighbour over a S2S VPN when manually defined (point-to-point). The only way round this I can see is to share our internal routing tables with the IP cloud, but this then discloses information that would be otherwise protected by the IPSEC tunnel...
    Is there a better method to propagate the routing information dynamically around the example scenario above?
    Is there a way to have dynamic crypto maps based on router information?
    P.S. Diagram above produced via http://www.diagram.ly/

    Hi Guys,
    Thanks for your responses!  I am learning here, hence the post.
    David: I had looked in to the potential for GRE tunnels, but the side-effects could out weight the benifits.  The link provided shows how to pass IKEv1 and ISAKMP traffic through the ASA.  In my example (maybe not too clear?) the IPSEC traffic would be terminated on the ASA and not the core router behind.
    Marcin: Was looking at OSPF, but is that not limited to one neighbour, due to the "ospf network point-to-point non-broadcast" command in the example (needed to force the unicast over the IPSEC tunnel)? Have had a look in the ASA CLI 9.0 config guide and it is still limited to one neighbour per interface when in point-to-point:
    ospf network point-to-point non-broadcastSpecifies the interface as a point-to-point, non-broadcast network.When you designate an interface as point-to-point and non-broadcast, you must manually define the OSPF neighbor; dynamic neighbor discovery is not possible. See the "Defining Static OSPFv2 Neighbors" section for more information. Additionally, you can only define one OSPF neighbor on that interface.
    Otherwise I would agree it would be happy days...
    Any other ideas (maybe around iBGPs like OSPF) which do not envolve GRE tunnels or terminating the IPSEC on the core router please?
    Kindest Regards,
    James.

  • OSB Dynamic service call or dynamic route and transactions

    Hello,
    I've got the following problem in my OSB architecture for asynchronous incomming services.
    OSB version is 10.3.1
    ConnectionFactory is XA
    Problem domain:
    Dynamic service call or dynamic route within transaction boundary
    Elements within transaction:
    1.     JMS Queue ->
    2.     Upper Proxy Service (De-queue) ->
    3.     Lower Proxy Service (Canonical Service) ->
    4.     Business Service (Data Service) ->
    5.     Database Adapter->
    6.     Database
    Dynamic element
    Upper Proxy Service (De-Queue) must be able to determine which Lower Proxy Service (Canonical Service) has to be called on the basis of the message taken from the JMS Queue without losing the transaction (this doesn’t work yet).
    Already tried possible solutions:
    •     Make a service call dynamic by setting the $inbound name attribute. This results in a this property is read-only error.
    •     Use a Dynamic route instead of a service-call. This results in a loss of transaction. The message is deleted from the Queue without taking failure or success into account.
    •     Use a Dynamic route with a quality of service set to exactly once in the header. This seems to be ignored, results in a loss of transaction.
    •     Use a Dynamic route with an explicit reply with failure for errors. Results in a loss of transaction.
    •     Use a Dynamic Publish. This doesn’t fit the required flow because it has no response.
    I hope someone can shed some light on this because I'm at a total loss. I found some references in the forum to what seems to be the same problem but without definite answers. A work-around is also a viable answer.
    Regards,
    Bas Mul

    Hi,
    I'll try to clarify.
    Upper proxy dequeues a message.
    Depending on a value of a specific tag within the message a canonical proxy service (out of 5 at the moment but this numer could increase) has to be called (and be dynamic transform transformed to the format of the specific canonical).
    The canonical service must then pass the message to a database adaper's business service which is responsible for the database insert/update/read.
    If something in the chain from dequeue to database action goes wrong the message may not dissapear from the queue.
    Somehow a dynamic route in the message flow between dequeue proxy and canonical proxy breaks the transaction.
    Bas

  • Task assignment adapter - dynamic route to either group or user

    I have configured an approval process in design console and I want to be able to dynamically route the approval request to either the target user manager OR a group. I have written logic/code to automatically determine what group or user to route the request to and also to set the key type to either user or group depending on my logic conditions.
    This code is executed in a task assignment adapter and set the values for the key type and key depending on the logic.
    i.e. the key type would be "user" and key would be the user key for the target user manager, if my logic determines it should be routed to a manager
    OR
    the key type would be "group" and key would be the group key for the approval group, if my logic determines it should be routed to a group
    HOWEVER MY PROBLEM is with assigning the adapter to a process task. I am thinking I would need to have two entries in the Assignment tab of the process task. The first entry has the default rule and I assigned the target type to "group" and include my adapter here.
    How do I go about assigning the second entry for target type "user"? Since "Default" is the only rule option and I am not able to use it twice.
    I tried to create a rule in the Rule Definition form and create a Task Assignment rule that might do something to check if a task is assigned to "user", so that I can have this as my second rule in the Assignment tab of the process task and if it is true, it would call my adapter that would return the key for the target user's manager.
    I DO NOT KNOW what conditions to set in the Rule Element window for the Task Assignment rule. Can someone tell me what to do here OR provide me with a better alternative.

    Thanks for all the responses. Approvals are now being routed correctly.
    I have a follow-up question though........ I created a process adapter to send notifications to either the target user manager or members of the group that is the approval is routed to.
    I have a notification process task as part of my approval process and in its Integration tab, I added my process adapter that sends notifications.
    The code for the adapter uses the same logic I described in my original question to determine if the approval is being routed to a user of group. If it is routed to a group, the notification adapter identifies members of the group and sends email to them, this part works fine.
    However the problem is when the logic determines it should be routed to the target user's manager. One of the variables of this notification process adapter is username of the target user. Using that username, my code determines who the manager, gets the manager's email address and sends the email. Problem with this is that when mapping variables for process adapters in the Integration tab, in the Map To field, it does not give you the option of mapping to Request Target User, which would have provided me with user attributes of the target user such as the user name. It provides option for the Requester, but my reality is that the Requester is not always the Target User.
    Any suggestions for fixing this would be greatly appreciated.

  • Dynamic routing for a Business Service with multiple operations

    I have two business services with multiple operations. Business service A (bsA) has operations OpA1 and OpA2. Business service B (bsB) has operations OpB1 and OpB2.
    Depending on incoming Proxy message and operation, I have to do one of the following
    1. If someValue = A and operation= Op1 then invoke operation opA1 of bsA
    2. If someValue = B and operation= Op1 then invoke operation opB1 of bsB
    3. If someValue = C and operation= Op1 then invoke operation opA1 of bsA AND* operation opB1 of bsB and return aggregate data of both invocations
    1. If someValue = A and operation= Op2 then invoke operation opA2 of bsA
    2. If someValue = B and operation= Op2 then invoke operation opB2 of bsB
    3. If someValue = C and operation= Op2 then invoke operation opA2 of bsA AND* operation opB2 of bsB and return aggregate data of both invocations
    Using a dynamic route node or dynamic routing options, I am able to achieve cases 1, 2, 4, and 5.
    But for cases 3 & 6, I can not use a route node. When I use a Service call out instead, then I am forced to create a Operational branch but that does not seem like the best design since for every new operation added to the business services, I have to add a new branch to the Operational branch and redo all the functionality for that branch.
    Basically, I am looking to achieve the functionality of the Route node ( no need to specify the operation ).
    Any thoughts/ideas on what the best design would be?
    thanks

    For cases 3 & 6, why don't you route to another proxy service where you can simple do two service callouts, merge output data somehow and return them to the first proxy?
    If you look for "special route feature", that could possibly call two services for a single message, I'm afraid you won't succeed.

  • Dynamic Routing in OSB 10gR3

    Hello All,
    I am trying to do a POC of our use-case and wanted to use the Dynamic Routing feature of OSB 10gR3 -
    - Create a Proxy which will accept service_id, version, operation and generic input request
    - Proxy should do lookup in the Routing Table (XQuery Resource) and based on the service_id as key will provide the service endpoint as -
    <ctx:route>
    <ctx:service isProxy="true"> {$routingtable/row[logical/text()=$body/ServiceRequest/ServiceId/text()]/physical/text()}</ctx:service>
    <ctx:operation>{$body/ServiceRequest/OperationName/text()}</ctx:operation>
    </ctx:route>
    - Proxy should also carry out the transformation from generic input request to specific as per the operation.
    - Proxy should then be able to call the other proxy services (as per endpoint in the routing table) and the specified operation.
    Questions -
    Is this possible in OSB 10gR3? What service type (WSDL, AnySOAP, AnyXML, messaging) should the generic proxy be? Any alternative to this approach.
    So far, I have used ALSB/OSB for simple use-cases and this is more complex so I am seeking information and feedback on this use-case and how to move forward with this use-case.
    Thanks,

    Thanks mneelapu.
    I started this use-case on baby-steps and I tried use the dynamic routing to call the operation on a proxy services
    Generic Proxy (using dynamic routing) -----> Proxy ---> Business <----WSDL (Target Service)
    Here are the steps in my code -
    (1) Created the Proxy ---> Business <----WSDL (Target Service) and tested using the test console.. all works fine.
    (2) Created Generic proxy (Messaging Type with xml as input) and I am passing the xml as
    <ServiceRequest>
    <ServiceId>TestWS</ServiceId>
    <OperationName>getStatus</OperationName>
    </ServiceRequest>
    (3) Created the pipeline pair and in the request pipeline added the stage and -
    - assign the Routing Table (as XQuery Resource) to the $routingtable varible
    (Routing Table XML looks like - <routing><row><logical>TestWS</logical><physical>/TestSB/TestPS_1</physical></row></routing>)
    - assign the XQuery expression
    <ctx:route>
    <ctx:service isProxy="true"> {$routingtable/row[logical/text()=$body/ServiceRequest/ServiceId]/physical/text()}</ctx:service>
    <ctx:operation>{$body/ServiceRequest/OperationName}</ctx:operation>
    </ctx:route>
    to $routeresult variable
    (4) Added the Route Node with dyanmic routing action added the $routeresult in the expression.
    I am getting BEA-382612 (Error preparing message for dispatch). I followed the steps as mentioned on e-docs, what am I missing here?
    -J
    Thanks,

  • OSB: Static Vs Dynamic Routing With "Get All Headers"

    Hi
    How Static and Dynamic Routing works when calling Business Service pointing to a service inside or out-side the domain with respect to carrying "Get All Headers".
    The scenario is
    I have two BIZ services of http protocol, B1 pointing to a serive with-in the same domain and B2 pointing to a serivce outside the domain.
    Now i am calling both BIZs throught Static and Dynamic Routing
    1. Proxy X calls BIZ1 using Static Routing
    2. Proxy X calls BIZ1 using Dynamic Routing
    3. Proxy X calls BIZ2 using Static Routing
    4. Proxy X calls BIZ2 using Dynamic Routing
    Question: In all 4 cases, does "Get All Headers" get passed to called service?. How is the behaviour?
    Thanks
    Venkata Madhu

    If you're getting errors like -
    ORA-12514: TNS:listener does not currently know of service requested in connect
    And you're database has been started you can -
    'alter system register'
    and that will register the database with the listener.
    If you are trying to start up databases remotely you need to have a static entry (listener.ora entry) otherwise you will not be able to connect to the database and will get the above error. I've seen people connect remotely, shutdown the database, try startup and they are not able to. Good way to shoot yourself in the foot.

  • OSB 11g Dynamic Routing issue

    Hi,
    I am going to insane for not being able to get DynamicRouting to work. I am using DynamicRouting option in RouteNode and in the *service variable panel of this action I have the following:
    <ctx:route>
         <ctx:service isProxy='false'>/MyProject/Services/BusinessServices/MyBizService.biz</ctx:service>
         <ctx:operation>{$operation}</ctx:operation>
    </ctx:route>
    The business service is there and the path is correct. $Operation is verified to have the correct value.
    The setup is I have a proxy service based on a WSDL and in the route node I am trying to dynamically route to a business service.
    I get the following error:
    The invocation resulted in an error:
    <soapenv:Envelope      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
         <soapenv:Body>
              <soapenv:Fault>
                   <faultcode>soapenv:Server</faultcode>
                   <faultstring>BEA-382612: Error preparing message for dispatch</faultstring>
                   <detail>
                        <con:fault      xmlns:con="http://www.bea.com/wli/sb/context">
                        <con:errorCode>BEA-382612</con:errorCode>
                        <con:reason>Error preparing message for dispatch</con:reason>
                             <con:location>
                                  <con:node>RoutingToDataServices</con:node>
                                  <con:path>request-pipeline</con:path>
                             </con:location>
                        </con:fault>
                   </detail>
              </soapenv:Fault>
         </soapenv:Body>
    </soapenv:Envelope>
    If just use Routing Table or Route action, there is no error and flow works fine.
    Has anyone else encountered issues with Dynamic Routing in this nature?
    Thanks in advance,
    Mani

    I use the web console for my OSB development and when I click on the business service The path appears like "CommonServices/BusinessService/CreditRatingTemplate" (based on the sample downloaded from the link given by me)
    I guess you are using the Eclipse/Workshop for development and hence you are getting the below:
    */* NGWS/Services/BusinessServices/NGWS_http.*biz*
    Can you replace it without the front / in the beginning of the URL and see if it works.
    Thanks,
    Patrick

  • Xquery expression in Dynamic Routing

    Hi All,
    I need a help.My requirement is as follows.
    1) I Have 2 nos of Proxy and Multiple Business Service.
    2) First Proxy calling 2nd Proxy and passing the BusinessService Name in user-define Header(only One Header) using Transport Header.
    3)2nd Proxy calls the required Business Service using Dynamic routing.
    The problem i am getting is when i am using the xpath expression of the header value($inbound/ctx:transport/ctx:request/tp:headers/tp:user-header/@value) in the Dynamic Routing expression
    (<ctx:route>
    <ctx:service isProxy="false">
    {$inbound/ctx:transport/ctx:request/tp:headers/tp:user-header/@value}
    </ctx:service>
    </ctx:route>) , I am getting some exception.
    But if i use Assign node before Dynamic Routing and mention the same xpath of header value to a variable and the variable in the Dynamic Routing expression,I am able to invoke business Service sucessfully.
    But my requirement is not to use any Assign Node.
    Does any one has any idea what would be the correct syntax of the expression in Dynamic Routing.
    Thanks in Advance ..
    Thanks
    Deba

    Well, interesting try. Oracle has suggested to keep a mapping (in a XML or in database) between logical and physical values of destinations, you are trying to route, in OSB itself and to query it at runtime to get the actual value of destination. Please refer -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html#wp1081507
    What error do you get when you directly use the X-Path in Dynamic Routing expression?
    Regards,
    Anuj

  • Dynamic Routing Not Working

    I'm attempting to use dynamic routing (Dynamic Routing Action) to route to another proxy service and I keep getting "BEA-382000: Error preparing message for dispatch".
    I'm using a lookup table:
    <routingTable>
    <route>
    <relative-uri>/destination_1</relative-uri>
    <route-to>DestinationOne</route-to>
    </route>
    <route>
    <relative-uri>/destination_2</relative-uri>
    <route-to>DestinationTwo</route-to>
    </route>
    </routingTable>
    "DestinationOne" and "DestinationTwo" are local protocol proxy services that reside in two different projects.
    To get the correct route-to value, my XQuery statement is:
    routingTable/route/route-to[../relative-uri='{relative_uri}']
    and I know it works.
    At this point, the first proxy service (the one that does the routing) does nothing but use content from the $inbound variable to lookup the route-to information.
    What am I missing?
    Many thanks,
    -Mark

    We do this often.
    I'm sure it can happen in other ways, but I see the error you're describing commonly in two scenarios:
    1. An error occurred in the second proxy but you don't have an error-handler on that proxy (I've found it really helps to make sure there is an error handler on every proxy that at least logs the $fault and then does Reply with Success, otherwise ALSB sometimes loses the fault details). I think I usually get a BEA-38000 in that case, not a 38200, but off the top of my head I'm not sure.
    2. If an AnySOAP proxy is calling an AnyXml proxy, I get this error. Recently we switched out endpoint to AnySOAP, and I had to go through and recreate all of the proxies to AnySOAP because previously they'd been AnyXml. Even adding error-handling to every possible level didn't give me any better details, I just happened to try the Any SOAP switch on one proxy and learned it fixed the error.
    Hope that helps you track it down, at least there are some examples of what causes this error.
    Meghan

  • Mediator dynamic routing

    Hi,
    has anyone implemented mediator dynamic routing successfully (11.1.1.5)?
    when trying to do it, none of the rules is selected, and when creating a function to test it on jdeveloper it returns an error :
    oracle.rules.sdk2.exception.SDKException: RUL-05016: The Java class "oracle.tip.mediator.rules.model.ObjectFactory" cannot be loaded. Ensure that the class and all its dependent classes are on either the class path or the user-specified path.
    The error message on the instance is:
    Non Recoverable Business Fault :
    Fact not found in the rule engine working memory, rule session execution failed. The rule session 771038 failed because an instance of the fact oracle.tip.mediator.rules.model.DynamicRouting could not be found in the working memory of the rule session. This is most likely a rule modeling error. The decision service interaction expects the fact instance to exist in the working memory of the rule session. Check the rule actions in rule designer and make sure that a fact of the expected type is being asserted. If the error persists, contact Oracle Support Services. 771038
    Any help?
    Regards.
    Edited by: 903432 on 14/Abr/2012 9:46

    Hi,
    How are you planning to design your composite ? Right now system B uses Version 1, so you will be adding transformation for Version2 to Version 1.Once your System B is upgraded then it will have to consume Version2 of xsd, for which you have to remove the transformation from mediator and update your webservice with schema 2. In that case you have to redeploy your code.
    Are you planning to use BPEL after mediator, or directly you would be calling system B using mediator as standalone component?
    How much differenc is between version 1 and version 2 schemas structure wise? Are both of them altogether different ?
    Regards,
    Karan

  • Dynamic Routing error

    Has anyone had any success with Dynamic Routing on SoaSuite 11.1.1.6. Either through a mediator or through a BPEL Phase activity?
    This has been posted previously but I haven't seen a solution yet
    The error I get is
    Non Recoverable Business Fault :
    Fact not found in the rule engine working memory, rule session execution failed. The rule session 210165 failed because an instance of the fact oracle.tip.mediator.rules.model.DynamicRouting could not be found in the working memory of the rule session. This is most likely a rule modeling error. The decision service interaction expects the fact instance to exist in the working memory of the rule session. Check the rule actions in rule designer and make sure that a fact of the expected type is being asserted. If the error persists, contact Oracle Support Services. 210165
    The FMW Guide http://docs.oracle.com/cd/E15523_01/integration.1111/e10224/bp_two_layer_bpm.htm#CDEDBJBJ references a sample called BPELPhaseActivity but I can't find this sample
    Cheers
    Owen

    As Hisaak mentioned, try routing option if you want to set URI dynamically. To use the dynamic route action, you need the fully qualified name of the service in Oracle Service Bus as described in http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html#wp1081507
    Thanks
    Manoj

Maybe you are looking for

  • Flash not working in Safari (and Chrome and Firefox) - possible solution

    Yesterday my Mac crashed (actually when I was away from it) and when it rebooted, Adobe Flash would freeze any web browser it ran in (Safari, Firefox and Chrome - which surprised me as I thought it used a different version of Flash). Great with so ma

  • Version 10.1.8 SLOW and locks up Windows Explorer when attempting to select multiple files to open.

    User contacted L1 Tech Support when browsing server & attempting to simply select multiple adobe pdf's.  Passed to Support level 2. Level 2 deemed was not server as they could recreate the issue on any machine running 10.1.8 by copying in question pd

  • Where can I get a price for Distiler Server?

    I've a requirement to convert a few thousand Postscript files to PDF, I've tried running Distiller 9 from the command line to get several threads running and it seems to work just fine. Reviewing the license terms it seems that I need a Distiller Ser

  • Upgrading 8.1.7.4 to Oracle 9i R2

    HI, I am asked to upgrade the above mentioned DB without using export/import . I am confused about one thing :- will I have to install Oracle 9i in a seperate home and then upgrade the existing DB or I will upgrade existing 8.1.7.4 S/W to 9i and henc

  • Urgent info needed... help!

    Hi, I am looking for a java based component whose methods can be called by my java program (servlet) to convert a Word (MS) document to PDF. The server is windos based and the component could be commercial or free. Any help would be highly appreciate