• dl-knowledge
  • NEWBIE
  • 0 Points
  • Member since 2005

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 7
    Replies
I have developed an adapter for a third-party indexing engine that uses the sforce soap service as one of its data sources.  When I test the adapter outside of the indexing engine environement, as a standalone java app, I get all of my data.  However, when the indexing engine executes the adapter, I receive only the first set of data (1000 records).  When the source requests the second recordset, I receive an "INVALID_QUERY_LOCATOR" fault.  Anybody have any idea why?  Originally, the binding timeout was set to 0.  I have modified it to 300000, with no success.  Also, the adapter continues to function after that, querying the salesforce soap service for several other data types successfully.  I query for Accounts, which is where it fails, then Campaigns, Contacts, Events and Opportunities.  I modified the order of querying, and it failed when accessing the Contacts.  There are 43500 Account records.  There are 116,000+ Contact records.  Any help would be appreciated.
Hi,

I can't seem to change the batch size on my select calls.  Could someone make a sanity check here to make sure I haven't made a silly mistake.

I'm trying to set the batch to 25 and I keep getting back 113 records.

I'm also using compression which I doubt is the cause of anything,

Thanks!
Jon

Java code:

        QueryOptions qo = new QueryOptions();
        qo.setBatchSize(new Integer(25));
        binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "QueryOptions", qo);
        QueryResult selectResult = null;
        try {
            selectResult = binding.query(sql);


SOAP message:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <ns1:SessionHeader soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns1="SforceService">
            <ns2:sessionId xmlns:ns2="urn:partner.soap.sforce.com">left out of posting</ns2:sessionId>
        </ns1:SessionHeader>
        <ns3:QueryOptions soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns3="urn:partner.soap.sforce.com">
            <ns3:batchSize>25</ns3:batchSize>
        </ns3:QueryOptions>
    </soapenv:Header>
    <soapenv:Body><query xmlns="urn:partner.soap.sforce.com">
        <queryString>Select Id, Name, ParentId from Account </queryString></query>
    </soapenv:Body>
</soapenv:Envelope>


  • March 30, 2006
  • Like
  • 0
I have developed an adapter for a third-party indexing engine that uses the sforce soap service as one of its data sources.  When I test the adapter outside of the indexing engine environement, as a standalone java app, I get all of my data.  However, when the indexing engine executes the adapter, I receive only the first set of data (1000 records).  When the source requests the second recordset, I receive an "INVALID_QUERY_LOCATOR" fault.  Anybody have any idea why?  Originally, the binding timeout was set to 0.  I have modified it to 300000, with no success.  Also, the adapter continues to function after that, querying the salesforce soap service for several other data types successfully.  I query for Accounts, which is where it fails, then Campaigns, Contacts, Events and Opportunities.  I modified the order of querying, and it failed when accessing the Contacts.  There are 43500 Account records.  There are 116,000+ Contact records.  Any help would be appreciated.