C# - 在没有许可证的情况下连接到 DB2 z/os 大型机

Posted

技术标签:

【中文标题】C# - 在没有许可证的情况下连接到 DB2 z/os 大型机【英文标题】:C# - connecting to DB2 z/os mainframe without a license 【发布时间】:2018-04-12 09:20:46 【问题描述】:

问题: 我有一个需要对大型机上的 DB2 z/os 进行读写访问的 c# 应用程序。

我已经搜索了数周并得出结论:要么使用 IBM 驱动程序(需要许可证文件、DB2 连接或某种许可软件),要么使用 db2 的 ole DB 提供程序(主机集成服务器)由 Microsoft 提供。

微软选项是免费的,只需要安装驱动程序,不需要许可证文件。 IBM 选项需要 DB2 连接软件和许可证(即使您使用 ibm nuget 包,它也需要您拥有许可证文件)

问题: 1)我可以免费执行此操作,这意味着无需购买许可证吗?除了微软选项? 2)是否可以将项目部署到机器而无需安装任何驱动程序? (有点像 ibm 的自包含 nuget 包)但你知道,不需要许可证文件吗?

提前致谢!附: DB2 服务器是远程的,而不是本地的

【问题讨论】:

不太可能,而且 DB2 Connect 是一大笔钱。 z/OS 上 DB2 的最新版本(11 和 12)提供本机 REST 功能。 @cschneid 感谢您的建议!如果生活就这么简单……我实际上正在使用 DB2 for z/OS 版本 10…… 对 DB2 for z/OS v10 的支持终止是 2017-09-30。您确定您正在使用 DB2 for z/OS v10? @cschneid 实际上是我的错误!它是 db2 v 11.1!这意味着我可以进行 REST 调用。但现在我认为我遇到了安全问题。我已经在我的 c# 应用程序中实现了一个 HTTPWebRequest 帖子,但我收到“底层连接已关闭:连接意外关闭”。错误。我已按照 IBM 的指南创建 REST 服务,但似乎没有用。哦,好吧,至少我知道这是可能的。 【参考方案1】:

IBM 提供的 Db2 驱动程序始终需要适当的 Db2 Connect 许可证才能访问 Db2 for z/OS。 这些并不总是很昂贵,这完全取决于环境和要求。

Microsoft 的驱动程序似乎是免费的,但是,在使用它们时,请考虑:

向 IBM 请求支持时的潜在挑战 - 他们不会同意调试驱动程序与数据库交互问题,除非您付费,否则 Microsoft 不会帮助您;

可能的兼容性问题,包括不支持最新功能以及与较新的 Db2 修复程序的兼容性有限(即使在单个主要 Db2 版本中)。

如果在您的具体情况下这两件事对您来说不是很重要,您可以通过使用 Microsoft 的驱动程序来避免为 Db2 Connect 付费 :-)

【讨论】:

实际上,cscheind 对 DB2 的 REST 服务提出了很好的建议。这不需要与您的 .NET 应用程序一起安装任何驱动程序 :) 但感谢您的回复! 您在上面的评论中提到您使用的是 Db2 v11.1。这样的版本号通常用于“Db2 LUW”,而不是“Db2 z/OS”软件——即使在大型机上也是如此。如果这是 LUW 变体,则不需要 Db2 Connect 和关联的许可证密钥 - 只需使用 IBM 提供的驱动程序。 不,它是 DB2 for z/OS,特别是版本 11.1.0 www-01.ibm.com/software/support/lifecycleapp/…【参考方案2】:

正如 cschneid 所建议的,可以通过 REST 服务将 c# 应用程序(或任何 .NET 应用程序)连接到大型机上 z/OS 的 DB2(版本 11 及更高版本)。您最终只是通过 JSON 对象请求和获取响应。您只需确保将 DB2 配置为处理 REST 调用(尤其是在使用 HTTPS 时)

【讨论】:

以上是关于C# - 在没有许可证的情况下连接到 DB2 z/os 大型机的主要内容,如果未能解决你的问题,请参考以下文章

在没有 mssql 支持的情况下连接到 mssql

如何在没有认证问题的情况下连接到 URL?

在没有元数据的情况下连接到 Web 服务

在没有公共 API 的情况下连接到网站 webosocket

如何在没有 SSL 的情况下连接到 MySQL 数据库

Swift:检查iOS是不是在没有互联网的情况下连接到wifi