Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    ListGrid sends two fetch-requests (no autoFetchData, perhaps requestIndex related?)

    Hi Isomorphic,

    I'm seeing the following effect:
    I have a ListGrid (as subclass of your ListGrid. At the end of my constructor I call fetchData(...), while autoFetchData is set to false.

    Now I see the following (in FF26 DevMode, using SNAPSHOT_v9.1d_2014-02-10/EVAL Deployment):

    After a few seconds, while it is still loading, a new Request with all the same configuration but two little differences is fired. The differences for the 2nd request are:
    • requestIndex:2 instead of requestIndex:1
    • endRow:1001 instead of endRow:75
    • (different requestId after the "$") (seems to be generated)
    • (different lastClientEventThreadCode) (seems to be generated)


    The server executes the SQL twice, which it shouldn't as I think? Could you please explain what is happening here?

    Server log (watch for "JDBC driver windowed select rows 0->1001" and "JDBC driver windowed select rows 0->75"):
    Code:
    === 2014-02-12 20:19:03,930 [c-35] INFO  RequestContext - URL: '/lms/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0': Moz (Gecko) with Accept-Encoding header
    === 2014-02-12 20:19:03,933 [c-35] DEBUG XML - Parsed XML from (in memory stream): 2ms
    === 2014-02-12 20:19:03,935 [c-22] INFO  RequestContext - URL: '/lms/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0': Moz (Gecko) with Accept-Encoding header
    === 2014-02-12 20:19:03,936 [c-35] DEBUG RPCManager - Processing 1 requests.
    === 2014-02-12 20:19:03,937 [c-35] DEBUG DSRequest - Caching instance 1966 of DS V_LEAD_PICKED from DSRequest.getDataSource()
    === 2014-02-12 20:19:03,937 [c-35] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
            fieldName:"STATUS_WONLOST_ID",
            operator:"isNull",
            _constructor:"AdvancedCriteria"
        },
        operationConfig:{
            dataSource:"V_LEAD_PICKED",
            operationType:"fetch",
            textMatchStyle:"exact"
        },
        startRow:0,
        [B]endRow:75[/B],
        sortBy:[
            "CAMPAIGN_NAME"
        ],
        componentId:"isc_LeadpickingVLayout_2_2",
        appID:"builtinApplication",
        operation:"fetchMyPickedLeads",
        oldValues:{
            fieldName:"STATUS_WONLOST_ID",
            operator:"isNull",
            _constructor:"AdvancedCriteria"
        }
    }
    === 2014-02-12 20:19:03,938 [c-35] DEBUG Relation - Caching instance of toDS 'V_USER_ACTION' in the DSRequest map
    === 2014-02-12 20:19:03,938 [c-35] DEBUG Relation - Caching instance of toDS 'V_USER_CREATED_BY' in the DSRequest map
    === 2014-02-12 20:19:03,938 [c-35] DEBUG Relation - Caching instance of toDS 'V_USER_MODIFIED_BY' in the DSRequest map
    === 2014-02-12 20:19:03,939 [c-35] DEBUG Relation - Caching instance of toDS 'T_LEADTEMPERATURE' in the DSRequest map
    === 2014-02-12 20:19:03,939 [c-35] DEBUG Relation - Caching instance of toDS 'T_CAMPAIGN' in the DSRequest map
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - DataSource V_LEAD_PICKED is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - DataSource V_USER_ACTION is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,939 [c-22] DEBUG XML - Parsed XML from (in memory stream): 3ms
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - DataSource V_USER_ACTION is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,939 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - DataSource V_USER_CREATED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - DataSource V_USER_CREATED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - DataSource V_USER_MODIFIED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,940 [c-26] INFO  RequestContext - URL: '/lms/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0': Moz (Gecko) with Accept-Encoding header
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - DataSource V_USER_MODIFIED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field NAME
    === 2014-02-12 20:19:03,940 [c-35] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field POSITION
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - DataSource T_CAMPAIGN is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field NAME
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - DataSource T_CAMPAIGN is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field TENANT_ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,941 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field TENANT_ID
    === 2014-02-12 20:19:03,942 [c-22] DEBUG RPCManager - Processing 1 requests.
    === 2014-02-12 20:19:03,942 [c-22] DEBUG DSRequest - Caching instance 1965 of DS T_LEADTEMPERATURE from DSRequest.getDataSource()
    === 2014-02-12 20:19:03,943 [c-22] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
            fieldName:"AVAILABLE",
            operator:"equals",
            value:true,
            _constructor:"AdvancedCriteria"
        },
        operationConfig:{
            dataSource:"T_LEADTEMPERATURE",
            operationType:"fetch",
            textMatchStyle:"startsWith"
        },
        componentId:"isc_PickListMenu_0",
        appID:"builtinApplication",
        operation:"T_LEADTEMPERATURE_fetch",
        oldValues:{
            fieldName:"AVAILABLE",
            operator:"equals",
            value:true,
            _constructor:"AdvancedCriteria"
        }
    }
    === 2014-02-12 20:19:03,943 [c-22] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2014-02-12 20:19:03,943 [c-22] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - DataSource V_LEAD_PICKED is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,943 [c-22] DEBUG AppBase - [builtinApplication.T_LEADTEMPERATURE_fetch] No userTypes defined, allowing anyone access to all operations for this application
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,943 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,943 [c-22] DEBUG AppBase - [builtinApplication.T_LEADTEMPERATURE_fetch] No public zero-argument method named '_T_LEADTEMPERATURE_fetch' found, performing generic datasource operation
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field NAME
    === 2014-02-12 20:19:03,944 [c-26] DEBUG XML - Parsed XML from (in memory stream): 3ms
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field POSITION
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,944 [c-22] INFO  SQLDataSource - [builtinApplication.T_LEADTEMPERATURE_fetch] Performing fetch operation with
    	criteria: {criteria:[{value:0,fieldName:"TENANT_ID",operator:"equals"},{value:true,fieldName:"AVAILABLE",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}	values: {criteria:[{value:0,fieldName:"TENANT_ID",operator:"equals"},{value:true,fieldName:"AVAILABLE",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field NAME
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field TENANT_ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field TENANT_ID
    === 2014-02-12 20:19:03,944 [c-35] DEBUG AppBase - [builtinApplication.fetchMyPickedLeads] No userTypes defined, allowing anyone access to all operations for this application
    === 2014-02-12 20:19:03,945 [c-22] INFO  SQLDataSource - [builtinApplication.T_LEADTEMPERATURE_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
    === 2014-02-12 20:19:03,945 [c-35] DEBUG AppBase - [builtinApplication.fetchMyPickedLeads] No public zero-argument method named '_fetchMyPickedLeads' found, performing generic datasource operation
    === 2014-02-12 20:19:03,946 [c-22] INFO  SQLDataSource - [builtinApplication.T_LEADTEMPERATURE_fetch] 1965: Executing SQL query on 'Oracle': SELECT T_LEADTEMPERATURE.AVAILABLE, T_LEADTEMPERATURE.CREATED_AT, T_LEADTEMPERATURE.CREATED_BY, T_LEADTEMPERATURE.DESCRIPTION, T_LEADTEMPERATURE.ID, T_LEADTEMPERATURE.MODIFIED_AT, T_LEADTEMPERATURE.MODIFIED_BY, T_LEADTEMPERATURE.NAME, T_LEADTEMPERATURE.POSITION, T_LEADTEMPERATURE.POSITION AS POSITION_DND, T_LEADTEMPERATURE.SHORTNAME, T_LEADTEMPERATURE.TENANT_ID FROM T_LEADTEMPERATURE WHERE ((T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.AVAILABLE = 'Y' AND T_LEADTEMPERATURE.AVAILABLE IS NOT NULL))
    === 2014-02-12 20:19:03,946 [c-35] INFO  SQLDataSource - [builtinApplication.fetchMyPickedLeads] Performing fetch operation with
    	criteria: {criteria:[{value:1012,fieldName:"STATUS_USER_ID",operator:"equals"},{fieldName:"STATUS_WONLOST_ID",operator:"isNull"},{value:0,fieldName:"TENANT_ID",operator:"equals"},{value:0,fieldName:"CREATED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"MODIFIED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"LEADTEMPERATURE_TENANT_ID",operator:"equals"},{value:0,fieldName:"CAMPAIGN_TENANT_ID",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}	values: {criteria:[{value:1012,fieldName:"STATUS_USER_ID",operator:"equals"},{fieldName:"STATUS_WONLOST_ID",operator:"isNull"},{value:0,fieldName:"TENANT_ID",operator:"equals"},{value:0,fieldName:"CREATED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"MODIFIED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"LEADTEMPERATURE_TENANT_ID",operator:"equals"},{value:0,fieldName:"CAMPAIGN_TENANT_ID",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}
    === 2014-02-12 20:19:03,946 [c-22] DEBUG PoolableSQLConnectionFactory - [builtinApplication.T_LEADTEMPERATURE_fetch] Executing pingTest 'select 1 from dual' on connection 418703326
    === 2014-02-12 20:19:03,947 [c-26] DEBUG RPCManager - Processing 1 requests.
    === 2014-02-12 20:19:03,947 [c-22] DEBUG SQLConnectionManager - [builtinApplication.T_LEADTEMPERATURE_fetch] Borrowed connection '418703326'
    === 2014-02-12 20:19:03,947 [c-22] DEBUG SQLTransaction - [builtinApplication.T_LEADTEMPERATURE_fetch] Started new Oracle transaction "418703326"
    === 2014-02-12 20:19:03,947 [c-26] DEBUG DSRequest - Caching instance 1937 of DS V_LEAD_PICKED from DSRequest.getDataSource()
    === 2014-02-12 20:19:03,947 [c-22] DEBUG SQLDriver - [builtinApplication.T_LEADTEMPERATURE_fetch] About to execute SQL query in 'Oracle' using connection '418703326'
    === 2014-02-12 20:19:03,947 [c-22] INFO  SQLDriver - [builtinApplication.T_LEADTEMPERATURE_fetch] Executing SQL query on 'Oracle': SELECT T_LEADTEMPERATURE.AVAILABLE, T_LEADTEMPERATURE.CREATED_AT, T_LEADTEMPERATURE.CREATED_BY, T_LEADTEMPERATURE.DESCRIPTION, T_LEADTEMPERATURE.ID, T_LEADTEMPERATURE.MODIFIED_AT, T_LEADTEMPERATURE.MODIFIED_BY, T_LEADTEMPERATURE.NAME, T_LEADTEMPERATURE.POSITION, T_LEADTEMPERATURE.POSITION AS POSITION_DND, T_LEADTEMPERATURE.SHORTNAME, T_LEADTEMPERATURE.TENANT_ID FROM T_LEADTEMPERATURE WHERE ((T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.AVAILABLE = 'Y' AND T_LEADTEMPERATURE.AVAILABLE IS NOT NULL))
    === 2014-02-12 20:19:03,947 [c-26] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
            fieldName:"STATUS_WONLOST_ID",
            operator:"isNull",
            _constructor:"AdvancedCriteria"
        },
        operationConfig:{
            dataSource:"V_LEAD_PICKED",
            operationType:"fetch",
            textMatchStyle:"exact"
        },
        startRow:0,
        [B]endRow:1001[/B],
        sortBy:[
            "CAMPAIGN_NAME"
        ],
        componentId:"isc_LeadpickingVLayout_2_2",
        appID:"builtinApplication",
        operation:"fetchMyPickedLeads",
        oldValues:{
            fieldName:"STATUS_WONLOST_ID",
            operator:"isNull",
            _constructor:"AdvancedCriteria"
        }
    }
    === 2014-02-12 20:19:03,947 [c-35] INFO  SQLDataSource - [builtinApplication.fetchMyPickedLeads] derived query: SELECT $defaultSelectClause FROM $defaultTableClause$defaultAnsiJoinClause WHERE $defaultWhereClause ORDER BY $defaultOrderClause
    === 2014-02-12 20:19:03,948 [c-26] DEBUG Relation - Caching instance of toDS 'V_USER_ACTION' in the DSRequest map
    === 2014-02-12 20:19:03,948 [c-26] DEBUG Relation - Caching instance of toDS 'V_USER_CREATED_BY' in the DSRequest map
    === 2014-02-12 20:19:03,948 [c-35] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Executing row count query: SELECT COUNT(*) FROM $defaultTableClause$defaultAnsiJoinClause WHERE $defaultWhereClause
    === 2014-02-12 20:19:03,948 [c-26] DEBUG Relation - Caching instance of toDS 'V_USER_MODIFIED_BY' in the DSRequest map
    === 2014-02-12 20:19:03,949 [c-26] DEBUG Relation - Caching instance of toDS 'T_LEADTEMPERATURE' in the DSRequest map
    === 2014-02-12 20:19:03,949 [c-22] INFO  DSResponse - [builtinApplication.T_LEADTEMPERATURE_fetch] DSResponse: List with 4 items
    === 2014-02-12 20:19:03,949 [c-35] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Eval'd row count query: SELECT COUNT(*) FROM V_LEAD_PICKED JOIN V_USER_ACTION ON V_LEAD_PICKED.STATUS_USER_ID = V_USER_ACTION.ID JOIN V_USER_CREATED_BY ON V_LEAD_PICKED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_PICKED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_PICKED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_PICKED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE ((V_LEAD_PICKED.STATUS_USER_ID = 1012 AND V_LEAD_PICKED.STATUS_USER_ID IS NOT NULL) AND (V_LEAD_PICKED.STATUS_WONLOST_ID IS NULL) AND (V_LEAD_PICKED.TENANT_ID = 0 AND V_LEAD_PICKED.TENANT_ID IS NOT NULL) AND (V_USER_CREATED_BY.TENANT_ID = 0 AND V_USER_CREATED_BY.TENANT_ID IS NOT NULL) AND (V_USER_MODIFIED_BY.TENANT_ID = 0 AND V_USER_MODIFIED_BY.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_CAMPAIGN.TENANT_ID = 0 AND T_CAMPAIGN.TENANT_ID IS NOT NULL))
    === 2014-02-12 20:19:03,949 [c-26] DEBUG Relation - Caching instance of toDS 'T_CAMPAIGN' in the DSRequest map
    === 2014-02-12 20:19:03,949 [c-35] DEBUG PoolableSQLConnectionFactory - [builtinApplication.fetchMyPickedLeads] Executing pingTest 'select 1 from dual' on connection 806206320
    === 2014-02-12 20:19:03,949 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2014-02-12 20:19:03,949 [c-26] DEBUG DeclarativeSecurity - DataSource V_LEAD_PICKED is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,949 [c-22] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2014-02-12 20:19:03,949 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,949 [c-26] DEBUG DeclarativeSecurity - DataSource V_USER_ACTION is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,949 [c-22] DEBUG SQLTransaction - Committing Oracle transaction "418703326"
    === 2014-02-12 20:19:03,949 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - DataSource V_USER_ACTION is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - DataSource V_USER_CREATED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,950 [c-22] DEBUG RPCManager - non-DMI response, dropExtraFields: false
    === 2014-02-12 20:19:03,950 [c-35] DEBUG SQLConnectionManager - [builtinApplication.fetchMyPickedLeads] Borrowed connection '806206320'
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - DataSource V_USER_CREATED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,950 [c-35] DEBUG SQLTransaction - [builtinApplication.fetchMyPickedLeads] Started new Oracle transaction "806206320"
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,950 [c-35] DEBUG SQLDriver - [builtinApplication.fetchMyPickedLeads] About to execute SQL query in 'Oracle' using connection '806206320'
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - DataSource V_USER_MODIFIED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,950 [c-35] INFO  SQLDriver - [builtinApplication.fetchMyPickedLeads] Executing SQL query on 'Oracle': SELECT COUNT(*) FROM V_LEAD_PICKED JOIN V_USER_ACTION ON V_LEAD_PICKED.STATUS_USER_ID = V_USER_ACTION.ID JOIN V_USER_CREATED_BY ON V_LEAD_PICKED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_PICKED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_PICKED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_PICKED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE ((V_LEAD_PICKED.STATUS_USER_ID = 1012 AND V_LEAD_PICKED.STATUS_USER_ID IS NOT NULL) AND (V_LEAD_PICKED.STATUS_WONLOST_ID IS NULL) AND (V_LEAD_PICKED.TENANT_ID = 0 AND V_LEAD_PICKED.TENANT_ID IS NOT NULL) AND (V_USER_CREATED_BY.TENANT_ID = 0 AND V_USER_CREATED_BY.TENANT_ID IS NOT NULL) AND (V_USER_MODIFIED_BY.TENANT_ID = 0 AND V_USER_MODIFIED_BY.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_CAMPAIGN.TENANT_ID = 0 AND T_CAMPAIGN.TENANT_ID IS NOT NULL))
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,950 [c-26] DEBUG DeclarativeSecurity - DataSource V_USER_MODIFIED_BY is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field NAME
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,951 [c-22] DEBUG SQLTransaction - getConnection() found transactional connection for Oracle with hashcode "418703326"
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,951 [c-22] DEBUG SQLTransaction - Ending Oracle transaction "418703326"
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field POSITION
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - DataSource T_CAMPAIGN is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field NAME
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - DataSource T_CAMPAIGN is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,951 [c-22] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "418703326"
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,951 [c-22] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 418703326
    === 2014-02-12 20:19:03,951 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,952 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,952 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field TENANT_ID
    === 2014-02-12 20:19:03,952 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,952 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field TENANT_ID
    === 2014-02-12 20:19:03,953 [c-22] INFO  Compression - /lms/lms/sc/IDACall: 1052 -> 357 bytes
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - DataSource V_LEAD_PICKED is not in the pre-checked list, processing...
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field ID
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_ACTION, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,953 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_INITIALS_GIVENNAME
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME_COMPANYNAME
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field NAME
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field POSITION
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field NAME
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field TENANT_ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field TENANT_ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2014-02-12 20:19:03,954 [c-26] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field TENANT_ID
    === 2014-02-12 20:19:03,955 [c-26] DEBUG AppBase - [builtinApplication.fetchMyPickedLeads] No userTypes defined, allowing anyone access to all operations for this application
    === 2014-02-12 20:19:03,955 [c-26] DEBUG AppBase - [builtinApplication.fetchMyPickedLeads] No public zero-argument method named '_fetchMyPickedLeads' found, performing generic datasource operation
    === 2014-02-12 20:19:03,956 [c-26] INFO  SQLDataSource - [builtinApplication.fetchMyPickedLeads] Performing fetch operation with
    	criteria: {criteria:[{value:1012,fieldName:"STATUS_USER_ID",operator:"equals"},{fieldName:"STATUS_WONLOST_ID",operator:"isNull"},{value:0,fieldName:"TENANT_ID",operator:"equals"},{value:0,fieldName:"CREATED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"MODIFIED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"LEADTEMPERATURE_TENANT_ID",operator:"equals"},{value:0,fieldName:"CAMPAIGN_TENANT_ID",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}	values: {criteria:[{value:1012,fieldName:"STATUS_USER_ID",operator:"equals"},{fieldName:"STATUS_WONLOST_ID",operator:"isNull"},{value:0,fieldName:"TENANT_ID",operator:"equals"},{value:0,fieldName:"CREATED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"MODIFIED_BY_TENANT_ID",operator:"equals"},{value:0,fieldName:"LEADTEMPERATURE_TENANT_ID",operator:"equals"},{value:0,fieldName:"CAMPAIGN_TENANT_ID",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}
    === 2014-02-12 20:19:03,958 [c-26] INFO  SQLDataSource - [builtinApplication.fetchMyPickedLeads] derived query: SELECT $defaultSelectClause FROM $defaultTableClause$defaultAnsiJoinClause WHERE $defaultWhereClause ORDER BY $defaultOrderClause
    === 2014-02-12 20:19:03,959 [c-26] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Executing row count query: SELECT COUNT(*) FROM $defaultTableClause$defaultAnsiJoinClause WHERE $defaultWhereClause
    === 2014-02-12 20:19:03,959 [c-35] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] [B]JDBC driver windowed select rows 0->75[/B], result size 75. Query: SELECT V_LEAD_PICKED.ADDRESS_CITY, V_LEAD_PICKED.ADDRESS_COUNTRYZIPCODECITY, V_LEAD_PICKED.ADDRESS_COUNTRY_DE, V_LEAD_PICKED.ADDRESS_HOUSENUMBER, V_LEAD_PICKED.ADDRESS_STREET, V_LEAD_PICKED.ADDRESS_ZIPCODE, V_LEAD_PICKED.ADDRESS_ZIPCODECITY, V_LEAD_PICKED.CAMPAIGN_ID, V_LEAD_PICKED.CREATED_AT, V_LEAD_PICKED.CREATED_BY, V_LEAD_PICKED.CREATED_BY_COMPANY_ID, V_LEAD_PICKED.CREATED_BY_DISTRIBUTOR_ID, V_LEAD_PICKED.CREATED_BY_RESELLER_ID, V_LEAD_PICKED.CUST_NAME_CONTACTPERSFULLNAME, V_LEAD_PICKED.EARLIEST_START, V_LEAD_PICKED.LATEST_END, V_LEAD_PICKED.LEADCOST, V_LEAD_PICKED.LEADTEMPERATURE_ID, V_LEAD_PICKED.LEAD_ID, V_LEAD_PICKED.MODIFIED_AT, V_LEAD_PICKED.MODIFIED_BY, V_LEAD_PICKED.PICKED_DATE, V_LEAD_PICKED.POTREV_RESELLER, V_LEAD_PICKED.STATUS_POSITION, V_LEAD_PICKED.STATUS_POTREV_COMPANY, V_LEAD_PICKED.STATUS_POTREV_PROJECT, V_LEAD_PICKED.STATUS_SHORTNAME, V_LEAD_PICKED.STATUS_STATUSCOMMENT, V_LEAD_PICKED.STATUS_STATUSDATE, V_LEAD_PICKED.STATUS_USER_ID, V_LEAD_PICKED.STATUS_WONLOST_ID, V_LEAD_PICKED.STATUS_WONLOST_NAME, V_LEAD_PICKED.STATUS_WONLOST_POSITION, V_LEAD_PICKED.STATUS_WONLOST_TYPE, V_LEAD_PICKED.TENANT_ID, V_USER_ACTION.FULLNAME_INITIALS_GIVENNAME AS STATUS_USER_ID_NAME, V_USER_ACTION.FULLNAME_COMPANYNAME AS STATUS_USER_ID_NAME_TOOLTIP, V_USER_CREATED_BY.FULLNAME_INITIALS_GIVENNAME AS CREATED_BY_NAME, V_USER_CREATED_BY.FULLNAME_COMPANYNAME AS CREATED_BY_NAME_TOOLTIP, V_USER_MODIFIED_BY.FULLNAME_INITIALS_GIVENNAME AS MODIFIED_BY_NAME, V_USER_MODIFIED_BY.FULLNAME_COMPANYNAME AS MODIFIED_BY_NAME_TOOLTIP, T_LEADTEMPERATURE.NAME AS LEADTEMPERATURE_NAME, T_LEADTEMPERATURE.POSITION AS LEADTEMPERATURE_POSITION, T_CAMPAIGN.NAME AS CAMPAIGN_NAME, V_USER_CREATED_BY.TENANT_ID AS CREATED_BY_TENANT_ID, V_USER_MODIFIED_BY.TENANT_ID AS MODIFIED_BY_TENANT_ID, T_LEADTEMPERATURE.TENANT_ID AS LEADTEMPERATURE_TENANT_ID, T_CAMPAIGN.TENANT_ID AS CAMPAIGN_TENANT_ID FROM V_LEAD_PICKED JOIN V_USER_ACTION ON V_LEAD_PICKED.STATUS_USER_ID = V_USER_ACTION.ID JOIN V_USER_CREATED_BY ON V_LEAD_PICKED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_PICKED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_PICKED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_PICKED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE ((V_LEAD_PICKED.STATUS_USER_ID = 1012 AND V_LEAD_PICKED.STATUS_USER_ID IS NOT NULL) AND (V_LEAD_PICKED.STATUS_WONLOST_ID IS NULL) AND (V_LEAD_PICKED.TENANT_ID = 0 AND V_LEAD_PICKED.TENANT_ID IS NOT NULL) AND (V_USER_CREATED_BY.TENANT_ID = 0 AND V_USER_CREATED_BY.TENANT_ID IS NOT NULL) AND (V_USER_MODIFIED_BY.TENANT_ID = 0 AND V_USER_MODIFIED_BY.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_CAMPAIGN.TENANT_ID = 0 AND T_CAMPAIGN.TENANT_ID IS NOT NULL)) ORDER BY CAMPAIGN_NAME
    === 2014-02-12 20:19:03,960 [c-26] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Eval'd row count query: SELECT COUNT(*) FROM V_LEAD_PICKED JOIN V_USER_ACTION ON V_LEAD_PICKED.STATUS_USER_ID = V_USER_ACTION.ID JOIN V_USER_CREATED_BY ON V_LEAD_PICKED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_PICKED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_PICKED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_PICKED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE ((V_LEAD_PICKED.STATUS_USER_ID = 1012 AND V_LEAD_PICKED.STATUS_USER_ID IS NOT NULL) AND (V_LEAD_PICKED.STATUS_WONLOST_ID IS NULL) AND (V_LEAD_PICKED.TENANT_ID = 0 AND V_LEAD_PICKED.TENANT_ID IS NOT NULL) AND (V_USER_CREATED_BY.TENANT_ID = 0 AND V_USER_CREATED_BY.TENANT_ID IS NOT NULL) AND (V_USER_MODIFIED_BY.TENANT_ID = 0 AND V_USER_MODIFIED_BY.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_CAMPAIGN.TENANT_ID = 0 AND T_CAMPAIGN.TENANT_ID IS NOT NULL))
    === 2014-02-12 20:19:03,960 [c-26] DEBUG PoolableSQLConnectionFactory - [builtinApplication.fetchMyPickedLeads] Executing pingTest 'select 1 from dual' on connection 418703326
    === 2014-02-12 20:19:03,960 [c-26] DEBUG SQLConnectionManager - [builtinApplication.fetchMyPickedLeads] Borrowed connection '418703326'
    === 2014-02-12 20:19:03,961 [c-26] DEBUG SQLTransaction - [builtinApplication.fetchMyPickedLeads] Started new Oracle transaction "418703326"
    === 2014-02-12 20:19:03,961 [c-26] DEBUG SQLDriver - [builtinApplication.fetchMyPickedLeads] About to execute SQL query in 'Oracle' using connection '418703326'
    === 2014-02-12 20:19:03,961 [c-26] INFO  SQLDriver - [builtinApplication.fetchMyPickedLeads] Executing SQL query on 'Oracle': SELECT COUNT(*) FROM V_LEAD_PICKED JOIN V_USER_ACTION ON V_LEAD_PICKED.STATUS_USER_ID = V_USER_ACTION.ID JOIN V_USER_CREATED_BY ON V_LEAD_PICKED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_PICKED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_PICKED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_PICKED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE ((V_LEAD_PICKED.STATUS_USER_ID = 1012 AND V_LEAD_PICKED.STATUS_USER_ID IS NOT NULL) AND (V_LEAD_PICKED.STATUS_WONLOST_ID IS NULL) AND (V_LEAD_PICKED.TENANT_ID = 0 AND V_LEAD_PICKED.TENANT_ID IS NOT NULL) AND (V_USER_CREATED_BY.TENANT_ID = 0 AND V_USER_CREATED_BY.TENANT_ID IS NOT NULL) AND (V_USER_MODIFIED_BY.TENANT_ID = 0 AND V_USER_MODIFIED_BY.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_CAMPAIGN.TENANT_ID = 0 AND T_CAMPAIGN.TENANT_ID IS NOT NULL))
    === 2014-02-12 20:19:03,969 [c-26] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] [B]JDBC driver windowed select rows 0->1001[/B], result size 1001. Query: SELECT V_LEAD_PICKED.ADDRESS_CITY, V_LEAD_PICKED.ADDRESS_COUNTRYZIPCODECITY, V_LEAD_PICKED.ADDRESS_COUNTRY_DE, V_LEAD_PICKED.ADDRESS_HOUSENUMBER, V_LEAD_PICKED.ADDRESS_STREET, V_LEAD_PICKED.ADDRESS_ZIPCODE, V_LEAD_PICKED.ADDRESS_ZIPCODECITY, V_LEAD_PICKED.CAMPAIGN_ID, V_LEAD_PICKED.CREATED_AT, V_LEAD_PICKED.CREATED_BY, V_LEAD_PICKED.CREATED_BY_COMPANY_ID, V_LEAD_PICKED.CREATED_BY_DISTRIBUTOR_ID, V_LEAD_PICKED.CREATED_BY_RESELLER_ID, V_LEAD_PICKED.CUST_NAME_CONTACTPERSFULLNAME, V_LEAD_PICKED.EARLIEST_START, V_LEAD_PICKED.LATEST_END, V_LEAD_PICKED.LEADCOST, V_LEAD_PICKED.LEADTEMPERATURE_ID, V_LEAD_PICKED.LEAD_ID, V_LEAD_PICKED.MODIFIED_AT, V_LEAD_PICKED.MODIFIED_BY, V_LEAD_PICKED.PICKED_DATE, V_LEAD_PICKED.POTREV_RESELLER, V_LEAD_PICKED.STATUS_POSITION, V_LEAD_PICKED.STATUS_POTREV_COMPANY, V_LEAD_PICKED.STATUS_POTREV_PROJECT, V_LEAD_PICKED.STATUS_SHORTNAME, V_LEAD_PICKED.STATUS_STATUSCOMMENT, V_LEAD_PICKED.STATUS_STATUSDATE, V_LEAD_PICKED.STATUS_USER_ID, V_LEAD_PICKED.STATUS_WONLOST_ID, V_LEAD_PICKED.STATUS_WONLOST_NAME, V_LEAD_PICKED.STATUS_WONLOST_POSITION, V_LEAD_PICKED.STATUS_WONLOST_TYPE, V_LEAD_PICKED.TENANT_ID, V_USER_ACTION.FULLNAME_INITIALS_GIVENNAME AS STATUS_USER_ID_NAME, V_USER_ACTION.FULLNAME_COMPANYNAME AS STATUS_USER_ID_NAME_TOOLTIP, V_USER_CREATED_BY.FULLNAME_INITIALS_GIVENNAME AS CREATED_BY_NAME, V_USER_CREATED_BY.FULLNAME_COMPANYNAME AS CREATED_BY_NAME_TOOLTIP, V_USER_MODIFIED_BY.FULLNAME_INITIALS_GIVENNAME AS MODIFIED_BY_NAME, V_USER_MODIFIED_BY.FULLNAME_COMPANYNAME AS MODIFIED_BY_NAME_TOOLTIP, T_LEADTEMPERATURE.NAME AS LEADTEMPERATURE_NAME, T_LEADTEMPERATURE.POSITION AS LEADTEMPERATURE_POSITION, T_CAMPAIGN.NAME AS CAMPAIGN_NAME, V_USER_CREATED_BY.TENANT_ID AS CREATED_BY_TENANT_ID, V_USER_MODIFIED_BY.TENANT_ID AS MODIFIED_BY_TENANT_ID, T_LEADTEMPERATURE.TENANT_ID AS LEADTEMPERATURE_TENANT_ID, T_CAMPAIGN.TENANT_ID AS CAMPAIGN_TENANT_ID FROM V_LEAD_PICKED JOIN V_USER_ACTION ON V_LEAD_PICKED.STATUS_USER_ID = V_USER_ACTION.ID JOIN V_USER_CREATED_BY ON V_LEAD_PICKED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_PICKED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_PICKED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_PICKED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE ((V_LEAD_PICKED.STATUS_USER_ID = 1012 AND V_LEAD_PICKED.STATUS_USER_ID IS NOT NULL) AND (V_LEAD_PICKED.STATUS_WONLOST_ID IS NULL) AND (V_LEAD_PICKED.TENANT_ID = 0 AND V_LEAD_PICKED.TENANT_ID IS NOT NULL) AND (V_USER_CREATED_BY.TENANT_ID = 0 AND V_USER_CREATED_BY.TENANT_ID IS NOT NULL) AND (V_USER_MODIFIED_BY.TENANT_ID = 0 AND V_USER_MODIFIED_BY.TENANT_ID IS NOT NULL) AND (T_LEADTEMPERATURE.TENANT_ID = 0 AND T_LEADTEMPERATURE.TENANT_ID IS NOT NULL) AND (T_CAMPAIGN.TENANT_ID = 0 AND T_CAMPAIGN.TENANT_ID IS NOT NULL)) ORDER BY CAMPAIGN_NAME
    === 2014-02-12 20:19:03,971 [c-35] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Using paging strategy 'jdbcScroll' - scrolling to absolute position 1
    === 2014-02-12 20:19:03,971 [c-35] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Scrolling / positioning took 0ms
    === 2014-02-12 20:19:03,975 [c-35] INFO  DSResponse - [builtinApplication.fetchMyPickedLeads] DSResponse: List with 4 items
    === 2014-02-12 20:19:03,976 [c-35] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2014-02-12 20:19:03,976 [c-35] DEBUG SQLTransaction - Committing Oracle transaction "806206320"
    === 2014-02-12 20:19:03,976 [c-35] DEBUG RPCManager - DMI response, dropExtraFields: true
    === 2014-02-12 20:19:03,978 [c-35] DEBUG SQLTransaction - getConnection() found transactional connection for Oracle with hashcode "806206320"
    === 2014-02-12 20:19:03,978 [c-35] DEBUG SQLTransaction - Ending Oracle transaction "806206320"
    === 2014-02-12 20:19:03,978 [c-35] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "806206320"
    === 2014-02-12 20:19:03,978 [c-35] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 806206320
    === 2014-02-12 20:19:03,978 [c-26] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Using paging strategy 'jdbcScroll' - scrolling to absolute position 1
    === 2014-02-12 20:19:03,979 [c-26] DEBUG SQLDataSource - [builtinApplication.fetchMyPickedLeads] Scrolling / positioning took 1ms
    === 2014-02-12 20:19:03,979 [c-35] INFO  Compression - /lms/lms/sc/IDACall: 4860 -> 1072 bytes
    === 2014-02-12 20:19:03,982 [c-26] INFO  DSResponse - [builtinApplication.fetchMyPickedLeads] DSResponse: List with 4 items
    === 2014-02-12 20:19:03,982 [c-26] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2014-02-12 20:19:03,982 [c-26] DEBUG SQLTransaction - Committing Oracle transaction "418703326"
    === 2014-02-12 20:19:03,983 [c-26] DEBUG RPCManager - DMI response, dropExtraFields: true
    === 2014-02-12 20:19:03,984 [c-26] DEBUG SQLTransaction - getConnection() found transactional connection for Oracle with hashcode "418703326"
    === 2014-02-12 20:19:03,984 [c-26] DEBUG SQLTransaction - Ending Oracle transaction "418703326"
    === 2014-02-12 20:19:03,984 [c-26] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "418703326"
    === 2014-02-12 20:19:03,984 [c-26] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 418703326
    === 2014-02-12 20:19:03,986 [c-26] INFO  Compression - /lms/lms/sc/IDACall: 4860 -> 1072 bytes
    Request 1 (copied from console):
    Code:
    {
        dataSource:"V_LEAD_PICKED", 
        operationType:"fetch", 
        operationId:"fetchMyPickedLeads", 
        componentId:"isc_LeadpickingVLayout_2_2", 
        data:{
            fieldName:"STATUS_WONLOST_ID", 
            operator:"isNull"
        }, 
        startRow:0, 
        [B]endRow:75[/B], 
        sortBy:[
            "CAMPAIGN_NAME"
        ], 
        textMatchStyle:"exact", 
        resultSet:[ResultSet ID:isc_ResultSet_4 (created by: isc_LeadpickingVLayout_2_2)], 
        callback:{
            caller:[ResultSet ID:isc_ResultSet_4 (created by: isc_LeadpickingVLayout_2_2)], 
            methodName:"fetchRemoteDataReply"
        }, 
        willHandleError:true, 
        showPrompt:true, 
        prompt:"Suche Datensätze die den Kriterien entsprechen...", 
        oldValues:{
            fieldName:"STATUS_WONLOST_ID", 
            operator:"isNull"
        }, 
        requestId:"V_LEAD_PICKED$6278", 
        internalClientContext:{
            [B]requestIndex:1[/B]
        }, 
        fallbackToEval:false, 
        lastClientEventThreadCode:"MUP2", 
        bypassCache:true
    }
    Request 2 (copied from console):
    Code:
    {
        dataSource:"V_LEAD_PICKED", 
        operationType:"fetch", 
        operationId:"fetchMyPickedLeads", 
        componentId:"isc_LeadpickingVLayout_2_2", 
        data:{
            fieldName:"STATUS_WONLOST_ID", 
            operator:"isNull"
        }, 
        startRow:0, 
        [B]endRow:1001[/B], 
        sortBy:[
            "CAMPAIGN_NAME"
        ], 
        textMatchStyle:"exact", 
        resultSet:[ResultSet ID:isc_ResultSet_4 (created by: isc_LeadpickingVLayout_2_2)], 
        callback:{
            caller:[ResultSet ID:isc_ResultSet_4 (created by: isc_LeadpickingVLayout_2_2)], 
            methodName:"fetchRemoteDataReply"
        }, 
        willHandleError:true, 
        showPrompt:true, 
        prompt:"Suche Datensätze die den Kriterien entsprechen...", 
        oldValues:{
            fieldName:"STATUS_WONLOST_ID", 
            operator:"isNull"
        }, 
        requestId:"V_LEAD_PICKED$62710", 
        internalClientContext:{
            [B]requestIndex:2[/B]
        }, 
        fallbackToEval:false, 
        lastClientEventThreadCode:"TMR9", 
        bypassCache:true
    }

    I also included a screenshot.

    Thank you & best regards,
    Blama
    Attached Files

    #2
    This suggests you've got client-side code that tries to access rows in the vicinity of 1000 while data is still being loaded. That code needs to check whether data is available instead via resultSet.lengthIsKnown(), or be postponed until the DataArrived event fires.

    What you're seeing in the logs is two threads interleaving log statements as they execute one request each (note the thread IDs in each statement: [c-35] and [c-26]). Each request only leads to one data fetch from SQL, as expected.

    Comment


      #3
      Hi Isomorphic,

      it seems to be related to groupBy(String fieldName).

      I changed setGroupByMaxRecords(456); and now the 2nd request is: ..., startRow:0, endRow:457, ....

      I know I can set setGroupByField(String fieldName) before calling setFields(...), but my use-case here is the following:

      I have a RadioItem configuring my ListGrid. On change I call the following code (see bold parts):
      Code:
      public void configure(final boolean activeLeads) {
      	setFetchOperation("fetchMyPickedLeads");
      	setGroupByMaxRecords(456);
      	if (activeLeads) {
      		setShowRecordComponents(true);
      		setShowRecordComponentsByCell(true);
      		setHilites(new Hilite[] { new DateFieldHilite(earliestStartLGF.getName()), new DateFieldHilite(latestEndLGF.getName()) });
      		setFields(leadstatusLGFHidden, pickedDateLGF, statusDateLGF, companyAndContactLGF, countryZipCodeCity, campaignLGF,
      				leadtemperatureLGF, potrevResellerLGF, earliestStartLGF, latestEndLGF, createdByLGF, createdAtLGF, modifiedByLGF, modifiedAtLGF,
      				createdByCompanyLGF, createdByDistributorLGF, createdByResellerLGF, assignStatusLGF);
      	} else {
      		setShowRecordComponents(false);
      		setShowRecordComponentsByCell(false);
      		setHilites(null);
      		setFields(wonLostTypeLGF, wonLostNameLGF, pickedDateLGF, statusDateLGF, companyAndContactLGF, countryZipCodeCity, campaignLGF,
      				leadtemperatureLGF, potrevResellerLGF, earliestStartLGF, latestEndLGF, createdByLGF, createdAtLGF, modifiedByLGF, modifiedAtLGF,
      				createdByCompanyLGF, createdByDistributorLGF, createdByResellerLGF);
      	}
      
      	if (!viewStateHelper.applySavedViewStates()) { [B]//returns false if no persisted settings for fields and sort are found[/B]
      		if (activeLeads) {
      			setSort(new SortSpecifier[] { new SortSpecifier("STATUS_SHORTNAME", SortDirection.ASCENDING),
      					new SortSpecifier("PICKED_DATE", SortDirection.ASCENDING) });
      		} else {
      			setSort(new SortSpecifier[] { new SortSpecifier("STATUS_WONLOST_TYPE", SortDirection.ASCENDING),
      					new SortSpecifier("STATUS_WONLOST_NAME", SortDirection.ASCENDING), new SortSpecifier("PICKED_DATE", SortDirection.ASCENDING) });
      		}
      	}
      
      	//[B]Here the grouping happens[/B]
      	if (activeLeads) {
      		groupBy("STATUS_SHORTNAME");
      		fetchData(new AdvancedCriteria("STATUS_WONLOST_ID", OperatorId.IS_NULL), new ListGridIsLoadedCallBack(viewStateHelper));
      	} else {
      		groupBy("STATUS_WONLOST_TYPE");
      		fetchData(new AdvancedCriteria("STATUS_WONLOST_ID", OperatorId.NOT_NULL), new ListGridIsLoadedCallBack(viewStateHelper));
      	}
      }
      As you can see the ListGrid is not destroyed and recreated, but reused. Otherwise I could use setGroupByField(String fieldName) before calling setFields(...), but now it is this way.

      Is this use case supported? If not, I will destroy and recreate the ListGrid.
      By the way: Do I have to call
      Code:
      [I]this.listGridmemberVariable.destroy();[/I]
      
      or is
      
      this.listGridmemberVariable = new ListGrid();
      myLayout.setMembers(this.listGridmemberVariable);
      
      enough?
      Thank you,
      Blama

      Comment


        #4
        Further investigation:

        It also happens for this order of calls (with setGroupByField("...") for a new MyListGrid extends ListGrid (no "reconfiguring"):

        Code:
        super();
        setCanAutoFitFields(false);
        setAutoFetchData(false);
        setShowFilterEditor(true);
        setShowRecordComponents(true);
        setShowRecordComponentsByCell(true);
        setHilites(new Hilite[] { ... });
        setDataSource(myDS);
        setCanGroupBy(false);
        setGroupStartOpen(GroupStartOpen.ALL);
        [B]setGroupByField(...);[/B] //setGroupByField before setFields! 
        [B]setFields(...);[/B]
        setFieldState(...);
        setSortState(...);
        [B]fetchData(...);[/B]
        Can you reproduce with this code? What might be important:
        The fetch-RPC for rows 0-75 and returning 0 rows takes around 2,5 sec.
        The 2nd fetch-RPC for rows 0-1001 and returning 0 rows takes around 1 sec. The 2nd starts at about the time the 1st finishes.

        Best regards,
        Blama

        Comment


          #5
          It's probably simplest to destroy() and re-create the grid since the new grid has little in common with the old - you are pretty much changing everything. By changing each setting one at a time you will likely cause more work to be done than would be involved in creating an entirely new grid.

          Not to mention the potential for duplicate fetches, as each of your settings (grouping, sort, etc) could require the grid to get new data from the server.

          If you did need to keep the original grid for some reason, probably the best way to do it would be to temporarily provide it with empty RecordList (*not* ResultSet) so that no fetches will take place, then place your fetchData() call last.

          Comment


            #6
            Hi Isomorphic,

            thanks for the answer. I'll do so, then.

            Best regards,
            Blama

            Comment


              #7
              Hi Isomorphic,

              could you reproduce the two fetches from my 15:44-post?

              These were generated by a fresh ListGrid.

              Best regards,
              Blama

              Comment


                #8
                We didn't actually try, but we believe it would happen. The thing is that you should call setFields() before you apply grouping (which definitely depends on the fields).

                Comment


                  #9
                  Hi Isomorphic,

                  I just tried with reversed order and see the same behaviour. Only If I don't setGroupByField("..."), the 2nd call goes away.

                  Best regards,
                  Blama

                  Comment


                    #10
                    Hi Isomorphic,

                    I almost grew desperate. Here I minimal testcase based on current BuiltInDS:

                    animal.ds.xml addition:
                    Code:
                    <serverObject lookupStyle="new" className="com.smartgwt.sample.server.listener.MyDMI" />
                    MyDMI.java:
                    Code:
                    package com.smartgwt.sample.server.listener;
                    
                    import javax.servlet.http.HttpServletRequest;
                    
                    import com.isomorphic.datasource.DSRequest;
                    import com.isomorphic.datasource.DSResponse;
                    
                    
                    public class MyDMI {
                    	public DSResponse fetch(DSRequest dsRequest, HttpServletRequest servletRequest) throws Exception {
                    		Thread.sleep(4000);
                    		return dsRequest.execute();
                    	}
                    };
                    BuiltInDS.java:
                    Code:
                    package com.smartgwt.sample.client;
                    
                    import com.google.gwt.core.client.EntryPoint;
                    import com.smartgwt.client.core.KeyIdentifier;
                    import com.smartgwt.client.data.DataSource;
                    import com.smartgwt.client.util.PageKeyHandler;
                    import com.smartgwt.client.util.Page;
                    import com.smartgwt.client.util.SC;
                    import com.smartgwt.client.widgets.grid.ListGrid;
                    import com.smartgwt.client.widgets.grid.ListGridField;
                    import com.smartgwt.client.widgets.layout.VStack;
                    
                    /**
                     * Entry point classes define <code>onModuleLoad()</code>.
                     */
                    public class BuiltInDS implements EntryPoint {
                    	private ListGrid boundList;
                    
                    	/**
                    	 * This is the entry point method.
                    	 */
                    	public void onModuleLoad() {
                    		KeyIdentifier debugKey = new KeyIdentifier();
                    		debugKey.setCtrlKey(true);
                    		debugKey.setKeyName("D");
                    
                    		Page.registerKey(debugKey, new PageKeyHandler() {
                    			public void execute(String keyName) {
                    				SC.showConsole();
                    			}
                    		});
                    
                    		VStack vStack = new VStack();
                    		vStack.setLeft(175);
                    		vStack.setTop(75);
                    		vStack.setWidth("70%");
                    		vStack.setMembersMargin(20);
                    
                    		boundList = new ListGrid();
                    
                    		boundList.setDataSource(DataSource.get("animals"));
                    		boundList.setHeight(200);
                    		boundList.setCanEdit(true);
                    		ListGridField lifeSpanLGF = new ListGridField("lifeSpan");
                    		ListGridField dietLGF = new ListGridField("diet");
                    		boundList.setFields(lifeSpanLGF, dietLGF);
                    		boundList.setGroupByField("lifeSpan");
                    		boundList.fetchData();
                    		vStack.addMember(boundList);
                    		vStack.draw();
                    	}
                    }
                    You can see the resulting Console screenshot in the attachment:

                    Best regards,
                    Blama
                    Attached Files

                    Comment


                      #11
                      Thanks for sticking with this - this issue has been fixed. What you will now see is that if you configure grouping and then call fetchData() on a grid that has never fetched before, you'll see a single fetchData() the server retrieving rows from 0 to groupByMaxRecords.

                      This may be suboptimal as this still may not be enough records to allow client-side grouping, but it's the best the ListGrid can do when provided these settings.

                      Comment


                        #12
                        Hi Isomorphic,

                        thanks for the fix, I'll try with tomorrow's build.

                        Regarding the general behavior, isn't this possible:
                        • ListGrid with fields a...f
                        • Sort by b,e (SortNormalizer or sort by valueField or sort by DisplayField)
                        • Group by c (no SortNormalizer used (even if defined), sort by valueField or sort by DisplayField)
                        • fetchData()
                        • Results in query: rows 0-75(!): SELECT ...ORDER BY c, b, e
                        • If SortNormalizer set for b, e: Clientside re-sort


                        That way you'd get a grouped ListGrid with the values you'd expect in the order you'd expect without transfering to much records. Is this a possible improvement, perhaps for 10.0/5.0?

                        Best regards,
                        Blama


                        EDIT:
                        I created an own thread for this here, but it might not be as simple as I thought with respect to setGroupValueFunction() and setGroupTitleRenderer.
                        Last edited by Blama; 5 Aug 2014, 05:33. Reason: revisited thread

                        Comment


                          #13
                          revisited thread

                          Originally posted by Isomorphic View Post
                          Thanks for sticking with this - this issue has been fixed. What you will now see is that if you configure grouping and then call fetchData() on a grid that has never fetched before, you'll see a single fetchData() the server retrieving rows from 0 to groupByMaxRecords.

                          This may be suboptimal as this still may not be enough records to allow client-side grouping, but it's the best the ListGrid can do when provided these settings.
                          Hi everyone,

                          I wanted to confirm that this is fixed for me using 4.1p in both the sample and my application.

                          Best regards,
                          Blama

                          Comment

                          Working...
                          X