GBase 8s 产品符合客户机/服务器软件设计模型。应用程序或客户机可以位于托管数据库服
务器的计算机上,也可以位于其他计算机上。客户机应用程序将发出请求以获得数据库服
务器的服务和数据。数据库服务器通过提供客户机请求的服务和数据来作出响应。
将网络协议连同网络编程接口一起使用可连接客户机和数据库服务器并在它们之间传输数
据。
网络协议
网络协议是一组规则,规定了如何在应用程序间传输数据以及在此上下文中如何在客户机
与数据库服务器之间传输数据。
协议的规则在网络驱动程序中实施。
在数据从客户机发送到数据库服务器以及从数据库服
务器发送到客户机时,网络驱动程序包含的代码会将数据格式化。
客户机和数据库服务器通过网络编程接口获得对网络驱动程序的访问权。网络编程接口包
含的系统调用或库例程提供了对网络通信设施的访问权。 UNIX™ 的网络编程接口的示例
是 TLI(传输层接口)。
网络协议的作用在于它能够启用客户机/服务器通信,尽管客户机和数据库服务器位于具有
不同体系结构和操作系统的不同计算机上。
您可以配置数据库服务器来支持多个协议,但是仅当某些客户机使用 TCP/IP 时才考虑该
选项。
网络编程接口
网络编程接口是一种应用程序编程接口 (API),
它包含一组通信例程或系统调用。
应用程序
可以调用这些例程以便与位于相同或不同计算机上的其他应用程序通信。在该说明的上下
文中,客户机和数据库服务器是调用 TLI 或套接字 API 中的例程的应用程序。客户机和
数据库服务器都使用网络编程接口根据通信协议发送和接收数据。
如果要使客户机/服务器通信成功,那么客户机和数据库服务器的环境都必须用相同的协议
配置。然而,一些网络协议可以通过多个网络编程接口来访问。例如,根据操作系统平台
上可用的编程接口,可通过 TLI 或套接字来访问 TCP/IP。
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 29 -
数据库服务器连接
客户机应用程序使用 CONNECT 或 DATABASE SQL 语句建立与数据库服务器的连接。
例如,应用程序可能包含以下 CONNECT 语句以连接到名为 my_server 的数据库服务器:
CONNECT TO '@my_server'
提示: 数据库服务器的内部通信设施称为关联服务设施 (ASF)。如果看到一条包含对 ASF 的
引用的错误消息,那么说明连接有问题。
支持多路复用连接
有些应用程序会代表一个用户多次连接到同一台数据库服务器。多路复用连接在数据库服
务器和客户机之间使用单个网络连接以便处理来自客户机的多个数据库连接。客户机应用
程序可以建立多个到数据库服务器的连接以代表单个用户访问多个数据库。如果连接不是
多路复用的,那么每个数据库连接将建立到数据库服务器的单独网络连接。每个额外的网
络连接都将使用额外的计算机内存和处理器时间,甚至对于不活动的连接亦如此。多路复
用连接使数据库服务器可以创建多个数据库连接,而不会耗尽额外网络连接所需的额外计
算机资源。
要配置数据库服务器以支持多路复用连接,请执行以下操作:
1. 使用 DBSERVERALIASES 配置参数定义别名。
例如,指定:
DBSERVERALIASES ifx_mux
2. 为别名添加 sqlhosts 文件条目,其中将 onsqlmux 用作 nettype 条目。
hostname 和 servicename 必须具有条目,但这些条目会被忽略。可将连字符 (-)
用作条目。
例如:
#dbservername nettype hostname servicename options
ifx_mux onsqlmux - -
3. 通过在客户机用于数据库服务器连接的 sqlhosts 条目中指定m=1,
从而启用选定连
接类型的多路复用。
例如:
#dbservername nettype hostname servicename options
menlo ontlitcp valley jfkl m=1
以下示例显示了 onconfig 文件和 sqlhosts 文件条目。
onconfig 文件:
DBSERVERNAME web_tli
DBSERVERALIASES web_mux
sqlhosts 文件:
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 30 -
#dbservername nettype hostname servicename options
web_tli ontlitcp node5 svc5 m=1
web_mux onsqlmux - -
无需更改数据库服务器使用的 sqlhosts 信息。客户机程序无需执行任何特殊的 SQL 调用,
即可启用连接多路复用。
当 onconfig 文件和 sqlhosts 条目进行了适当配置并且数据库服务器
启动时,将自动启用连接多路复用。
多路复用连接不支持:
多线程客户机连接
共享内存连接
与下级数据库服务器的连接(例如,用于分布式查询或数据复制)
如果在应用程序尝试建立连接时出现以上任一情况,数据库服务器就将建立标准连接。数
据库服务器不返回 SQL 错误。
多路复用连接期间,不支持 GBase 8s ESQL/C sqlbreak() 函数。