Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Mulesoft Microsoft Dynamics Connector Tips

DZone's Guide to

Mulesoft Microsoft Dynamics Connector Tips

Integrating a legacy system? Fun, isn't it? This list covers a few common issues, ranging from retrieving records to Mavenizing, and how to get past them.

Free Resource

Share, secure, distribute, control, and monetize your APIs with the platform built with performance, time-to-value, and growth in mind. Free 90-day trial of 3Scale by Red Hat

This blog post will review tips using the Mulesoft Microsoft Dynamics Connector to integrate to legacy systems that my team has run across.

Java Cryptography Extensions not Installed

When doing a test connection for the MS Dynamics Connector inside of Anypoint Studio you may see the following exception - "Test connection failed: Java Cryptography Extensions not installed..."

Image title
The user guide states the following as the fix:

    " Install the Java Cryptography Extensions (JCE) package before installing the connector. Download JCE for Java 7 from Oracle’s Java 7 JCE Download site. Download JCE for Java 8 from Oracle’s Java 8 JCE Download site."

This may not resolve the exception above, and the following must be done to clear up the connection error:

  • Update the AnypointStudio.ini  — ${Anypoint_Studio}/AnypointStudio.ini  

    • Add the following lines after the line "plugins/org.eclipse.equinox…"

      • -vm.

      • ${JDK_HOME}/bin/javaw.exe — This needs to be the java install where the JCE files have been updated.

Example AnypointStudio.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-vm
${JDK_HOME}/bin/javaw.exe 
-vmargs
-Xms512m
-Xmx1536m
-XX:MaxPermSize=512m
-Dosgi.instance.area.default=@user.home/AnypointStudio/workspace


Mavenize Your Mulesoft MS CRM Dynamics Project 

When a Mulesoft MS CRM Dynamics Project is Mavenized, you will need to have access to the Mulesoft EE Repo to pull down the MS CRM Dynamic dependencies. You will need to work with your Mulesoft Success Manager to request access to the Mulesoft Nexus EE Repo, and Mulesoft will request that you have your own Nexus set up to store dependencies so you are not pulling from their Nexus for local builds.

Retrieve Multiple Records by Query

The team has observed excessive memory usage when retrieving multiple records via DataSense. In one instance, a query for 20,000 records with four fields returned ran a 10 GB JVM out of memory.  The workaround has been to use native FetchXML in lieu of DataSense.  

It looks like this maybe a feature of the connector as stated in the Mulesoft meta-data caching documentation:

The connector does cache metadata by default.
Data sense: As data sense requires all entities to be retrieved, the entities retriever does that and caches it by entity to be reused between different calls. In addition, data sense also exposes attributes for each entity, and this is done by an attributes retriever. For data sense the attributes retriever that is used gets all entitiy’s attributes and caches it (for each one of the entities for which you perform a data sense operation).

MS Dynamics Execute Multiple Limitations 

Per the MS Dynamics Documentation:

  • No recursion is allowed —  ExecuteMultipleRequest cannot invoke  ExecuteMultipleRequest. An  ExecuteMultipleRequest found in the request collection will generate a fault for that request item.
  • Maximum batch size – there is a limit to how many requests can be added to a request collection. If that limit is exceeded, a fault is thrown before the first request is ever executed. A limit of 1000 requests is typical though this maximum amount can be set for the Microsoft Dynamics CRM deployment. The deployment setting for this limit is  BatchSize.
  • Throttling of concurrent calls – for Microsoft Dynamics CRM Online there is a limit of 2 concurrent  ExecuteMultipleRequest executions per organization. If that limit is exceeded, a “Server Busy” fault is thrown before the first request is ever executed. For an on-premises deployment, throttling is not enabled by default. The deployment setting for this limit is  ExecuteAsyncPerOrgMaxConnectionsPerServer.

Explore the core elements of owning an API strategy and best practices for effective API programs. Download the API Owner's Manual, brought to you by 3Scale by Red Hat

Topics:
mulesoft ,microsoft dynamics

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}