XML for Analysis 规范[16]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 angelgavin 的 blog


下面是一个失败的方法调用的 soap 错误示例:

<?xml version="1.0"?>
 <soap-env:envelope
  xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
  soap-env:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
  <soap-env:fault>
  <faultcode>xmlanalysiserror.0x80000005</faultcode>
  <faultstring>xml for analysis 提供程序遇到错误</faultstring>
  <faultactor>xml for analysis provider</faultactor>
  <detail>
   <faultstring>
    <error
    errorcode="2147483653"
    description="出现意外的错误。"
    source="xml for analysis provider"
    helpfile=""
    />
   </faultstring>
  </detail>
 </soap-env:fault>
</soap-env:envelope>

xml for analysis 中对有状态的支持

默认情况下,xml for analysis 是无状态的。(无状态是这样一种情况,即服务器在完成方法调用后不记住客户端的标识或上下文)。为了支持有状态(即服务器在两次方法调用之间保留客户端标识和上下文的情况),为提供程序提供了对会话的支持。对于一系列应一起执行的语句,会话非常有用。示例之一就是创建将在后继查询中使用的已计算成员。

提供程序对会话的支持是可选的。客户端可以通过用 discover 方法检查 xml for analysis 属性 statesupport 的值来测试支持。使状态发生的最小值为 sessions。有关 statesupport 属性的详细信息,请参见 xml for analysis 属性

通常,会话遵从 ole db 规范所规定的行为,如下所示:

  • 会话定义事务和命令上下文的范围。

  • 多个命令可以在单个会话的上下文中执行。

  • 对 xml for analysis 上下文中事务的支持是通过用 execute 方法发送的提供程序特定命令来处理的。

xml for analysis 定义了一种支持 web 环境中的状态(会话)的方法,其模式与分布式创作和版本控制 (distributed authoring and versioning, dav) 协议使用的方法类似,以实现在松散耦合环境中的锁定。在提供程序可以出于各种原因(如超时或连接错误)使会话过期这一方面,此规范与 dav 相似。这也意味着 web 服务必须识别并准备好处理已中断且必须重新开始的各组命令。

soap 规范建议使用 soap 标头在 soap 消息的顶部构建新协议。下表列出了 xml for analysis 为初始化、维护和关闭会话而定义的 soap 标头元素和特性。

soap 标头 说明
beginsession 请求提供程序创建新会话。提供程序应通过构造新会话并返回该会话 id 作为 soap 响应中 session 标头的一部分来进行响应。
sessionid 值区域包含会话 id。在会话的其余部分中,每次方法调用都必须使用此 id。提供程序在 soap 响应中发送此标记,并且客户端也必须在每个 session 标头元素中发送此特性。
session 对于每个要在会话中发生的方法调用,必须使用此标头,并且必须在标头的值区域中包括会话 id。
endsession 要终止会话,请使用此标头。值区域中必须包括会话 id。

本文关键:XML for Analysis 规范
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top