Sie können Web-Services Parameter hinzufügen, die optionalen Eigenschaften innerhalb einer unterstützten Datenbank festlegen, für die ein Web-Service Operationen ausführt. Außerdem können Sie Parameter hinzufügen, die optionalen Eigenschaften der Verbindungen zwischen dem Web-Service und der Datenbank festlegen. Sie können diese Parameter standardmäßig den Web-Services hinzufügen, die Sie innerhalb eines Datenentwicklungsprojekts erstellen, oder Sie können sie hinzufügen, wenn Sie einzelne Web-Services implementieren.
Informationen zu diesem Vorgang
Sie können zusätzliche Steuer- oder Prüfinformationen an Web-Services übergeben, indem Sie weitere Web-Service-Parameter angeben und anschließend Werte für diese Parameter übergeben. Sie können die Parameter in der Tabelle Parameter auf der Seite Web-Services des Fensters Eigenschaften für Ihr Projekt oder im Assistenten Web-Service implementieren angeben.
Es gibt drei verschiedene Methoden, mit denen Sie Werte für die zusätzlichen Parameter übergeben können:
- Angeben der Werte direkt in der Tabelle Parameter
- Angeben der Werte in SOAP-Nachrichtenheadern, falls Clientanwendungen SOAP/HTTP-Nachrichten an die Web-Services senden
- Angeben der Werte in HTTP-Steuerparametern, falls Clientanwendungen REST-ähnliche Nachrichten an die Web-Services senden
Übergebene Werte werden nur auf die Operation angewendet, die die Nachricht anfordert. Sie gelten nicht für mehr als eine Nachricht oder Operation.
Vorgehensweise
Gehen Sie wie folgt vor, um den Web-Services Parameter hinzuzufügen:
- Entscheiden Sie, welche Steuerparameter hinzugefügt werden sollen, und legen Sie die gewünschten Werte für die Parameter fest.
- Parameter für die Übergabe von Überwachungsinformationen zum DB2-Datenbankclient
- connection.jcc.clientAccountingInformation
- connection.jcc.clientUser
- connection.jcc.clientProgramName
- connection.jcc.clientWorkstation
Über die Links im Abschnitt Zugehörige Informationen am Ende dieses Themas erhalten Sie Beschreibungen zu diesen Parametern. Wenn Sie einen Link aufrufen, können Sie den gewünschten Parameter durch Suchen nach seinem dritten Namensteil finden.
Lautet der Parameter z. B. connection.jcc.clientUser, suchen Sie mit clientUser nach dem Parameter.
- Parameter für die Übergabe von Verbindungsinformationen
- connection.stmt.maxRows
- Gibt die maximale Anzahl der Zeilen an, die für eine Ergebnismenge zurückgegeben werden sollen.
- connection.stmt.queryTimeout
- Gibt die Anzahl an Sekunden an, die der JDBC-Treiber auf die Ausführung der Anweisung in der Datenbank warten soll. Wenn die Anweisung nicht innerhalb des angegebenen Zeitraums ausgeführt wird, wird die Verbindung aufgehoben.
- Parameter für die Angabe des Nachrichtenausgabeformats
- outputFormat
- Eine Beschreibung dieses Steuerparameters finden Sie in Nachrichtenausgabeformate.
- Wenn Sie einen Web-Server mit Apache Tomcat verwenden, setzt Ihre Ressourcendefinition den Parameter accessToUnderlyingConnectionAllowed auf true. Verwenden Sie z. B. die Beispieldatenbank, die mit DB2 for Linux®, UNIX® and Windows® geliefert wird, würde Ihre Ressourcendefinition der folgenden ähneln. Der Parameter accessToUnderlyingConnectionAllowed ist fett hervorgehoben.
<Resource driverClassName="com.ibm.db2.jcc.DB2Driver"
maxActive="4"
maxIdle="2"
maxWait="5000"
name="jdbc/sample"
password="password"
type="javax.sql.DataSource"
url="jdbc:db2://localhost:50000/sample"
username="userID"
validationQuery="select * from employee"
accessToUnderlyingConnectionAllowed="true"/>
- Öffnen Sie das Fenster Eigenschaften für ein Datenentwicklungsprojekt oder den Assistenten Web-Service implementieren.
Option |
Bezeichnung |
Gehen Sie wie folgt vor, um die Parameter jedem Web-Service in einem Datenentwicklungsprojekt hinzuzufügen: |
- Klicken Sie mit der rechten Maustaste auf den Projektknoten und wählen Sie Eigenschaften aus.
- Wählen Sie Web-Services im Fenster Eigenschaften aus.
|
Gehen Sie wie folgt vor, um die Parameter nur einem Web-Service hinzuzufügen, den Sie implementieren wollen: |
- Klicken Sie in einem Datenentwicklungsprojekt mit der rechten Maustaste auf den Web-Service
und wählen Sie anschließend Erstellen und implementieren aus.
|
- Führen Sie für jeden Parameter die folgenden Schritte aus:
- Klicken Sie rechts neben der Tabelle Parameter auf Neu. Eine bearbeitbare Zeile wird in der Tabelle angezeigt.
- Geben Sie den Namen des Parameters in die Spalte Name der bearbeitbaren Zeile ein.
- Wenn der Wert des Parameters jedes Mal verwendet werden soll, wenn ein Web-Service eine Operation in der Datenbank ausführt, geben Sie den Wert des Parameters in die Spalte Wert ein. Beginnt der Parametername mit dem Präfix service müssen Sie den Wert angeben.
- Wenn Sie den Wert im Header von SOAP-Nachrichten oder in einem HTTP-Steuerparameter von REST-Nachrichten angeben wollen, lassen Sie die Spalte Wert leer.
Beispiel
Angenommen, Sie wollen die Datenbankverbindungseigenschaft clientUser für alle Web-Services in Ihrem Datenentwicklungsprojekt festlegen. Dann klicken Sie mit der rechten Maustaste auf den Projektknoten und wählen Sie Eigenschaften aus. Wählen Sie Web-Services im Fenster Eigenschaften aus. Klicken Sie auf der Seite Web-Services neben der Tabelle Parameter auf Neu, um der Tabelle eine Zeile hinzuzufügen. Geben Sie connection.jcc.clientUser in der Spalte Name der neuen Zeile ein.

