Blog: Comprehensive Java app upgrade while migrating to SQL Server

One of the largest transportation companies in the United States needed to migrate their Oracle-based application to SQL Server platform. The customer’s application code had high query complexity which increased the level of difficulty for our automated tools. In order to overcome this challenge, we performed manual conversion of the embedded SQL code along with application upgrade to the latest Java version. The customer didn’t have the time, resources or expertise to modernize and migrate their many hundreds of business critical applications. With DB Best’s expertise and capability, our customer can take advantage of the higher value SQL Server database platform with all the features built in along with new Java features on a greatly accelerated timeline.

Java application upgrade

Our customer supports hundreds of Java applications for keeping track of company assets and providing realtime freight logistics.
Before starting the application conversion to SQL Server platform, we had to upgrade the application code to Java 8 version. We also needed to analyze the current Java application architecture for potential issues.

We managed to ensure compatibility according to official Java Compatibility Guide at the following levels:

  • Source Compatibility
  • Behavioral Compatibility
  • Java Class Files
  • Features Removed from Java SE 8
  • Deprecated APIs

We paid special attention to 3rd party libraries with unknown Java 8 compatibility. We upgraded them when the new versions were available.

When rewriting the Java code, we implemented the best practices to design components that are scalable, secure, and performant. We also upgraded developer environment to Java 8. To identify incompatible internal APIs we utilized Java class dependency analyzer (jdeps).

After that, we performed unit testing of all functionality impacted by code rewriting.

Conversion of embedded SQL statements

When we migrate a database from one platform to another, we also need to update SQL statements embedded in the application to interact with the new database. An application with embedded SQL code first gets a connection to the database and then executes these embedded SQLs. For this purpose, Java has a special interface called Java Database Connectivity (JDBC). So, we had to convert JDBC drivers to establish a connection to the target SQL Server database.

Conversion of embedded SQL statements could be quite challenging. We used a combination of existing tools – AWS Schema Conversion Tool & Microsoft SQL Server Migration Assistant – along with new scripts to automate identification of SQL statements through a million lines of Java code. Then our migration experts manually converted embedded queries into SQL Server syntax.

Once the conversion was completed, we performed unit testing of all converted application modules and fixed all discovered errors.

After that, we updated the connection string to connect the Java application to the new SQL Server database.

We ended up with preparing documentation for the customer development team. There we described all changes that made during the conversion process and the issues discovered during the testing stage.

Ultimately, our customer benefited from fast and accurate project deployment with extensive documentation. Now they can take advantage of using up-to-date, stable, and secure SQL Server database along with upgraded Java application.

Feel free to contact us to complete your migration with confidence.