文章 姚 鑫 · 16 hr 前 阅读大约需 3 分钟 第三十八章 终端输入 输出 - USER命令 第三十八章 终端输入 输出 - USER命令 USER命令 使指定终端成为当前设备。在编程器模式下,同一行代码上的所有后续 I/O 命令都引用该设备。在应用程序模式下,您在USE命令中命名的设备将一直保留为当前设备,直到下一个USE命令为止。 USE 语法 USE命令采用以下参数: USE terminal:(margin:protocols:terminator):"mnespace" 终端参数可以是一个表达式,其值为终端设备的名称。零 (0) 是该进程的主要设备。 $IO是当前设备。终端的最大长度为 256 个字符。 参数由冒号 (:) 分隔。如果省略参数,则必须指定冒号。命令或其参数列表不得以冒号结束。 #InterSystems IRIS for Health 0 0 0 3
公告 Michael Lei · 十二月 1 开发者社区回顾, 十一月 2024 您好,欢迎阅读 十一月 2024 开发人员社区通讯。 统计信息 ✓ 十一月发布了 33 篇新帖子: – 30篇新文章 – 2个新公告 – 1个新问题 ✓ 十一月有 32 位新成员加入✓ 所有时间发布了 2,284 篇帖子✓ 所有时间有 2,071 位成员加入 #摘要 #开发者社区官方 0 0 0 4
文章 姚 鑫 · 十一月 30 阅读大约需 3 分钟 第三十七章 终端输入 输出 - $ZB 显示结束读取的内容 第三十七章 终端输入 输出 - $ZB 显示结束读取的内容 $ZB 显示结束读取的内容 $ZB显示当前设备上最后一次READ操作结束的字符序列或事件。不能设置$ZB ;每次执行READ时,IRIS 都会设置$ZB的值。可以使用此值来作用于不可打印的字符,例如向上箭头键或功能键。 $ZB可以包含以下任意内容: - 终止符,例如回车符 - 转义序列 - 固定长度READ x#y的字符数y - READ *x的单个字符 - 定时读取过期后出现空字符串 $ZB永远不会包含超过 64 个字符。较长的转义序列无效。 #InterSystems IRIS for Health 0 0 0 5
文章 姚 鑫 · 十一月 29 阅读大约需 2 分钟 第三十六章 终端输入 输出 - 开关控制 $X 的转义序列更新 第三十六章 终端输入 输出 - 开关控制 $X 的转义序列更新 开关控制 $X 的转义序列更新 要选择非默认行为来更新进程的$X ,请发出%SYSTEM.Process类的 DX( n )方法。 系统管理员可以通过类中设置 Config.Miscellaneous 的DX属性来更改系统范围的默认行为。 在这两种情况下, n 的值都在 0 到 4 之间,如下所示: #InterSystems IRIS for Health 0 0 0 4
文章 姚 鑫 · 十一月 28 阅读大约需 2 分钟 第三十五章 终端输入 输出 - 特殊变量显示 I O 条件 第三十五章 终端输入 输出 - 特殊变量显示 I O 条件 WRITE * and $X and $Y WRITE *不会更改$X和$Y。因此,可以将控制序列发送到终端, $X和$Y仍将反映真实的光标位置。某些控制序列确实会移动光标,因此可以在需要时直接设置$X或$Y 。 $X 和 $Y 示例 在以下示例中,控制序列将 VT100 终端中的光标移动到第 10 行、第 20 列,并相应地设置$X和$Y 。 #InterSystems IRIS for Health 1 0 0 7
文章 姚 鑫 · 十一月 27 阅读大约需 2 分钟 第三十四章 终端输入 输出 第三十四章 终端输入 输出 概述 ObjectScript 提供支持串行异步 ASCII 终端的命令。还可以将这些命令与控制台 I/O 结合使用。 使用终端 I/O,例程可以: #InterSystems IRIS for Health 0 0 0 6
文章 姚 鑫 · 十一月 26 阅读大约需 2 分钟 第三十三章 UDP 客户端 服务器通信 - IPv4 和 IPv6 第三十三章 UDP 客户端 服务器通信 - IPv4 和 IPv6 UDP 支持 IPv4 和 IPv6 互联网协议。由于这些协议不兼容,服务器和客户端都必须使用相同的Internet协议,否则传输将失败。 IPv4 地址具有以下格式。 n是 0 到 255 范围内的十进制整数: n.n.n.n 可以将 IPv4 协议指定为"0.0.0.0" 。 IPv6 地址具有以下完整格式。 h是一个具有四个十六进制数字的十六进制数: #InterSystems IRIS for Health 0 0 0 5
文章 姚 鑫 · 十一月 25 阅读大约需 3 分钟 第三十二章 UDP 客户端 服务器通信 第三十二章 UDP 客户端 服务器通信 本页介绍如何使用 UDP 在进程之间建立远程通信。 介绍 通过%Net.UDP来支持 UDP。此类提供以下方法: Send()数据包到指定的目的地和端口、 Recv()来自套接字的数据包以及Reply()发送器最后收到的数据包。 目标被标识为本地主机名或者 IPv4 或 IPv6 主机地址。该端口可以是指定的端口号或动态端口分配。 建立UDP套接字 要使用 UDP,必须使用%New()方法来创建 UDP 套接字对象。然后,该对象实例用于发送、接收和回复数据包传输。 创建 UDP 套接字对象时,可以指定端口号和主机地址,如下例所示: #InterSystems IRIS for Health 0 0 0 8
文章 姚 鑫 · 十一月 24 阅读大约需 5 分钟 第三十一章 TCP 高级主题 第三十一章 TCP 高级主题 本页讨论使用 TCP/IP 在 IRIS 数据平台进程之间进行通信的几个高级主题。 连接管理 服务器一次仅维护一个连接。如果在另一个连接打开时第二个客户端尝试连接,TCP/IP 会将该客户端放入队列中。在队列中时,第二个客户端可以向端口写入数据,就像已连接一样。第二个客户端写入的数据保留在缓冲区中,直到第一个连接关闭并且第二个客户端连接为止。 如果第二个客户端在连接存在之前发出READ,则会挂起。当第二个客户端在队列中时,第三个客户端的任何连接尝试都会失败。 如果已经打开 TCP 设备的客户端在第一个连接仍然存在时尝试第二次连接,则第二个OPEN命令会导致错误。将这种情况视为错误而不是USE命令可以防止出现意外的结果。如果错误的程序认为它已打开新连接,而实际上它正在重用可能具有不同目标或不同参数的现有连接,则可能会出现此类意外结果。 #InterSystems IRIS for Health 1 0 0 9
文章 姚 鑫 · 十一月 23 阅读大约需 2 分钟 第三十章 TCP 客户端 服务器通信 - 作业服务器资源 第三十章 TCP 客户端 服务器通信 - 作业服务器资源 作业服务器资源 如果正在编写一个IRIS服务器来与无法控制的客户端连接,则服务器进程必须发出CLOSE命令来关闭TCP连接。就 IRIS而言,CLOSE命令确实会关闭连接,但是在内部TCP/IP会在服务器上为这个连接保留最长两分钟的资源。 当jobserver用于为TCP/IP作业提供服务时,可能会产生意想不到的结果。当一个JOBSERVER进程执行暂停时,该进程立即返回到可用的JOBSERVER进程池,但其资源在内部保留最多两分钟。由于JOBSERVER进程是在第一个可用的基础上分配的,因此来自数量相对较少的客户机的重载可能会耗尽JOBSERVER进程的资源。 #InterSystems IRIS for Health 0 0 0 4
文章 姚 鑫 · 十一月 22 阅读大约需 2 分钟 第二十九章 TCP 客户端 服务器通信 - 记录的拼接 第二十九章 TCP 客户端 服务器通信 - 记录的拼接 记录的拼接 在某些情况下,TCP会将不同的记录连接在一起形成单个记录。如果客户端或服务器进程向一个由WRITE分隔的TCP端口发出一系列WRITE命令,则可能会发生串接!或用于刷新缓冲区的WRITE#命令,而不管读命令是否在连接的另一端等待。 #InterSystems IRIS for Health 0 0 0 8
文章 Louis Lu · 十一月 22 阅读大约需 1 分钟 设置Windows IIS 用于显示 HTTP 返回的错误详细信息 当我们将 InterSystems IRIS 安装在Windows 系列操作系统中时,往往同时使用IIS 作为其Web 服务器。 但这时候我们却发现,由RESTful返回的错误信息却不能正常显示出来了,特别是在调试程序的时候,非常不方便。 比如在测试 FHIR Post/Put 请求时,我们的请求消息体中包含不正确的内容,这时我可以看到返回的是HTTP 400 Bad Request的返回内容. 我无法具体知道请求消息体哪句出错了,这对我调试程序造成很大困扰。 解决方法: 1. 打开IIS的管理页面,双击 错误页 2. 选择右侧 编辑功能设置 #InterSystems IRIS 0 0 0 11
文章 姚 鑫 · 十一月 21 阅读大约需 2 分钟 第二十八章 TCP 客户端 服务器通信 - JOB命令示例 第二十八章 TCP 客户端 服务器通信 - JOB命令示例 JOB命令示例 以下示例显示了一个非常简单的并发服务器,只要它检测到来自客户端的连接,就会产生一个子作业。 JOB指定一个并发服务器位开关值(值16)并通过符号表(值1):16+1=17。 #InterSystems IRIS for Health 1 0 0 11
文章 姚 鑫 · 十一月 20 阅读大约需 3 分钟 第二十七章 TCP 客户端 服务器通信 - 连接管理 第二十七章 TCP 客户端 服务器通信 - 连接管理 连接管理 服务器一次只维护一个连接。如果第二个客户端在另一个连接打开时尝试连接,则 TCP/IP 将该客户端放入队列中。在队列中时,第二个客户端可以像已连接一样写入端口。第二个客户端写入的数据保留在缓冲区中,直到第一个连接关闭并且第二个客户端连接。 如果第二个客户端在连接存在之前发出 READ,它就会挂起。当第二个客户端在队列中时,第三个客户端的任何连接尝试都会失败。 如果已经打开 TCP 设备的客户端在第一个连接仍然存在时尝试第二次连接,则第二个 OPEN 命令会导致<COMMAND> 错误。将这种情况视为错误而不是 USE 命令可以防止出现意外结果。如果一个错误的程序认为它打开了一个新连接,而实际上它正在重用一个可能具有不同目标或不同参数的现有连接,则可能会出现这种意想不到的结果。 #InterSystems IRIS for Health 0 0 0 13
文章 姚 鑫 · 十一月 19 阅读大约需 2 分钟 第二十六章 TCP 客户端 服务器通信 - $ZB 和 READ 命令 第二十六章 TCP 客户端 服务器通信 - $ZB 和 READ 命令 $ZB 和 READ 命令 $ZB 保存终止读取的字符。该字符可以是以下之一: - 终止字符,例如回车 - 固定长度 READ x#y 的第 y 个字符 - READ *X 的单个字符 - 定时读取过期后的空字符串 - 转义序列 - 请注意,如果一个字符串以 CR LF 结尾,则只有 CR 会放在 $ZB 中。 TCP 设备的 WRITE 命令 在使用 OPEN 和 USE 建立连接后,WRITE 命令将数据从客户端或服务器发送到 TCP 设备。 语法如下: #InterSystems IRIS for Health 0 0 0 7
文章 姚 鑫 · 十一月 18 阅读大约需 2 分钟 第二十五章 TCP 客户端 服务器通信 - TCP 设备的 READ 命令 第二十五章 TCP 客户端 服务器通信 - TCP 设备的 READ 命令 TCP 设备的 READ 命令 从服务器或客户端发出 READ 命令以读取客户端或服务器设置的任何字符。 语法如下: READ var:timeout READ *var:timeout READ var#length:timeout 超时参数虽然是可选的,但强烈建议使用,因为如果指定了超时,则 READ 的成功或失败由 $TEST 特殊变量的值指示。如果在超时到期之前读取尝试成功,则 $TEST 设置为 1;如果超时到期,$TEST 设置为 0。 超时参数支持秒和秒的分数到 1/100 秒。例如,10、10.5、.5、.05。 #InterSystems IRIS 0 0 0 12
文章 姚 鑫 · 十一月 17 阅读大约需 3 分钟 第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备 第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备 当前 TCP 设备 可以使用 %SYSTEM.TCPDevice方法返回当前 TCP 设备的 IP 地址和端口号。可以使用 Help() 方法列出这些方法,如下所示: DO $SYSTEM.TCPDevice.Help() 可以通过在 Help() 中指定方法名称来显示有关特定方法的信息,如以下示例所示: #InterSystems IRIS for Health 0 0 0 14
文章 姚 鑫 · 十一月 15 阅读大约需 7 分钟 第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字 第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字 TCP设备的OPEN和USE命令关键字 可以使用位置参数(如上所述)或关键字参数。下表描述了使用OPEN和USE命令控制TCP设备的关键字。还有其他只能在OPEN命令中指定的OPEN-only关键字(本章稍后将描述)。所有关键字参数都是可选的。 #InterSystems IRIS for Health 0 0 0 13
文章 姚 鑫 · 十一月 14 阅读大约需 2 分钟 第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令 第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令 客户端OPEN命令 客户端OPEN命令与服务器端OPEN命令只有一个方面的不同:第一个设备参数必须指定要连接的主机。要指定主机,需要包括客户端识别为主机的名称或Internet地址。 一旦建立连接,OPEN开就会成功。此时,可以读取或写入该TCP设备。但是,如果连接的服务器端是另一个IRIS进程,则在使用WRITE命令将一些数据从客户端发送到服务器之前,服务器不会完成其连接端。因此,必须在发出任何读取命令之前发出写入命令。 客户端 OPEN 命令的一些示例是: #InterSystems IRIS for Health 0 0 0 8
文章 姚 鑫 · 十一月 13 阅读大约需 3 分钟 第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式) 第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式) 立即发送模式(Q 模式) 在立即发送模式下,每个 WRITE 命令都作为其自己的数据包输出。如果不使用立即发送模式,则必须包括终止符或发出命令 WRITE *–3 以输出数据包。 通过指定“Q”模式字符或/SENDIMMEDIATE(或/SEN)关键字参数进入此模式。要关闭此选项,请指定以下任一选项: USE TCPDEVICE:(/SEN=0) USE TCPDEVICE:(::"-Q") 要重新打开此选项,请指定以下任一选项: #InterSystems IRIS for Health 0 0 0 11
文章 姚 鑫 · 十一月 12 阅读大约需 3 分钟 第十九章 TCP 客户端 服务器通信 - 数据包模式 第十九章 TCP 客户端 服务器通信 - 数据包模式 数据包模式 如果未指定模式,则默认为数据包模式。如果流模式被禁用,则该模式默认为分组模式。 在分组模式中,只要有一些数据要返回,读取命令就会完成。数据包模式允许在输出缓冲区中构建整个TCP数据段,然后通过发出WRITE*-3或WRITE!命令。 如果在没有要发送的字符的情况下发出WRITE*-1来启动一个TCP发送操作,则会收到一个<WRITE>错误。如果发出WRITE OF空字符串,则会收到<COMMAND>错误。 在分组模式下可以发送的字符串的最大长度为1024个字符。如果在未刷新缓冲区的情况下超过此限制,则会收到<WRITE>错误。 #InterSystems IRIS for Health 0 0 0 9
文章 姚 鑫 · 十一月 11 阅读大约需 4 分钟 第十八章 TCP 客户端 服务器通信 - 使用OPEN命令 - Supported参数 第十八章 TCP 客户端 服务器通信 - 使用OPEN命令 - Supported参数 Supported 参数 parameters 参数可以是以下格式之一: hostname (hostname{:port{:mode{:terminators{:ibufsiz{:obufsiz{:queuesize{:keepalivetime}}}}}}}) parameters 参数中的参数如下: #InterSystems IRIS for Health 0 0 0 12
文章 姚 鑫 · 十一月 10 阅读大约需 3 分钟 第十七章 TCP 客户端 服务器通信 - 使用OPEN命令 第十七章 TCP 客户端 服务器通信 - 使用OPEN命令 使用OPEN命令 OPEN命令保留一个TCP绑定设备供使用。其语法为: #InterSystems IRIS for Health 0 0 0 12
文章 姚 鑫 · 十一月 9 阅读大约需 3 分钟 第十六章 TCP 客户端 服务器通信 第十六章 TCP 客户端/服务器通信 TCP 客户端/服务器通信 本章介绍如何使用 TCP/IP 在 IRIS 数据平台进程之间设置远程通信。 IRIS 支持两种互联网协议 (IP):TCP 和 UDP。这些 Internet 协议允许 IRIS 进程与本地或远程系统上的进程通信,无论这些进程是否正在运行 IRIS。 #InterSystems IRIS for Health 0 0 0 20
文章 姚 鑫 · 十一月 8 阅读大约需 4 分钟 第十五章 IRIS 进程之间的通信 第十五章 IRIS 进程之间的通信 本页介绍如何在两个或多个 IRIS 数据平台进程之间建立通信。 介绍 作业间通信 (IJC) 设备是一组特殊设备编号,可让在两个或多个 IRIS 进程之间传输信息。这些流程可以是作业流程或交互式流程。 IJC 设备成对工作。最多可以有 256 个 IJC 设备对。使用称为接收器的偶数设备来读取数据。使用称为发送器的奇数设备来写入数据。尝试从发送器读取或写入接收器会导致 <NODEV> 错误。 可以向 IJC 设备发出 I/O 命令,就像向任何其他设备一样。向设备发出OPEN和USE命令后,进程可以发出: 向接收器设备读取命令 将命令写入发送器设备 一次只能有一个进程可以打开设备。 对基于 IRIS 设备表中映射的相对顺序,可以使用管理门户的配置选项查看和编辑该表。 #InterSystems IRIS for Health 0 0 0 12
文章 姚 鑫 · 十一月 7 阅读大约需 3 分钟 第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令 第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令 用于进程间通信的 CLOSE 命令 如果使用带Q (/QUEUE) 参数代码的OPEN创建子进程,则该子进程可能会在设备上的CLOSE操作中继续存在。排队的进程间通信管道的生存能力取决于平台。在 UNIX® 系统上,子进程始终在CLOSE后继续存在。在 Windows 系统上,进程的生存取决于进程的年龄。刚刚启动的子进程不会在CLOSE操作中幸存,但是一旦子进程完全建立,它就会在 CLOSE操作中幸存。 #InterSystems IRIS for Health 0 0 0 12
文章 姚 鑫 · 十一月 6 阅读大约需 2 分钟 第十三章 本地进程间通信(管道) - 用于进程间通信的 READ 命令 第十三章 本地进程间通信(管道) - 用于进程间通信的 READ 命令 用于进程间通信的 READ 命令 语法 READ:pc readargument,... READ 从管道读取数据。 其中reargument可以是: formatting-mode string variable:timeout *variable:timeout variable#n:timeout 将 I格式化模式参数与管道一起使用。 I 参数允许对命名管道发出定时READ,而不会丢失跟随在一个部分记录中的任何数据。错误。当在READ上使用此参数时, READ会忽略消息。 默认情况下,I格式化模式的值处于关闭状态。如果在没有超时的情况下在READ命令中包含此参数,则进程将挂起,直到有数据要处理。 #InterSystems IRIS for Health 0 0 0 13
文章 姚 鑫 · 十一月 5 阅读大约需 2 分钟 第十二章 本地进程间通信(管道) - OPEN 和 USE 命令关键字 第十二章 本地进程间通信(管道) - OPEN 和 USE 命令关键字 OPEN 和 USE 命令关键字 以下列表描述了用于使用OPEN和USE命令控制进程间通信管道的关键字。 /IOTABLE[=name] 默认值:如果未指定名称,则使用设备的默认 I/O 转换表。 对应K\name\参数代码,为设备建立I/O转换表。 /TRANSLATE[=n] 默认值:1 与K参数代码相关。 /TRANSLATE 或 /TRANSLATE= n (对于n的非零值)启用设备的 I/O 转换。 /TRANSLATE= n如果n值为零,则会禁用设备的 I/O 转换。 #InterSystems IRIS for Health 1 0 0 9
文章 姚 鑫 · 十一月 4 阅读大约需 3 分钟 第十一章 本地进程间通信(管道) - OPEN 命令管道示例 第十一章 本地进程间通信(管道) - OPEN 命令管道示例 OPEN 命令管道示例 以下是有效的命令管道OPEN语句。每个示例指定 10 秒的超时: #InterSystems IRIS for Health 0 0 0 11
公告 Michael Lei · 十一月 3 InterSystems 技术视频挑战 各位社区成员,大家好! 我们很高兴推出一种全新的方式让您展示创造力和技能! 这次,我们邀请您参加我们首次发起的视频挑战: 📹 InterSystems 技术视频挑战 📹 请在 2024 年 10 月 21 日到 11 月 10 日提交与 InterSystems IRIS 产品或服务相关的任何主题的视频。 🎁 人人有礼 + 主要奖品! #活动 #视频 #IRIS竞赛 #开发者社区官方 0 0 0 15