Aucun message portant le libellé Services and Application Integration Framework (AIF). Afficher tous les messages
Aucun message portant le libellé Services and Application Integration Framework (AIF). Afficher tous les messages

Dynamics AX 2012: Another instance of CIL generation is already in progress.

Lors de la génération d’un Full CIL, le client AX à planter. Après avoir rouvert le client, j’ai tenté de générer un Full CIL et j’ai reçu le message d’erreur suivant: 

Another instance of CIL generation is already in progress. Please wait for the operation to complete before retrying.


La solution est de supprimer la ligne suivante:

DELETE FROM SYSLASTVALUE
WHERE ELEMENTNAME = 'CIL Generation' AND USERID = '-AutoSem'

Dynamics AX 2012: Configuration d'un port HTTPS (SSL)

Dans un autre billet, j'expliquais comment publier un port HTTP avec une address externe. Dans ce billet, j'explique comment publier un port HTTP avec SSL.

Tout d'abord, vous devez configurer HTTPS sur votre site AIF dans IIS:



Ensuite, cliquer sur Edit et sélectionner votre certificat SSL.


Ensuite, ouvrer le client Dynamics AX et naviguer System Administration --> Setup --> Services and Application Integration Framework --> Web sites.  Modifier le site existant ou configurer un nouveau site de type HTTPS.


Ensuite, naviguer System Administration --> Setup --> Services and Application Integration Framework --> Inbound Ports. Créer un port avec un adapteur de type HTTP et sélectionner votre site HTTPs. Cliquer sur Configure pour effectuer les configurations WCF avancées.


Sélectionner serviceMetadata sous la section Service Behaviors --> routingServiceBehavior. Configurer HttpsGetEnabled avec la valeur True.


Sous la section Bindingssélectionner basicHttpBindingWithWindowsAuth et changer le mode pour Transport. Vous ne pouvez pas utiliser basicHttpsbinding puisque cette option est compatible seulement avec WCF 4.5.


Sous la section Services --> Enpoints, sélectionner ServiceEndpoint et inscriver l'adresse URL  HTTPS de votre service dans le champ address. Cette configuration force le basicHttpbinding à utiliser SSL pour le transport.


Sous la section Advanced --> Service Behaviors --> routingServiceBehavior, clique Add et ajoute useRequestHeadersForMetadataAddress.


Cliquer sur File --> Save et fermer le configurateur WCF. Activer le port AIF.

Dynamics AX 2012: useRequestHeadersForMetadataAdress pour Web Service on IIS

Lors de la configuration de Web Services on IIS, je voulais rendre le site web accessible d'une adresse externe. Pour ce faire, j'ai fait les 3 configurations suivantes.

Tout d'abord, il faut modifier le host header du site AIFWebService:


Ensuite, j'ai modifié le URL du site web dans la section System Administration --> Services and Application Integration Framework --> Web Sites.



Pour terminer, j'ai ajouté useRequestHeadersForMetadataAdress à la configuration de mon port avec un adaptateur HTTP. 




Dynamics AX 2012 : Requêtes pour trouver les ports AIF

Voici une requête que j'utilise pour trouver les AIF PORTS orphelin. C'est-à-dire que le port n'a pas de channelid dans la table AIFCHANNEL

SELECT NAME, AOSCHANNELID,CHANNELID, DESCRIPTION,COMPANY,DEPLOYED FROM AIFPORT WHERE CHANNELID NOT IN (SELECT CHANNELID FROM AIFCHANNEL)

J'utilise la requête suivante pour trouver les ports AIF de type File Adapter. Ainsi, je peux voir les dossiers utiliser par les adaptateurs.

SELECT ap.NAME, ap.AOSCHANNELID,ap.CHANNELID, ap.DESCRIPTION,ap.COMPANY,ap.DEPLOYED,ac.ENABLED, ac.TRANSPORTADDRESS FROM AIFPORT ap INNER JOIN AIFCHANNEL ac ON ac.CHANNELID = ap.CHANNELID WHERE ac.ADAPTERCLASSID=6155

Dynamics AX : Read Committed Snapshot Isolation (RCSI)

J'ai fait face à des problèmes du verrouillage de table (locks) avec le système Dynamics AX 2012 R3. Sans entrer dans les détails, le problème survenait lorsque la connexion à la base de données était effectuée via la classe UserConnection.

Je pouvais voir une requête très simple avec INSERT qui ne terminait jamais. La requête causait un lock sur la table, ainsi lorsqu'un autre utilisateur effectuait une requête sur la même table, son client AX ne répondait plus.

Le problème est dû à une configuration de la base de données: Allow Snapshot Isolation et Read Committed Snapshot Isolation (RCSI) étaient désactivés, le même problème est documenté sur le blogue suivant Microsoft Severe SQL Locking and Blocking on Dynamics AX

J'ai aussi mis à jour ce billet: Dynamics AX 2012 : SQL Settings