美文网首页
第九章 使用进程私有全局变量来支持非常大的消息

第九章 使用进程私有全局变量来支持非常大的消息

作者: Cache技术分享 | 来源:发表于2024-07-30 07:57 被阅读0次

第九章 使用进程私有全局变量来支持非常大的消息

使用进程私有全局变量来支持非常大的消息

默认情况下、 Web 服务在解析请求或响应时通常使用本地数组内存。可以强制它改用进程私有全局变量;这使 Web 服务能够处理非常大的消息。

为此,请指定 Web 服务类的 USEPPGHANDLER 参数,如下所示:

Parameter USEPPGHANDLER = 1;

如果此参数为 1,则 Web 服务在解析请求或响应时始终使用进程私有全局变量。如果此参数为 0,则 Web 服务始终使用本地数组内存来实现这些目的。如果未设置此参数,则 Web 服务使用默认值,通常是本地数组内存。

自定义 Web 服务的回调

可以通过覆盖其回调方法来定制 Web 服务的行为:

OnRequestMessage()

如果没有安全错误,则在 Web 服务收到请求消息时调用;如果出现安全错误,则不会调用此回调。系统在执行安全处理、检查信封是否有错误以及处理 WS-Addressing 标头中指定的操作(如果有)后调用此回调。此回调对于记录原始 SOAP 请求等任务很有用。

此方法具有以下签名:

Method OnRequestMessage(mode As %String, action As %String, request As %Stream.Object)

其中:

  • mode 指定 SOAP 请求的类型。该类型为“SOAP”“binary”
  • action 包含 SOAPAction 标头的值。
  • 请求以流的形式包含 SOAP 请求消息。

此方法可以使用对象 %request,它是 %CSP.Session 实例。在此对象中:

  • Content 属性包含原始请求消息。
  • NextMimeData() 实例方法使能够检索单个 MIME 部分(如果这是一个 MIME SOAP 请求)。

此方法还可以使用 Web 服务实例的属性。初始化期间设置以下属性:

  • ImportHandler 属性包含已解析的 SOAP 请求消息的 DOM
  • SecurityIn 属性包含 WS-Security 标头元素。有关详细信息,请参阅保护 Web 服务。
  • SecurityNamespace 属性包含 WS-Security 标头元素的命名空间。
  • 如果生成了 SOAP 错误,则会设置 SoapFault 属性。

要在 OnRequestMessage() 中返回错误,请设置 SoapFault 属性。不要调用 ReturnFault() 方法。

OnPreWebMethod()

在执行 Web 方法之前调用;默认情况下不执行任何操作。此方法不接受任何参数,也不能返回任何值。因此,此方法无法更改 Web 服务的执行,除非以与 Web 方法相同的方式返回 SOAP 错误。

此方法可以使用 %request%sessionWeb 服务属性。请注意,Web 服务的 MsgClass 属性是包含 Web 方法参数的消息描述符类。

OnPostWebMethod()

在执行 Web 方法后立即调用;默认情况下不执行任何操作。此方法不接受任何参数,也不能返回任何值。因此,此方法无法更改 Web 方法的执行或返回值。自定义此方法主要是为了清理 OnPreWebMethod() 创建的必需结构。

相关文章

  • 第四十六章 Caché 变量大全 ^$GLOBAL 变量

    第四十六章 Caché 变量大全 ^$GLOBAL 变量 提供有关全局变量和进程私有全局变量的信息。 大纲 参数 ...

  • 基于Messenger跨进程通信

    作用 项目需现实推送消息的Service放入私有进程:push,找一种思路实现push来的消息由:push到:Ma...

  • IPC、Binder机制

    开启进程的方式:使用 android:process 。进程名以":"开头的进程属于当前应用的私有进程。 多进程会...

  • Azalea\Session

    Session 会话类 不建议直接使用 $_SESSION 超全局变量 ⚠️ Session 构造函数已私有,无法...

  • 第九章 使用日志监控 - 系统监控工具

    第九章 使用日志监控 - 系统监控工具 日志监控器监控 数据平台实例的消息日志,以查找守护程序和用户进程报告的错误...

  • JS设计模式三:模块模式

    模块模式简述 模块模式是为单例模式添加私有变量和私有方法,并减少全局变量的使用;如下就是一个模块模式的代码结构: ...

  • 关于私有作用域的预解释

    如何区分私有变量还是全局变量: 在全局作用域下,预解释的时候,声明的变量是全局变量。 在"私有作用域中声明的变量"...

  • Java并行

    并行的2个模型 共享内存 消息通信 进程和线程的区别 进程拥有私有的内存区域(现代处理器可以使得进程有共享的内存区...

  • 浅谈js的作用域

    1、如何区分私有变量和全局变量 (1).在全局作用域下声明(预解释的时候)的变量是全局变量;(2).在私有作用域中...

  • Python多进程multiprocessing模块介绍

    multiprocessing 是一个支持使用与 threading 模块类似的 API 来产生进程的包。 mul...

网友评论

      本文标题:第九章 使用进程私有全局变量来支持非常大的消息

      本文链接:https://www.haomeiwen.com/subject/jozwhjtx.html