IBM Books

Net.Data 程序设计指南


改进性能

有多种方法可以改进性能:

通常可以用来增加 Net.Data 性能的两种方法是:使用现场连接 和 Web 服务应用程序设计接口(API),例如 ICAPI、ISAPI 和 NSAPI。 请参阅Net.Data 语言参考指南以查看您的平台支持什么。


现场连接

有些服务器可以通过使用现场连接来提高性能,以保持持久性的数据 库连接。有些 Net.Data 操作需要较长的启动时间。 例如,在发出数据库查询之前,进程本身必须标志到 DBMS,并连接到数据库。 这通常在 Net.Data 宏存取数据库所需的全部处理时间中占用了一大部分。 另一个花费启动的例子是运行 Java 应用程序(不是 Java 小程序)所需的 Java 虚拟机。 由于 CGI 程序的操作方式,这些启动花费是按照到 Web 服务器的每个请 求来计费的。

现场连接可以通过删除启动时的系统开销,显著地改进系统性能。 这种节省来自于连续运行执行启动功能的一个或多个进程。然后这些进 程等待着服务请求。 如果您使用 Net.Data 作为 CGI 程序,则可以运行现场连接。如果您使 用 Web 服务器 API,则必须使用现场连接。

现场连接是由连接管理器和 cliette 组成的。 cliette 是由连接管 理器启动的单线程进程,并在服务器运行时保持为活动的。cliette 在初始化文件中用关键字 CLIETTE 处理数据并与 Net.Data 语言环境通 信。每种类型的 cliette 都可以处理特定的后端函数,例如 DB2 cliette,它可以 在 Net.Data 处理任何 Net.Data 宏之前,连接到数据库并设置执行 SQL 调用的操作。 可执行程序是在配置文件 dtwcm.cnf 中命名的。

现场连接的优点

使用现场连接有三个主要优点:

何时需要现场连接?

如果选择使用 API (代替 CGI)与数据库进行通信,则必须使用现场连接。 如果应用程序具有以下要求,则可以从现场连接中获益:

许多应用程序可以通过使用 ACTIVATE DATABASE 或 START DATABASE 命令节省建立连接所需的时间,从而改进性能(而不使用现场连接)。 参 阅您的数据库文档以获取数据库使用的命令的细节。并检查您的平台的 文档以查看是否有帮助改进性能的附加步骤。

启动连接管理器

连接管理器是 Net.Data 的一个独立可执行程序,其名称为 dtwcm。 您应该在启动 Web 服务器时启动它。 当启动连接管理器时,它读取配置文件,并创建一组用于处理数据的进程。 在每个进程中,连接管理器开始执行一个特定的 cliette。

一旦所有程序都设置好并已经运行(包括数据库、Web 服务器和连接管理器), 则当启用现场连接时, Net.Data 的处理通常包括这些步骤:

如果在初始化文件中指定了 cliette,但是连接管理器没有运行,则 Net.Data 装入 DLL 并处理宏。如果您使用一个 API,您可能会接收到 错误并应当启动连接管理器。

配置现场连接

现场连接使用了配置文件 dtwcm.cnf 来确定需要启动哪个 cliette。 在本例中显示了一个样本配置文件,它包含以下这些模块:

为了引用上的方便,这些行已经编号:

 1  CONNECTION_MANAGER{
 2  MAIN_PORT=7100	
 3  ADMIN_PORT1=7101
 4  ADMIN_PORT2=7102
 5  }
 6 
 7  CLIETTE DTW_SQL:CELDIAL{
 8  MIN_PROCESS=1		
 9  MAX_PROCESS=5		
10  START_PRIVATE_PORT=7200		
11  START_PUBLIC_PORT=7210	
12  EXEC_NAME=./cltdb2
13  DATABASE=CELDIAL		
14  BINDFILE=/usr/... .../d2wsql.bnd
15  LOGIN=marshall		
16  PASSWORD=stlpwd		
17  }
18
19  CLIETTE DTW_APPLET{	
20  MIN_PROCESS=1	
21  MAX_PROCESS=5		
22  START_PRIVATE_PORT=7300	
23  START_PUBLIC_PORT=7310	
24  EXEC_NAME=./javaapp	
25  }

