OSB 1031: proxy service and publishing JMS messages with no duplicates

Hi all,
we have a Web Service proxy that publishes messages into a JMS queue. The queue is persistent and the related connection factory is XA enabled.
The proxy does the call to the JMS business service from a route node.
If a failure occurrs after the publishing returns successfully, the caller receives back an error and it will try again to call the web service proxy.
As the message has been published successfully and was not rollbacked by the proxy, the second call could put on the JMS queue a duplicate message.
As far as we know only with JMS proxy service, OSB starts a transaction within the pipeline or are we wrong ?
What do you suggest in order to avoid such a scenario described above ?
Thanks and regards
ferp

Try this link to depict the behavior
http://allthingsmdw.blogspot.com.au/2012/09/osb-service-callouts-and-oql-part-1.html

Similar Messages

  • When we should use JMS based proxy services and when JMS Adapter in OSB

    Hi,
    Can somebody explain me when we could go for JMS Adapter and when we should go for JMS based service in OSB?
    The one scenerio i can think of is when my provider/consumer is using jms provider other than WLS jms provider we should use jms adapter.
    Edited by: user12883209 on Jan 5, 2012 5:29 AM

    I don't think there are clear guidelines available, however here is my view.
    1) OSB 11gR1 is not certified with Oracle JMS Adapter. It is certified with Oracle FTP, Database, AQ and application adapters.
    http://docs.oracle.com/cd/E21764_01/doc.1111/e15867/interop.htm#OSBAG1403
    2) In addition of the Weblogic JMS, OSB can also integrate with following provider without using adapter.
    - WebSphere MQ
    - Tibco EMS
    3) if you need to integrate JMS with BPEL Process or Oracle SOA suite composite, it has built in support for generic Oracle JMS adapter. Oracle generic JMS adapter can integrate with AQ JMS (JMS providers OJMS 8.1.7, 9.0.1.4, and 9.2), TIBCO JMS, IBM Websphere MQSeries (IBM MQSeries JMS 6.0), Weblogic JMS, Apache, and Active MQ
    http://docs.oracle.com/cd/E14571_01/integration.1111/e10231/adptr_jms.htm
    4) If you need to integrate OSB with Weblogic JMS, WebSphere MQ, Tbco EMS it does not need JMS adapter.
    Hope this helps !!!
    Jayesh Patel
    http://jayesh-patel.blogspot.com/
    http://www.yagnasys.com/

  • OSB proxy service and BPEL depedency is not established in BTM

    Hi All,
    I am using BTM 12.1.0.3 and I have deployed a service where an OSB proxy service is taking employee information and callling a BPEL process which writes data in some database table. The OSB proxy service and BPEL got discovered in BTM but the dependecy between OSB Proxy service and BPEL process is not established in BTM. I have used soa-dorect protocol to call the BPEL from OSB. I have also tried with using http protocol in OSB for calling a BPEL but nothing worked and the depedency is not established in BTM.
    Now I want to create an end-toend transaction i.e. starting from OSB proxy to the database. For this I selected OSB proxy operation and BPEL operation but correlation is not established. How can I correlate these operation? And how can I create an end-to-end transaction for this type of service where OSB calls a BPEL?
    Please guide!!
    Thanks in advance!!

    you can manually correlate any number of services to create an end-2-end transaction. Please see http://docs.oracle.com/cd/E24628_01/doc.121/e37014/transactions004.htm#BABDBDFI on how to manually correlate services in BTM.

  • SOAP Header based user/password authentication in OSB 11g Proxy Service

    Hi,
    I have implemented SOAP Header based authentication in my OSB 11g Proxy Service.
    In the Security settings of my AnySOAP(Soap 1.1) HTTP Proxy service, I have amde the following changes:
    1.
    In Transport Access Control link, i selected the User predicate, and provided an user already existing on weblogic server with following roles(AppTesters, Monitors, Operators).
    The AuthorizationProvider was XACMLAuthorizer
    2.
    Under Custom Authentication, I selected the Custom User Name and Password option, and provided the below mentiioned xpaths
    User Name XPath: ./*/*:Username/text()
    User Password XPath: ./*/*:Password/text()
    3.
    In Message Access Control link, i selected the User predicate with the same user as mentioned in Transport Access Control link.
    Now, when I am testing this service from OSB Test Console, I am providing the following input.
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:N1="http://abcd.com/common/bodcomponents/transactional/model/1.0/">
    <soap:Header>
    <AuthHeader>
    <N1:Username>userXYZ</N1:Username>
    <N1:Password>passXYZ</N1:Password>
    </AuthHeader>
    </soap:Header>
    <soap:Body>
    <!-- body payload -->
    </soap:Body>
    </soap:Envelope>
    The response is "The invocation resulted in an error: ."
    The OSB server logs show the below error:
    ####<Feb 9, 2011 6:05:42 PM IST> <Error> <OSB Security> <test.abcd.co.in> <osb_server1> <[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <5a5769b8025ef997:-2bda316:12def49100a:-7fff-0000000000000c92> <1297254942782> <BEA-387082> <Proxy service access denied (proxy: ABCD/Services/Common_HTTP_Proxy, subject: Subject: 0
    )>
    ####<Feb 9, 2011 6:05:42 PM IST> <Error> <OSB Kernel> <test.abcd.co.in> <osb_server1> <[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <5a5769b8025ef997:-2bda316:12def49100a:-7fff-0000000000000c92> <1297254942782> <BEA-382004> <Failed to process request message for service ProxyService ABCD/Services/Common_HTTP_Proxy: com.bea.wli.sb.security.AccessNotAllowedException
    com.bea.wli.sb.security.AccessNotAllowedException
         at com.bea.wli.sb.pipeline.RouterSecurity.doAccessControl(RouterSecurity.java:136)
         at com.bea.wli.sb.pipeline.RouterSecurity.doAccessControl(RouterSecurity.java:117)
         at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:586)
         at com.bea.wli.sb.test.service.ServiceMessageSender.send0(ServiceMessageSender.java:329)
         at com.bea.wli.sb.test.service.ServiceMessageSender.access$000(ServiceMessageSender.java:76)
         at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:134)
         at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:132)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
         at com.bea.wli.sb.test.service.ServiceMessageSender.send(ServiceMessageSender.java:137)
         at com.bea.wli.sb.test.service.ServiceProcessor.invoke(ServiceProcessor.java:454)
         at com.bea.wli.sb.test.TestServiceImpl.invoke(TestServiceImpl.java:172)
         at com.bea.wli.sb.test.client.ejb.TestServiceEJBBean.invoke(TestServiceEJBBean.java:167)
         at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.invoke(TestService_sqr59p_EOImpl.java:353)
         at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
         at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Please suggest where I am going wrong in this. I have cross checked the user/pass credentials with what I am giving in the input, and it is perfectly fine.

    I have added the Username and Password as follows, since the namespace declaration was required due to the namespace prefix 'N1' in the XPath
    declare namespace N1="http://abcd.com/common/bodcomponents/transactional/model/1.0/";./AuthHeader/N1:Username/text()
    declare namespace N1="http://abcdp.com/common/bodcomponents/transactional/model/1.0/";./AuthHeader/N1:Password/text()
    I have removed the Message Access Control conditions, have only kept Transport Access Control conditions.
    If i keep the condition in Transport Access Control as "Allow access to everyone", and test with proper credentials in the Username/Password tags in SOAP Header, then it works fine. However, if I try to give an incorrect password in the SOAP Header, it denies the access. So that means the XPaths given for Username/Password are working fine. The OSB logs show the below message
    +####<Feb 10, 2011 12:59:21 PM IST> <Error> <OSB Security> <test.abcd.co.in> <osb_server1> <[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <5a5769b8025ef997:-2bda316:12def49100a:-7fff-0000000000000ef2> <1297322961536> <BEA-386008> <Message level username/password authentication failed: [Security:090304]Authentication Failed: User weblogic javax.security.auth.login.FailedLoginException: [Security:090302]Authentication Failed: User weblogic denied>+
    However if i add the condition with predicate as "User" and user name argument as "weblogic", and try to pass the same in the SOAP Header as well with the correct password, it denies the access with below message in the logs.
    +####<Feb 9, 2011 6:05:42 PM IST> <Error> <OSB Security> <test.abcd.co.in> <osb_server1> <[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <5a5769b8025ef997:-2bda316:12def49100a:-7fff-0000000000000c92> <1297254942782> <BEA-387082> <Proxy service access denied (proxy: ABCD/Services/Common_HTTP_Proxy, subject: Subject: 0+
    +)>+
    +####<Feb 9, 2011 6:05:42 PM IST> <Error> <OSB Kernel> <test.abcd.co.in> <osb_server1> <[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <5a5769b8025ef997:-2bda316:12def49100a:-7fff-0000000000000c92> <1297254942782> <BEA-382004> <Failed to process request message for service ProxyService ABCD/Services/Common_HTTP_Proxy: com.bea.wli.sb.security.AccessNotAllowedException+
    com.bea.wli.sb.security.AccessNotAllowedException
    at com.bea.wli.sb.pipeline.RouterSecurity.doAccessControl(RouterSecurity.java:136)
    at com.bea.wli.sb.pipeline.RouterSecurity.doAccessControl(RouterSecurity.java:117)
    at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:586)
    at com.bea.wli.sb.test.service.ServiceMessageSender.send0(ServiceMessageSender.java:329)
    at com.bea.wli.sb.test.service.ServiceMessageSender.access$000(ServiceMessageSender.java:76)
    at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:134)
    at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:132)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
    at com.bea.wli.sb.test.service.ServiceMessageSender.send(ServiceMessageSender.java:137)
    at com.bea.wli.sb.test.service.ServiceProcessor.invoke(ServiceProcessor.java:454)
    at com.bea.wli.sb.test.TestServiceImpl.invoke(TestServiceImpl.java:172)
    at com.bea.wli.sb.test.client.ejb.TestServiceEJBBean.invoke(TestServiceEJBBean.java:167)
    at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.invoke(TestService_sqr59p_EOImpl.java:353)
    at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
    at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
    at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

  • How to maintain messageId when using proxy services and mq??

    Hi
    I am a novice to oracle service bus and trying few transformations by configuring proxy services.
    Let me explain the problem I'm facing:
    I have created a business service and a proxy service and configured them in a synchronous way.
    I'm using MQ as a transport protocol....and message I'm passing and transforming is in xml format.
    these proxy and business services are functioning properly.....but at the another end i have created another pair of busines and proxy service which will be taking request message from earlier business service and putting it into another queue which is reference as a response queue by earlier proxy service.
    my second pair is also working properly. now the problem is that it is not maintaining message Id during all the routing.
    and that's why im not able to read the response message from the response queue because of message ID mismatch.
    Please help!!
    tell me if i have to do change any particular configuration settings to maintain the message id for my request message throughout the flow.
    Thanks
    Edited by: ChetakCs on Jun 14, 2010 7:19 AM

    Post this in OSB forum:
    SOA Suite

  • Is Response Required in Proxy Service and Business Service

    Hi All,
    I have made proxy service that is putting message on the Queue through a Business Service. Now I wanted to know what is the use of "Is Response Required" configuration parameter in Business as well Proxy Service. Also what is the significance of the JMSCorrelationID and JMSMessageID.
    Thanks,
    Anuj

    Hi Anuj,
    You can refer to the documentation for the information on "Is Response Required" in
    Proxy Service @ http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/interopjms/transport.html#wp1096236
    Business Service @ http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/interopjms/transport.html#wp1097863
    And for the significance of JMSCorrelationID and JMSMessageID please refer to link @ http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/interopjms/MsgIDPatternforJMS.html
    Please do reach out to me in case you need specific information.
    Thanks,
    Patrick

  • Correlation Exception - BPEL - Proxy Service and Business Service

    Hi All ,
    Correlation exception
    Flow - BPEL - Proxy - Business service
    We are invoking a proxy service from a bpel process with a correlation set(property set as Yes)) and it works absolutely fine when the service is available But the problem occurs when the service is down or a remote fault occurs.
    In the fault policy we had an action saying that retry three times but when it retries three times with the same correlation set
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>2</retryInterval>
    <exponentialBackoff/>
    <retryFailureAction ref="ora-human-intervention"/>
    <retrySuccessAction ref="ora-terminate"/>
    </retry>
    </Action>
    It was throwing an correleation exception.
    since it was hitting the service wth same correletion set it was throwing an error. Is there any way i can retry for the same service with out exception
    Thanks,
    Raja
    Edited by: user12893766 on Oct 1, 2010 3:30 AM

    1. No it can be any kind of request: binary, text, xml...
    2. ALSB support a lot of different transport/protocols:
    EMAIL, FTP, FILE, HTTP, JMS, EJB, TUXEDO. In ALSB 3.0 we will add support for ERPs: SAP, SIEBL ..., MQ native and SFTP
    3. It depends on the transport. For example for file, the client drops a file in the file system, for http it opens a http connection to the URL http://host:port/address etc...
    4. TCP/Socket transport is provided as a sample transport in ALSB 2.5 and 2.6. You can look in the weblogic92/samples/servicebus folder. You can also write your own transport if you like. There is a public SDK.

  • What does it mean when you receive a text on your iphone 6 form your own number and the message is duplicated on each side (sent/recieved) and has "verizon message" with a long number at the end of the text, duplicated as well?

    what does it mean when you receive a text on your iphone 6 from your own number and the message is duplicated on each side (sent/received) and has "verizon message" with a long number at the end of the text, duplicated as well?

        Great question stacybrownie! Let's get to the bottom of this so that it's not a cause for concern. When a message is sent to/from your own number, it will display as one sent, one received. This makes it display two messages as you are seeing. Let's clarify the second part of your question. Where do you see "Verizon Message" exactly? What is the long number at the end of the text? When did this start and is it with all text messages or only this instance?
    AdaS_VZW
    Follow us on Twitter at @VZWSupport 

  • OSB: Proxy doesn't consume JMS messages

    Guys, I'm getting stuck with this one ...
    I've got four JMS proxy services. One of them uses Publish to enqueue a message into the three others. This way I get three copies of a single message, each in dedicated JMS queue. The same three JMS proxies are supposed to consume messages from JMS queues and process them. The configuration is the same for all three proxies and all three JMS queues. In fact all was cloned and the difference is only in suffix. So, I've got QueueA, QueueB, QueueC and ProxyA, ProxyB and ProxyC. So if I stick to these names, ProxyMain uses 3x Publish actions to enqueue a message into ProxyA, ProxyB and ProxyC at the same time. This is a proved solution and it has worked for years flawlessly!
    However, something weird happened a couple of days ago. All of a sudden, one of those three consuming JMS proxies doesn't consume anything. There's no issue on producing side (the first proxy) as the numbers of messages in all three queues are still increasing. Still, only messages from QueueA and QueueB are being consumed by ProxyA and ProxyB. The third queue (QueueC) doesn't have any consumer attached from ProxyC and I don't know why.
    I've already checked everything I know - proxy is enabled, there are no errors in logs related to the proxy or JMS, the issue is not reproducible in test environment with the same configuration, there are no JMS Quota or connection factory restrictions, consuming flag is enabled on queue ...
    The lack of errors in logs makes me feel like the ProxyC is connected to something else. However, the same proxy is used for producing messages (from ProxyMain) and messages are incoming to the queue so the endpoint set in proxy must be correct!
    Any help, hint or idea is appreciated ...

    The third queue (QueueC) doesn't have any consumer attached from ProxyC and I don't know whyTry renaming ProxyC to say ProxyC1 and activate the session. This will create a new underlying MDB for the jms proxy and you will see consumers getting set on the queue.. Faced this issue many times in our production environment and easiest workaround we found was to rename the proxy service [ toggling enable/disable proxy doesn't seem to have ny effect).. you can change the name to the original proxy once the consumers are set..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to call a ALSB Proxy Service and don't wait for his response. Publish M

    Hi,
    I have a Proxy Service called PS1 that will invoke and another Proxy service Called PS_ProcessingNode that invokes 10 differents webservices during the orchestration and takes about 2 minuts.
    I would like that if invoke PS1 that will invokes PS_ProcessingNode (asyncronously) and immediatly PS1 will return "OK" (don't wait for the response of PS_ProcessingNode) .
    For simulate this scenario I am testing with:
    - PS_Processing is a WSDL without response that has a JavaCallout with a Sleeper of 10 seconds.
    - PS invokes with "Publish action" to PS_ProcessingNode but is waiting for PS_Processsing finish. I don't want this beahivour.
    How I can do it for PS doesn't wait for the response of the PS_ProcessingNode?
    Thanks.

    - PS invokes with "Publish action" to PS_ProcessingNode but is waiting for PS_Processsing finish. I don't want this behavior.
    I'm glad you have a solution using JMS. But still Publish action should not wait for response. If you are seeing that behavior, you can contact Support with an SR to get it fixed.
    Manoj

  • Catching and rethrowing a SOAP Fault from an OSB 11g Proxy service

    Hello,
    We have a chain of proxy services (that last one of which calls a business service) in our 11.1.1.6 OSB project.  At one of the lower levels, we successfully throw a fault like this:
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Fault xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:faultcode>SOAP-ENV:Client</soap:faultcode>
        <soap:faultstring>Non-Existent User</soap:faultstring>
        <soap:faultActor>Client who consumed this Web Service operation</soap:faultActor>
        <soap:detail>
          <sc:UserNonExistentFault xmlns:sc="http://xmlns.sc.com/Services/V1">
            <sc:CustomerNumber>12345</sc:CustomerNumber>
          </sc:UserNonExistentFault>
        </soap:detail>
      </soap:Fault>
    </soapenv:Body>
    In the proxy service which calls this proxy service, I tried to catch this fault in an Error Handler so that I could confirm that it's available for me to re-throw back up the chain.  Curiously, the proxy service which calls that proxy service cannot see that fault.  But rather it sees what appears to be an OSB-overridden fault:
    <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
      <con:errorCode>BEA-380000</con:errorCode>
      <con:reason>com.bea.wli.sb.pipeline.PipelineException</con:reason>
      <con:details>
        <err:ErrorResponseDetail xmlns:err="http://www.bea.com/wli/sb/errors">
          <err:response-metadata xsi:type="sb:SBResponseMetaDataXML" xmlns:sb="http://www.bea.com/wli/sb/transports/sb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <tran:headers xsi:type="sb:SBResponseHeadersXML" xmlns:tran="http://www.bea.com/wli/sb/transports"/>
            <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">1</tran:response-code>
            <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
          </err:response-metadata>
        </err:ErrorResponseDetail>
      </con:details>
      <con:location>
        <con:node>PipelinePairNode</con:node>
        <con:pipeline>PipelinePairNode_request</con:pipeline>
        <con:stage>GetCustomerByNumber</con:stage>
        <con:path>request-pipeline</con:path>
      </con:location>
    </con:fault>
    I have tried printing out the values of $body, $fault, $outbound and $inbound from the calling proxy service's Error Handler just to see if our <sc:UserNonExistentFault> is nested anywhere therein.  Unfortunately, it is nowhere to be found.
    How can we force OSB to NOT override our faults with OSB-framework faults and, instead, just throw our custom fault all the way up the chain and back to the consumer?
    Thank you,
    Michael

    I think I figured this out.
    In proxyService-2, build the <soap:Fault> and assign it to the body, then Reply with Failure (as you mentioned above).
    When proxyService-1 receives this, it will still be in the $body variable.  But the $fault variable is now populated with a BEA-38000 error.  It seems that as long as the $fault variable has data in it, then the OSB system will throw that instead of my fault (ignoring the <soap:Fault> I put into the body).
    So what I did was to Delete the $fault variable in the error handler of proxyService-1, then Reply with Failure (again).
    It would seem as if the inner workings of OSB has some logic like:
    if $fault is not null, throw the BEA-####### fault.  Otherwise, return the contents of the $body.
    By removing the fault, I effectively got to that "else/otherwise" condition.
    Of course, the Reply with Failure is still needed to ensure that an HTTP 500 error is passed with the fault (per the SOAP specification).
    Cheers!
    Michael

  • OSB: Proxy Service and Dispatch Policy

    Hi all,
    I'm trying to use OSB (10.3) proxy service with dispatch policy set to WebLogic (10.3) work manager to limit maximum number of threads allocated for request to this proxy service.
    It seems to me that whole dispatch policy setting is ignored in OSB. The situation is like this: I have simple Axis based web service with wait method that just waits for few seconds (based on request parameter). I use this service for testing (hm, so far just for trying to understand) OSB dispatch policy function.
    Using soapUI I created a simple load test which uses 10 threads to call wait(10) - it means "wait for 10 seconds". Time limit for the whole load test is set to 20 seconds. It is clear that the total execution count is 2 x 10 = 20. So far, so good.
    Then I created simple proxy service in OSB that just routes request to business service representing my Axis service with wait method. I set a dispatch policy for the proxy service to WorkManager-2threads (see below) and I expected that running the same load test with endpoint set to OSB would result in significant lower total execution count. I expected that because WebLogic should allocate 2 threads at most for all requests to this proxy service. However, that's not the case as the result is the same as in the first (Axis only) test. Just as there was no dispatch policy settings at all ...
    Where is the problem?
    This is the relevant part of my WebLogic configuration regarding work manager:
    <max-threads-constraint>
    <name>MaxThreadsConstraint-2</name>
    <target>AdminServer</target>
    <count>2</count>
    <connection-pool-name></connection-pool-name>
    </max-threads-constraint>
    <work-manager>
    <name>WorkManager-2threads</name>
    <target>AdminServer</target>
    <max-threads-constraint>MaxThreadsConstraint-2</max-threads-constraint>
    <capacity xsi:nil="true"></capacity>
    <ignore-stuck-threads>false</ignore-stuck-threads>
    </work-manager>

    It's same problem to me. I do pressure test by loadrunner,I deployed two separate proxy service,under same concurrent user,I get same TPS from the two proxy service.but when I add low priority concurrent user,low priority TPS up.
    I set the Route option as you say,but weblogic hanged immediately,and can't be accessed by the console.

  • Multiple Proxy Services for single JMS endpoint

    Hi Forum,
    OSB Proxy services do not allow to have the same endpoint. I have defined 2 proxy services to look into one JMS queue. But it does not allow to do this.
    I want to fetch messages from the same queue by more than one Proxy (parallel execution to empty the queue faster). How can I do that?
    Thanks in advance..
    CK

    OSB/JMS by design are of little use here. For parallel execution to empty the queue faster we can
    1) use distributed Q in cluster and multiple proxies can process on the distributed Q.
    Manoj

  • OSB Exposing Proxy Service as Web Service to external consumers

    Hi all,
    I am trying to expose my proxy service which I have defined in OSB11g to be exposed to external applications and consumers, rather than listening to a queue or using a business service to receive the traffic. What would be the best approach and practice to this issue? Needless to say that since I mentioned this proxy needs to be exposed as web service, I'll be expecting back response. The endpoint that I am getting as result of creating this proxy comes to be in following format:
    /<project_name>/Services/ProxyServices/MyProxy
    This fine for apps deployed on the same domain, but not if they are not deployed on the same domain.
    thanks in advance

    From the information shared you, looks like you want to create a SOAP over HTTP webservice in OSB which will be the one exposed to external consumers.
    1. So to create such a Proxy service, you will need to define the interface using a WSDL (as mentioned by Pierluigi) first.
    2. Once done, you can create a Proxy (SOAP/HTTP) based using the above WSDL. Then implement your business logic in the message flow.
    3. As a part of the configuration, you can define the context root of the service. (by default you might be getting /<project_name>/Services/ProxyServices/MyProxy)
    You can customize as required, for e.x change this to /services/MyProxy
    4. The final URL that can be used to access the above proxy will be as follow:
    http://<hostname>:<port>/services/MyProxy for HTTP
    https://<hostname>:<port>/services/MyProxy for HTTPS accordingly.
    Depending on the way your domain is configured (managed servers) you can change the hostname and port.
    So irrespective of where this service is deployed, you should be able to access it.
    Do let me know in case my understanding is incorrect.
    Thanks,
    Patrick

  • OWSM Custom Assertion for OSB RESTful Proxy Service

    Hello,
    I have implemented a Custom OWSM Assertion to authenticate requests with a custom token placed in a HTTP header. I can assign this assertion to a SOAP proxy service as a security policy. However I am not able to assign the very same policy to a Restful JSON service (Proxy service defined as messaging service with text message type). I am getting this error:
    [OSB Kernel:398128]One of the Web service policy attached is not allowed on service default/RESTful because the service binding does not support it
    My policy:
    <wsp:Policy xmlns="http://schemas.xmlsoap.org/ws/2004/09/policy"
        xmlns:custom="http://custom"
        orawsp:status="enabled"
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" orawsp:category="security"
        orawsp:attachTo="binding.server" wsu:Id="http_customtoken_authentication_policy"
        xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
        wsp:Name="custom/http_customtoken_authentication_policy">
        <custom:customTokenHttpAuthentication
            orawsp:Silent="true" orawsp:Enforced="true"
            orawsp:name="Http custom token Authentication" orawsp:category="security/authentication" >
            <orawsp:bindings>
                <orawsp:Config orawsp:name="authenticationassertion"
                    orawsp:configType="declarative">
                    <orawsp:PropertySet orawsp:name="headerName">
                        <orawsp:Property orawsp:name="headerName"
                            orawsp:type="string" orawsp:contentType="constant">
                            <orawsp:Value>CustomToke</orawsp:Value>
                        </orawsp:Property>
                    </orawsp:PropertySet>
                </orawsp:Config>
            </orawsp:bindings>
        </custom:customTokenHttpAuthentication>
    </wsp:Policy>
    My OSB version is OSB 11g PS6 and in this version, OWSM policies are supported for Restful services. Interesting is, that the built-in policy oracle/http_basic_auth_over_ssl_service_policy can be assigned to my Restful service. Do you know a solution for the problem, how can I assign my custom assertion to the Restful service? Anything special is needed in the policy definition?
    Thanks.
    Marian

    Hi Vinoth,
    The users/groups are picked up from the LDAP configured in Security Realms->myRealm->Providers
    You basically have 2 options:
    - You can configure your LDAP in Providers
    - Use the DefaultAuthenticator that weblogic provides you by default.
    If you do not want to configure an LDAP, and want to use weblogic's default, then all you have to do is add users and groups in Security Realms->myRealm->Users and Groups
    Do mark this as useful or answered, if this has helped.

Maybe you are looking for

  • Premiere Elements 8 Project Won't Open. Please Help.

    Hello, I was working on a Premiere Elements 8 project for my video class last night (HDV, 1080i 30p) and the program stopped responding as I was importing a clip. I was prompted to wait for response or close the program. I closed the program and when

  • Newline problem with soap

    I'm having these weird problems with newlines. I'm sending \n in a message because I have a multi lined message i want parsed. Axis is receiving the message and throwing exceptions. I printed out the line it's parsing and it's giving this error that

  • Help on Playlists

    Hi, I am trying to create playlist on itunes software using songs from my ipod? I can't seem to get the songs from my ipod to a playlist on my computer. Can anyone help? Thanks much, Brian

  • Modify the structure of internal table which created dynamically!!!

    HI All, I am creating internal table dynamically using the below syntax.  Now I need to remove few of the fields from the internal table structure. Could you please help me how to go ahead in these cases? * Create table dynamically for local data   C

  • Convert Report Writer Report to ABAP Report

    Hi, does anyone know if there is an easy way to kind of export a report writer report to a abap programm, that can then be changed or enhanced? ths in advance.