JDataConnect is a set of JDBC drivers that provide database connectivity for Java applets, servlets and applications. The JDataConnect product consists of the following set of JDBC packages:
- JData2_0: Provides a complete implementation of Sun's JDBC 2.0 specification.
- JData3_0 Provides a complete implementation of Sun’s JDBC 3.0 specification.
- JData4_0 Provides a complete implementation of Sun’s JDBC 4.0 specification.
- JDataLite Provides an ultra light JDBC driver that downloads quickly on low bandwidth Internet connections. JDataLite also supports a number of JDBC 2.0 features such as scrollable-updateable result sets and can provide these features in non Java 2.0 environments such as web browsers.
- JDataServer A robust, high performance, multi-threaded database access engine that provides networked database access for all driver packages.
Type 3 JDBC and the 3 Tier Network Architecture
JDataConnect is a type 3 JDBC driver. According to Sun, type 3 provides the the most flexible approach to database access with Java. JDataConnect is also implemented as a robust 3 tier architecture. A true three-tier architecture provides flexibility, performance, data security, and scalability. 3 tier is the most flexible architecture because it allows many different deployment architectures. For example, databases may be located on servers remote from the web server. Network access is achievable for otherwise non networked desktop databases such as Microsoft Access and Microsoft FoxPro.
The type 3 JDBC driver is the only type of driver that supports “Zero Install” on the client because clients need only install a web browser to run the application. Zero Install means there is absolutely nothing to install on the client’s machine other than a web browser for applets or a Java VM for applications. Zero Install is a mandatory feature for developers building Internet based applications.
Multiple Driver Packages
JDataConnect provides a set of driver packages that can be used interoperably with JDataServer. See our FAQ on the differences between the packages and when to use which package.
By having multiple packages the Java developer can choose the package that best suits the needs of their specific project. Most importantly, Java source code does not require modification to run on either package. The only difference is which package is imported by the application.
All driver packages are certified 100% Pure Java. All packages support client side “zero install”. A single running instance of JDataServer can concurrently support applications written using either JData2_0, JData3_0, JData4_0 or JDataLite.
The JData2_0, JData3_0 and JData4_0 Packages
JData2_0 (supporting JDBC 2.0), JData3_0 (supporting JDBC 3.0) and JData4_0 (supporting JDBC 4.0) provide full support for the standard JDBC specifications.
The JData2_0, JData3_0 and JData4_0 packages also support all the unique features of JDataConnect including SSL Security, Round Trip Reduction technology, HTTP Tunneling and Connection Pooling.
The JDataLite Package – Ultra Light Weight JDBC
The JDataLite package allows rapid applet downloads over slow network connections due to it’s ultra light weight size. JDataLite supports a core JDBC 2.0 API subset which allows the Java developer to insert, update, delete, query and transact data in networked databases.
The JDataLite package supports database connections, regular, prepared and callable statements and scrollable and updateable result sets. The package also supports all the commonly used SQL datatypes such as text, integer, long, float, blobs, double and date and supports multiple statements per connection. JDataLite also provides all the JDBC functions required to support transaction and isolation level control on databases.
The JDataLite package supports all the unique features of JDataConnect including SSL Security, Round Trip Reduction technology, HTTP Tunneling, and Connection Pooling.
JDataServer – Scalable, Robust, High Performance Database Access
JDataServer is the database server component of JDataConnect. JDataServer provides scalable, robust and high performance enterprise data access to relational databases.
JDataServer is multithreaded to provide reliable concurrent access for many users. Every new client connection is allocated a server side thread to ensure maximum throughput for multiple concurrent connections. JDataServer automatically cleans up connections and other resources that have timed out to provide reliability on servers that are infrequently re-booted.
JDataServer can be run as a console application or an NT service. Installing JDataServer as an NT service ensures the server is available on unattended servers whenever the server is powered up.
JDataServer provides full control over logging options and can log to various locations such as the NT Event Log, a specific log file or to the console window. JDataServer can log many events such as errors, SQL requests and object creates and destroys.
JDataServer provides a number of important unique features that are described below.
Connection Pooling: Connection pooling provides a major performance improvement by reducing the time taken by them to connect to the database. Without pooling, new physical connections must always be established which is time consuming and expensive on the database engine.JDataConnect supports two forms of connection pooling. Both forms of connection pooling are transparent to developers (require no special coding) and may be used separately or together as required.
Client Side Pooling: Client side pooling enables connections from servlets, applets and applications that share a common JVM to be pooled. For example, all the servlets running in an application server could pool connections. JDataConnect supports the JDBC 2.0 Optional API connection pooling API in all drivers except the JDataLite driver. This support enables the JDataConnect drivers to participate in any middleware implementations of connection pooling that are standard extension compliant. JDataConnect also ships with a Standard Extension compliant implementation of a connection pooling data source.
Server Side Pooling: Server side pooling pools connections for applets, applications and servlets running in separate JVM’s. For example, if you provide applet access to your database you would use server side pooling to allow all applets to pool connections even though those applets are running on different client machines (i.e. their JVM’s are different.)JDataServer can be configured to create multiple sets of pooled connections when it starts. When a client requests a connection JDataServer simply returns one of the pre-opened connections thereby eliminating the overhead of having to open the connection at request time. When a client closes a connection the driver places the connection back into the connection pool.No special coding is required by the Java developer to enable pooling – Java connection syntax is identical to regular connections.Finally, server side connection pooling also provides enhanced security since connection pooling can be setup so that database passwords are not transmitted over the network.
Remote Monitoring: In most production deployments JDataServer is located on a remote server. Remote Monitoring allows the system administrator to query the status of JDataServer via a standard web browser via the Internet, intranet or local area network. JDataServer will generate an HTML page to the user’s browser that shows the up time of the server, the number of active connections, total connections overall, a breakdown of the connection types, error counts and other status data that provides valuable information for the system administrator.