我有一个来自云上的 DashDB (DB2( 的示例连接字符串,当我从 Bluemix(PHP 云铸造应用程序(连接到基于云的 DB2 时,该字符串可以正常工作。
现在,我想使用安全网关连接到 zOS DB2 DB。我已经设置了 SG,并且还有 SG 主机名和端口。
以下是使用 DashDB 中的示例并为此 zOS DB2 数据库添加 Secure Gatway 主机名和端口号以及我的 pw 和 userID 进行连接字符串准备:
$database = "EU***DB2*";
$hostname = "cio-sg-02.integration.ibmcloud.com";
$user = "**myuserID**";
$password = "**myPW**";
$port = **portfromSecureGatway**;
$ssl_port = **portfromSecureGatway**;
下面是连接字符串构建(也来自 DashDB 示例(。
$driver = "DRIVER={IBM DB2 ODBC DRIVER};";
$dsn = "DATABASE=$database; " .
"HOSTNAME=$hostname;" .
"PORT=$port; " .
"PROTOCOL=TCPIP; " .
"UID=$user;" .
"PWD=$password;";
$ssl_dsn = "DATABASE=$database; " .
"HOSTNAME=$hostname;" .
"PORT=$ssl_port; " .
"PROTOCOL=TCPIP; " .
"UID=$user;" .
"PWD=$password;" .
"SECURITY=SSL;";
$conn_string = $driver . $dsn; # Non-SSL
//$conn_string = $driver . $ssl_dsn; # SSL
我是否为 zOS/DB2 使用了正确的驱动程序?
这是 PHP 中的连接命令:
$connection = db2_connect($conn_string,$user,$password);
我为安全网关支持团队打开了一张票证,因为我收到SQL30081N错误消息,其中包含各种设置(基于我是否使用 SG 桌面客户端连接 - 它正在运行,- 它没有运行,我使用的是托管 SG 客户端.. 如果我不使用 SG 并尝试从我的桌面直接连接到 zOS(在这种情况下,我收到许可证错误,因为我还没有设置 zOS 许可证文件。
丢失的许可证是否也可能导致SQL30081N错误?
支持人员告诉我有应用程序错误。我是否可能使用了错误的连接字符串?
SQL30081N还没有在网上找到任何建议......但由于Secure Gatway ACL文件内容,我收到了此错误消息。修复了它,现在可以工作了。