Yufei created OLINGO-1614:
-----------------------------

             Summary: Get metadata of dynamics 365 is very slow, it's much 
slower than using HttpRequest
                 Key: OLINGO-1614
                 URL: https://issues.apache.org/jira/browse/OLINGO-1614
             Project: Olingo
          Issue Type: Question
          Components: odata2-core, odata4-client
    Affects Versions: (Java) V4 4.10.0
         Environment: windows, java
            Reporter: Yufei


Hi 

This is the code to get metadata.  time used is 28 seconds. It's too slow.

It's around 10 seconds if I use HttepoRequest and XML parsing with 
DocumentBuilder.

Is there anyway to make it faster?

I checked with 5.0.0 and 4.10.0, it's the same.

Thank you.

 

//////////////////////////////////////////////////////////////////////////////

 private static void getMetadata2(String accessToken)
    {
      // Create an OData client
        ODataClient client = ODataClientFactory.getClient();

        // Specify the OData service endpoint
        String serviceRoot = 
"https://orgc8a62a2c.api.crm.dynamics.com/api/data/v9.0/";;

        String metadataEndpoint = serviceRoot; // + "$metadata";
        
        EdmMetadataRequest  request = 
client.getRetrieveRequestFactory().getMetadataRequest(metadataEndpoint);
//        request.setAccept("application/xml"); // Set the desired media type
        request.addCustomHeader(HttpHeader.AUTHORIZATION, "Bearer " + 
accessToken);  // Add the access token

// Execute the request
        long startTime = System.nanoTime();
        ODataRetrieveResponse<Edm> response = request.execute();
        long endTime = System.nanoTime();
        long elapsedTime = endTime - startTime;

        // Convert elapsed time to seconds
        double elapsedTimeInSeconds = (double) elapsedTime / 1e9;
       
   // Print the elapsed time in seconds
        System.out.println("Time consumed for request.execute() : " + 
elapsedTimeInSeconds + " seconds");    
        
       int code = response.getStatusCode();
        String ret = response.getStatusMessage();
        
        Edm edm = response.getBody();

    }    

 

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to