Zugriff auf Datenbanken über den im JavaCompute-Knoten enthaltenen Java-Code.
Die Datenbanken, auf die Sie mittels MbSQLStatement zugreifen, können an global koordinierten Transaktionen teilnehmen. Bei allen anderen Optionen ist die globale Koordination des Datenbankzugriffs nicht möglich.
Die MbSQLStatement stellt mittels ESQL oder ODBC vollständigen transaktionalen Datenbankzugriff bereit. Bei Verwendung von MbSQLStatement koordiniert der Ressourcenmanager des Brokers den Datenbankzugriff. Die globale Koordination wird auf verteilten Plattformen von WebSphere MQ und unter z/OS von RRS bereitgestellt. Informationen zum Einrichten der erforderlichen ODBC-Ressourcen finden Sie im Abschnitt ODBC-Verbindungen zu den Datenbanken herstellen.
MbMessage newMsg = new MbMessage(assembly.getMessage()); MbMessageAssembly newAssembly = new MbMessageAssembly(assembly, newMsg); String table = "dbTable"; MbSQLStatement state = createSQLStatement( "dbName", "SET OutputRoot.XMLNS.integer[] = PASSTHRU('SELECT * FROM " + table + "');" ); state.setThrowExceptionOnDatabaseError(false); state.setTreatWarningsAsErrors(true); state.select( assembly, newAssembly ); int sqlCode = state.getSQLCode(); if(sqlCode != 0) { // Fehlerbehandlung hier ausführen } getOutputTerminal("out").propagate(assembly);
Im Code, den Sie für Ihre JavaCompute-Knoten schreiben, können Sie auf Java-Standard-APIs einschließlich JDBC-Aufrufe zugreifen. Zum Herstellen der Verbindung mit einer Datenbank, zum Lesen aus oder Schreiben in eine Datenbank und zum Trennen einer Datenbankverbindung können Sie daher JDBC-APIs verwenden. Der Broker erlaubt in Ihrem JDBC-Verbindungscode sowohl den Aufruf von Typ-2-JDBC-Treibern als auch den Aufruf von Typ-4-JDBC-Treibern in dieser Umgebung, stellt diese Treiber allerdings nicht bereit. Sie erhalten diese Treiber von Ihrem Datenbankhersteller.
Bei dieser Datenbankzugriffsmethode bietet der Broker keinerlei Unterstützung für die Transaktionsverwaltung. Das bedeutet, dass die Verwaltung des lokalen Commits und Rollbacks von Datenbankänderungen in Ihrem Code integriert sein muss. Auch die Verbindungsdauer, die Thread-Affinität der Verbindungen und das Verbindungspooling müssen vom Code verwaltet werden. Darüberhinaus müssen Sie bei Verwendung dieser Methode den Zugriff auf die Datenbanken überwachen, um sicherzustellen, dass sich die vom Broker hergestellten Verbindungen und Ihre eigenen Verbindungen nicht gegenseitig beeinträchtigen. Beachten Sie in diesem Zusammenhang, dass Typ-2-Treiber zu einer ODBC-Verbindung überbrückt werden, die eventuell in Nachrichtenflüssen verwendet wird, deren Datenbankzugriff über ESQL erfolgt.