HTTP and SOAP Provider::WSDLRequestWithNoRollback


Sends Simple Object Access Protocol (SOAP) requests in Web Services Descriptor Language (WSDL) to COM objects on remote servers. This procedure supports requests such as queries that do not require rollback in the event of a failure. (A related procedure, WSDLRequest, provides rollback for requests that perform updates.) Used by Microsoft® Provisioning Framework (MPF).

XML Input Schema

The following code fragment shows the format for sending data to this procedure. For more information on individual elements and attributes, see the Elements and Attributes table.

<executeData>1..1
  <requestInfo>1..1
	<wsdlFile>1..1</wsdlFile>
	<method>1..1</method>
	<parameters>1..1
	<parameter arrayType=".." isXML="..">0..unbounded</parameter>
	</parameters>
	<serviceName>0..1</serviceName>
	<port>0..1</port>
	<wsmlFile>0..1</wsmlFile>
	<userName>0..1</userName>
	<password>0..1</password>
	<retryTimes>0..1</retryTimes>
	<receiveTimeout>0..1</receiveTimeout>
	<connectionExclusionInterval>0..1</connectionExclusionInterval>
	<codePageAutoDetect>0..1</codePageAutoDetect/>
	<codePage>0..1</codePage>
	<errorCodePath>0..1</errorCodePath>
	<returnValue isXML="..">0..1</returnValue>
  </requestInfo>
</executeData>

XML Output Schema

The following code fragment shows the format for data this procedure returns. For more information on individual elements and attributes, see the Elements and Attributes table.

<executeData>1..1
  <requestInfo>1..1</requestInfo>
	<parameters>1..1
	<parameter arrayType=".." isXML="..">0..unbounded</parameter>
	</parameters>
	<returnValue arrayType=".." isXML="..">1..1</returnValue>
  </requestInfo>
</executeData>

Elements and Attributes

The following table describes the XML elements and attributes. Unless otherwise indicated, the data type is string.

Element Description, relationships, and attributes
codePage Description:
Specifies the code page of the request.

By default, the provider assumes that incoming HTTP is encoded as UTF-8. If it is, the provider automatically converts the HTTP to Unicode.

If the incoming stream is not UTF-8, you will have faster performance if you specify the codePage value (for example, "932" for Japanese). Alternately, you can set the provider to scan for the code page (codePageAutoDetect = 1), but this will slow down performance.  

If the auto-detect is used, you can still specify a codePage value as a backup in case the auto-detect fails.

Parent:
RequestInfo

codePageAutoDetect Description:
Boolean that determines whether the provider automatically detects the code page for the request.

0 (default): The provider does not automatically detect the code page.
1: The provider invokes mlang.dll to scan the incoming HTTP stream and convert it to Unicode.

By default, the provider assumes that incoming HTTP is encoded as UTF-8. If it is, the provider automatically converts the HTTP to Unicode, and there is no need to specify a value for codePageAutoDetect.

If the incoming stream is not UTF-8, you can set the provider to scan for the code page (codePageAutoDetect = 1), but note that this will slow down performance. You will have better performance if you specify the code page (for example, for Japanese, set codePage to "932"). 

If the auto-detect fails, the provider looks for a codePage value; if it does not find one, it converts the HTTP to UTF-8, then to Unicode.

Parent:
requestInfo

connectionExclusionInterval Description:
UI4 that specifies the interval (milliseconds) for re-attempting a failed connection with a server. 

Whenever the provider cannot successfully send requests to a server, it immediately places the server on a bad server list and returns an error to indicate that the remote service is currently unavailable. At periodic intervals (for example, every 50000 milliseconds), the provider re-attempts the connection.

This option mimimizes unnecessary resource consumption of network bandwidth, CPU cycles, and other system resources during a failure. It also enables the provider to generate a more immediate error to alert the caller that the server is not available.

If no value is specified in the request for connectionExclusionInterval, the provider uses the value for the ConnectionExclusionInterval registry key, defined in \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning\Providers\MPFSoapProv.

Note: The provider lists a server only for the provisioning engine that executes the provider. Other engines will not list the server unless they also fail to execute requests against it.

Parents:
requestInfo

errorCodePath Description:
Instead of returning an HRESULT based on the faultcode, a custom XML path such as "detail/ErrorCode" can be used to specify where to get the HRESULT within the soap:Fault node.

Parents:
requestInfo

executeData Description:
Element that encapsulates the procedure's input and output data.

Children:
requestInfo (minOccurs="1" maxOccurs="1", input and output)

method Description:
Name of the method to invoke in the COM object.

Parent:
requestInfo

parameters Description:
Encapsulates input and output data for the request. 

Parent:
requestInfo (input and output)

Child:
parameter (minOccurs="0" maxOccurs="*", input and output)

parameter Description:
Optional input/output element.

If the parameter has multiple values, specify them using value nodes. The following example sends the method a VARIANT array of size two in which each VARIANT contains an integer.

