文章 姚 鑫 · 十一月 13, 2024 3m read

第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式)

立即发送模式(Q 模式)

在立即发送模式下,每个 WRITE 命令都作为其自己的数据包输出。如果不使用立即发送模式,则必须包括终止符或发出命令 WRITE *–3 以输出数据包。

通过指定“Q”模式字符或/SENDIMMEDIATE(或/SEN)关键字参数进入此模式。要关闭此选项,请指定以下任一选项:

   USE TCPDEVICE:(/SEN=0)
   USE TCPDEVICE:(::"-Q")

要重新打开此选项,请指定以下任一选项:

   USE TCPDEVICE:(/SEN=1)
   USE TCPDEVICE:(::"+Q")

立即发送模式与/NODELAY模式结合使用,前者在每次写入时创建一个包,后者在创建每个包时立即发送。当这两个选项都启用时,单个数据突发的传输速度将最大化。当每个数据单元的及时传送至关重要时,例如在传输鼠标移动时,这是有用的。当两者都关闭时,一个数据包可能包含多个写入,一个传输可能包含多个数据包。这减少了网络流量并提高了整体性能。立即发送模式的默认设置为关闭。/NODELAY模式的默认设置为打开。

流模式(S模式)

在流模式下, IRIS不会保留数据流中的TCP消息边界。发送时,如果数据不适合消息缓冲区, IRIS会在将数据放入缓冲区之前刷新缓冲区。

0
0 124
文章 姚 鑫 · 十一月 12, 2024 3m read

第十九章 TCP 客户端 服务器通信 - 数据包模式

数据包模式

如果未指定模式,则默认为数据包模式。如果流模式被禁用,则该模式默认为分组模式。

在分组模式中,只要有一些数据要返回,读取命令就会完成。数据包模式允许在输出缓冲区中构建整个TCP数据段,然后通过发出WRITE*-3WRITE!命令。

如果在没有要发送的字符的情况下发出WRITE*-1来启动一个TCP发送操作,则会收到一个<WRITE>错误。如果发出WRITE OF空字符串,则会收到<COMMAND>错误。

在分组模式下可以发送的字符串的最大长度为1024个字符。如果在未刷新缓冲区的情况下超过此限制,则会收到<WRITE>错误。

因为 TCP/IP 忽略长度为 0 的记录,所以如果在其中没有字符时刷新写入缓冲区,会收到 <WRITE>错误。

在服务器收到连接请求之前,从服务器到客户端的WRITE命令会在服务器上产生<WRITE> 错误。

回车模式(C模式)

此模式修改对输入和输出的回车处理。

在输出时,WRITE ! 生成“CR LF”,而WRITE#生成“CR FF”

在输入时,在启用T模式的情况下,服务器尝试将相邻的CRLF或相邻的CRFF记录为$ZB中的单个终止符。如果CRLF没有在彼此的短时间间隔内到达,则将它们作为单独的终结器进行处理。默认情况下,间隔为1秒。

监控断开模式(D模式)

0
0 71
文章 姚 鑫 · 十一月 9, 2024 3m read

第十六章 TCP 客户端/服务器通信

TCP 客户端/服务器通信

本章介绍如何使用 TCP/IPIRIS 数据平台进程之间设置远程通信。

IRIS 支持两种互联网协议 (IP):TCPUDP。这些 Internet 协议允许 IRIS 进程与本地或远程系统上的进程通信,无论这些进程是否正在运行 IRIS

  • TCP IRIS 传输控制协议 (TCP) 绑定。在服务器和单个客户端之间建立双向连接。提供具有错误检查和纠正以及消息确认的可靠字节流数据传输。
  • UDP IRIS 用户数据报协议 (UDP) 绑定。提供服务器和大量客户端之间的双向消息传输。 UDP 不是基于连接的;每次传输数据包都是一个独立的事件。为本地数据包广播和远程多播提供快速和轻量级的数据传输。本质上不如 TCP 可靠。不提供消息确认。

TCP 绑定将 IRIS 连接到广泛的网络标准,这样 IRIS 用户就可以通过 I/O 命令使用底层网络协议的基本功能。

