OSB: Configuring Proxy Service

Hi,
As I understand the "Proxy service" invokes the "Business service".
Therefore when I configure the "ProxyService" there should be a "Create From Existing Service" section in the "General Configuration".
But in my workbench I dont see the "Create From Existing Service" section.
There is no way I can link the Proxy and the Business services.
Any idea why that section is missing in my workbench and how to resolve it?
Regards,
Deepak

Hi Deepak,
Good catch. I never observed this specific thing through the Workbench. Yes through the workbench this options seems to be unavailable.
You can invoke the business service via the Proxy Service by creating a route node and then selecting the business service in the route node configuration.
this way your proxy service can invoke the business service.
This might not be the solution you are looking for, but still wanted to let you know that it is not a must to use the "Create From Existing Service" option. The ""Create From Existing Service" would in turn also do the same thing (marked in bold). You can check this out using the sbconsole. :)
Hope this helps.
Thanks,
Patrick

Similar Messages

  • How to configure proxy services in OSB for Rest based services?

    how to configure proxy services in OSB for Rest based services implemented using Jersey (Rest).
    The Client need to contact OSB proxy servies by posting application/xml using jersey client and OSB proxy service will call the OSB business service.
    i would like to know how to get this request in OSB proxy service and send it to the business service and get the response back.

    I would suggest you refer to the below links:
    https://blogs.oracle.com/jeffdavies/entry/restful_services_with_oracle_s_1
    https://blogs.oracle.com/jamesbayer/entry/using_rest_with_oracle_service
    Hope this helps.
    Thanks,
    Patrick

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

  • OSB: Configuring business service for JMS Queue

    Hi,
    I want to produce messages into a JMS queue from OSB proxy service. I have created business service for the JMS queue. I also want to return Status code=200, Status Messgae=Success if the message is successfully inserted into the Queue. Kindly let me know how to do this.
    I tried using Service Callout to call the business service but it is not allowing me to use it because my business service is a one-way operation. So, i tried with Publish activity but my doubt is how and where to configure request payload for the publish activity. I could not find any.
    And how do i know if the message is successfully inserted so that i can send the Status=200 back to the calling proxy service.
    Kindly help in this regard.
    Thanks in advance.

    As suggested, use QoS=ExactlyOnce as RoutingOption within the Publish to business service. If there was any error it will send the flow to error handler where you can do a reply with failure to return HTTP status code=500 to the caller of the proxy service.
    If you do a reply with success the caller will receive HTTP status code=200

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

  • Configuring Proxy Service for MQ Transport

    Hi
    When we configure a MQ Proxy service, we get an option by the name "Endpoint URI 'GET' options ", I wanted to know what is the default setting for this option, i.e if i do not set anything in this tab then what value OSB defaults it to?
    Its Urgent.
    Rgds
    Rahul.

    The link i gave before give different behaviour you can control with appropriate setting of Options field. OSB documentation [ http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/mqtransport/transport.html#wp1088116] gives the complete list of fields
    # MQC.MQGMO_ACCEPT_TRUNCATED_MSG
    # MQC.MQGMO_ALL_MSGS_AVAILABLE
    # MQC.MQGMO_BROWSE_FIRST
    # MQC.MQGMO_BROWSE_NEXT
    # MQC.MQGMO_COMPLETE_MSG
    # MQC.MQGMO_CONVERT
    # MQC.MQGMO_FAIL_IF_QUIESCING
    # MQC.MQGMO_LOCK
    # MQC.MQGMO_LOGICAL_ORDER
    # MQC.MQGMO_MARK_BROWSE_CO_OP
    # MQC.MQGMO_MARK_SKIP_BACKOUT
    # MQC.MQGMO_NO_SYNCPOINT
    # MQC.MQGMO_NONE
    # MQC.MQGMO_NO_WAIT
    # MQC.MQGMO_SYNCPOINT
    # MQC.MQGMO_SYNCPOINT_IF_PERSISTENT
    # MQC.MQGMO_UNLOCK
    # MQC.MQGMO_UNMARK_BROWSE_CO_OP
    # MQC.MQGMO_UNMARK_BROWSE_HANDLE
    # MQC.MQGMO_UNMARKED_BROWSE_MSG
    # MQC.MQGMO_VERSION_1
    # MQC.MQGMO_VERSION_2
    # MQC.MQGMO_VERSION_3
    # MQC.MQGMO_WAIT
    As an example you can specify MQC.MQGMO_BROWSE_FIRST if you want the mqget to be a non destructive read off the queue [message wont get deleted off the q, so the behaviour is like browsing through the messages in the queue]. Similarly you can set MQC.MQGMO_CONVERT if you would like the queue manager to convert a string message's encoding before delivering the message to the app issuing the mqget command [ useful for ebcidic to ascii conversions when getting messages from a mainframe]. Like this you can control the different behaviours when performing a mqget. You can read IBM documentaion to understand the significance of each Option field and can decide whether you need to apply the same for your requirement. If you dont need any then dont worry about this field.

  • OSB 11g proxy service test console fail with Broken pipe

    Hi everyone.
    I have a strange problem with OSB test console (and sometime with java client). The proxy I built cannot response after several request. In other word, I tried to test console for dozens time, sometime I cannot have response from OSB. I wait for the response for 5 minutes and get some strange exception, that is broken pipe, but error code is not unique.
    I cannot understand why my proxy service stuck in that exception. Can you help me to solve it ?
    Any suggestion is appreciated.
    P/S: that is log record on server:
    <BEA-423405> <An exception [Broken pipe] was thrown while rendering the content at [/jsp/test/ServiceResult.jsp].
    java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at weblogic.servlet.internal.ChunkOutput.writeChunkTransfer(ChunkOutput.java:568) at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:539) at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:427) at weblogic.servlet.internal.CharsetChunkOutput.flush(CharsetChunkOutput.java:298) at weblogic.servlet.internal.ChunkOutput$2.checkForFlush(ChunkOutput.java:648) at weblogic.servlet.internal.CharsetChunkOutput.write(CharsetChunkOutput.java:200) at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:148) at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:148) at weblogic.servlet.internal.WLOutputStreamWriter.writeBytes(WLOutputStreamWriter.java:168) at weblogic.servlet.internal.WLOutputStreamWriter.flushBuffer(WLOutputStreamWriter.java:212) at weblogic.servlet.internal.WLOutputStreamWriter.write(WLOutputStreamWriter.java:132) at weblogic.servlet.internal.WLOutputStreamWriter.write(WLOutputStreamWriter.java:113) at weblogic.servlet.internal.DelegateChunkWriter.print(DelegateChunkWriter.java:118) at weblogic.servlet.internal.ChunkOutputWrapper.print(ChunkOutputWrapper.java:171) at weblogic.servlet.jsp.JspWriterImpl.print(JspWriterImpl.java:177) at com.bea.alsb.console.taglibs.test.TestExpandableDataSection.doStartTag(TestExpandableDataSection.java:202) at jsp_servlet._jsp._test.__serviceresult._jspService(__serviceresult.java:341) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at org.apache.beehive.netui.pageflow.PageFlowPageFilter.continueChainNoWrapper(PageFlowPageFilter.java:455) at org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPageFilter.java:432) at org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:284) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:524) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:444) at org.apache.beehive.netui.pageflow.scoping.internal.ScopedRequestDispatcher.include(ScopedRequestDispatcher.java:119) at com.bea.netuix.servlets.controls.content.JspContent.beginRender(JspContent.java:552) at com.bea.netuix.servlets.controls.content.NetuiContent.beginRender(NetuiContent.java:365) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:485) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:395) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:352) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:326) at com.bea.netuix.nf.UIControl.render(UIControl.java:582) at com.bea.netuix.servlets.controls.PresentationContext.render(PresentationContext.java:486) at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:146) at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag(RenderChild.java:62) at jsp_servlet._framework._skeletons._wliconsole.__flowlayout._jspService(__flowlayout.java:271) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:444) at com.bea.netuix.servlets.controls.application.laf.JspTools.renderJsp(JspTools.java:130) at com.bea.netuix.servlets.controls.application.laf.JspControlRenderer.beginRender(JspControlRenderer.java:72) at com.bea.netuix.servlets.controls.application.laf.PresentationControlRenderer.beginRender(PresentationControlRenderer.java:65) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:481) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:395) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:352) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:326) at com.bea.netuix.nf.UIControl.render(UIControl.java:582) at com.bea.netuix.servlets.controls.PresentationContext.render(PresentationContext.java:486) at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:146) at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag(RenderChild.java:62) at jsp_servlet._framework._skeletons._wliconsole._popupwindow.__gridlayout._jspService(__gridlayout.java:312) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:444) at com.bea.netuix.servlets.controls.application.laf.JspTools.renderJsp(JspTools.java:130) at com.bea.netuix.servlets.controls.application.laf.JspControlRenderer.beginRender(JspControlRenderer.java:72) at com.bea.netuix.servlets.controls.application.laf.PresentationControlRenderer.beginRender(PresentationControlRenderer.java:65) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:481) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:395) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:352) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:326) at com.bea.netuix.nf.UIControl.render(UIControl.java:582) at com.bea.netuix.servlets.controls.PresentationContext.render(PresentationContext.java:486) at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:146) at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag(RenderChild.java:62) at jsp_servlet._framework._skeletons._wliconsole.__flowlayout._jspService(__flowlayout.java:271) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:444) at com.bea.netuix.servlets.controls.application.laf.JspTools.renderJsp(JspTools.java:130) at com.bea.netuix.servlets.controls.application.laf.JspControlRenderer.beginRender(JspControlRenderer.java:72) at com.bea.netuix.servlets.controls.application.laf.PresentationControlRenderer.beginRender(PresentationControlRenderer.java:65) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:481) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:395) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:352) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:326) at com.bea.netuix.nf.UIControl.render(UIControl.java:582) at com.bea.netuix.servlets.controls.PresentationContext.render(PresentationContext.java:486) at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:146) at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag(RenderChild.java:62) at jsp_servlet._framework._skeletons._wliconsole._popupwindow.__gridlayout._jspService(__gridlayout.java:312) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:444) at com.bea.netuix.servlets.controls.application.laf.JspTools.renderJsp(JspTools.java:130) at com.bea.netuix.servlets.controls.application.laf.JspControlRenderer.beginRender(JspControlRenderer.java:72) at com.bea.netuix.servlets.controls.application.laf.PresentationControlRenderer.beginRender(PresentationControlRenderer.java:65) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:481) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:395) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361) at com.bea.netuix.nf.Lifecycle.runOutbound(Lifecycle.java:208) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:162) at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:388) at com.bea.netuix.servlets.manager.UIServlet.doPost(UIServlet.java:258) at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:199) at com.bea.netuix.servlets.manager.SingleFileServlet.service(SingleFileServlet.java:251) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.AsyncInitServlet.service(AsyncInitServlet.java:130) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)Regards
    Cuong Pham

    Hi, everyone.
    This is my proxy service that was tested above. Can you show me some instructions for tuning it? On these day, I get many bad performance responses from that service.
    <?xml version="1.0" encoding="UTF-8"?>
    <xml-fragment xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:con="http://www.bea.com/wli/sb/pipeline/config" xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config" xmlns:con2="http://www.bea.com/wli/sb/stages/config" xmlns:con3="http://www.bea.com/wli/sb/stages/routing/config" xmlns:con4="http://www.bea.com/wli/sb/stages/logging/config">
      <ser:coreEntry isProxy="true" isEnabled="true" isTracingEnabled="false">
        <ser:binding type="SOAP" isSoap12="false" xsi:type="con5:SoapBindingType" xmlns:con5="http://www.bea.com/wli/sb/services/bindings/config">
          <con5:wsdl ref="DnICT_OSB_Project/resources/wsdl/PortalSide"/>
          <con5:port>
            <con5:name>PortalSideSOAP</con5:name>
            <con5:namespace>http://www.example.org/PortalSide/</con5:namespace>
          </con5:port>
          <con5:selector type="SOAP body"/>
          <con5:WSI-compliant>false</con5:WSI-compliant>
        </ser:binding>
        <ser:monitoring isEnabled="false">
          <ser:aggregationInterval>10</ser:aggregationInterval>
          <ser:pipelineMonitoringLevel>Pipeline</ser:pipelineMonitoringLevel>
        </ser:monitoring>
        <ser:reporting>true</ser:reporting>
        <ser:logging isEnabled="true">
          <ser:logLevel>debug</ser:logLevel>
        </ser:logging>
        <ser:sla-alerting isEnabled="true">
          <ser:alertLevel>normal</ser:alertLevel>
        </ser:sla-alerting>
        <ser:pipeline-alerting isEnabled="true">
          <ser:alertLevel>normal</ser:alertLevel>
        </ser:pipeline-alerting>
        <ser:ws-policy>
          <ser:binding-mode>wsdl-policy-attachments</ser:binding-mode>
        </ser:ws-policy>
      </ser:coreEntry>
      <ser:endpointConfig>
        <tran:provider-id>http</tran:provider-id>
        <tran:inbound>true</tran:inbound>
        <tran:URI>
          <env:value>/DnICT_OSB_Project/proxy-services/DnICT_WSDL_PS</env:value>
        </tran:URI>
        <tran:inbound-properties/>
        <tran:all-headers>false</tran:all-headers>
        <tran:provider-specific>
          <http:inbound-properties/>
        </tran:provider-specific>
      </ser:endpointConfig>
      <ser:router>
        <con:pipeline type="request" name="GetRequestInfo_pipeline_pair_request">
          <con:stage name="InputProcess_stage">
            <con:context>
              <con2:varNsDecl namespace="http://www.example.org/PortalSide/" prefix="por"/>
              <con2:varNsDecl namespace="http://www.example.org/PortalSide_Test/" prefix="por1"/>
              <con2:varNsDecl namespace="http://www.example.org/OutputSchema" prefix="out"/>
            </con:context>
            <con:actions>
              <con1:assign varName="docId">
                <con2:id>_ActionId-2456490176600649155--723117a.130d7d91065.-7b86</con2:id>
                <con1:expr>
                  <con2:xqueryText>$body/por:checkStatus/documentId/text()</con2:xqueryText>
                </con1:expr>
              </con1:assign>
              <con1:assign varName="depId">
                <con2:id>_ActionId-2456490176600649155--723117a.130d7d91065.-7b69</con2:id>
                <con1:expr>
                  <con2:xqueryText>$body/por:checkStatus/departmentId/text()</con2:xqueryText>
                </con1:expr>
              </con1:assign>
              <con1:assign varName="srvId">
                <con2:id>_ActionId-4566721321360037228--34ba1746.13170e34dc9.-7d41</con2:id>
                <con1:expr>
                  <con2:xqueryText>$body/por:checkStatus/serviceId/text()</con2:xqueryText>
                </con1:expr>
              </con1:assign>
            </con:actions>
          </con:stage>
        </con:pipeline>
        <con:pipeline type="response" name="GetRequestInfo_pipeline_pair_response"/>
        <con:pipeline type="error" name="_onErrorHandler-4305915913837985194--28b0abb9.13175ecaaa7.-7d31">
          <con:stage name="stage1">
            <con:context>
              <con2:userNsDecl namespace="http://www.example.org/OutputSchema" prefix="ns2"/>
            </con:context>
            <con:actions>
              <con1:replace varName="body">
                <con2:id>_ActionId-6209548530523967653-4b474d03.13177132d5d.-7f08</con2:id>
                <con1:location>
                  <con2:xpathText>.</con2:xpathText>
                </con1:location>
                <con1:expr>
                  <con2:xqueryText><![CDATA[<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
         <soapenv:Fault>
              <faultcode>soapenv:Server</faultcode>
              <faultstring>{concat($fault/ctx:errorCode,': ',$fault/ctx:reason)}</faultstring>
              <detail>
                   <ns2:faultResponse>
                        <errorCode>{$fault/ctx:errorCode/text()}</errorCode>
                        <reason>{$fault/ctx:reason}</reason>
                        <location>
                             <node>{$fault/ctx:location/ctx:node/text()}</node>
                             <path>{$fault/ctx:location/ctx:path/text()}</path>
                        </location>
                        <operation>{$inbound/ctx:service/ctx:operation/text()}</operation>
                        <uri>{$inbound/ctx:transport/ctx:uri/text()}</uri>
                        <host>{$inbound/ctx:transport/ctx:request/tp:headers/http:Host/text()}</host>
                        <request_body>{$copyBody}</request_body>
                   </ns2:faultResponse>
              </detail>
         </soapenv:Fault>
    </soapenv:Body>]]></con2:xqueryText>
                </con1:expr>
              </con1:replace>
              <con2:reply isError="true">
                <con2:id>_ActionId-4305915913837985194--28b0abb9.13175ecaaa7.-7cc3</con2:id>
              </con2:reply>
              <con4:log>
                <con2:id>_ActionId-556838872042008716--23ff25e2.131bcfb490d.-7fae</con2:id>
                <con4:logLevel>error</con4:logLevel>
                <con4:expr>
                  <con2:xqueryText>concat('Error while trying to query DnICT web service: ',$fault/ctx:errorCode,' : ',$fault/ctx:reason)</con2:xqueryText>
                </con4:expr>
              </con4:log>
            </con:actions>
          </con:stage>
        </con:pipeline>
        <con:flow>
          <con:pipeline-node name="GetRequestInfo_pipeline_pair">
            <con:comment>Lay cac thong tin trong form search</con:comment>
            <con:request>GetRequestInfo_pipeline_pair_request</con:request>
            <con:response>GetRequestInfo_pipeline_pair_response</con:response>
          </con:pipeline-node>
          <con:branch-node type="condition" name="branching_public_services">
            <con:context>
              <con2:varNsDecl namespace="http://www.example.org/PortalSide/" prefix="por"/>
            </con:context>
            <con:branch-table variable="depId">
              <con:branch name="SoTTTT">
                <con:operator>equals</con:operator>
                <con:value>1</con:value>
                <con:flow>
                  <con:branch-node type="condition" name="DnICT_dept_services">
                    <con:context/>
                    <con:branch-table variable="srvId">
                      <con:branch name="DichVu_1">
                        <con:operator>equals</con:operator>
                        <con:value>64</con:value>
                        <con:flow>
                          <con:route-node name="RouteToDnICT_BS" error-handler="_onErrorHandler-4305915913837985194--28b0abb9.13175ecaaa7.-7d31">
                            <con:context>
                              <con2:varNsDecl namespace="http://www.example.org/PortalSide/" prefix="por"/>
                              <con2:varNsDecl namespace="http://www.example.org/PortalSide_Test/" prefix="por1"/>
                              <con2:varNsDecl namespace="http://www.example.org/OutputSchema" prefix="out"/>
                            </con:context>
                            <con:actions>
                              <con3:route>
                                <con2:id>_ActionId-4566721321360037228--34ba1746.13170e34dc9.-7b4c</con2:id>
                                <con3:service ref="DnICT_OSB_Project/busines-services/DnictServiceBS" xsi:type="ref:BusinessServiceRef" xmlns:ref="http://www.bea.com/wli/sb/reference"/>
                                <con3:operation>selecttrangthai</con3:operation>
                                <con3:outboundTransform>
                                  <con1:assign varName="username">
                                    <con2:id>_ActionId-4566721321360037228--34ba1746.13170e34dc9.-7b4b</con2:id>
                                    <con1:expr>
                                      <con2:xqueryText>fn:string('stttt')</con2:xqueryText>
                                    </con1:expr>
                                  </con1:assign>
                                  <con1:assign varName="password">
                                    <con2:id>_ActionId-4566721321360037228--34ba1746.13170e34dc9.-7b4a</con2:id>
                                    <con1:expr>
                                      <con2:xqueryText>fn:string('123456')</con2:xqueryText>
                                    </con1:expr>
                                  </con1:assign>
                                  <con1:replace contents-only="true" varName="body">
                                    <con2:id>_ActionId-4566721321360037228--34ba1746.13170e34dc9.-7b49</con2:id>
                                    <con1:expr>
                                      <con2:xqueryText><![CDATA[<soap:selecttrangthai       xmlns:soap="http://soapinterop.org/">
         <username       xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">{$username}</username>
         <password       xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">{$password}</password>
         <masohoso       xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">{$docId}</masohoso>
    </soap:selecttrangthai>]]></con2:xqueryText>
                                    </con1:expr>
                                  </con1:replace>
                                </con3:outboundTransform>
                                <con3:responseTransform/>
                              </con3:route>
                            </con:actions>
                          </con:route-node>
                        </con:flow>
                      </con:branch>
                      <con:default-branch>
                        <con:flow/>
                      </con:default-branch>
                    </con:branch-table>
                  </con:branch-node>
                </con:flow>
              </con:branch>
              <con:branch name="SoGTVT">
                <con:operator>equals</con:operator>
                <con:value>2</con:value>
                <con:flow/>
              </con:branch>
              <con:default-branch>
                <con:flow/>
              </con:default-branch>
            </con:branch-table>
          </con:branch-node>
        </con:flow>
      </ser:router>
    </xml-fragment>

  • 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

  • How to configure proxy services to use the file transport?

    Hi,
    I have configured a proxy service to poll for files in the specified folder. And it is configured to use the file transport.
    At runtime, I'm getting the follwing exception -
    <Apr 27, 2012 4:08:28 PM GMT+05:30> <Error> <WliSbTransports> <BEA-381602> <Error encountered while polling the resource for the service endpoint ProxyService$ServiceTypes_SB$BinaryService: javax.naming.NameNotFoundException: While trying to lookup 'wlsb.internal.transport.task.queue.file' didn't find subcontext 'wlsb'. Resolved ''; remaining name 'wlsb/internal/transport/task/queue/file'
    javax.naming.NameNotFoundException: While trying to lookup 'wlsb.internal.transport.task.queue.file' didn't find subcontext 'wlsb'. Resolved ''; remaining name 'wlsb/internal/transport/task/queue/file'
         at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
         at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:247)
         at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)
         at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
         at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
         Truncated. see log file for complete stacktrace
    Request help to resolve this.
    Thanks in advance.
    Regards
    Shyam.V

    Only the business service would rely on the JMS queues, which in turn would trigger an MDB. I have tested the business service and it works fine.
    The problem is only with the polling part of the proxy service.
    Regards
    Shyam.V

  • 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

  • Reset the HTTP response code in OSB for proxy service

    Hi,
    I created a HTTP proxy service in ALSB with any XML message option. There are some business scnearios for which i need to send a custom error message in the HTTP body. I am replacing the $body variable with the error message and sending reply with success.As i am using reply with success it sends a HTTP response status code as 200 Ok.
    However based on different error conditions i want to send appropraite http response code. How can this be achieved?

    I would like to share the solution so that it would be useful to all the users of the forum.
    There is a http:http-response-code element in the $inbound variable which is optional element. You need to insert this element to the $inbound using the insert action. Here is the extract of the code:
    Insert [<http:http-response-code>401</http:http-response-code>] [ as last child of ] [./con:transport/con:response] in [inbound]
    Please note namespace con belongs to "http://www.bea.com/wli/sb/context".
    Edited by: [email protected] on Aug 12, 2009 10:47 PM

  • OSB Business -Proxy Service

    Hi,
    I need to call WSDL which has 2 operations. I need to pass default xml payload to operation 1 and the response I get, has to be passed to invoke operation 2. I have created 2 business services and after I create a proxy service :
    How to pass default xml to business service 1 ?
    How to pass response from business service 1 to business service 2 ?
    Thanks

    somebol, Prabhu
    If I use Service Callout , I see Request Document Variable where I can pass in the request ($body/<request>), as you mentioned.But, the default XML payload to business service does not come as input to Proxy Service, I need to pass that XML payload explicitly to business service op1.
    I was thinking if I have to use assign or replace to pass the XML payload to business service op1, but I am not sure how to do in my Proxy.
    My Input to Proxy Service is date , which at this point is not used anywhere.
    Thanks

  • OSB : Restful proxy service with basic authentication

    Hi,
    We want to expose a restful webservice from OSB with Basic authentication (username and password). Let us know what is the procedure for the same.
    THanks,

    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.

  • Using weblogic unit-of-order (UOO) in osb proxy service

    Hi,
    I have a JMS Queue deployed to Weblogic server. The messages inside the queue are grouped using the JMS_BEA_Unit-of-order (UOO) Weblogic feature.
    Now i have a OSB 10g Proxy Service which reads messages from this Queue. The problem is, on recieving a message, acknowledgement is send immediately, thus removing the message from the Queue and next message with same Unit-Of-Order is ready for processing.
    But the business scenario needs the first message to be read, processed and then decide to acknowledge or not. The second message should not be read unless the previous message is processed successfully.
    Can anyone help with this scenario?
    Thanks,
    Alex
    Edited by: user9024636 on Feb 11, 2010 2:57 AM

    Hi Steve,
    I don't know what you need UOO for, but, for some use cases, its sufficient just to configure a default UOO on the sender's connection factory.
    Propapagation of a UOO from one desitnation to another is not automatic (except via SAF, or unless OSB somehow does it for you). Plain vanilla JMS apps do this by calling msg.getStringProperty("JMS_BEA_UnitOfOrder") on the received message and setUnitOfOrder() on the javax.jms.WLProducer.
    You might find that there's more OSB expertise on an OSB newsgroup (I think it's one of the newsgroups under [url http://forums.oracle.com/forums/category.jspa?categoryID=194]SOA & Process Management).
    Regards,
    Tom

Maybe you are looking for

  • TS1741 How do I connect my Apple TV to a new router without the remote?

    I lost my remote recently but have been using the remote app on my phone which works pretty good instead of buying one. My router went out today I bout a new one but how do I get it to connect? 

  • Trying to understand validateFloatRange incorrect behaviour

    Hello, I'm validating a form containing various types of data. One of the fields to be validated is an amount which must be between 0.01 and 999999.99. The code for this field validation in the validation.xml is; <field property="amount" depends="req

  • Functional Analysis Required.

    I have a requirement  in which I need to write a functional specification for a program. I need to fetch the payer data which is having KNA1-ZZDTCESS value populated(Payer which are having this field value blank no need to fetch those payer).ZZDTCESS

  • Layers are killing me

    Using PS CS5 for Mac. I am trying to import multiple photos to multiple layers before merging.  Every time I import a new photo, it simply replaces the first photo I imported in the layers palette.  I am new to PS and know I am missing a step.  Can s

  • Importing turns into a crash!

    I've been trying everything recently to import some converted files I downloaded to use in adobe pro cs3, each video I downloaded originally was at a MPEG .mpg format, so I knew I had to convert them all to AVI, fine...so when I go to import the avi