Sie haben drei Möglichkeiten, den Wert für diesen Parameter bereitzustellen:
- Geben Sie den Wert in der Spalte Wert der neuen Zeile an. Die Web-Services wenden den Parameter und seinen Wert ausnahmslos auf alle Datenbankverbindungen an. Jeder Wert, der für diesen Parameter in einer Clientanwendung angegeben wird, wird ignoriert.
- Geben Sie den Wert im Header von SOAP/HTTP-Nachrichten an, die Clientanwendungen an die Web-Services senden.
Beispiel für generierten Code von Apache Axis 2 unter Verwendung des SOAP-Headers
package myClientTest;
import example.WebService2Stub;
public class getEmployee {
public static void main(String args[]) {
try {
// create the stub
WebService2Stub stub = new WebService2Stub("http://localhost:8000/WebService2/services/WebService2");
// create the request element for SOAP body
WebService2Stub.GetEmployee empRequest = new WebService2Stub.GetEmployee();
// fill request with employee number
empRequest.setEmpno("000130");
// create the Header for the request element
WebService2Stub.ConnectionProperties properties = new WebService2Stub.ConnectionProperties();
WebService2Stub.ConnectionPropertiesType propertiesType = new WebService2Stub.ConnectionPropertiesType();
properties.setConnectionProperties(propertiesType);
// fill the header with properties
WebService2Stub.Property_type0 property1 = new WebService2Stub.Property_type0();
property1.setName("connection.jcc.clientUser");
property1.setValue("heathr");
propertiesType.addProperty(property1);
WebService2Stub.GetEmployeeResponse response = stub.getEmployee(empRequest, properties);
//...
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
Es folgt die SOAP-Anforderung, die vom Code generiert wird:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<ns1:connectionProperties xmlns:ns1="urn:example">
<property name="connection.jcc.clientUser" value="heathr"/>
</ns1:connectionProperties>
</soapenv:Header>
<soapenv:Body>
<ns1:getEmployee xmlns:ns1="urn:example">
<empno>000130</empno>
</ns1:getEmployee>
</soapenv:Body>
</soapenv:Envelope>
- Geben Sie den Wert in einem HTTP-Steuerparameter von REST-ähnlichen Nachrichten an, die Clientanwendungen an die Web-Services senden. In der URL einer REST-Nachricht wird ein HTTP-Steuerparameter durch ein vorangestelltes Unterstreichungszeichen gekennzeichnet.
Die folgende Eingabenachricht verwendet ein REST-ähnliches HTTP GET (url-encoded):
GET /Project1WebService2/rest/WebService2/getEmployee?empno=000130&_connection.jcc.clientUser=heathr HTTP/1.1
User-Agent: Java/1.5.0
Host: localhost:8070
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-type: application/x-www-form-urlencoded
Die Ergebnis-URL für die Anforderung sieht folgendermaßen aus. Diese URL kann in allen HTTP-Bindungen verwendet werden.
http://localhost:8080/Project1WebService2/rest/WebService2/getEmployee?empno=000130&_connection.jcc.clientUser=heathr