DB2 с .NET Core 2.1 - PullRequest
       1

DB2 с .NET Core 2.1

0 голосов
/ 06 июня 2018

Я установил версию IBM.Data.DB2.Core (1.2.2.100) с Visual Studio 2017 и .Net Core 2.1.Я пытался протестировать простое соединение с DB2 (z / OS server) и получил следующее сообщение об ошибке.Наш тип сервера DB2 - OS390, а версия - 11.

ОШИБКА [42968] [IBM] SQL1598N Попытка подключиться к серверу базы данных не удалась из-за проблемы с лицензированием.

 using (DB2Connection con = new DB2Connection("Server=xxxx.xxxx.com:446;Database=XXXX;UID=XXXXXX;PWD=xxxxx"))
            {
                try
                {
                    con.Open();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            } 

Также я скопировал файл лицензии в папку .nuget \ packages \ ibm.data.db2.core \ 1.2.2.100 \ build \ clidriver \ license.Я перепробовал все упомянутое здесь: https://www.ibm.com/developerworks/community/blogs/96960515-2ea1-4391-8170-b0515d08e4da/entry/Instructions_for_downloading_and_using_DB2_NET_Core_provider_package?lang=en

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Потратил на это несколько часов, и вот что сработало для меня, используя текущую последнюю версию пакета 1.3.0.100 и действующую лицензию DB2 11.1, которую я уже установил.Я подозреваю, что этот подход будет работать и на 1.1 и 1.2, при условии, что у вас уже есть лицензия.

Добавьте следующий файл в файл проекта, изменив путь для DB2License, как необходимо для локальной установки:

  <ItemGroup>
    <DB2License Include="C:\ProgramData\IBM\DB2\{FOLDER NAME THAT VARIES BY INSTALL}\license\**\*.*"/>
  </ItemGroup>
  <Target Name="CopyFiles" AfterTargets="AfterBuild">
    <Copy SourceFiles="@(DB2License)" DestinationFolder="$(OutDir)\clidriver\license\" />
  </Target>

Важной частью является то, что $(OutDir)\clidriver\license\ имеет все файлы, необходимые для представления действительной лицензии DB2 11.1+ до запуска вашего приложения.Для меня было 3 файла.Для сборки и выпуска сервера может потребоваться немного более сложная настройка, чтобы получить правильные файлы в ожидаемом месте.


Вот еще кое-что, что я пробовал, но мне это не помогло, но можетпомощь для других:

  1. Некоторые статьи на сайте IBM предлагают добавить %userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\bin или %userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\license в переменную среды PATH.Это кажется совершенно ненужным.
  2. В других статьях или сообщениях на форуме предлагается скопировать файлы лицензий в папку лицензий пакета nuget %userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\license.Это сработало, но не идеально, поскольку его необходимо выполнить на каждом компьютере после восстановления пакета nuget , а затем выполнить его заново, если позже вы измените версии пакета nuget.И, конечно же, ни в одном из мест, где упоминается «эй, просто скопируйте лицензию по этому пути», не указан каталог по умолчанию, содержащий вашу существующую лицензию: C:\ProgramData\IBM\DB2\{FOLDER NAME THAT VARIES BY INSTALL}\license\.
0 голосов
/ 08 июня 2018

Пакет IBM DB2 Nuget для .net core версии 1.1 и 1.2 поставляется с драйвером DB2 версии 11. Эти два пакета не поддерживаются, если у вас версия DB2 меньше 11. Вот шаги для решения этой проблемы.

  1. Установка пакета IBM DB2 Nuget версии 1.0
  2. Обновление переменной PATH среды с помощью пути установки 1.0
  3. Удалите / деинсталлируйте любой другой драйвер DB2, установленный на вашем компьютере
  4. Закройте версию Visual Studio и снова откройте ее, она будет работать без проблем.

Кроме того, версия 1.0 не требует лицензионного файла.Надеюсь это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...