gbase8s关于客户端和数据库连接的方式和应用建立连接的简单线索分工

应用和数据库的连接分为本地连接和远程连接,当应用程序和数据库在同一台服务器上为本地连接,不在一台服务器上为远程连接

1. 本地连接

本地连接三种方式:

  • 通过共享内存消息系统:应用和数据库在同一台服务器上,应用程序和数据库服务器将挂接在相同的内存段中,应用程序发送消息给数据库服务器,服务器捡起消息进行处理
  • 流管道:进程内部通过unix stream进行通信的一种方式
  • TCP/IP进行连接:可用于本地连接,也可用于远程连接,应用陈故乡和数据库服务器在同一台计算机上时,informix使用local loopback

可通过设置环境变量和配置参数来设置连接的方式,同一个数据库服务器同时配置tcp/ip和共享内存连接

2. 远程连接

数据库提供了两种tcp/ip的接口:

  • sockets:AIX、HP、Linux上
  • TLI(Transport Layer Interface):SUN上使用此形式

3. 客户端和服务器连接

  • 程序获取连接信息
    • 通过gbasedbtserver的值和sqlhosts文件的第一列做匹配
    • 应用程序通过sqlhosts文件获得连接的服务器名称和连接方式
    • sqlhosts文件包含了连接方式、服务器所在的网络地址、端口信息,也包含了配置文件DBSERVERNAME所包含的服务器名称
  • 共享内存连接:应用程序吧信息放在一块地址中,数据库VP从这个地址检索信息,通过这种方式和数据库进行通信
  • 网络方式连接:应用程序发送信息到端口,数据库从监听端口获得应用段的信息

数据库会在每次检查段之后,会在日志中记录一条信息,记录数据库在线之后的最大用户连接数

4. 应用发送连接的一些步骤设计

  • 上述是应用发送连接请求时,处理连接请求的各个线索的主要行为如下
    • poll线索负责处理接受来自客户端的所有信息,当收到一条信息之后,poll线索会唤醒其他线索去处理信息
    • 如果接受的是数据库连接信息,poll线索会唤醒listen线索,并把连接请求传给listen线索,listen线索处理所有的连接请求
      • listen线索会给用户创建一个会话控制块session control block(SCB),这个结构中包含了一个唯一标识,称作session id
      • 同时也会创作一个线索控制块thread contol block(TCB),TCB用来和用户做交易的,在TCB中存放线索的上下文
    • 最后会为用户创建一个sqlexec线索,sqlexec线索负责发送所有的信息给应用,poll线索负责从应用接受所有发送的信息
  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值