返回首页

gbase数据、南大通用产品文档:GBase8s配置环境来使用代理服务器

更新日期:2024年09月11日

HTTP 代理需要支持 servlet 的 web 服务器,如果其 servlet 引擎使用 2.1 或更高 servlet
API 的 web 服务器,则更好。代理与 2.0 和较早的 servlet API 相兼容,但仅 2.1 或更
高的 API 启用 PROXYTIMEOUT 特性。
要为代理服务器配置环境,请:
1.
在 web 服务器配置中为代理 servlet 定义 servlet 别名或上下文。
JDBC 驱动程序将所有客户机 HTTP 请求指向:
http://your-web-server:port/pathname/IfxJDBCProxy
在此,IfxJDBCProxy 是代理 servlet,pathname 是至代理 servlet 的路径。要了解配置
servlet 的方式,请参考 web 服务器资料。
2.
将三个类文件—IfxJDBCProxy.class、SessionMgr.class 和 TimeoutMgr.class—复制至您
在前面步骤中指定的 servlet 目录。
这些类文件驻留在目录 proxy 中,
其位于安装产品包之后的 GBase 8s JDBC Driver 安装
目录之下。

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 52 -
3.
将 GBase 8s JDBC Driver 文件 ifxjdbc.jar 添加至 web 服务器上的 CLASSPATH 设置。

某些 web 服务器使用在其下启动服务器的环境的 CLASSPATH,
而其他 web 服务器
从特定于 web 服务器的属性文件取得它们的 CLASSPATH。要了解更新
CLASSPATH 设置的正确位置,请查阅 web 服务器资料。
4.
启动 web 服务器,并通过输入下列 URL 来核实是否正确地安装代理:
http://server-host-name:port-number/servlet/IfxJDBCProxy
代理以下列标题来回复:
-- GBase 8s Proxy Servlet v220 Servlet API 2.1 --
v220 表示 GBase 8s 代理版本。Servlet API 2.1 表示 web 服务器 servlet API 的版本。
如果 servlet API 是 2.0 或更早版本,则标题显示 Servlet API 0.0。
5.
在配置代理之后,请将下列内容附加至 applet 或应用程序 URL:
PROXY=server-host-name:port-number
例如:
jdbc:gbasedbt-sqli://123.45.67.89:1533:GBASEDBTSERVER=
myserver;user=rdtest;password=test;
PROXY=webserver:1462;
依赖于 web 服务器,
当启动 web 服务器时,
或在 applet 的 URL 中或在应用程序连接对
象中首次引用它时,可能加载该代理 servlet。
下列网站提供关于代理 servlet 的更多信息:

www.oracle.com

java.apache.org
指定超时
通过使用 PROXYTIMEOUT 关键字,可为代理指定超时值。PROXYTIMEOUT 值指定客
户机侧 JDBC 驱动程序将 keepalive 请求发送至代理的频度。以秒表示 A
PROXYTIMEOUT 值;该值可为 60 或更大。
当客户机指定 PROXYTIMEOUT 时,
代理设置客户机会话到期等于 2 x PROXYTIMEOUT。
例如,如果设置 PROXYTIMEOUT 为 60 秒,则代理将客户机到期时间设置为 120 秒。
当达到到期时间时,代理移除客户机会话资源,并关闭它的数据库连接。
每次收到来自客户机的通讯时,代理重置超时间隔。这里是 PROXYTIMEOUT 的一些有
效值:
PROXYTIMEOUT=-1
禁用客户机超时特性。
PROXYTIMEOUT=nnn

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 53 -
每 nnn 秒,客户机发送一 keepalive 请求至代理。nnn 值必须为 60 或更大。
PROXYTIMEOUT=60
如果未指定 PROXYTIMEOUT,则缺省值为 60
如果未首先通过关闭 JDBC 连接来发送关闭请求给代理,则在确定客户机是否已终止时,
代理超时特性是有帮助的。代理代表客户机维护一打开的数据库连接,直到客户机:

或者显式地关闭数据库连接为止

或者超过它的超时间隔为止
onstat 数据库实用程序展示任何意外终止了且将 PROXYTIMEOUT 设置为 -1 的客户机会
话的打开的会话。
此处为指定 PROXYTIMEOUT 的示例:
jdbc:gbasedbt-sqli://123.45.67.89:1533:gbasedbtserver=myserver;
user=rdtest;password=test;
PROXY=webserver:1462?PROXYTIMEOUT=180;
要了解使用代理的示例 applet 和应用程序,请参阅安装驱动程序的那个目录之下
的 demo/proxy 目录。

问题现象
定义一个视图create view v_test_audit as select * from gbase.audit_log,
加limit 1 查询这个视图,. 全表数据七千万条记录下,需要7 分钟才能出来,
影响业务。而直接查询原表select * from gbase.audit_log limit 1 , 0.1
秒就能出来。
解决方法:
方案1、直接查询系统表,规避视图的方式;
方案2、使用已有event 方案,即将系统表定时导入express 表,查询时
使用express 表即可(同时考虑gssys 表损坏与查询性能)。
方案3.不使用关于gssys 的视图

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
98

取值:[0|1]
默认值:0
说明:强制使用二进制方式比较,主要为了防止中文中有乱码(比如半个汉字)的
时候默认会把乱码之后的内容终止比较。默认关闭。
修改方式:可使用set 语句修改值也可在配置文件中修改值。仅用于global 范围。