AQ Adapter Dynamic Routing

Hi
I have posted this query in AQ forum,am posting this again in adapters forum hoping to get some solution for the below issue.
I am using AQ Adapter to configure my OSB Buisness services to enqueue/Dequeue messages to my AQ queues.
My requirement is to post messages to different Aq queues at runtime without having to reconfigure adapter everytime.
For eg: My Multi consumer table name: Publisher_Table
queues in my Publisher_Table: 1.Pub1
2.Pub 2
3.Pub 3 and so on
I need to post messages on pub1,pub2 etc...however while configuring the AQ adapter in jdev for enqueue opertaion i had to hardcode my queue name to Pub1(One among multiple queues created).
My query is whether i can have this queuename as a variable,so that at runtime i can change the target, instead of having to configure multiple aq adapters one for each pub queue.
Is there any other way of acheiving dynamic routing for AQ?
Thanks
Gayatri

Hi Gayatri,
There is no option other than hard-coding the queue name but your use case can be addressed in OSB easily.
Create Business Services for each and every queue and in proxy message flow use dynamic routing action to determine at runtime that which Business Service should be invoked. To know more about dynamic routing action in OSB, please refer-
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html#wp1100135
Re: OSB proxy service lookup
Regards,
Anuj

Similar Messages

  • 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 using AQ Adapter

    Hi
    I am using AQ Adapter to configure my OSB Buisness services to enqueue/Dequeue messages to my AQ queues.
    My requirement is to post messages to different Aq queues at runtime without having to reconfigure adapter everytime.
    I tried the routing options,It only allows me to change the endpt url which is the Datasource name in aq adapter, but it doesnot allow me to change the queue_name at runtime.
    Is there any other way of acheiving dynamic routing for AQ?
    Thanks
    Gayatri

    Thanks for your reply, but i guess i have not been successful in explaining my requirement clearly.
    I am not interested in changing the routing pattern at the AQ level using Alter propogation.
    My requirement is at one step above this while posting a message to the source AQ queue.
    For eg: My Multi consumer table name: Publisher_Table
    queues in my Publisher_Table: 1.Pub1
    2.Pub 2
    3.Pub 3 and so on
    I need to post messages on pub1,pub2 etc...however while configuring the AQ adapter for enqueue opertaion i had to hardcode my queue name to Pub1(One among multiple queues created).
    My query is whether i can have this queuename as a variable,so that at runtime i can change the target, instead of having to configure multiple aq adapters one for each pub queue.
    Thanks
    Gayatri

  • 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

  • Dynamic Routing? how to read files from 2 different directories?

    i need to do that..pick files but from 2 different locations..
    any simple idea?
    yes, the best simple is to have 2 bpels listenening to each directory...
    can i create only 1 BPEL?
    i heard about Dynamic Routing...too complex?
    Thanks!
    Pablo.

    Hi,
    I guess you can try it with Pick as the initial activity( With Create Instance Checked) and you map your two File Adapter to two On Message branches..
    I guess this should work but i am not sure how far this is reliable.. with Pick..
    Worth giving a try..
    Thanks,
    Jp

  • Dynamic Routing Using Query String (SOAP)

    Hi Folks,
    Does anyone have any examples on how to do a dynamic routing using a query string from a SOAP Adapter. I know how to get the query string but don't know how to map for dynamic routing.
    Thanks,
    AArhyn.

    After some further examination it seems that both calls are picked up by the same interface. In the RWB both the messages are picked up by the MIOS_GetDetails...
    How can i fix this?

  • 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

  • Configure Sender File adapter dynamically

    Hi,
    I need to configure the sender file adapter dynamically. Ex: I will be providing the src dir , file name etc dynamically. I think this is not possible using module because module gets executed after file is picked (in my case file dir and file names need to be determined dynamically). I even don't won't to use directory API for craeting my file sender comm channel. Is there any other way to achive this.
    Regards,
    Rakesh

    Hi Rakesh,
         what is the Operating system of the PI server? Could you please kindly explain what conditions determine filename and source directory? I do not think there is anyway you can determine src file and dir names dynamically in PI.
    Here is what you can try.
    PI server is on windows system u need batch file. If its on unix or Linux you need scripts. Now what you have to do is place all files in a directory. Here the script/batch file will run continuously in background. Once it gets files it will rename files based on file content or file name then move them in different directories as per your conditions. your interface must have multiple communication channels and sender agreement (with diffrent parties) which will pick up those files from these directories.
    The name of directories will be fixed in each channel.
    regards
    Anupam

  • 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.

  • 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.

Maybe you are looking for

  • Message with a large attachment will not copy to SENT folder...what can I do to correct?

    After sending a message with a large attachment, I receive an error message that the message did not copy over into the SENT file. It allows me to retry, which does not correct the problem. Ultimately, I have to 'X" out of the message without knowing

  • Keyboard problem (letters aren't written )

    Hello i had just bought a hp pavillon notebook dv6 for about 3 weeks   i have a problem with the keyboard some letters aren't written at all anymore like the "p" and "m" and  the "A"  is written instead of  the key to move to the left. some friends s

  • Classic PO Creation with Bidder added items

    Dear Experts,             We are using SRM Bid Decoupled scenario. The Bidder logins to SUS system and responds to RFx. I have maintained the product category in the SUS system. Consider a scenario,  A RFx respondent will login to SUS --> access RFx-

  • Full Backup

    Help me understand. What is considered a Whole backup? Is a Whole backup the same as a full backup... the same as a cold backup? If I have different drives, should I backup everything on each drive or should I only backup certain files? If only certa

  • Accept recursive queeries from these networks only?

    What is the correct terminology to identify your network in dns section accept recursive queeries from these networks only? if i put in my domain name it seems to stop all service to my NAT