Im Folgenden werden einige Situationen beschrieben, in denen ein Einsatz von Datenbankverbindungspools sinnvoll ist.
Die Logik eines Geschäftsprozesses kann es erforderlich machen, ein Geschäftsobjekt, je nach den Werten in bestimmten Feldern des Geschäftsobjekts, an unterschiedliche Zielanwendungen weiterzuleiten.
Bei einer Website ist es z. B. möglich, dass Kunden je nach Kundentyp (Attribut "Customertype") über unterschiedliche Anwendungen gespeichert und verarbeitet werden. Die Collaboration-Schablone müsste in diesem Fall den Wert des betreffenden Attributs abrufen, auswerten und je nach Wert entscheiden, an welche Zielanwendung das Geschäftsobjekt gesendet werden soll.
Dies kann zwar in Java mit Hilfe von Steuerungsflussstrukturen erreicht werden, die Wert-Zielanwendungspaare sind in diesem Fall jedoch fest in der jeweiligen Collaboration-Schablone codiert. Wenn diese Paare sich aufgrund von Prozeduränderungen ändern oder neue Paare hinzukommen, weil ein neuer Wert und eine neue Anwendung in die Schnittstelle aufgenommen werden, muss die Schablone in diesem Fall geändert, neu kompiliert, neu implementiert etc. werden.
Eine wesentlich flexiblere Implementierung stellt das Speichern der Wert-Zielanwendungspaare in einer Datenbanktabelle dar. Gehen Sie dazu wie folgt vor:
Routingwert | Zielanwendungswert |
---|---|
Kunde | AppA |
Verwaltung | AppB |
Vertriebspartner | AppC |
Forschung und Lehre | AppD |
Werte müssen möglicherweise in andere Werte umgesetzt werden, indem nach Entsprechungen in einer Tabelle gesucht wird. Dies können Sie im Allgemeinen erreichen, indem Sie Referenzbeziehungen implementieren. Das Verwenden von Referenzbeziehungen ist jedoch nicht immer sinnvoll. Referenzbeziehungen sind in erster Linie für Situationen konzipiert, bei denen jede einzelne, an einer Schnittstelle einbezogene Anwendung eine eigene Methode zur Darstellung von Datenelementen erfordert. Dabei wird ein Teilnehmer für jede Anwendung erstellt, und die Referenzbeziehung verbindet alle Teilnehmer ähnlich wie der Integrationsbroker Anwendungen verbindet. Manchmal muss ein Wert in einen von mehreren anderen Werten umgesetzt werden, ohne dass deshalb eine separate Darstellung dieser Daten für alle, an der Schnittstelle einbezogenen Anwendungen aufrechterhalten werden müsste. In einem derartigen Fall empfiehlt es sich, eine Tabelle im Repository zu erstellen, in der die zugehörigen Werte gespeichert werden, und anschließend eine Datenbankverbindung und die SQL-Anweisung "Select" zum Abrufen des gewünschten Wertes zu verwenden.
Darüber hinaus können über die für Referenzbeziehungen bereitgestellte API zwar sehr einfach zusammengehörige Daten aus mehreren Anwendungen entnommen werden, das Ausführen komplexerer Abfragen ist jedoch nur schwer möglich. Die API für Referenzbeziehungen ist dafür ausgelegt, ein Datenelement abzurufen und den Schlüsselwert zu liefern, den die Daten mit den anderen Anwendungsdaten in der Beziehung teilen, oder einen Schlüsselwert abzurufen und ein bestimmtes, diesem Schlüsselwert zugeordnetes Datenelement zu liefern. Die API für Referenzbeziehungen ist jedoch nicht dafür geeignet, mehrere Spaltenwerte zu liefern oder gespeicherte Prozeduren auszuführen, wie es die APIs der Klasse CwDBConnection können.
Sie können diese Aufgabe auch einfacher über Java-Code als über eine Datenbankabfrage erfüllen, indem Sie Steuerstrukturen wie die Anweisungen "if/else" und "switch/case" verwenden. Wägen Sie die nachfolgenden Vor- und Nachteile der verschiedenen Vorgehensweisen ab, und entscheiden Sie sich je nach Situation für eine bestimmte Variante:
Einige Kunden möchten, dass persistente Daten zum Betrieb des Systems für Geschäftsintegration verfügbar sind, indem Daten dauerhaft in einer Datenbank gespeichert werden, so dass sie auch zu späteren Zeitpunkten jederzeit zur Fehlerbehebung oder Protokollanalyse herangezogen werden können.
Gehen Sie wie folgt vor, um diese Anforderung zu erfüllen:
Um diese Anforderung zu erfüllen, müssen im Allgemeinen persistente Daten in dem von der Collaboration verarbeiteten Geschäftsobjekt verwendet werden (z. B. der Primärschlüssel der zu verarbeitenden Einheit), oder Daten zum System selbst (z. B. die erfolgreiche Verarbeitung einer Geschäftsobjektanforderung). Über die Funktion "Geschäftsobjektsonde" können Sie sicherstellen, dass Geschäftsobjektdaten wie Primärschlüsselwerte persistent gespeichert werden. Informationen hierzu können Sie dem Collaboration Development Guide entnehmen.