批处理远程过程调用数

批处理允许客户机向服务器发送任意大序列的调用消息。 批处理通常使用可靠的字节流协议 (如 TCP/IP) 进行传输。 批处理时,客户机从不等待来自服务器的应答,并且服务器不会发送对批处理请求的应答。 通常,批处理调用序列应由合法的非批处理 RPC 终止,以清空管道。

RPC 体系结构设计为使客户机发送调用消息,然后等待服务器应答调用成功。 这意味着客户机在服务器处理调用时不计算。 但是,对于发送的每条消息,客户机可能不需要或不需要应答。 因此,客户机可以使用 RPC 批处理工具在等待响应时继续计算。

批处理可以被认为是将 RPC 消息放置在对所需服务器的调用的管道中。 批处理假定如下:

  • 管道中的每个远程过程调用都不需要来自服务器的响应,并且服务器不会发送响应消息。
  • 调用管道在可靠的字节流传输 (例如 TCP/IP) 上传输。

要使客户机使用批处理,客户机必须在基于 TCP/IP 的传输上执行远程过程调用。 批处理调用必须具有以下属性:

  • 生成的 XDR 例程必须为 0 (空)。
  • 远程过程调用的超时必须为 0。

由于服务器未发送任何消息,因此不会通知客户机发生任何故障。 因此,客户机必须处理自己的错误。

由于服务器不响应每个调用,因此客户机可以生成与服务器执行先前调用并行运行的新调用。 此外, TCP/IP 实现可以缓冲许多调用消息,并使用一个 write 子例程将它们发送到服务器。 此重叠执行将减少客户机和服务器进程的进程间通信开销以及一系列调用的总耗用时间。 对批处理调用进行缓冲,因此客户机最终应执行非批处理远程过程调用,以清空具有肯定应答的管道。