我使用IBM.Data.DB2提供程序在.NET C#中创建了一个小型桌面应用程序,它连接到z/OS上的IMB DB2。当我在一台机器上部署这个应用程序时,我遇到了IBM DB Connect的运行时问题,然后我发现我必须安装DB2 Run-Time Client Lite,我就这样做了。现在,当我运行这个应用程序时,出现了一个错误:
ERROR[42968][IBM] SQL8002N Connect processing failed; a valid product license was not found. SQLSTATE=42968
**注:**我能够使用HIS库连接相同的数据库。
1条答案
按热度按时间8e2ybdfx1#
任何 lite 版本都不能访问z/OS DB2远程入口点。使用IBM JDBC驱动程序,您需要企业版来连接z/OS,这几乎可以肯定与使用C#相同-这是为了保护大型机免受没有“企业神”祝福的所有客户端的影响。
如果你没有有效的许可证,客户端甚至不会尝试连接到主机。你收到的错误代码和状态与我描述的情况完全匹配。
IBM防护(或者更准确地说,允许他们的客户保护)他们的大型机DB2访问。我怀疑这与确保只有企业级应用程序才试图连接有关。没有正确许可文件的JDBC客户机甚至无法在大型机TCP端口上获得它们的请求,它们在客户端被阻止-大型机通常是业务关键型的,而这是大多数桌面/服务器应用程序梦寐以求的:-)。
对于IBM JDBC驱动程序,可以使用一个type-4驱动程序访问 * 所有 * DB2平台(LUW、iSeries、System z等),但实际上必须在CLASSPATH中为特定平台安装一个许可证文件,否则会出现异常。
该许可证文件的格式为“db2jcc_cisuz.jar”,其中cisuz指定了允许访问的平台(cu是最常见的,但它不能访问iSeries或System z)。
您通常必须从IBM购买DB2 Connect才能获得这些文件,我怀疑.NET框架也会出现类似的情况。您可能会发现DB2 Connect产品具有.NET客户机驱动程序和JDBC(我还没有看过)。请查找该产品的“Enterprise”版本,因为标准版本不太可能具有System z许可证。