JDataStore 3.51 Hints and Tips

Introduction

JDataStore is a high-performance, small-footprint, 100% Pure JavaTM multi-faceted data storage solution. It is: JDataStore can function as a server or be embedded into "client-side" or remote applications with top performance and virtually zero administration.  As a more cost effective database solution than competitors, JDataStore is a complete solution for all-Java platforms including:  mobile computing, Internet applications, Web servers and Enterprise JavaBean (EJB) servers.

Other key features include object relational storage, Pure Java Database Connectivity (JDBC) local or remote Type 4 drivers, JavaBean components that allow direct access to JDataStore, and lightweight replication and synchronization technology.  All of these features enable JDataStore to solve a variety of general database problems and complement popular native RDBMS systems like InterBase, Oracle, DB2, MS SQL Server and Sybase.

Contents

JDataStore Web Site

For the latest information about JDataStore, see http://www.borland.com/jdatastore/

[top]


Minimum System Requirements

Windows

Linux

Solaris

Deployment

[top]

JDataStore Documentation

The JDataStore 3.51 documentation is available as a separate download. See http://www.borland.com/techpubs/jdatastore/ for information on downloading, installing and viewing the JDataStore documentation.

[top]


JDataStore Tools and Samples

JDataStore 3.51 also provides several tools and samples that assist you in using JDataStore. See the installation instructions for your platform for information on starting and using these tools.

JDataStore Explorer

Using the all-Java DataStore Explorer, you can: To start the JDataStore Explorer on Windows, do one of the following: To start the JDataStore Explorer on Linux or Solaris, do one of the following:

JDataStore Server

To access JDataStore files through a remote JDBC connection, a JDataStore JDBC server must be running on a machine that has local access to those files. This could be the actual machine that contains the files, or a machine that has direct network access to JDataStore files on a networked drive.

To start the JDataStore Server on Windows, do one of the following:

To start the JDataStore Server on Linux or Solaris, do one of the following:

JDBC Explorer

The JDBC Explorer is a hierarchical database browser that also allows you to edit data. It presents JDBC-based meta-database information in a two-paned window. To start the JDBC Explorer on Windows, do one of the following: To start the JDBC Explorer on Linux or Solaris, do one of the following: When you run JDBC Explorer from within JBuilder, it can access class and jar files that you have made available in JBuilder through entries in JBuilder.config.  If you will run JDBC Explorer standalone, add the class or jar for your database's driver to jdbce.config, in your JBuilder 3.5 or JDataStore 3.5 bin directory.  Follow the pattern of the DataStore's remote driver, which is defined there in the "Database drivers" section.

JDataStore Samples

Sample programs showing how to create and work with JDataStore files are included in the JDataStore\Samples directory. These samples include: [top]

What's new in JDataStore 3.51

JDataStore 3.51 features fixes to DataStore functions such as read-only transactions and multi-threaded application support. These fixes have resulted in significantly better reliability, more consistent operation on all platforms, and improved recovery from system failures. Stressful applications -- those that run for a long time, access the DataStore heavily, or execute competing transactions from multiple users concurrently -- run better than in previous versions of JDataStore. Performance has also been improved slightly.

For this release, basic functionality test suites and stress tests have  has been executed on Windows NT, Solaris, and Linux using the JDK 1.2.2 provided with JBuilder 3.5. Because no Java 2 APIs are used at runtime, this release also supports JDK 1.1.x. Basic tests suites have been run on JDK 1.1.8.

The JDataStore JAR files in this release have the same names as they did in JBuilder 3 - Solaris Edition and JBuilder 3.5, for instance "datastore3.1.jar". However, they have a new internal version number, "300.500.032.000". To display the JAR version numbers

This will tell you which release of JDataStore 3.5 you have. Don't rely on the version number on the JBuilder splash screen and About dialog, which will be the same whether you have the JDataStore 3.51 or an earlier version.

[top]


Storage of date/time values

