IBM Books

参考


持久性宏函数

持久性宏函数支持在 Net.Data 中进行事务处理,这是通过帮助您定义哪些宏块在单个事务中 是持久性的来实现的。使用这些函数来定义一个事务的开头与结尾 (HTML 块在该事务中是持久性的)、 变量在事务中的作用域以及在事务中提交还是撤消更改。

DTW_ACCEPT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

定义用于调用持久性宏的事务句柄。

格式

@DTW_ACCEPT(handle, timeout)

@DTW_ACCEPT(handle)

参数

表 209. DTW_ACCEPT 参数
数据类型 参数 用法 说明
字符串 handle IN 一个变量或文字串,指定用于此持久性事务中后继宏调用 的 URL 中的事务句柄。
整数 timeout IN 一个变量或文字串,以秒为单位指定服务于此端口的作业 等待响应的时间。此值将覆盖 DTW_STATIC() 函数中指定的任何超时值。

返回码

表 210. DTW_ACCEPT 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1007 参数中包含了一个无效值。
8200 没有启用宏的持续性。
8201 调用持久性内部函数时的顺序不正确。

用法注意事项

  1. Net.Data 需要将事务句柄包括在调用宏的 URL 中, 作为来自 Web 浏览器的响应。当请求进入 Web 服务器时,服务器将使用事务句柄将请求路由 到处理事务的 CGI 进程。

    事务句柄必须在宏中每个 HTML 块开始时调用,直至最后的逻辑块, 其中包含对 DTW_TERMINATE() 的调用。如果在文本输出到浏览器之前没有找到对 DTW_ACCEPT() 或 DTW_TERMINATE() 的调用, 则将出现 Net.Data 错误。

  2. 您可以对这一页指定一个超时值,从而覆盖 @DTW_STATIC() 函数中指定的超时值。Web 服务器 在指定的时间(以秒为单位)内等待用户对这个请求作出响应。

  3. 如果当宏处于持久性状态时调用此函数,则将出现 Net.Data 错误。

  4. 包含事务句柄的 URL 可以被编码为表单按钮上的操作或 显示在浏览器上的页面中的超文本链。

例 1

%DEFINE handle = ""
@DTW_RTVHANLDE(handle)
 
%HTML(REPORT){
@DTW_ACCEPT(handle)
 ...
%}

DTW_COMMIT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

将自上一次确认界限后对确认控制资源的全部更改变为永久的更改,然后建立一个新的确认界限。

格式

@DTW_COMMIT()

参数

无。

返回码

表 211. DTW_COMMIT 返回码
返回码 说明
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。

例 1:指定一个提交

@DTW_COMMIT()
%HTML (report){
%}
 

DTW_ROLLBACK


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

重新建立最后一次确认界限,作为当前的确认界限。自上一次确认界限后正在运行的 Net.Data 进行对确认控制资源的全部更改将变为永久的更改。

格式

@DTW_ROLLBACK()

参数

无。

返回码

表 212. DTW_ROLLBACK 返回码
返回码 说明
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。

例 1:指定一个撤消

@DTW_ROLLBACK() 
%HTML (report){
%}

DTW_RTVHANDLE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

生成并返回一个此宏(跨几个分开的调用)所唯一的、并根据线程信息、时间戳记和 当前用户的组合计算而得的事务句柄。

格式

@DTW_RTVHANDLE(handle)

参数

表 213. DTW_RTVHANDLE 参数
数据类型 参数 用法 说明
字符串 handle OUT 一个包含当前持久性宏的唯一事务句柄的变量。

返回码

表 214. DTW_RTVHANDLE 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。

用法注意事项

事务句柄可用于确保作为持久性事务指定 的 URL 对于 HTTP 服务器是唯一的,并且可以安全地标识为有效的请求。

例 1:定义 handle 变量用于检索事务句柄

%DEFINE handle = ""
@DTW_RTVHANLDE(handle)

DTW_STATIC


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

表示整个宏是持久性的。

格式

@DTW_STATIC(timeout)

@DTW_STATIC()

参数

表 215. DTW_STATIC 参数
数据类型 参数 用法 说明
整数 timeout IN 一个变量或文字串,以秒为单位指定处理此事务的进程应 等待响应的时间。

返回码

表 216. DTW_STATIC 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1007 参数中包含了一个无效值。
8202 无法启用持久性功能。

用法注意事项

  1. DTW_STATIC 应该是宏中的第一个语句。这个函数调用之后,除非另外指定, 宏中定义的所有变量将跨越多个宏调用(持久性的),直至调用 DTW_TERMINATE() 或进程结束。

  2. 函数调用时可以指定一个超时值(以秒为单位),用以指出 Net.Data 进程等待浏览器 响应的时间。如果到达超时值,则进程终止,并且撤消自上一次确认界限后对确认控制资源所作的 全部更改。

  3. 如果在后继的 @DTW_ACCEPT() 调用中指定了一个超时值,则 Net.Data 将用后继调用中的值 覆盖此值。如果这个调用或后继 @DTW_ACCEPT() 调用中没有指定超时值,则将使用 Web 服务器 的缺省超时值。

例 1:对 DTW_STATIC() 的调用指定超时值为 60 秒。

@DTW_STATIC("60")

DTW_TERMINATE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

结束一个持久性的事务。自上一次确认界限后对确认控制资源的全部更改将变为永久的更改。

格式

@DTW_TERMINATE()

参数

返回码

表 217. DTW_TERMINATE 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
8200 没有启用宏的持续性。
8201 调用持久性内部函数时的顺序不正确。

用法注意事项

  1. 在任何文本输出到浏览器之前,将在持久性事务逻辑上最后一个 HTML 块的开始处 调用 DTW_TERMINATE 函数。如果在函数前、块中出现任何文本输出,则将出现 Net.Data 错误。请注意,根据应用程序的编写, 可能有多个逻辑上最后的 HTML 块。

  2. 如果当宏处于持久性状态时调用此函数,则将出现 Net.Data 错误。

例 1:终止持久性事务

%HTML(QUIT){
@DTW_TERMINATE()
 ...
%}


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]