TCP/IP 协议允许系统进行通信,即使它们使用不同类型的网络硬件。例如,TCP 通过 Internet 连接在使用以太网的系统和使用令牌环的另一个系统之间传输消息。 TCP 控制数据传输的准确性。 IPInternet 协议在网络或 Internet 上的不同系统之间执行实际数据传输。

0
0 104
文章 姚 鑫 · 十一月 8, 2024 4m read

第十五章 IRIS 进程之间的通信

本页介绍如何在两个或多个 IRIS 数据平台进程之间建立通信。

介绍

作业间通信 (IJC) 设备是一组特殊设备编号,可让在两个或多个 IRIS 进程之间传输信息。这些流程可以是作业流程或交互式流程。

IJC 设备成对工作。最多可以有 256IJC 设备对。使用称为接收器的偶数设备来读取数据。使用称为发送器的奇数设备来写入数据。尝试从发送器读取或写入接收器会导致 <NODEV> 错误。

可以向 IJC 设备发出 I/O 命令,就像向任何其他设备一样。向设备发出OPEN和USE命令后,进程可以发出:

  • 向接收器设备读取命令
  • 将命令写入发送器设备

一次只能有一个进程可以打开设备。

对基于 IRIS 设备表中映射的相对顺序,可以使用管理门户的配置选项查看和编辑该表。

每对设备都与一个 IJC 内存缓冲区关联。当进程向任何奇数 IJC 设备发出WRITE命令时 IRIS 会将数据写入该设备对的缓冲区中。当另一个进程向该对中的偶数设备发出READ命令时 IRIS 会从同一缓冲区读取数据。

写入的数据以先进先出的方式缓冲在内存中。如果在设备为空时发生READ ,则发出该信号的进程将挂起,直到另一个进程发出相应的WRITE 信号。缓冲区已满时发生的写入将挂起,直到另一个进程从该缓冲区读取数据。

0
0 95
文章 姚 鑫 · 十一月 7, 2024 3m read

第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令

用于进程间通信的 CLOSE 命令

如果使用带Q (/QUEUE) 参数代码的OPEN创建子进程,则该子进程可能会在设备上的CLOSE操作中继续存在。排队的进程间通信管道的生存能力取决于平台。在 UNIX® 系统上,子进程始终在CLOSE后继续存在。在 Windows 系统上,进程的生存取决于进程的年龄。刚刚启动的子进程不会在CLOSE操作中幸存,但是一旦子进程完全建立,它就会在 CLOSE操作中幸存。

UNIX® 系统上,可以指定关闭管道命令设备时CLOSE命令应等待的时间。超时默认值为 30 秒。可以通过指定OPEN命令closetimeout位置参数来修改此默认值。可以通过指定可选的“I”位置参数来覆盖CLOSE命令的默认或指定超时。 “I”参数指定立即关闭(1 秒后关闭)。 CLOSE语法如下:

CLOSE cpipename:"I"

使用命名管道与 Visual Basic 进行通信

Windows 上,在 IRIS 中使用命名管道就像使用 TCP 设备一样,但使用设备名称|NPIPE|nnn而不是|TCP|nnnOPEN参数如下:

OPEN "|NPIPE|3":(server:pipename)

其中server是计算机名称, pipename是要连接到的管道的名称。

0
0 119
文章 姚 鑫 · 十一月 6, 2024 2m 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命令中包含此参数,则进程将挂起,直到有数据要处理。

CPIPE 退出代码

可以检索命令管道 (|CPIPE|) 进程的退出代码。必须在 |CPIPE| 之前检索此退出代码设备已关闭。它是通过%SYSTEM.Process 类的PipeExitCode方法获得的。退出代码始终是整数值。如果退出代码不可用,该方法将返回空字符串并设置状态参数和解释,如以下示例所示:

0
0 92
文章 姚 鑫 · 十一月 5, 2024 2m read

第十二章 本地进程间通信(管道) - OPEN 和 USE 命令关键字

OPENUSE 命令关键字

以下列表描述了用于使用OPENUSE命令控制进程间通信管道的关键字。

/IOTABLE[=name]

默认值:如果未指定名称,则使用设备的默认 I/O 转换表。

对应K\name\参数代码,为设备建立I/O转换表。

/TRANSLATE[=n]

默认值:1

