Benutzerdatenbanken enthalten Geschäftsdaten, die von implementierten Nachrichtenflüssen geschrieben wurden und auf die von solchen Nachrichtenflüssen zugegriffen wird. Sie müssen über ODBC oder JDBC Verbindungen vom Broker zur Benutzerdatenbank einrichten.
ODBC-Verbindungen mit der Datenbank werden intern vom Broker verwaltet, weshalb die vom ODBC-Treiber bereitgestellten konfigurierbaren Verbindungspooling-Optionen nicht verwendet werden sollten.
Der Broker erfordert eine Datenverbindung für jeden Datenquellennamen (DSN), auf den im Nachrichtenfluss verwiesen wird, selbst wenn verschiedene DSNs nach der Auflösung dieselbe physische Datenbank ansprechen. Wenn der Nachrichtenfluss im koordinierten Modus betrieben wird, ist außerdem eine separate XA-Verbindung zu jedem DSN, der am global koordinierten Nachrichtenfluss teilnimmt, erforderlich.
Die Anzahl der Verbindungen eines Brokers zu einer Datenbank hängt davon ab, wie viele Aktionen des Nachrichtenflusses auf die Datenbank zugreifen. Für jeden Nachrichtenfluss-Thread stellt ein Broker, der auf eine Benutzerdatenbank zugreift, eine einzige Verbindung für jeden Datenquellennamen (DSN) her. Wird der gleiche DSN von einem anderen Knoten desselben Threads verwendet, wird dieselbe Verbindung genutzt, außer es wird ein anderer Transaktionsmodus verwendet. In diesem Fall benötigen Sie eine weitere Verbindung. Weitere Informationen zu Transaktionen finden Sie unter Datenbankverbindungen für koordinierte Nachrichtenflüsse.
Normalerweise stellt der Broker die Verbindungen her, wenn er im Nachrichtenfluss darauf zugreifen muss. Bei Verbindungen zu ESQL-basierten Datenquellen können Sie die einleitende Verbindung jedoch herstellen, bevor ein Nachrichtenfluss eine Nachricht empfängt, und so jegliche Verbindungslatenz aus der Nachrichtenverarbeitung entfernen. Aktivieren Sie diese Option durch Auswahl der Eigenschaft Verbinden, bevor Fluss startet auf dem Datenquellenknoten.
Wenn der Nachrichtenfluss einen DatabaseInput-Knoten enthält, bleibt während der Ausführung des Nachrichtenflusses mindestens eine Datenbankverbindung offen.
Auf
Linux-, UNIX- und
Windows-Systemen werden Datenbankverbindungen unter folgenden
Umständen freigegeben:
Datenbankverbindungen, bei deren Start die Option Verbinden, bevor Fluss startet ausgewählt war, oder Datenbankverbindungen, die an global koordinierten (XA-)Transaktionen beteiligt sind, werden nicht freigegeben, wenn der Nachrichtenfluss inaktiv wird. Diese Verbindungstypen werden nur unter folgenden Umständen freigegeben:
Alle anderen Datenbankverbindungen bleiben geöffnet, bis eines der folgenden Ereignisse eintritt:
Unter z/OS werden Datenbankverbindungen für
global koordinierte Nachrichtenflüsse auch freigegeben, wenn eine Minute
lang nicht auf die Datenbank zugegriffen wurde.
mqsichangeproperties myBroker -e myExecutionGroup -o ComIbmDatabaseConnectionManager -n maxConnectionAge -v newValue
oder
verwenden Sie den folgenden Befehl, um die Standardzeit für alle Ausführungsgruppen zu
ändern:mqsichangeproperties myBroker -o ComIbmDatabaseConnectionManager -n maxConnectionAge -v newValue
Dabei
wird maxConnectionAge in Sekunden angegeben. Wenn
maxConnectionAge auf die Option -1 gesetzt wird, werden Datenbankverbindungen
erst freigegeben, wenn die Ausführungsgruppe oder der Broker gestoppt wird.Wenn Sie DB2 als Ihre Datenbank verwenden, wird die Anzahl gleichzeitig bestehender Verbindungen zu einer Datenbank auf den Wert des Konfigurationsparameters maxappls begrenzt. Der Standardwert für maxappls (Maximale Anzahl Anwendungen) ist 40. Wenn die Anzahl der für den Broker erforderlichen Verbindungen den Wert für maxappls (Maximale Anzahl Anwendungen) überschreitet, erhöhen Sie die Werte für diesen und den zugehörigen Parameter maxagents (Maximale Anzahl von Agenten) auf die Werte, die sich aus Ihren Berechnungen ergeben.
Unter z/OS ändert sich die Anzahl der Verbindungen nicht, wenn Sie ODBC-CAF-Verbindungen (Call Attachment Facility) oder RRSAF (Recoverable Resource Services Attachment Facility) verwenden. Weitere Informationen zur Anzahl der erforderlichen Verbindungen finden Sie im Abschnitt Sie wissen nicht, wie viele Datenbankverbindungen für einen Broker erforderlich sind.
Wenn Sie eine weitere Datenbank nutzen, finden Sie in der Dokumentation zu der Datenbank die Informationen zu Verbindungen und zu Begrenzungen oder Einschränkungen, die möglicherweise gelten.
Wenn ein Nachrichtenfluss inaktiv ist, gibt die Ausführungsgruppe in regelmäßigen Abständen Datenbankverbindungen frei, die nicht mit der Option Verbinden, bevor Fluss startet gestartet wurden. Deshalb spiegeln die vom Broker gehaltenen Verbindungen seine aktuelle Verwendung dieser Ressourcen wider. Dies gibt dem Broker die Möglichkeit zu reagieren, wenn eine Datenbank in den Wartemodus versetzt wird, sofern der Datenbankmanager das Versetzen in den Wartemodus unterstützt. Die Funktion zum Versetzen in den Wartemodus wird nicht von allen Datenbanken unterstützt, und nicht alle Datenbanken werden auf die gleiche Weise in den Wartemodus versetzt. Informationen über das Versetzen von Datenbanken in den Wartemodus finden Sie in der Dokumentation zu Ihrer Datenbank.