Błąd połączenia z bazą danych z powodu błędu SSL lub TSL

Podczas aktualizacji produktu Maximo® Manage 8.5.x do wersji 8.6.x lub nowszej z bazą danych Db2® proces jest zatrzymany w punkcie obszaru roboczego aktywowania. Przyczyną jest błąd SSL (Security Socket Layer) lub TSL (Transport Layer Security), a rozwiązanie polega na jawnym określeniu wersji protokołu SSL w łańcuchu połączenia JDBC .

Działanie w tle

Komunikat o błędzie z poziomu pakunku serwera może wyglądać następująco.
25 Apr 2023 04:24:59:367 [ERROR] [sql] BMXAA6421E - The system could not connect to the JDBC source: jdbc:db2://c-db2wh-1640014734526263-db2u-engn-svc.mas-cpd.svc:50001/BLUDB:sslConnection=true;Unsupported protocolSSL_TLSv2
25 Apr 2023 04:24:59:368 [ERROR] [maximo] BMXAA6538E - Failed to initialize MAXIMO business object services.
psdi.util.MXSystemException: access#DBConnectFail
Caused by: java.lang.IllegalArgumentException: Unsupported protocolSSL_TLSv2
          at sun.security.ssl.ProtocolVersion.namesOf(ProtocolVersion.java:292) ~[?:?]
          at sun.security.ssl.SSLSocketImpl.setEnabledProtocols(SSLSocketImpl.java:362) ~[?:?]
          at com.ibm.db2.jcc.t4.w.run(w.java:123) ~[db2jcc.jar:?]
          at java.security.AccessController.doPrivileged(AccessController.java:747) ~[?:?]
          at com.ibm.db2.jcc.t4.a0.a(a0.java:435) ~[db2jcc.jar:?]
          at com.ibm.db2.jcc.t4.a0.<init>(a0.java:97) ~[db2jcc.jar:?]
          at com.ibm.db2.jcc.t4.a.b(a.java:367) ~[db2jcc.jar:?]
W dzienniku operatora zostanie wyświetlony komunikat informujący o błędzie TLS, jak pokazano w poniższym przykładzie.
[0;31mfatal: [localhost]: FAILED! => {"changed": true, "rc": 1, "return_code": 1, "stderr": "", "stderr_lines": [], "stdout": "Calling isValidDBConnection ...\nValidating DB connection from script /opt/IBM/SMP/maximo/is-updatedb-needed.sh using the querycount utility to check for the maxvars table.\nDB Connection return code = 255\nNote: A return code of 0 (table found) or 1 (table not found) indicates a successful query via a valid DB connection and that an exception has not occurred. Otherwise, there's a problem connecting to the database.\nisvalidconn.log\n==================\nDEBUG***:queryType=table\nException\njava.lang.IllegalArgumentException: Unsupported protocolSSL_TLSv2\n\tat java.base/sun.security.ssl.ProtocolVersion.namesOf(ProtocolVersion.java:292)\n\tat java.base/sun.security.ssl.SSLSocketImpl.setEnabledProtocols(SSLSocketImpl.java:362)\n\tat com.ibm.db2.jcc.t4.w.run(w.java:123)\n\tat java.base/java.security.AccessController.doPrivileged(AccessController)

Informacje niezbędne do działu wsparcia IBM

Zbierz dane MustGather z programem Maximo Application Suite za pomocą narzędzia MustGather . Więcej informacji na ten temat zawiera sekcja Przeczytaj pierwsze: Zbierz dane MustGather dla produktu IBM® Maximo Application Suite przy użyciu narzędzia MustGather.

Rozwiązanie

  1. W interfejsie użytkownika programu Maximo Application Suite zaktualizuj adres URL bazy danych w jeden z następujących sposobów.
    • Przejdź do sekcji Obszary robocze z menu i wybierz opcję Zarządzaj . Kliknij opcję Połączenie z bazą danych w sekcji Integracja i zależności .
    • Alternatywnie można przejść do sekcji Konfiguracje z menu i kliknąć opcję Połączenie z bazą danych w sekcjiPamięć masowa .
      Uwaga: Zmiana adresu URL bazy danych ma wpływ na wszystkie aplikacje w programie Maximo Application Suite, a nie tylko w programie Maximo Manage.
  2. Kliknij ikonę Edytuj i upewnij się, że właściwość sslVersion=TLSv1.2 jest zawarta w adresie URL bazy danych. Następujący adres URL jest tylko przykładem.
    jdbc:db2://HOSTNAME:50001/BLUDB:sslConnection=true;sslVersion=TLSv1.2;
Więcej informacji na ten temat zawiera sekcja Znane problemy.