与K参数代码相关。 /TRANSLATE/TRANSLATE= n (对于n的非零值)启用设备的 I/O 转换。 /TRANSLATE= n如果n值为零,则会禁用设备的 I/O 转换。

/XYTABLE[=name]

默认值:如果未指定名称,则使用设备的默认 $X/$Y 操作表。

对应Y\name\参数代码,为设备建立$X/$Y动作表。

仅限 OPEN 关键字

以下列表描述了仅使用OPEN命令控制进程间通信管道的关键字。

/ENV=environmentvars

指定要在新进程中设置的环境变量。有两种指定值的方法:

  • 明确地说。例如:
/ENV=(name1:value1,name2:value2)
  • 通过多维数组。例如:
 Set arr(name1)=value1
 Set arr(name2)=value2

// then later use the following in the OPEN command:
  /ENV=arr...
0
0 71
公告 Michael Lei · 十一月 3, 2024

各位社区成员,大家好!

我们很高兴推出一种全新的方式让您展示创造力和技能! 这次,我们邀请您参加我们首次发起的视频挑战:

📹 InterSystems 技术视频挑战 📹

请在 2024 年 10 月 21 日到 11 月 10 日提交与 InterSystems IRIS 产品或服务相关的任何主题的视频。

🎁 人人有礼 + 主要奖品!


0
0 113
文章 姚 鑫 · 十一月 3, 2024 2m read

第十章 本地进程间通信(管道) - 用于进程间通信的 OPEN 命令

用于进程间通信的 OPEN 命令

OPEN命令允许程序与 IRIS 外部的进程进行通信。

OPEN Arguments

cpipename 管道名称

仅命令管道— “|CPIPE|”或"|CPIPE|xxxxxx" ,其中xxxxxx表示用户指定的唯一标识符。

program 程序

命令管道可以使用命令 shell 或不使用命令 shell(直接)执行程序。在大多数情况下,首选不使用命令 shell 执行。标准管道使用命令 shell 执行程序。

仅命令管道— 要在不使用命令 shell 的情况下执行,请指定 /COMMAND= program 。如果程序有参数,则必须使用 /ARGS 关键字指定它们。如果指定 /COMMAND/ARGS 关键字,则无需命令 shell 即可执行程序: (/COMMAND=program)(/COMMAND=program:/ARGS=arg1)(program:/ARGS=arg1)都是有效的语法。 /ARGS 可以采用单个参数、以逗号分隔的参数列表或数组。例如, (/COMMAND=program:/ARGS=arg1,arg2) 。可以使用数组指定可变数量的参数:

0
0 78
文章 姚 鑫 · 十一月 2, 2024 2m read

第九章 本地进程间通信(管道)

本页介绍如何通过管道与 IRIS® 数据平台外部的进程建立通信。

介绍

可以通过管道在 IRIS 进程和外部 UNIX®Windows 进程之间进行通信,就像在 UNIX®Windows 操作系统级别一样。可以将输出发送到管道或从管道接收输入。管道为单向;不能同时读取和写入同一个程序。

当打开另一个程序的管道进行输出时,可以像写入顺序文件一样对其进行写入。然后程序使用编写的内容作为其输入流。当希望 IRIS 进程与外部进程共享资源时,此功能特别有用。

打开 IRIS 实用程序的管道

可以打开通往 IRIS 实用程序以及 UNIX®Windows 进程的管道。在将管道用于实用程序 I/O 之前,系统管理员必须在 IRIS 系统上定义管道设备。

系统管理员定义管道设备后,当运行实用程序(例如^%RD )时,可以使用系统管理员定义的助记符回答Device:提示。输出会自动发送到该设备。

管道和命令管道

IRIS 支持标准管道和命令管道 (CPIPE)。标准管道用于相对较短的命令字符串,其中命令名称及其参数少于 256 个字符。当命令字符串长度为 256 个字符或更长时,使用命令管道。在这两种情况下,管道只能在 UNIX®Windows 系统上使用。

标准管道 OPEN

以下是标准管道的OPEN命令语法:

0
0 116
文章 姚 鑫 · 十一月 1, 2024 2m read

第八章 在 I/O 命令中指定设备 - 通过 IRIS ID 指定设备

通过 IRIS ID 指定设备

