当程序对记录执行 I/O 操作时,该 I/O 是对一个物理文件进行的,该物理文件的名称包含在特定于记录的变量 recordName.resourceAssociation 中。该变量是根据在生成时使用的 resourceAssociation 部件进行初始化的;有关详细信息,请参阅资源关联和文件类型。在运行时,可以通过在 resourceAssociation 中指定另一个值来更改系统资源名称。
在大多数情况下,必须使用语法 recordName.resourceAssociation。但是,如果 EGL 可以确定您打算使用的记录,则不需要指定记录名,在下列每种情况下均如此:
可以将 resourceAssociation 用作下列任何一项:
移到 recordName.resourceAssociation 中的值必须是系统和文件类型的有效系统资源名称,该系统和文件类型是在生成程序时指定的。如果多个记录指定了相同的文件名,则对任何具有该文件名的记录修改 resourceAssociation 时,都将更改程序中所有具有同一文件名的记录的 resourceAssociation 设置。
在修改该特定于记录的变量时,如果在 resourceAssociation 设置中标识的系统资源已打开,则在下列情况下将关闭该变量曾包含的系统资源:对一条记录运行 I/O 选项,该记录的 EGL 文件名与用于限定 resourceAssociation 的记录的 EGL 文件名相同。
如果两个程序正在使用同一个 EGL 文件名,则每个特定于记录的 resourceAssociation 变量都必须包含同一个值。否则,当打开新的系统资源时,将关闭先前打开的系统资源。
对于 resourceAssociation 与另一个值的比较,仅当完全匹配时才得到 true 结果。例如,如果用小写值来初始化 resourceAssociation,则小写值只与小写值相匹配。
如果系统资源由多个程序共享,则每个访问该资源的程序都必须设置 resourceAssociation 才能引用同一资源。并且,如果同一运行单元中的两个程序访问同一个逻辑文件,则每个程序在生成时都必须将 resourceAssociation 设置为同一系统资源名以确保两个程序在运行时访问同一系统资源。
if (process == 1) myrec.resourceAssociation = "myFile.txt"; else myrec.resourceAssociation = "myFile02.txt"; end
相关概念
MQSeries 支持
资源关联和文件类型
相关参考