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

Die folgenden Schritte werden für die Entwicklung eines COM+-CRM vorgeschlagen:

  1. Legen Sie vor Beginn der Entwicklung das Transaktions-Time out auf 0 (null) fest (mit dem Verwaltungstool komponentendienste). Legen Sie das Registrierungsflag VTRACE1 fest (siehe COM+ CRM Registry Einstellungen), um CRM-Warnungen und -Fehlermeldungen in der Debug-Ablaufverfolgung zu sehen.
  2. Bestimmen Sie, welche Schnittstellen Sie verwenden müssen, strukturiert (Varianten) 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 erforderlichen Protokolldatensätze und deren Format.
  4. Ein CRM-Kompensator für das Debuggen wird als Teil der CRM-Beispiele (im Windows SDK) bereitgestellt. Dies kann vorübergehend verwendet werden, wenn der CRM-Worker statt des echten CRM-Kompensators gedebuggt wird.
  5. Wenn der CRM-Worker ordnungsgemäß funktioniert, entwickeln Sie den echten CRM-Kompensator, und ersetzen Sie den CRM-Kompensator für das Debuggen durch den echten CRM-Kompensator.
  6. Es kann wünschenswert sein, den Wiederherstellungsfall zunächst nicht zu testen. Falls ja, löschen Sie die CRM-Protokolldatei für die CRM-Serveranwendung jedes Mal, bevor Sie diese CRM-Serveranwendung starten.

Weitere Überlegungen

  1. Schreiben Sie voraus. Die CRM-Workerkomponente muss vorausschreiben. Das heißt, er muss einen Protokolldatensatz schreiben, der angibt, dass er eine Aktion ausführen wird, bevor er diese Aktion tatsächlich ausführen kann. Darüber hinaus muss dieser Protokolldatensatz nach dem Schreibzugriff und vor der Aktion auf den Datenträger erzwungen werden.
  2. Isolation. Die CRM erzwingt keine Isolation. Der CRM-Entwurf muss die Isolation zwischen mehreren Clients bei separaten Transaktionen bereitstellen und auch den Fall vor der Wiederherstellung berücksichtigen.
  3. Die Wiederherstellung wird in Bearbeitung. Der CRM-Worker muss den Fehlercode "Wiederherstellung wird verarbeitet" behandeln. Weitere Informationen zu diesem Fehlercode finden Sie unter Problembehandlung für COM+CRM.
  4. Fehlerbehandlung. Der CRM-Worker muss den Fall bewältigen, dass die Transaktion früher als erwartet abgebrochen wird. Weitere Informationen finden Sie im Abschnitt Fehlerbehandlung in COM+ CRM.
  5. Wiederherstellungszeit. Der CRM-Kompensator sollte so konzipiert sein, dass die Wiederherstellung schnell ausgeführt wird, damit keine neuen Aufgaben für diese CRM-Serveranwendung warten müssen.
  6. Idempotenz. Es ist möglich, dass ein CRM-Kompensator denselben Protokolldatensatz erneut erhält, um eine Aktion rückgängig zu machen oder erneut zu wiederholen, die bereits rückgängig gemacht oder erneut rückgängig gemacht wurde. Aktionen, die der CRM-Kompensator möglicherweise ausführen kann, 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+ Compensating Resource Manager Concepts