为了与其他 产品兼容并方便起见,可以通过设备编号(存储在设备表中)来引用设备。系统管理员可以使用管理门户将这些号码链接到设备。选择“系统管理” 、 “配置” 、 “设备设置” 、 “设备”以创建新设备或编辑现有设备。

系统管理员还可以将一个数字转换为另一个数字。因此,可以发出OPEN 47IRIS 会将其转换为OPEN 49

下表显示了设备编号。

IRIS 设备编号和设备

Device Numbers 设备编号Devices 设备
0主要设备(您登录的设备)。
2IRIS 假脱机程序。 UNIX®:助记符 SPOOL 适用于该设备。
3设备编号无效。尝试打开它会返回 <NOTOPEN> 错误,而不等待超时到期。
63查看缓冲区。
20-46, 200-223常规联锁装置。
224-255作业间通信设备。

示例

要打开假脱机程序,请发出以下命令:

OPEN 2

指定磁盘上的文件

可以使用双引号括起来的操作系统文件规范来打开磁盘文件。

Windows 文件规范具有以下格式:

device:\directory\file.type

UNIX® 文件规范具有以下格式:

/directory/name

UNIX 示例

0
0 93
公告 Claire Zheng · 十一月 1, 2024
您好,欢迎阅读 十月 2024 开发人员社区通讯。
统计信息
✓ 十月发布了 43 篇新帖子:
 37篇新文章
 5个新公告
 1个新问题

✓ 十月有 408 位新成员加入
✓ 所有时间发布了 2,251 篇帖子
✓ 所有时间有 2,431 位成员加入

0
0 85
问题 yang xin · 十一月 1, 2024

我们公司在和其他公司合作,需要从Cache2016的数据库中执行sql获取数据

sql的内容是调用存储过程

CALL DHCXXXXice.MKPIQuery_QueryXXXX('K007XXXX.JJR','2024-08-01','2024-08-01')

在java代码中执行会报错误如下

但是通过数据库连接工具却能查询到结果

通过数据库连接工具查询到 该存储过程,可接收参数为8个

尝试  CALL DHCXXXXice.MKPIQuery_QueryXXXX('K007XXXX.JJR','2024-08-01','2024-08-01',null,null,null,null,null)

在通过java连接查询时,依然报Parameter list mismatch错误

通过jdbc连接工具依然能查出结果

0
0 221
文章 姚 鑫 · 十月 31, 2024 2m read

第七章 在 I/O 命令中指定设备

当使用 I/O 命令OPENUSECLOSE在除正在使用的设备之外的任何设备上处理 I/O 时,必须指定一个 I/O 设备。可以根据设备类型以三种方式之一指定设备,如下表所示。

I/O 命令中指定设备

Type of Specification 规格类型Use for these Devices 用于这些设备
IRIS 设备名称Terminals and Printers 终端和打印机
IRIS 设备 ID 或设备别名除顺序文件外的所有设备
File Name 文件名Sequential Files 顺序文件

请注意,WindowsUNIX® 处理打印机I/O 的方式不同。有关详细信息,请参阅打印机。

按设备名称指定终端和打印机

如果的 I/O 操作是针对终端(或某些平台上的打印机),则可以使用操作系统(UNIX®Windows)应用的设备名称来指定设备。形式如下:

OPEN "device"  
USE "device"  
CLOSE "device"

其中device是设备的操作系统名称,用引号引起来。设备的最大长度为 256 个字符。

Windows 系统上指定终端

要打开连接到串行通信端口的 I/O 设备,请使用以下语法指定OPEN命令:

OPEN "comn:"

其中n表示设备所连接的端口号。

0
0 118
文章 姚 鑫 · 十月 30, 2024 2m read

第六章 主设备、当前设备、空设备

明确使用主设备

USE 0USE $principal向进程的主体设备隐式发出OPEN命令。如果另一个进程拥有该设备,则该进程会挂在隐式OPEN上,就像它遇到任何OPEN时一样。

为该进程不拥有的任何其他设备(由于先前的OPEN命令)发出USE命令会产生错误。

