Удалите имя iASP RDB, чтобы указать его в URL-адресе jdbc. - PullRequest
1 голос
/ 05 апреля 2019

У меня есть Java-приложение, которое работает на IBM i.Создает соединение с базой данных AS400 с помощью jdbc.Он не указывает имя базы данных в URL-адресе соединения JDBC, означает, что он создает соединение с системной базой данных по умолчанию, связанной с * SYSBAS.

Теперь я хочу, чтобы мое приложение работало на iASP.При работе на iASP не удается подключиться к базе данных.Документация IBM i говорит, что мы должны указать имя RDB в свойстве «имя базы данных» URL-адреса соединения jdbc для подключения.

проблема в том, что

Документация IBM i говорит, что по умолчанию имя RDB группы iASP совпадает с именем основного устройства iASP в группе iASP.Но ему можно присвоить другое имя.

Я могу получить имя группы iASP и имя устройства iASP программно, используя JTOPEN (вызывая API QUSROBJD).Это означает, что мое приложение будет работать в сценарии по умолчанию.Но когда RDB-имени присваивается другое имя, моё приложение может не работать.Я хочу получить имя RDB, связанное с iASP.

Как я могу получить правильное имя RDB для iASP?

Я пытался использовать API QUSRJOBI, но он возвращает имя базы данных как пустое.

1 Ответ

3 голосов
/ 05 апреля 2019

В IBM i существует два типа пула вспомогательного хранилища (ASP): системные ASP и независимые ASP (iASP). В DB2 for i все библиотеки в системном ASP обрабатываются как одна база данных, и вы можете квалифицировать таблицы с именем схемы для доступа к таблицам в конкретной библиотеке. В соответствии с документацией, которую я нашел, каждый новый iASP создает новую базу данных, и их можно запросить в QSYS2.SYSCATALOGS. Таким образом, вам понадобится соединение с системной базой данных, после чего вы сможете найти имя базы данных и подключиться к каждому iASP, к которому вам нужно подключиться. К сожалению, я не могу проверить это, так как у меня нет доступного iASP.

...