Meilleur auteur de réponses
Problème exception sur l'exécution d'un plugin ne dépassant pas 2 minutes sur CRM Online 2011

Question
-
Bonjour,
J'ai réalisé un plugin qui me permet de parcourir des comptes et de générer pour chaque compte une facture en fonction d'éléments récupérés sur le compte.
J'ai un retrieveMultiple qui me retourne 277 enregistrements.
Bizarrement une exception pas très explicite est levée au bout d'environ 15 à 20 secondes :
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35]]: Erreur calcul cotisations.Detail:
<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
<ErrorCode>-2147220891</ErrorCode>
<ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
<KeyValuePairOfstringanyType>
<d2p1:key>OperationStatus</d2p1:key>
<d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">0</d2p1:value>
</KeyValuePairOfstringanyType>
</ErrorDetails>
<Message>Erreur calcul cotisations.</Message>
<Timestamp>2012-10-17T07:47:37.86099Z</Timestamp>
<InnerFault i:nil="true" />
<TraceText>
[Facturation_Plugin: Facturation_Plugin.EntityHandler]
[bbac9b0d-6817-e211-8bc6-78e3b517eec9: Facturation_Plugin.EntityHandler: Create of esk_generation_factures]
</TraceText>
</OrganizationServiceFault>Le programme fonctionne parfaitement si je réduis le nombre de comptes remontés en jouant sur mon filtre.
Y'aurait il un problème de limitation quelconque ?
Si je rajouter une trace dans la gestion d'exception de la manière suivante
catch (FaultException<OrganizationServiceFault> ex)
{
tracingService.Trace(
@"ErrorCode: {0}
Message: {1},
ex.Detail.ErrorCode,
ex.Detail.Message
);
throw new InvalidPluginExecutionException("Erreur calcul cotisations.", ex);
}J'ai en plus dans le <Tracetext> :
ErrorCode: -2147220970
Message: exceededL'error code diffère de celui remontée dans la balise <ErrorCode> : <ErrorCode>-2147220891</ErrorCode> et il y a en plus cette notion exceeded qui n'est pas très explicite non plus mais qui fait pourtant référence à une limitation qui serait atteinte.
Je suis preneur de toute idée expliquant cette erreur
Merci
Réponses
-
Effectivement, ça serait possible, mais du coup, cela ne se déclencherait pas via des plugins
My blog : http://mscrmtools.blogspot.com
Did you try the new CrmDiagTool for Microsoft Dynamics CRM 2011 ? If not, follow me
Upgraded tools for Dynamics CRM 2011!
View Layout Replicator | Searchable Property Updater | Ribbon Browser | SiteMap Editor | JavaScript Web Resource Manager | Role updater- Marqué comme réponse Chadweek mercredi 17 octobre 2012 10:40
Toutes les réponses
-
A priori, votre code sollicite trop la plateforme! Voici un extraite de l'article que vous trouverez à cette adresse: http://msdn.microsoft.com/en-us/library/gg334752.aspx
Microsoft Dynamics CRM collects run-time statistics and monitors plug-ins that execute in the sandbox. If the sandbox worker process that hosts this custom code exceeds threshold CPU, memory, or handle limits or is otherwise unresponsive, that process will be killed by the platform. At that point any currently executing plug-in in that worker process will fail with exceptions. However, the next time that the plug-in is executed it will run normally. There is one worker process per organization so failures in one organization will not affect another organization.
PS: Merci de marquer votre dernier thread comme répondu sur ma réponse puisqu'elle semble vous avoir aider à résoudre votre précédent problème. Essayons de garder ce forum le plus propre et à jour possible. Merci.
My blog : http://mscrmtools.blogspot.com
Did you try the new CrmDiagTool for Microsoft Dynamics CRM 2011 ? If not, follow me
Upgraded tools for Dynamics CRM 2011!
View Layout Replicator | Searchable Property Updater | Ribbon Browser | SiteMap Editor | JavaScript Web Resource Manager | Role updater- Proposé comme réponse Philippe LEAL dimanche 21 octobre 2012 08:05
-
-
Vous aurez certainement le même problème avec des activités de workflow puisque c'est le même process qui est utilisé que pour les plugins.
La seule technique éprouvée que je connaisse (n'ayant jamais vraiment eu affaire avec l'erreur que vous décrivez) consiste à utiliser le bus Windows Azure pour envoyer les messages de plugin à un "écouteur" en local (Service Windows ou application) qui réalisera lui les opérations vis-à-vis de la CRM Online. Comme c'est l'écouteur qui fait les traitements, il n'y a pas de limite particulière à ce qui peut être fait.
My blog : http://mscrmtools.blogspot.com
Did you try the new CrmDiagTool for Microsoft Dynamics CRM 2011 ? If not, follow me
Upgraded tools for Dynamics CRM 2011!
View Layout Replicator | Searchable Property Updater | Ribbon Browser | SiteMap Editor | JavaScript Web Resource Manager | Role updater -
-
Effectivement, ça serait possible, mais du coup, cela ne se déclencherait pas via des plugins
My blog : http://mscrmtools.blogspot.com
Did you try the new CrmDiagTool for Microsoft Dynamics CRM 2011 ? If not, follow me
Upgraded tools for Dynamics CRM 2011!
View Layout Replicator | Searchable Property Updater | Ribbon Browser | SiteMap Editor | JavaScript Web Resource Manager | Role updater- Marqué comme réponse Chadweek mercredi 17 octobre 2012 10:40