仅当进程获取设备时,没有超时的OPEN命令才将控制权返回给进程。可以通过键盘中断命令(如Ctrl-C )中断打开命令。由于保护问题或无效设备名称而无法成功的OPEN将永远挂起。当在OPEN命令中指定超时时, OPEN将在超时到期时将控制权返回给进程。

使用主设备的选项

根据主要设备的性质,可以指定其他特定于设备的参数,这些参数对于管道(进程间通信) 、文件和终端 I/O是不同的。例如,可以使用 TLS 连接打开主设备:

USE $principal:(::/TLS=ConfigName)

其中ConfigName是同一实例中定义的 TLS 配置的名称。

空设备

如果应用程序生成不希望出现在屏幕上的无关输出,可以将该输出定向到空设备。可以通过发出带有适当参数的 IRIS OPEN命令来指定空设备(见表)。 IRIS 将其视为虚拟设备。

空设备参数

Platform 平台Null Device Argument 空设备参数
UNIX®/dev/null/
Windows//./nul
0
0 106
文章 姚 鑫 · 十月 29, 2024 2m read

第五章 主设备、当前设备、空设备

一个进程拥有一台设备

一次只有一个进程可以拥有一个设备,顺序文件除外。

换句话说,在进程成功向设备发出OPEN命令后,在第一个进程释放该设备之前,其他进程都无法打开该设备。进程通过以下任一方式释放设备:

  • 通过显式发出CLOSE命令。

  • 通过停下来。

每个进程都有一个主设备

每个 IRIS 进程都有一个主要输入设备和一个主要输出设备。默认情况下,这些是同一设备。当您登录终端并激活 IRIS 时,该终端将成为主要设备。由于 IRIS 隐式向该终端发出OPENUSE命令,因此可以立即向它发出READWRITE命令。 IRIS 主设备是操作系统指定为主输入设备的设备。 $PRINCIPAL特殊变量包含主设备的设备 ID

IRISI/O 命令定向到当前设备

IRIS 将输入和输出操作(包括READWRITEPRINTZLOAD命令)定向到当前设备。 $I特殊变量包含当前设备的设备 ID。当在终端上登录 IRIS 时, $IO最初包含终端的设备名称。换句话说,登录后,主设备和当前设备是相同的。在发出USE命令后,当前的设备( $IO中包含的设备)通常是执行的最后一次USE命令中指定的设备。

0
0 153
文章 姚 鑫 · 十月 28, 2024 2m read

第四章 I O 输入输出简介 - Read 命令

Read 命令

该命令从当前设备读取数据。对于某些设备,以星号开头的参数返回 ASCII 数字信息;对于其他人来说,它们表示控制功能。

语法

READ variable:timeout

WRITE 命令

该命令将数据写入当前设备。对于某些设备,以星号开头的参数允许使用其 ASCII 数值写入 ASCII 字符;对于其他人来说,它们表示控制功能。对于某些设备,以 # 字符开头的参数指示写入该字符的次数。

语法

WRITE variable

WRITE /mnemonic

WRITE /mnemonic 语法允许使用在助记符空间中的 IRIS 代码中定义的助记符来控制设备。助记符空间是一个 IRIS 例程,必须在OPENUSE命令中激活它,或者使用管理门户将其配置为设备的默认值。要了解如何定义和激活助记符空间,请参阅定义默认助记符空间。

要使用预定义的 ^%X364 助记符空间将光标移动到终端屏幕上的第 1 列第 2 行,请发出以下命令:

   WRITE /CUP(1,2)

CLOSE 命令

CLOSE命令释放指定设备的所有权。 CLOSE反转OPEN命令的效果。

语法

CLOSE device[:params] 

device

所需的设备名称、ID 号或助记符。

params

参数KIRIS 级别关闭设备,而不在操作系统级别关闭它。

0
0 83
文章 Hao Ma · 十月 28, 2024 4m read

CPF merge(合并)

Automating Configuration of InterSystems IRIS with Configuration Merge

CPF merge通过合并一个人工编辑的merge file, 自动的配置新创建的iris instance, 或者修改已有的iris instance。适用于:

  • 修改iris的系统配置(cpf文件中的内容),比如系统参数,创建或者配置用户,角色,权限, 创建或者配置命名空间,数据库; 配置mirror, ECP连接等等。
  • 操作不在cpf文件中的内容,比如 CreateApplication, CreateSSLConfig 等等, 一般是在 [Action]部分实现

