"INVALID_QUERY_LOCATOR" error when querying SalesForce through TIBCO Spotfire Advanced Data Services.
book
Article ID: KB0083888
calendar_today
Updated On:
Products
Versions
TIBCO Spotfire Application Data Services for Salesforce.com
All versions
Description
Description: While trying to execute requests of data towards SalesForce.com, with our SalesForce.com adapter for TIBCO Spotfire Advanced Data Services, the following errors are logged in the Composite Server log files:
ERROR [Resetable Cursor Load (DBChannel-56)] 2014-08-19 22:01:04.448 +0200 SForceSession - Error [sforce-2900000]: at com.compositesw.cdms.ds.sforce.SForceException.create(SForceException.java:35) at com.compositesw.cdms.ds.sforce.SForceSession.handleSForceException(SForceSession.java:610) at com.compositesw.cdms.ds.sforce.SForceSession.access$600(SForceSession.java:64) at com.compositesw.cdms.ds.sforce.SForceSession$QueryMoreTask.run(SForceSession.java:502) at com.compositesw.cdms.ds.sforce.SForceSession.retry(SForceSession.java:348) at com.compositesw.cdms.ds.sforce.SForceSession.queryMore(SForceSession.java:668) at com.compositesw.cdms.ds.sforce.SForceCursor.next(SForceCursor.java:413) at com.compositesw.server.cursors.ResettableCursor.a(SourceFile:647) at com.compositesw.server.cursors.ResettableCursor.load(SourceFile:592) at com.compositesw.server.cursors.ResettableCursor.load(SourceFile:620) at com.compositesw.server.cursors.ResettableCursor$b.run(SourceFile:574) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: INVALID_QUERY_LOCATOR: invalid query locator at com.compositesw.cdms.ds.sforce.SForceSession.handleSForceException(SForceSession.java:598) ... 12 more
Or:
WARN [Hash or Group by Cursor Load (Hash or Group by Cursor Load (DBChannel-54))] 2014-08-19 22:01:04.510 +0200 HttpMethodBase - Cookie rejected: "$Version=0; BrowserId=tMVGM0LCToOrbgz0AaG-ZQ; $Path=/; $Domain=.salesforce.com". Domain attribute ".salesforce.com" violates RFC 2109: host minus domain may not contain any dots ERROR [Resetable Cursor Load (DBChannel-57)] 2014-08-19 22:01:04.635 +0200 SForceSession - Error [sforce-2900000]: at com.compositesw.cdms.ds.sforce.SForceException.create(SForceException.java:35) at com.compositesw.cdms.ds.sforce.SForceSession.handleSForceException(SForceSession.java:610) at com.compositesw.cdms.ds.sforce.SForceSession.access$600(SForceSession.java:64) at com.compositesw.cdms.ds.sforce.SForceSession$QueryMoreTask.run(SForceSession.java:502) at com.compositesw.cdms.ds.sforce.SForceSession.retry(SForceSession.java:348) at com.compositesw.cdms.ds.sforce.SForceSession.queryMore(SForceSession.java:668) at com.compositesw.cdms.ds.sforce.SForceCursor.next(SForceCursor.java:413) at com.compositesw.server.cursors.ResettableCursor.a(SourceFile:647) at com.compositesw.server.cursors.ResettableCursor.load(SourceFile:592) at com.compositesw.server.cursors.ResettableCursor.load(SourceFile:620) at com.compositesw.server.cursors.ResettableCursor$b.run(SourceFile:574) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: INVALID_QUERY_LOCATOR: invalid query locator at com.compositesw.cdms.ds.sforce.SForceSession.handleSForceException(SForceSession.java:598) ... 12 more
Symptoms: Queries executed towards SalesForce.com are unsuccessful or return unexpected results.
Cause: SalesForce.com limits the number of Query Locators for each user to 5. Query locators can be seen as cursors that provide pagination of the data in SalesForce.com (pagination is a technique for breaking down large sets of records into smaller sets called pages).
If the application is generating a request that requires for example 6 Query Locators, the first Query Locator will be dropped. This results in the cursor location of the request to be lost which causes this issue.
Issue/Introduction
"INVALID_QUERY_LOCATOR" error when querying SalesForce through TIBCO Spotfire Advanced Data Services.
Resolution
In the Composite Studio, open your SalesForce.com data source and switch to the Advanced tab of the connection properties.
Here you will have two settings:
User Concurrent Calls Limit — The maximum number of concurrent calls for the current user. The default is 3.
Concurrent Calls Limit — The maximum number of concurrent calls for this data source. The default is 5. This setting prevents CIS from emitting too many concurrent requests to Salesforce.com. For example, if set at 5 but there are 20 views scheduled to trigger concurrently, CIS will queue 15 views. Note that typically, this limit should not be increased but might be decreased in case there are several Salesforce.com data sources configured.
Ensure that User Concurrent Calls Limit is set to less than 5.
Note: If you have several data sources configured, ensure that the sum of all values within Concurrent Calls Limit do not exceed what SalesForce.com provides.
Additional Information
TIBCO Spotfire Application Data Services for Salesforce.com Software documentation.