Liberty:Datenbanktransaktion wiederherstellen
Wenn der Liberty-Transaktionsmanager unbestätigte Datenbanktransaktionen wiederherstellt, verwendet er entweder die eindeutige ID oder den JNDI-Namen, um das aktuelle dataSource-Element zu lokalisieren. Anschließend ermittelt er die Benutzer-ID und das Kennwort für die Wiederherstellung.
Konfigurieren Sie eine Datenquelle, indem Sie die Attribute des Elements dataSource in der Konfigurationsdatei server.xml angeben. Sie können der Datenquelle wie folgt eine eindeutige ID oder ein Attribut des Typs jndiName zuordnen:
<dataSource id="ds1" jndiName="jdbc/ds1"... />
Sie dürfen den Wert des Attributs id bzw. jndiName nicht ändern, wenn die Wiederherstellung einer Transaktion ansteht, an der die Datenquelle beteiligt ist. Wenn Sie andere Attribute des Elements dataSource ändern, werden diese Änderungen für die Wiederherstellung beibehalten. So können Sie beispielsweise, ein Attribut recoveryAuthDataRef hinzuzufügen, mit dem Sie eine Datenbankbenutzer-ID und ein Kennwort für die Wiederherstellung angeben können.
- Wenn für das Element dataSource das Attribut
recoveryAuthDataRef definiert ist,
werden die Benutzer-ID und das Kennwort aus dem Element
authData verwendet. Beispiel:
<authData id="recoveryAuth" user="dbuser1" password="{xor}Oz0vKDtu"/> <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" recoveryAuthDataRef="recoveryAuth" .../>
- Bei der Verwendung der containergesteuerten Authentifizierung
werden die Benutzer-ID und das Kennwort aus dem containergesteuerten Authentifizierungsalias verwendet. Beispiel:
- Die Datei
ibm-web-bnd.xml enthält den folgenden Code:
<resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1"> <authentication-alias name="user1Auth"/> </resource-ref>
- In der Datei
server.xml müssen Sie den folgenden Code definieren:
<authData id="user1Auth" user="dbuser1" password="{xor}Oz0vKDtu"/> <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" .../>
- Die Datei
ibm-web-bnd.xml enthält den folgenden Code:
- Die Benutzer-ID und das Kennwort aus
dem Element dataSource werden verwendet. Beispiel:
<dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" ...> <properties.db2.jcc databaseName="testdb" user="dbuser1" password="{xor}Oz0vKDtu"/> </dataSource>
- Wird keine dieser Bedingungen erfüllt und wird die Wiederherstellung ohne Benutzer-ID und Kennwort durchgeführt, dann wird das Verhalten vom JDBC-Treiber und der Datenbank bestimmt.