<parameter>
  <value xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="int">1</value>
  <value xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="int">2</value>
</parameter>

To send XML as a string, specify isXML ="1". The next example sends the string value <rootNode><value>1</value><value>2</value></rootNode>.

<parameter isXML="1">
  <rootNode>
	<value>1</value>
	<value>2</value>
  </rootNode>
</parameter>

Parent:
parameters

Attributes:

arrayType Optional. Indicates that the parameter is an array and specifies the data type for all elements. If arrayType is not specified and there are multiple values, the default is "anyType," which means an array of VARIANT. On output, this attribute is either set to the array type or removed (if the response is not an array).
isXML Optional. On input, if parameter contains well-formed XML, the method converts it to a string; otherwise, the provider fails the request. On output, if the response is well-formed XML, the method places this XML under the parameter element; otherwise, it removes the isXML attribute and returns the value in the response format.
password Description:
User password that the Web server accepts for basic authentication.

Parents:
requestInfo, rollbackInfo

Maximum Length:
128

port Description:
Name of the port in the WSDL file that contains the operation specified in the SOAP request. If this parameter is missing, null, or an empty string, the provider uses the first port in the specified service (serviceName node) when initializing the SOAP client.

Parent:
requestInfo

receiveTimeout Description:
UI4 that specifies the timeout interval in milliseconds. If the Web server does not return a response within the specified interval, the provider automatically retries the request.  If the Web server does not return a response the second time within the specified interval, the provider generates a timeout error.  If the retryTimes element is specified, that is the number of pairs of requests that will be attempted.

The minimum value allowed is 1,000 and the maximum is 3,600,000. If a value outside this range is specified, the provider will fail with error c5000003. The default is 30,000.

Parents:
requestInfo

requestInfo Description:
Encapsulates the information the provider uses to send the WSDL request.

Parent:
executeData

Children:
method (minOccurs="1" maxOccurs="1", input only)
parameters
(minOccurs="1" maxOccurs="1", input and output)
port
(minOccurs="1" maxOccurs="1", input only)
returnValue
(minOccurs="1" maxOccurs="1", input only)
serviceName
(minOccurs="1" maxOccurs="1", input only)
wsdlFile
(minOccurs="1" maxOccurs="1", input only)
wsmlFile (minOccurs="1" maxOccurs="1", input only)

retryTimes Description:
UI4 that specifies the number of times the provider attempts to resend the provisioning request whenever it experiences difficulty establishing a connection to the Web server. A lower protocol layer already performs one retry, so the retryTimes element actually specifies how many extra pairs of retry attempts to perform.

Parents:
requestInfo

returnValue Description:
Value returned by the WSDL request. The element is created if not already there. The isXML attribute determines the format for the returned value.

Parent:
requestInfo

Attributes:
arrayType Optional, output only. Specifies that the returned value is an array and specifies the data type for all elements. This attribute is either set to the array type or removed (if the response is not an array).
isXML Optional. If specified and the response is well-formed XML, the method places the XML under the returnValue element; otherwise, it removes the isXML attribute and returns the value in the response format.
serviceName Description:
Service in the WSDL file that contains the operation specified in the SOAP request. If this parameter is missing, null, or an empty string, the provider uses the first service in the specified WSDL file (wsdlFile node) when initializing the SOAP client.

Parent:
requestInfo

userName Description:
User name that the Web server accepts for basic authentication.

Parents:
requestInfo

Maximum Length:
128

wsdlFile Description:
URL of the WSDL file that describes the services offered by the server.

If the WSDL URL uses the HTTPS protocol then the POST URLs in the WSDL file must also use the HTTPS protocol.

Parent:
requestInfo

wsmlFile Description:
URL of a Web Services Meta Language (WSML) file. Required only when using custom type mappers to convert between XML and COM data types.  

Parent:
requestInfo

Remarks

The following sample request XML describes a method call for a sample COM object. For detailed instructions on setting up DocSample1, refer to the MSDN® topic "Using a High Level API for SOAP Messages."

<request>
  <procedure>
	<execute namespace='HTTP and SOAP Provider' procedure='WSDLRequestWithNoRollback'>
	<executeData>
		<requestInfo>
		<wsdlFile>http://localhost/DocSample1/DocSample1.wsdl</wsdlFile>
		<method>AddNumbers</method>
		<parameters>
		<parameter xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="int">2</parameter>
		<parameter xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="int">3</parameter>
		</parameters>
		</requestInfo>
	</executeData>
	<after source='executeData' sourcePath='requestInfo/returnValue' destination='data'/> 
	</execute>
  </procedure>
</request>

The response XML for the above example would be as follows.

<response>
  <data>
	<returnValue>5</returnValue>
  </data>
</response>

See Also

HTTP and SOAP Provider


Up Top of Page
© 1999-2002 Microsoft Corporation. All rights reserved.