3

I have a webservice written in .net which gets the request from the outbound message and sends the response. But salesforce keeps hitting my application and it still waits in outbound queue. How do I stop salesforce to hit the application once the response is received? Following is my code sample

notificationsResponse INotificationBinding.Pur(PTrans.notifications PurP)
    {
        string id,session = null;
        PTrans.notifications test = PurP;
        session = test.SessionId;
        string url = test.EnterpriseUrl;
        PTrans.Transaction__cNotification[] request = PurP.Notification;
        PTrans.notificationsResponse response = new notificationsResponse();
        response.Ack = true;
        return response;
    }

When I tested with soapui, I get the following response,

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <notificationsResponse xmlns="http://soap.sforce.com/2005/09/outbound">
         <Ack>true</Ack>
      </notificationsResponse>
   </soap:Body>
</soap:Envelope>

But it still hits the application continuously. Help me to sort what the problem is

  • Some firewall issues maybe? Can you try hitting your service from outside (not from your office's network)? – eyescream Jan 22 '14 at 8:55
  • Yes, I have tried hitting from outside still the same problem exists @eyescream – ləːnə Jan 23 '14 at 6:41
  • What if you'll try to send the message from SF as HTTP request? It'll be synchronous so at least you'll get either the response SF receives or for example a timeout... – eyescream Jan 23 '14 at 7:40
  • The queue monitoring page should say why its still in the queue, what does it say for your retried messages? – superfell Feb 21 '14 at 18:28
  • I dint get any messages. If it triggers only once then there is no prob. If it is more than once, I get this prob. I resolved this making field update to false once it is triggered.Workflow will trigger only if that field is set true – ləːnə Feb 24 '14 at 6:46
2

Salesforce will keep retransmitting the message until it believes it was acknowledge alright.

Can you confirm the raw response from your service actually looks like this?

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <notificationsResponse xmlns="http://soap.sforce.com/2005/09/outbound">
            <Ack>true</Ack>
       </notificationsResponse>
    </soapenv:Body>
</soapenv:Envelope>
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.