Caché 和早期的IRIS版本提供了manifest功能,用来做IRIS实例的配置。 Manifest很繁琐,而且各个版本的配置中有细微的区别,非常难以管理。 如今有了CPF merge, maifest的所有功能都可以在CPF merge实现, 因此manifest在新版IRIS中也就完全被替代了。

执行merge

执行merge可以在操作系统命令行下执行, 如下面的例子

0
0 102
文章 Hao Ma · 十月 28, 2024 3m read

使用iris-main

iris-main是IRIS镜像的的ENTRYPOINT程序。 在Container中,ENTRYPOINT 指令允许你指定一个可执行程序或者脚本,作为容器启动后运行的主程序。这个程序会在容器启动时自动执行。

执行docker ps 命令可以看到当前container的ENTRYPOINT是什么:

hma@CNMBP23HMA demo % docker ps
CONTAINER ID   IMAGE                         COMMAND                 CREATED      STATUS      PORTS                                                               NAMES
8f31a857dc90   .../irishealth:2024.2   "/tini -- /iris-main"   3 days ago   Up 3 days   2188/tcp, 52773/tcp, 53773/tcp, 54773/tcp, 0.0.0.0:1980->1972/tcp   iris-a

hma@CNMBP23HMA demo %
0
0 133
文章 Hao Ma · 十月 28, 2024 2m read

把CSP.conf保存在container之外

在创建webgateway的container时,可以使用ISC_DATA_DIRECTORY=参数, 选择把CSP文保存在主机而不仅仅是container内部。如下面的例子: 使用volumnes映射了主机的./dur-wg-a目录到container的/dur目录, 而command中的ISC_DATA_DIRECTORY=/dur会讲webgateway的配置文件, log文件等保存在主机。

0
0 166
文章 Hao Ma · 十月 28, 2024 7m read

上一篇文章使用人工配置的方法简单的配置了webgateway container. 接下来来介绍如何在docker-compose里做自动化部署。

先总结我们要做的事情:

  1. 配置到IRIS的连接。定义连接的iris的IP地址或者DNS, 以及连接的用户名密码 以及其他的对默认值的修改。
  2. 配置apache2的配置文件,保证到IRIS的HTTP请求能发送给CSP Webgateway。
  3. 很多时候,用户会希望使用HTTPS访问IRIS,因此需要在apache2上支持TLS。

这些是最基本的功能。除此之外, 用户还可能会要求建立WebGateway到IRIS的TLS连接,或者在Apache2部署自己的网页等等。后面的文章会一一介绍。

配置CSP.ini

上一篇文章中,我通过Webgateway管理页面定义了Webgateway到IRIS的连接,其实是定义了webgateway的配置文件CSP.ini。 无论WebServer是什么类型,IIS,Apache, Nginx, CSP.ini的都是一样的。在Linux中, CSP.ini位于/opt/webgateway/bin目录。

0
0 157
文章 Hao Ma · 十月 28, 2024 1m read

我在3年前写过同样内容的文章。随着IRIS版本的更新,安装的细节有了些变化,而且,尤其是2024年以后的版本不再使用PWS(Private Web Server), 安装最新版本的IRIS通常同时要安装一个外部的Web服务器,Apache或者nginx。 另外, 大家对自动部署的需要越来越多,因此我也会在下面的内容里面包括自动部署,配置iris, 安装软件等等内容。希望给各位一个基本完整的介绍。

内容列表如下:

基础篇

  • IRIS images的下载和docker run
  • apache-webgateway container到iris的连接
  • nginx-webgateway container到iris的连接
  • iris-main和在container外保存iris数据
  • 配置iris的新方法:CPF merge ...

随时更新

0
0 231
文章 姚 鑫 · 十月 27, 2024 1m read

第三章 I O 输入输出简介 - Use 命令

Use 命令

此命令使指定设备成为当前设备,并将特殊变量$IO设置为该设备。要使用主设备以外的设备,必须首先对其发出OPEN命令;否则,将收到错误。参数的含义与OPEN命令中的相同。

语法

USE device:(args):"mnespace"

device

所需的设备名称、ID 号或别名。设备的最大长度为 256 个字符。

