返回首页

gbase数据、南大通用产品文档:GBase8cSQLFreeEnv

更新日期:2024年09月11日

在ODBC 3.x 版本中,ODBC 2.x 的函数SQLFreeEnv 已被SQLFreeHandle 代替。有关
详细信息请参阅8.2.15 SQLFreeHandle。

使用 SHMVIRTSIZE 配置参数来指定虚拟共享内存段的初始大小。
onconfig.std 值
与平台有关
如未出现
如果 SHMADD 出现:SHMADD 配置参数的值。
如果 SHMADD 未出现:8192。

32 位平台:正整数,最大值 2 GB
64 位平台:正整数,最大值 4 TB
由于操作系统限制,在一些平台上最大值可能较小。 要查看您的 UNIX™ 平台的实际最大
值,请参阅 machine notes。
单位
KB
生效
编辑 onconfig 文件并重启数据库服务器之后。
用法
要确定 SHMVIRTSIZE 配置参数适当的值,应使用下列算法来确定共享内存的虚拟部分大
小:
shmvirtsize = fixed overhead + ((stack size + heap) * number of users)
变量
使用的值
fixed
overhead
这包括 AIO 向量的大小、排序内存、dbspace 备份缓冲区、字典大小、存储
过程高速缓存的大小、直方图池、其他池和其他开销。
要获得固定开销的估计,请启动数据库服务器,如果有的话,还要看分配了多
少附加的内存段。当您启动服务器时,您在系统上拥有的用户数影响内存段的
分配。当您启动服务器时:
l 如果用户数是您环境的典型用户数,那么将内存段的大小添加到
SHMVIRTSIZE 配置参数的当前值并重启服务器。
l 如果用户数远少于您环境的典型用户数,则必须计算要使用的内存段
的适当开销值。当您启动服务器时,将分配的附加内存段数除以那时

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 144 -

服务器上的用户数,您可计算每个用户消耗多少内存段。将每一用户
内存段的值乘以系统上典型的用户数。将这个计算值的内存段添加到
SHMVIRTSIZE 配置参数的当前值并重启服务器。
stack
size
在 32 位系统上,使用 32 KB 堆栈大小。在 64 位系统上,您典型地使用 64
KB 堆栈大小。然而,一些 64 位系统使用不同的值。
heap
每用户使用 30 KB。
用户数
使用服务器上您预计的并发用户会话的最大数目。
如果可能,创建一个共享内存的虚拟部分,其大小大于您每日处理的大小。
默认情况下,GBase 8s 在安装时会自动根据当前内存大小设置 SHMVIRTSIZE 值。计算算
法如下:
SHMVIRTSIZE = memorybase * 51200+25600
其中 memorybase =总内存大小/950000。如果计算结果 < 1,则 memorybase = 1
如果 SHMVIRTSIZE 值的计算结果大于 4096000 则,将其取值为 4096000。
使用 onstat -g seg 命令来确定峰值用量并相应地降低 SHMVIRTSIZE 配置参数的值。

当使用 DriverManager.getConnection() 方法来创建连接时,GBase 8s JDBC Driver 仅从连接
数据库 URL 中的名-值对,或从连接属性列表读取GBase 8s 环境变量。驱动程序不为任何
环境变量查询用户环境。
要在连接数据库 URL 的名-值对中指定 GBase 8s 环境变量,请参阅 数据库 URL 的格式。

要通过属性列表来指定 GBase 8s 环境变量,请使用 java.util.Properties 类来构建属性的列表。
该属性的列表可能包括 GBase 8s 环境变量,诸如GBASEDBTSERVER,以
及 user 和 password。
在构建了属性列表之后,将它作为第二个参数传给 DriverManager.getConnection() 方法。您
仍需包括数据库 URL 作为第一个参数,尽管在此情况下您不需要在 URL 中包括属性的
列表。
下列来自 optofc.java 示例的代码展示如何使用 java.util.Properties 类来设置连接属性。它首
先使用 Properties.put() 方法来在连接属性列表中将环境变量 OPTOFC 设置为 1;然后,它
连接至该数据库。
在此示例中的 DriverManager.getConnection() 方法需要两个参数:数据库 URL 和属性列表。
该示例创建类似于DriverManager.getConnection() 方法 中给出的示例的连接。
当在命令行运行程序时,将下列数据库 URL 作为参数传给示例程序:
jdbc:gbasedbt-sqli://myhost:1533:gbasedbtserver=myserver;

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 28 -
user=rdtest;password=test
代码为:
try
{
Class.forName("com.gbasedbt.jdbc.IfxDriver");
}
catch (Exception e)
{
System.out.println("ERROR: failed to load GBase 8s JDBC driver.");
}

try
{
Properties pr = new Properties();
pr.put("OPTOFC","1");
conn = DriverManager.getConnection(newUrl, pr);
}
catch (SQLException e)
{
System.out.println("ERROR: failed to connect!");
}