Details

      Description

      Current Situation

      • MySQL versions up to 5.7 are supported by JobScheduler Master and JOC Cockpit, see Which Database Management Systems are supported by JobScheduler?
      • MySQL version 8 is reported to work with JobScheduler Master
        • Users have to download a current JDBC Driver for version 8 of the DBMS from the MySQL web site and to specify the driver during installation.
        • MySQL JDBC Drivers are not open source licensed and therefore do not ship with JobScheduler.
        • At the time of writing the MariaDB project does not provide an open source licensed JDBC Driver for MySQL 8, see MariaDB Connector/J version compatibility
      • MySQL version 8 is not supported by JOC Cockpit
        • Specifying a current MySQL 8 JDBC Driver results in errors as both the existing MariaDB Driver 1.3 (that ships with JOC Cockpit) and the MySQL 8 JDBC Driver shares a number of class names.
        • This problem is due to the fact that the MariaDB Driver is not limited to use is own unique class name org.mariadb.jdbc.Driver but "hijacks" the class name com.mysql.jdbc.Driver that is owned by the MySQL project (we consider this an offensive behavior). Up to release 1.5.9 of the MariaDB Driver this behavior cannot be changed, see About MariaDB Connector/J
          • Later releases of the MariaDB Driver allow to specify the disableMariaDbDriver query parameter to modify this behavior, e.g. with a URL such as jdbc:mysql://localhost:3306/jobscheduler?disableMariaDbDriver=true
          • JobScheduler releases up to 1.12.5 ship with the MariaDB Driver version 1.3.0 that does not allow to prevent this behavior. As a result it is not possible to use a MySQL JDBC Driver with JOC Cockpit up to JobScheduler releases 1.12.5. The JobScheduler Master is not affected as it loads JDBC Drivers in a different manner, however, the JOC Cockpit is affected that makes use of the Jetty Web Server to load JDBC Drivers.

      Desired Behavior

      • JOC Cockpit should allow to use an individual MySQL 8 JDBC Driver without interfering with the existing MariaDB JDBC Driver.
      • JDBC URLs that include the com.mysql.jdbc.Driver class are added the query parameter disableMariaDbDriver=true.
      1. jobscheduler.hibernate.cfg.xml
        1 kB
        Uwe Risse
      2. reporting.hibernate.cfg.xml
        2 kB
        Uwe Risse
      1. MicrosoftTeams-image (1).png
        70 kB

        Issue Links

          Activity

          Hide
          Santiago Aucejo Petzoldt added a comment -

          The parameter is supported by mariaDB since driver version 1.5.9.
          See https://mariadb.com/kb/en/library/about-mariadb-connector-j/
          Section
          "Having MariaDB and MySQL Drivers in the Same Classpath"

          Show
          Santiago Aucejo Petzoldt added a comment - The parameter is supported by mariaDB since driver version 1.5.9. See https://mariadb.com/kb/en/library/about-mariadb-connector-j/ Section "Having MariaDB and MySQL Drivers in the Same Classpath"

            People

            • Assignee:
              Mahendra Patidar
              Reporter:
              Andreas Püschel
              Approver:
              Uwe Risse
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: