none
Unable to call one way Peoplesoft service with WCF-Adapter

    Question

  • We are trying to call a one way PeopleSoft service that does not return any response from BizTalk 2010 with WCF-BasicHttp binding and one-way send port. 

    We are getting the following error.

    System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.

     

    I have read several articles regarding this issue. This one says due to reliable delivery feature one way messages are not supported by BizTalk

    http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/3a55a044-0a07-416c-9931-1dd6bdeb717a

     

    This one says I need to create WCF proxy that will call a one way web service and return an empty message to BizTalk so the messaging process doesn’t timeout waiting for an answer. (I would like to avoid this if possible)

    http://www.pvle.be/2008/12/calling-one-way-wcf-service-with-biztalk-wcf-adapter-part-2/

     

    At the end of this thread Rajesh says they used SOAP adapter for the same problem. (SOAP Adapter is deprecated)

    http://social.msdn.microsoft.com/Forums/en/biztalkgeneral/thread/3b58e83a-3b69-40a2-941c-ff2d9a77ccc6

     

    In another thread Rajesh says

    As Steef mentioned earlier, a strict one way WCF-Send port is not supported in BizTalk. So you could try changing one-way send port to two-way send port and then you can ignore the response message in your orchestration if you dont need it

    I tried changing the one-way send port to two way send port. I'm still getting the same error.

    So my question is:

    Is it possible to call a service that does not return any response from BizTalk 2010 without writing additional WCF proxies? If yes, can you provide a step-by-step example?

    Thanks for your patience with my long post.

    Alper

    • Moved by Ben Cline1MVP, Moderator Saturday, January 15, 2011 10:53 PM Relates to adapters (From:BizTalk Server General)
    Friday, January 14, 2011 9:02 PM

Answers

  • Only headers in the response will prevent you from getting an NACK message from BizTalk but this is actually just confirmation that the request happened successfully, not a response to the request.

    Yes, you probably need a non Null response message for BizTalk to think it is a response message.  

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    • Marked as answer by ASUNAR Thursday, January 20, 2011 8:27 PM
    Thursday, January 20, 2011 7:25 PM
    Moderator

All replies

  • I integrated with PeopleSoft before and we chose not to use WCF or the LOB adapter. Did you already look at the LOB adapter? Here is more information on this adapter: http://msdn.microsoft.com/en-us/library/bb820917(BTS.10).aspx.

    Do you know which technology is being used to expose the service? Is it Axis or another Java web service? I would expect the error means there is something else the service expects that you are not providing. For example, maybe the security configuration expects username or password headers, etc.

    You will probably need to switch to using a .NET reference to call the service. With the SOAP adapter removed there are fewer options in certain web service scenarios. This post helps some: http://addsrikanth.wordpress.com/2009/01/27/353/ 

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Saturday, January 15, 2011 10:52 PM
    Moderator
  • I believe PeopleSoft team is using Integration Broker to expose the service. I am not sure about the implementation details.

    The server does not expect anything more. The service call succeeds on the PeopleSoft side, however since there is no response, BizTalk cannot acknowledge that the call has succeeded. It keeps retrying and eventually errors out.

     

    Thanks.

    Monday, January 17, 2011 3:10 PM
  • Ok so i would consider switching to a .NET reference in an orchestration or pipeline component to handle the call to the PeopleSoft service.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Tuesday, January 18, 2011 12:01 AM
    Moderator
  • I don't have an orchestration or a pipeline component and I would like to avoid adding these simply to call a service. We're exploring the possibility of PeopleSoft service returning an acknowledgement right away (this should satisfy BizTalk) and then start working on the request (retain the async nature of execution)

     

    Wednesday, January 19, 2011 6:51 PM
  • I guess you have a friendly partner with the PeopleSoft web service. I always try to accomodate for partners, even if it requires extra work on my end. If they can return a response then that would definitely be simpler for you.
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Thursday, January 20, 2011 1:42 AM
    Moderator
  • The company has some PeopleSoft contractors on site. PeopleSoft team showed me that the their asynchronous service returns the following Http status and headers.

     

    HTTP/1.1 200 OK

    Date: Thu, 20 Jan 2011 15:31:37 GMT

    Content-Length: 0

    Content-Type: text/xml; charset=UTF-8

    TransactionID: <some GUID>

    X-Powered-By: Servlet/2.5 JSP/2.1


    However, when I look at the xml returned from a One Way WCF service published by BizTalk 2010 I see this

    HTTP/1.1 200 OK
    Content-Length: 86
    Content-Type: text/xml; charset=utf-8
    Server: Microsoft-IIS/7.0
    X-Powered-By: ASP.NET
    Date: Thu, 20 Jan 2011 15:34:32 GMT

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body/></s:Envelope>

    Note the empty SOAP message.

    Therefore, BizTalk 2010 needs to have a NON-NULL response to be able to call a service and PeopleSoft service sending back the HTTP status code above IS NOT considered an acknowledgement by BizTalk.

    Is that correct?

    Thanks.

     

    Thursday, January 20, 2011 3:48 PM
  • Only headers in the response will prevent you from getting an NACK message from BizTalk but this is actually just confirmation that the request happened successfully, not a response to the request.

    Yes, you probably need a non Null response message for BizTalk to think it is a response message.  

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    • Marked as answer by ASUNAR Thursday, January 20, 2011 8:27 PM
    Thursday, January 20, 2011 7:25 PM
    Moderator
  • Thanks Ben
    Thursday, January 20, 2011 7:58 PM