args

可选— 某些设备所需的附加信息。管道(进程间通信) 、文件和终端 I/O的可用参数不同。

mnespace

可选— IRIS 例程的名称,包含控制助记符的定义,当将 I/O 定向到该设备时,可以与WRITE /mnemonic 命令一起使用。

Windows 上的使用示例

Windows 示例显示了用于通过 TCP 连接到远程主机larry上的时钟服务器的命令。它使用服务名称daytime ,本地系统将其解析为端口号。 USE命令用 PSTE 模式替换OPEN C 模式并关闭所有用户终止符:

   OPEN "|TCP|4":("larry":"daytime":"C")
   USE "|TCP|4":(::"PSTE")

UNIX® 上的使用示例

UNIX 示例显示了用于打开设备/dev/tty06I/O 通道并将其建立为当前设备的命令,并可以选择使用WRITE /mnemonicX364 终端助记符。

0
0 112
文章 姚 鑫 · 十月 26, 2024 2m read

第二章 I O 输入输出简介 - Open 命令

Open 命令

OPEN建立指定设备的所有权并打开指定设备的 I/O 通道。此所有权将持续存在,直到发出CLOSE命令、进程终止或某些物理操作关闭设备。对于物理 I/O 设备或进程间通信(例如 TCP 连接),此所有权会阻止所有其他进程访问该设备。对于逻辑 I/O 设备(例如顺序文件),此所有权可能允许其他进程以某种形式共享访问该文件。打开同一顺序文件的多个进程的处理高度依赖于平台。强烈建议使用LOCK命令来限制对顺序文件的访问。

语法

OPEN device{:{(parameters)}{:{timeout}{:"mnespace"}}}

device

所需的设备名称、ID 号或助记符。设备的最大长度为 256 个字符。

parameters

可选— 一个或多个参数,指定某些设备所需的附加信息。该参数列表用括号括起来,列表中的参数之间用冒号分隔。管道(进程间通信) 、文件和终端 I/O的可用参数不同。

timeout

可选— 等待请求成功的秒数。前面的冒号是必需的。超时必须指定为整数值或表达式。如果超时设置为零 (0), OPEN将尝试打开文件一次。如果尝试失败, OPEN会立即失败。如果尝试成功,则成功打开文件。如果未设置超时 IRIS 将继续尝试打开设备,直到打开成功或手动终止该过程。

mnespace

0
0 95
文章 姚 鑫 · 十月 25, 2024 2m read

第一章 I/O 输入/输出简介

本页概括地描述了如何在 IRIS 数据平台应用程序中以及在 IRIS 提示符下使用 I/O 设备。

介绍

IRIS 数据平台为多种不同类型的逻辑和物理设备提供支持。支持的逻辑设备包括:

  • 主要装置
  • 文件
  • 管道
  • TCP连接
  • 作业间通信 (IJC) 设备用于在 IRIS 进程之间进行通信
  • 假脱机程序

支持的物理设备包括

  • 终端
  • 打印机

I/O 命令概述

I/O 命令允许拥有、使用、读取、写入和关闭设备。要将 I/O 操作定向到设备,请首先发出以下命令:

  • 发出OPEN命令来建立所有权,除非该设备是主要设备。
  • 发出USE命令使该设备成为当前设备。
  • 随后的READWRITE命令将从该设备读取或写入该设备。
  • CLOSE命令释放设备的所有权,以便其他进程可以使用该设备。

以下通用语法适用于支持 ObjectScriptI/O 命令关键字的 I/O 命令:

OPEN device:paramlist:timeout:"mnespace"
USE device:paramlist:"mnespace"
CLOSE device:paramlist

其中paramlist可以是单个参数,也可以是括在括号中并用冒号分隔的参数列表:

0
0 124
文章 Michael Lei · 十月 24, 2024 1m read

InterSystems FAQ 

一个实例上的最大命名空间数量是 2047. 但是,要使用这么大量的命名空间,你需要相应地配置好内存。

一个实例里可以创建的数据库的最大数量(包括远程数据库) 15998. 根据授权的类型,可能会有所限制。具体细节请参考以下文档。
Database Configuration [IRIS]
Database Configuration
 

0
0 153