Product: TIBCO Spotfire®
"INVALID_QUERY_LOCATOR" error when querying SalesForce through TIBCO Spotfire Advanced Data Services.
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.
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.
TIBCO Spotfire Application Data Services for Salesforce.com Software documentation.
Comments
0 comments
Article is closed for comments.