Troubleshooting Upgrade

This section details common issues that arise during the upgrade process as well as their solutions.

Driver Not Found Errors

Due to licensing restrictions, Jive is unable to ship database drivers for all previously-supported databases. Namely, JDBC drivers for DB2 and MySQL are not included with the Jive SBS Platform package. The platform will attempt to install these drivers when you install the platform, but in some cases automated installation will not be possible. If the package cannot download the appropriate drivers, an error message will be printed to the console similar to “No suitable driver found for…”. For example, in the following example, the MySQL database driver is not found by the runtime system:

[1616][jive@targethost:~]$ ./bin/migration/bin/migration ./migration.properties 
java.sql.SQLException: No suitable driver found for >jdbc:mysql://soul:3306/csc252
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.jivesoftware.migration.schema.DbUtil.getConnection(DbUtil.java:133)
at com.jivesoftware.migration.etl.DbConfig.getInputConnection(DbConfig.java:161)
at com.jivesoftware.migration.etl.DbConfig.getVersion(DbConfig.java:263)
at com.jivesoftware.cli.Main.exportBlobs(Main.java:198)
at com.jivesoftware.cli.Main.run(Main.java:100)
at com.jivesoftware.cli.Main.main(Main.java:66)
Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
at com.jivesoftware.cli.Main.main(Main.java:68)
Caused by: java.lang.NullPointerException
at com.jivesoftware.migration.etl.DbConfig.getVersion(DbConfig.java:273)
at com.jivesoftware.cli.Main.exportBlobs(Main.java:198)
at com.jivesoftware.cli.Main.run(Main.java:100)
at com.jivesoftware.cli.Main.main(Main.java:66)

To resolve this issue, download the MySQL JDBC driver and place the JAR file for the driver in the jive user’s bin/migrate/lib directory. The following sequence demonstrates downloading the file and unpacking to the /usr/local/jive/bin/migration/lib directory of the target host.

[1632][jive@targethost:~]$ wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz/from/http://mysql.llarian.net/
--16:32:11--  http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz/from/http://mysql.llarian.net/
Resolving dev.mysql.com... 213.136.52.29
Connecting to dev.mysql.com|213.136.52.29|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://mysql.llarian.net/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz [following]
--16:32:13--  http://mysql.llarian.net/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz
Resolving mysql.llarian.net... 209.221.142.116, 2001:5d8:11::14
Connecting to mysql.llarian.net|209.221.142.116|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8640154 (8.2M) [application/x-gzip]
Saving to: `mysql-connector-java-5.1.7.tar.gz'
100%[================================================================>] 8,640,154   5.11M/s   in 1.6s
16:32:14 (5.11 MB/s) - `mysql-connector-java-5.1.7.tar.gz' saved [8640154/8640154]
[1632][jive@targethost:~]$ tar zxf mysql-connector-java-5.1.7.tar.gz 
[1632][jive@targethost:~]$ mv mysql-connector-java-5.1.7/
build.xml                           docs/                               README 
CHANGES                             EXCEPTIONS-CONNECTOR-J              README.txt 
COPYING                             mysql-connector-java-5.1.7-bin.jar  src/ 

[1632][jive@targethost:~]$ mv mysql-connector-java-5.1.7 bin/migration/lib/
mv: cannot move `mysql-connector-java-5.1.7' to `bin/migration/lib/mysql-connector-java-5.1.7': Permission denied
[1632][jive@targethost:~]$ chmod 755 bin/migration/lib
[1632][jive@targethost:~]$ mv mysql-connector-java-5.1.7 bin/migration/lib/
[1632][jive@targethost:~]$ ./bin/migration/bin/migration ./migration.properties

The preceding example downloads the MySQL JDBC driver and using the “tar” command uncompresses the file. The tar archive uncompresses to a directory which can be moved directly to the /usr/local/jive/bin/migration/lib directory.

Note that in the preceding example, it is necessary to change the permissions on the /usr/local/jive/bin/migration/lib directory to move the expanded tar.gz file to the lib directory. This directory is read-only by default on a managed host.