OSB with request response MQ business service

Hi,
We have OSB webservice whice interacts with MQ via business service. We need to send the request to MQ request queue and get the response from the response queue.
For this, we have configured a business with MQ transport, request-response is enabled, message id is set for the correlation, auto generate correlation value is chosen.
The business service sends the message but unable receive the response from the response queue. Failing with the error message like
The invocation resulted in an error: [WliSbTransports:381918]Failed to receive response, within the configured timeout, for request message with id 42454BD3E5F7647914544E793F9F0000013EC9DF03918057 and correlation id 42454BD3E5F7647914544E793F9F0000013EC9DF03918057.
But we checked with the end system, the response is sent tot he response queue in no time. We also increased the time out but still same issue.
We noticed that if we dont send the message id, we are getting the response but not response of the request sent but some other response.
Please suggest what needs to be done to fix the issue.

Open your business service and navigate to HTTP Transport configuration page and check what is the http type is enabled.
Look to me its with GET method, change it to POST and re-try.
If the above solution is not helping, try to check the Follow HTTP redirects check box below the Advanced Setting in same page.
Thanks,
Vijay

Similar Messages

  • Correlation with request response port

    I created a correlation type and correlation set on the behalf of File.ReceivedFilName context property.
    I am getting the initializing correlation set property in the send port as follows:
    But in Receive Port I am not getting the Following correlation sets property as follows:
    Why this is occuring ?
    Am I doing something wrong ?
    Is correlation supports with request response  port ?
    Prakash

    Hi Prakash,
    When you drop the Receive shape in your Orchestration, you would see both the “Initializing Correlation Set” and “Following Correlation Set” properties for the Receive Shape (same case for the Send Shape).
     When you have linked the Receive Shape to the Request-Response port in your Orchestration (Request-Response port whose Port direction of communication is set to “I’ll be sending a request and receiving a response” property), the “Following
    Correlation Set” property for the Receive Shape disappears (same case for the send shape). Because you have connected the send/Receive shape to the two send port and BizTalk can in turn handle the correlation. You don’t need to specify the correlation set
    properties explicitly. These properties need to be configured only when you configure your send/Receive shape to one-way ports where you need to instruct BizTalk on how to handle the correlation not when you configure send/Receive shape to two way send port.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • OSB : Endpoint URI problem in business service

    I have to invoke a http service from OSB where endpoint uri is http://<ip>:<port>/Resource.
    At invocation time OSB is adding "?" to the end of URI, in that case http message is becoming like following:
    POST /Resource? HTTP/1.1
    External service is considering it as a bad request and giving 500 response code with following comments:
    Error occured: 500, Cannot find local resource: /Resource?
    But I am getting proper response when I am calling from java program with http message POST /Resource HTTP/1.1
    It is not possible to change the external system, now how can I solve the problem??
    Please help.
    Thanks
    Afzal
    Edited by: uttam on May 2, 2012 9:49 PM

    Open your business service and navigate to HTTP Transport configuration page and check what is the http type is enabled.
    Look to me its with GET method, change it to POST and re-try.
    If the above solution is not helping, try to check the Follow HTTP redirects check box below the Advanced Setting in same page.
    Thanks,
    Vijay

  • OSB best practices to run business service on two different environments

    Hi.
    I am using Service Bus 11gR1
    Oracle Service Bus Version: [Oracle Service Bus L10N Dependencies 11.1 Fri Dec 4 17:43:22 EST 2009 ]
    Oracle Weblogic Server Version: [WebLogic Server 10.3.5.0 Fri Apr 1 20:20:06 PDT 2011 1398638 ]
    I deploy my OSB services on two different environments (development, production).
    How to setup business service to run on two different environments without changing source (business service transport Endpoint URI)?
    Thanks in advance.

    I am not sure of any tutorial.
    For your case if you just have one URI and you want to change the URI for the business service you can simply use the OSB Customization file.This is straight forward.
    If you have complex routing logic based on inputs fields ,you can follow the below steps,
    Create a simple table with Business Service Name,Env and URI as columns.
    Create a select DBAdapter to return the URI
    Create a business svc out the DBAdapter files
    Use the business service to fetch the URI and finally
    Use the URI override( ref - http://www.oracle.com/technetwork/middleware/service-bus/learnmore/index.html)
    Edited by: Prabu on Feb 21, 2012 8:10 PM

  • Problem with JCA-DB in Business Service character

    Hi,
    I'm calling to database with JCA in Business Service, but when output contains the character "*&*" the business show "*&amp*";
    Example
    OUTPUT FROM BD:_
    AMERICA NT & SAN FRANCISCO
    OUTPUT FROM BS_
    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
         <Body>
              <OutputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/SGT/PKG_SGT_OPER/PRC_OPER_SRV_DAT_CON/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                   <OUT>AMERICA NT &amp;amp; SAN FRANCISCO</OUT>
              </OutputParameters>
         </Body>
    </Envelope>

    What should I do to show just only the character &?
    PD: when I select and edit the html to get this output:
    &amp;amp;amp;

  • Problem with JCA-DB in Business Service

    Hi,
    I'm calling to database with JCA in Business Service, but when output contains the character "*&*" the business show "*&amp*";
    For Example
    OUTPUT FROM BD:_
    AMERICA NT & SAN FRANCISCO
    OUTPUT FROM BS_
    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
         <Body>
              <OutputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/SGT/PKG_SGT_OPER/PRC_OPER_SRV_DAT_CON/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                   <OUT>AMERICA NT &amp;amp; SAN FRANCISCO</OUT>
              </OutputParameters>
         </Body>
    </Envelope>
    Edited by: user8674403 on 28-ene-2011 10:51
    Edited by: user8674403 on 28-ene-2011 10:52

    What should I do to show just only the character &?
    PD: when I select and edit the html to get this output:
    &amp;amp;amp;

  • OSB 11.1.1.6 - Business Service IIS6.0 2way SSL Null Pointer Exception JSSE

    We must use JSSE because of SHA256RSA sign algorithm.
    Business Service calls a remote webservice over two way ssl. Client-cert configured, Key Provider is correctly set, PKI Provider Mapping is fine. Everything is tested with SoapUI 2way SSL and worked like a charm.
    But not with IIS 6.0. Renegotation is enabled (with parameter sun.security.ssl.allowUnsafeRenegotiation) and Chunked Streaming Mode is also set.
    The invocation resulted in an error: [WliSbTransports:381304]Exception in HttpOutboundMessageContext.RetrieveHttpResponseWork.run: java.lang.NullPointerException
    java.lang.NullPointerException
    at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:101)
    at weblogic.socket.JSSEFilterImpl.handleResultsCommonly(JSSEFilterImpl.java:659)
    at weblogic.socket.JSSEFilterImpl.handleUnwrapResults(JSSEFilterImpl.java:550)
    at weblogic.socket.JSSEFilterImpl.unwrapAndHandleResults(JSSEFilterImpl.java:456)
    at weblogic.socket.JSSEFilterImpl.read(JSSEFilterImpl.java:370)
    at weblogic.socket.JSSESocket$JSSEInputStream.read(JSSESocket.java:58)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
    at java.io.SequenceInputStream.read(SequenceInputStream.java:149)
    at java.io.SequenceInputStream.read(SequenceInputStream.java:152)
    at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:151)
    at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:468)
    at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:401)
    at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
    at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1005)
    at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.getResponse(HttpOutboundMessageContext.java:679)
    at com.bea.wli.sb.transports.http.wls.HttpOutboundMessageContextWls.access$100(HttpOutboundMessageContextWls.java:26)
    at com.bea.wli.sb.transports.http.wls.HttpOutboundMessageContextWls$RetrieveHttpResponseWork.handleResponse(HttpOutboundMessageContextWls.java:96)
    at weblogic.net.http.AsyncResponseHandler$MuxableSocketHTTPAsyncResponse$RunnableCallback.run(AsyncResponseHandler.java:535)
    at weblogic.work.ContextWrap.run(ContextWrap.java:41)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

    Hi, I have the same problem but with Weblogic 12.1.1 (12c):
    at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:114)
         at weblogic.socket.JSSEFilterImpl.handleResultsCommonly(JSSEFilterImpl.java:739)
         at weblogic.socket.JSSEFilterImpl.handleUnwrapResults(JSSEFilterImpl.java:630)
         at weblogic.socket.JSSEFilterImpl.unwrapAndHandleResults(JSSEFilterImpl.java:498)
         at weblogic.socket.JSSEFilterImpl.read(JSSEFilterImpl.java:414)
         at weblogic.socket.JSSESocket$JSSEInputStream.read(JSSESocket.java:58)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
         at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
         at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:224)
         at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:148)
         at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:469)
         at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:401)
         at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37
    Is there a patch for this version?
    Thanks in advance

  • How to relate a Change Request to a Business Service?

    Hi
    When I list my Business Services under Configuration Items in SCSM, I have several that are imported from SCOM.
    If I create a CR, and select add to Config Items to Change, and choose Business Service from select objects, the list is empty
    What am I doing wrong?
    Regards,
    Arne

    If you create a business service manually, does it show up in the list picker?

  • How to work with request, response and sessions in JSC

    Hi
    I have two Servlets ServletA and ServletB. ServletA creates a session and add some attributes to this session. Then it forwards the request to ServletB where the attributes of this session are retrieved and used in response object.
    Here is what I am doing in ServletB
    - Get the session attrribute. This attribute is of type byte[]
    byte[] mydata = (byte[]) request.getSession.getAttribute(data);
    response.setContentLength(mydata.length);
    OutputStream stream = response.getOutputStream();
    stream.write(mydata,0,mydata.length);
    stream.close();
    My question is ...
    How do I achieve this in Creator. ?
    Thanks in advance
    Srinivas

    Hi
    I have two Servlets ServletA and ServletB. ServletA
    creates a session and add some attributes to this
    s session. Then it forwards the request to ServletB
    where the attributes of this session are retrieved
    and used in response object.
    Here is what I am doing in ServletB
    - Get the session attrribute. This attribute is of
    type byte[]
    byte[] mydata = (byte[])
    request.getSession.getAttribute(data);
    response.setContentLength(mydata.length);
    OutputStream stream = response.getOutputStream();
    stream.write(mydata,0,mydata.length);
    stream.close();
    My question is ...
    How do I achieve this in Creator. ?
    Thanks in advance
    SrinivasBy "this" do you mean "how do I access a session attribute that has been placed there by another servlet?"
    The base class for all page beans has a bunch of convenience methods available. The simplest one to use for this purpose is getBean(), which searches through request scope, session scope, and application scope for a bean with the name you specify -- and, if its a managed bean, will create it for you as well. So, your code would look like this:
      String data = ...; // Name of the attribute you want
      byte[] mydata = (byte[]) getBean(data);There is an additional quirk related to what you're actually trying to do, though ... it looks like you are trying to write out binary content (perhaps an image loaded from the database or something). It is not possible to mix binary and text output in a single response.
    Your best bet for this particular purpose, then, is to continue using ServletA and ServletB just as you have been. The applications created by Creator are standard servlet-based web applications, so you can use additional servlets and all the other goodies (although you'll have to declare them yourself in the web.xml file, as usual).
    Craig

  • OSB: Call two methods from business service in same session

    I create sequence of service callout but they work separately. How add session maintain on service calls.

    by "session" do you mean "transaction"? There is not a concept of "session" in OSB...

  • BAM - using with Request Response Send Port

    Hi,
    I have a scenario where a message is received on a receive port, sent to a solicit-response send port, and then the response is sent out on another send port.  All ports have failed message routing enabled, so that any errors are sent out to an exceptions
    send port.
    I am interested to hear options on how you would set up a BAM tracking profile for this in the TPE to log the time received, time sent on the two way send port, time response returned and then finally the time the last send was carried out?  Would you
    use a single Activity/View and continuations, Multiple Activities or Views and multiple tracking profiles etc?  How would you include the time that an error was sent to the exception port.....
    I have a solution, but I am not sure it is ideal and I would be interested in how others would tackle this.  If you know BAM, feel free to offer an opinion :)
    Thanks
    Stu.
    Stuart Brierley - BizTalk Integration Specialist - http://geekswithblogs.net/StuartBrierley/Default.aspx

    Hi Stuart,
    You can start up your activity from Orchestration .No need to have a continuation from Pipeline as you can use xml receive . 
    You solution is simple were you are receiving your message from location and hitting a solicit-response
    port .
    Just have a Expression shape to start up  with your activity and on the points when you want to update
    the activity.
    Code is listed below
    //Create a Activity ID
    string activityId = Guid.NewGuid().ToString() ;
    //Start the activity with your Activity Name
    Microsoft.BizTalk.Bam.EventObservation.OrchestrationEventStream.BeginActivity(“SampleActivity”, activityID);
    // Updates the activity record.
    Microsoft.BizTalk.Bam.EventObservation.OrchestrationEventStream.UpdateActivity(“SampleActivity”, activityID, “ReceiveLocation”, Rcvmsg(BTS.Receivelocation), "TRANSACTION_CREATED", DateTime.UtcNow);
    // End the activity record.
    Microsoft.BizTalk.Bam.EventObservation.OrchestrationEventStream.EndActivity(“SampleActivity”, activityID);
    If you want to work with same activity in continuation with Other Orchestration (Generic Exception Handler may be ),then create a continuation token with a Property schema and from parent Orchestration assign value to it.
    continuationToken = "_Continuation" + msg_Internal.ContinuationID;
    Hope this will clear your ideas as you dont require to start up tracking from Pipeline .
    Thanks
    Abhishek

  • OSB call multiple Business Services and combine the responses into one

    Dear All,
    I am new to OSB and I have a use case that I need to solve. I have 3 web services and I imported their WSDLs into OSB and created 3 Business Services that goes with each WSDL. The scenario is like this.
    Business Service 1: takes an input value as [Region] and returns a list of employee names.
    Business Service 2: takes the list of employee names and returns the list of employee names with their job profile
    Business Service 3: takes the list of employee names with their job profile and returns their contact information.
    I need to return the result of Business Service 3 to the consumer. The consumer basically need to call the Proxy service with [Region] as the input value and the result should be the output of above Business service 3.
    As I mentioned, I have WSDL for all the 3 Business Services, but, I do not have the WSDL for the Proxy Service. The Business Service WSDLs are all different and they do not match.
    My question is it possible to achieve the above result without having a concrete WSDL for Proxy Service? Also, how can I go about solving this use case. I have gone through some articles that talk about Split-Join, and am really lost.
    I really appreciate your kind reply on this.
    Thanks in advance.
    Regards,
    Syama

    You have multiple options:
    1. Create a WSDL which has input similar to input of WS1 (only Region as input) and an output similar to output of WS3.
    Create Proxy Service based on this WSDL. Then call all the thee business services one after the other and doing transformations/assigns as needed after each call. Finally map the result of BS3 to the similar output of your new WSDL on which the Proxy service is based.
    2. Create an Any XML type of web service. Create a schema which has two elements, one for input and one for output. Input containing only Region and output containing all the details. All consumers need to send request according to input defined in schema and expect output defined in schema. Its similar to creating the WSDL but can be used in case your consumer do not want to call a Web Service but want to call an XML API over HTTP. Rest will be same as option 1.
    Split join is needed to make calls in parallel, it wont be usable in your use case unless you expect a list og regions in the same request for each of which you need to gather same information by calling three services.

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

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

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

  • OSB 11g: Business Service not getting reply back from distributed queue

    Here is the scenario:
    OSB Domain A has a Business service that does a JMS send to a distributed JMS queue hosted on another WLS domain.
    It expects a response from a distributed queue sitting on this same remote WLS domain.
    The remote WLS domain is configured as a Foreign JNDI Provider in the OSB Domain with the request and response queues defined. Testing this business service, we see that messages are being posted to the remote request queue fine, and that the message are being picked up and processed. The response was sent to the response queue, but the message just sits there, the OSB business service did not pick it up. I can see 16 active Consumers on the response queue, presumably from the OSB business service?
    Using CorrelationID.
    URI for request/response queues are using the locally defined JNDI name for the queues and connection factories from the Foreign JNDI Provider definition:
    - URI for request queue: jms:///[RemoteXAConnectionFactoryX]/[LocalJNDINameForRequestQueue]
    - URI for response queue: jms:///[RemoteXAConnectionFactoryX]/[LocalJNDINameForResponseQueue]
    Completely stumped at the moment...anybody has any ideas?
    Thanks,
    Melvin

    Hi,
    I am also facing the similar kind of issue as below. After placing the message in to request Queue, I need that message Id as response to that Business service. Please provide the solution for the below issue. Thanks in advance.
    Thanks,
    bharath.

  • [OSB1031] how to call a RESTful service from OSB with authentication

    Hi all,
    I called successfully a RESTful service from OSB.
    We have a business service, named OrderTracer, that wraps the call to the RESTful service.
    The RESTful service requires an authentication so we are trying to find out how the OSB business service should authenticate itself against the RESTful service.
    In addition the RESTful service accepts username/password coded as base64.
    So we defined a Service Account with static resource type and we added the reference to this service account in the business service.
    But when the OSB business service calls the RESTful service, we got an error:
    <fault>
    <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-380000</con:errorCode>
    <con:reason>Unauthorized</con:reason>
    <con:location>
    <con:node>RouteNode</con:node>
    <con:path>response-pipeline</con:path>
    </con:location>
    </con:fault>
    </fault>
    Does anyone have any hint ?
    Any clue would be of great help.
    Thanks in advance
    ferp

    Hi,
    There's a sample on JSON REST here...
    http://java.net/projects/oraclesoasuite11g/downloads/download/OSB/osb-206-JSONREST.zip
    For other samples, see this...
    http://java.net/projects/oraclesoasuite11g/pages/OSB
    Cheers,
    Vlad

Maybe you are looking for