In JBuilder 3 and JBuilder 3.5, JDataStore stores date and time values as the local time in the time zone where the values were entered.  This has been changed; for newly created DataStores, JDataStore now follows the Java convention in storing date/time values as GMT time. Because java.sql.Date, Time, and Timestamp objects take care of conversion to local time, there will be no visible difference in most applications. DataStores with the new date/time handling will use a new version of the DataStore file format, version 5.

Effects of changed date/time storage

The new date/time storage will only be visible in applications that work with dates and times in multiple time zones. A DataStore file of the previous version, version 4, displays date/time values as the local time in the time zone where the data was entered, regardless of the time zone where the data is being displayed. For example, if the time 10:00 AM is entered in the Pacific Standard time zone, it will also be displayed as 10:00 AM in the Eastern Standard time zone (and every other time zone). A version 5 store file, on the other hand, adjusts date/time values according to the time zone in which the data is displayed.  Different time zones display the same data differently, each giving the local time representation of the same instant in time. To use the same example, the time that's displayed as 10:00 AM Pacific Standard Time will now be displayed as 1:00 PM Eastern Standard Time.

You only need to be concerned with this change in a few cases:

Effects of new DataStore file version

JDataStore 3.51 handles dates and times in version 4 DataStores just as the previous releases do. Any new DataStore you create will be a version 5 store and will use the new rules for storing date/time values.  JDataStore 3.51 automatically converts from the old representation to the new when you upgrade a version 4 store or copy data from a version 4 store to a version 5 store. You can check a DataStore's version or upgrade a version 4 store to version 5 through the DataStore Explorer.

Previous JDataStore releases can't open version 5 stores. If some users of an application have upgraded to JDataStore 3.51 while others have not, the application's DataStores must be version 4 files. For simplicity and to take advantage of improved performance and reliability, it is preferable to provide all users with JDataStore 3.51 and upgrade the store files to version 5.

DataSetData version

Because they may store date/time values, DataSetData objects created by JDataStore 3.51 will also have a new version number. This is not likely to be a problem. Normally, the same JDataStore JARs are on the classpath of the code that loads a DataSetData object and the code that extracts from it, and the DataSetData objects themselves are usually not long-lived.

[top]


soTimeout property

A new property, soTimeout, has been added to DataStoreServer. Use soTimeout to specify the time, in milliseconds, that the DataStore server should wait for a connection to be made before checking if a shutdown request has been made. soTimeout defaults to 0, meaning that it will wait indefinitely for the connection to be made. You will probably only want to set it if you are running on an unusual platform or JDK version and your DataStoreServer will not shut down.

[top]


Moving log files

Moving transactional DataStores is now easier than documented in the JDataStore Programmer's Guide, even when you move then from one device to another. Simply move the DataStore and its log files to the new location. (If you want to copy it, you'll have to rename the log files in the original location at least temporarily.)    When you open a transactional DataStore, JBuilder's rules are: Surprisingly, disabling transactions before you move or copy a DataStore can introduce complications. If you make a DataStore non-transactional in order to truncate the log, consider making it transactional again before you move it. These operations can be done from the DataStore Explorer's TxManager menu.

[top]


WebBench sample application

The WebBench sample application, in samples/JDataStore/WebBench under your JBuilder directory, demonstrates JDataStore's ability to support large databases and many concurrent transactions. It shows how to establish concurrent connections to a transactional DataStore, and it can be used to benchmark JDataStore's performance running realistic complex transactions.

Ignore the corrections mentioned in JBuilder's hints_and_tips.html.  The JDataStore 3.51 version of WebBench is ready to run. It has several small new features that are not described in its documentation:

[top]

Application deployment

Information on deploying the JDataStore JDBC server for remote access is in "Deploying the DataStore JDBC server" in the JDataStore Programmer's Guide. Tips for reducing the deployed size of JDataStore client applications can be found in "Pruning deployed resources" in the JDataStore Programmer's Guide.

Reminder: JDataStore is provided with a license for development only. To deploy JDataStore and DataExpress libraries with your application, a deployment license must be purchased. For more information on purchasing a JDataStore deployment license, see www.borland.com/jdatastore.  Only the following JDataStore libraries may be deployed with your application when you purchase a JDataStore deployment license:

[top]