对于配置文件,行 1 - 5 是必需的。 对于所有 SQL cliette,行 7 - 12 和 17 是必需的。 如果连接到一个 DB2 数据库,还可以包含其它信息,例如用户 ID 和口令。 这些附加值显示在行 13 - 16 中。 如果使用 Java 小程序,行 19 - 25 都是必需的。

您可以指定使用 LOGIN 和 PASSWORD 变量的缺省值,这意味着 Net.Data 使用与启动连接服务器相同的用户标识符来连接到 DB2 数据 库。这让您避免在配置文件中放置此信息。例如用以下行来替换第 15 和 16 行:

LOGIN=*USE_DEFAULT
PASSWORD=*USE_DEFAULT

必须确定在系统中使用哪些端口号码。 还必须确定 MIN_PROCESS 和 MAX_PROCESS 的值。 当连接管理器启动时,由 MIN_PROCESS 指定的进程号被启动。 此后,如果同时有几个进程到达,则连接管理器启动多个 cliette,按 需要添加一个,直到达到 MAX 中指定的值为止。 您所使用的值可能会影响系统性能,但可以在稍后更改它们。

要使用现场连接,必须在 Net.Data 初始化文件中为 DTW_SQL (可能 是 DTW_ODBC) 包含 ENVIRONMENT 语句。请参阅 Net.Data 语言环境指南以获取更多信息。

在修改配置文件之前,要注意以下各点:

如果您正在使用 CGI,并只希望一些数据库使用现场连接,只须简单 地在配置文件中列出这些的数据库。当 Net.Data 处理 Net.Data 宏并遇 到一个 SQL 段时,向连接管理器请求指定的 cliette。 如果连接管理器中没有那种类型的 cliette,它以 NO_CLIETTE_AVAIL 消息作为 响应。 Net.Data 转而用 DLL 版本来处理请求。


使用 ICAPI

使用 Internet Connection API 可以改进性能,因为它不经过 CGI 处理。 请参阅 Internet 连接 Web 程序设计指南中的细节:

http://www.ics.raleigh.ibm.com/pub/icswpg.htm

有关在哪些系统中可以使用 ICAPI 的信息以及其他的信息,可以在“说明文件”中找到。 配置 Net.Data 以 便在服务器上运行 ICAPI 的步骤如下:


使用 ISAPI

有关在哪些系统中可以使用 ISAPI 的信息以及其他的信息,可以在“说明文件”中找到。 配置 Net.Data 以 便在服务器上运行 ISAPI 的步骤如下:

Net.Data 中带有用于 ISAPI 的 DLL。 此 DLL 位于服务器的子目录中。 例如:

/inetsrv/scripts/dtwisapi.dll

ISAPI 回避了 CGI 处理,因此必须更改那些出现 CGI 调用 Net.Data 的 Web 页和 Web 宏。 在表和锚引用中除去 URL 的 cgi-bin/db2www/ 部分,并将它替换为 dtwisapi.dll。 例如,这是将 Net.Data 作为 CGI 程序来调用的一个 URL 例子:

http://server1.stl.ibm.com/cgi-bin/db2www/test1.mac/report

这个 URL 把 Net.Data 作为 ISAPI 应用程序使用:

http://server1.stl.ibm.com/scripts/dtwisapi.dll/test1.mac/report

如果在几个目录中保留了 Net.Data 宏,则目录名出现在 DLL 名之后。 例如,这个 URL 调用 一个保存在 /orders/ 目录中的 Net.Data 宏:

http://server1.stl.ibm.com/cgi-bin/db2www/orders/test1.mac/report

更新后的 URL 保留着目录名:

http://server1.stl.ibm.com/scripts/dtwisapi.dll/orders/test1.mac/report

使用 NSAPI

Web 服务器必须使用现场连接,以便对所有语言环境使用 NSAPI。 使用 NSAPI 可以改进性能,因为它不经过 CGI 处理。 有关的细节,请参阅 Netscape Server API 页面:

http://home.netscape.com/newsref/std/server_api.html

有关在哪些系统中可以使用 NSAPI 的信息以及其他的信息,可以在“说明文件”中找到。 配置 Net.Data 以便在服务器上运行 NSAPI 的步骤如下:

如果在几个目录中保留了 Net.Data 宏,有几个步骤需稍加更改:


[ 页的顶部 | 上一页 | 下一页 | 内容表 | 索引 ]