Share via


Entwurfsvorschläge für die Entwicklung eines COM+-CRM

Im Folgenden werden Schritte zum Entwickeln eines COM+-CRM vorgeschlagen:

  1. Legen Sie vor Beginn der Entwicklung das Transaktionstimeout auf Null fest (mithilfe des Component Services-Verwaltungstools). Legen Sie das VTRACE1-Registrierungsflag fest (siehe COM+ CRM-Registrierungseinstellungen), um CRM-Warnungen und Fehlermeldungen in der Debugablaufverfolgung anzuzeigen.
  2. Bestimmen Sie, welche Schnittstellen Sie verwenden müssen, strukturiert (Variants) oder nicht strukturiert. (Siehe COM+ CRM-Schnittstellen.) Dies hängt von der Sprache ab, die Sie zum Entwickeln Ihres CRM verwenden, z. B. Microsoft Visual C++ oder Microsoft Visual Basic.
  3. Entwickeln Sie zuerst den CRM-Worker. Bestimmen Sie die informationen, die in den Protokolldatensätzen erforderlich sind. Definieren Sie die typen der erforderlichen Protokolldatensätze und deren Format.
  4. Ein Debug-CRM-Kompensator wird als Teil der CRM-Beispiele (im Windows SDK) bereitgestellt. Dies kann vorübergehend beim Debuggen des CRM-Workers anstelle des echten CRM-Kompensors verwendet werden.
  5. Wenn der CRM-Worker ordnungsgemäß funktioniert, entwickeln Sie den echten CRM-Kompensator, und ersetzen Sie den Debug-CRM-Kompensator durch den echten CRM-Kompensator.
  6. Es kann wünschenswert sein, den Wiederherstellungsfall zunächst nicht zu testen. Wenn ja, löschen Sie die CRM-Protokolldatei für die CRM-Serveranwendung jedes Mal, bevor Sie diese CRM-Serveranwendung starten.

Überlegungen

  1. Schreiben Sie weiter. Die CRM-Workerkomponente muss voranschreiben. Das heißt, es muss einen Protokolldatensatz schreiben, der angibt, dass eine Aktion ausgeführt wird, bevor diese Aktion tatsächlich ausgeführt wird. Darüber hinaus muss dieser Protokolldatensatz nach dem Schreibvorgang und vor der Ausführung der Aktion auf den Datenträger erzwungen werden.
  2. Isolation. Das CRM erzwingt keine Isolation. Der CRM-Entwurf muss die Isolation zwischen mehreren Clients bei separaten Transaktionen ermöglichen und auch den Fall vor der Wiederherstellung berücksichtigen.
  3. Die Wiederherstellung wird ausgeführt. Der CRM-Worker muss den Fehlercode "Wiederherstellung in Bearbeitung" behandeln. Weitere Informationen zu diesem Fehlercode finden Sie unter Problembehandlung für COM+ CRM .
  4. Fehlerbehandlung. Der CRM-Worker muss den Fall verarbeiten, in dem die Transaktion früher als erwartet abgebrochen wird. Weitere Informationen finden Sie im Abschnitt Fehlerbehandlung im COM+ CRM.
  5. Wiederherstellungszeit. Der CRM-Kompensator sollte so konzipiert sein, dass die Wiederherstellung schnell ausgeführt wird, damit keine neuen Arbeiten für diese CRM-Serveranwendung warten müssen.
  6. Idempotenz Es ist möglich, dass ein CRM-Kompensator denselben Protokolldatensatz erneut empfängt, um eine Aktion rückgängig zu machen oder zu wiederholen, die bereits rückgängig gemacht oder erneut ausgeführt wurde. Aktionen, die der CRM-Kompensator möglicherweise ausführt, müssen idempotent sein, was häufig bedeutet, dass die von diesen Aktionen zurückgegebenen Fehlercodes ignoriert werden sollten.
  7. Initiierung der Wiederherstellung. Die Wiederherstellung einer CRM-Serveranwendung wird ausgeführt, wenn diese CRM-Serveranwendung gestartet wird. Es gibt jedoch keinen automatischen Start einer CRM-Serveranwendung. Der Anwendungsentwickler sollte überlegen, wie sowohl der Start als auch die Wiederherstellung initiiert werden sollen.

COM+ kompensierende Resource Manager-Konzepte