撤消iASP RDB名称以在jdbc url中指定它

时间:2019-04-05 07:25:00

标签: java jdbc ibm-midrange

我有一个在IBM i上运行的Java应用程序。它使用jdbc创建到AS400数据库的连接。它没有在JDBC连接URL中指定数据库名称,意味着它创建了与* SYSBAS关联的默认系统数据库的连接。

现在,我希望我的应用程序可以在iASP上运行。在iASP上运行时,它无法连接到数据库。 IBM i文档说,我们必须在jdbc连接URL的“数据库名称”属性中指定RDB名称才能进行连接。

这里的问题是

IBM i文档说,默认情况下,iASP组的RDB名称与iASP组中的主要iASP设备名称相同。但是可以为其分配其他名称。

我能够使用JTOPEN(通过调用API QUSROBJD)以编程方式检索iASP组名称和iASP设备名称。这意味着我的应用程序将在默认情况下运行。但是,当为RDB名称分配其他名称时,我的应用程序可能会失败。我想检索与iASP关联的RDB名称。

如何为iASP检索正确的RDB名称?

我尝试使用API​​ QUSRJOBI,但返回的数据库名称为空。

1 个答案:

答案 0 :(得分:3)

IBM i上有两种类型的辅助存储池(ASP):系统ASP和独立ASP(iASP)。在DB2 for i上,系统ASP中的所有库都被视为一个数据库,您可以使用模式名称限定表以访问特定库中的表。根据我发现的文档,每个新的iASP都会创建一个新的数据库,可以在QSYS2.SYSCATALOGS中查询这些数据库。因此,您将需要与系统数据库的连接,然后,您可以找到数据库名称并连接到需要连接的每个iASP。不幸的是,由于我没有可用的iASP,因此我无法对此进行测试。