Java has been a stumbling block for Microsoft since Sun Microsystems announced Java 1.0 in 1994. Soon, Sun was espousing Java as a "Windows killer" that would entice enterprise customers to dump Windows in favor of network devices running Java. In retrospect, that goal was laughable, but Microsoft took it seriously enough to develop its own Java Virtual Machine (JVM)—the runtime layer that Java applications use to interact with the underlying OS—complete with proprietary Windows optimizations. However, Sun took exception to Microsoft's blatant attempt to divide the Java community with its "extended" version of the JVM and sued Microsoft. The skirmish culminated in the termination of Microsoft's existing license with Sun. Microsoft even removed the JVM from the shipping version of Windows XP, making the XP JVM a separately downloadable component. (You can download the updated JVM from http://www.microsoft.com/java/vm/dl_vm40.htm.)

Although Java didn't replace Windows, its language features and cross-platform capabilities have fueled its adoption as an enterprise-level application development platform. Unfortunately, Microsoft has dragged its feet on providing Java support for the Microsoft .NET Enterprise Servers—no doubt hoping that Java would just go away. And as Java implementations have steadily grown in large enterprises, SQL Server's support for Java applications has been limited to the barely documented Java Database Connectivity (JDBC)/ODBC Bridge. The JDBC/ODBC Bridge isn't a true Java application but is rather a type 1 driver that translates Java applications' JDBC calls into ODBC calls. An ODBC driver then routes these calls to SQL Server. Likewise, the bridge translates any results that SQL Server returns through the ODBC driver into Java results. Although this process is workable, it doesn't compare well with the integrated Java support that Oracle9i and IBM's Universal Database (UDB) provide. Microsoft's lack of enthusiasm for this patchwork solution is evident from its sole documentation: a handful of sample applications that you can download from the Microsoft Developer Network (MSDN) Web site (http://msdn.microsoft.com).

Now, there's a better way to SQL Server—Java integration. Microsoft has licensed the native JDBC driver for SQL Server that MERANT DataDirect developed. The MERANT JDBC driver is a type 4 driver, a native Java implementation. Including a native JDBC driver with SQL Server erases one of the few remaining impediments that have kept some companies from adopting SQL Server as an enterprise database solution. The addition of the native JDBC driver means that SQL Server can support Java applications just as well as it does Visual Basic (VB), Active Server Pages (ASP), and C++ applications. The driver also lets SQL Server compete head-to-head with Oracle and DB2 as an enterprise database for Java applications. By providing a native JDBC driver for SQL Server, Microsoft hurdles the Java stumbling block and continues to push SQL Server into the enterprise. The new JDBC driver, which works only with SQL Server 2000, is compatible with Java Development Kit (JDK) 1.8, 1.2, and 1.1.8. You can download it from http://www.microsoft.com/sql/downloads/default.asp.