Contents


Chapter 1: Introduction
When to use JDataStore
JDataStore and DataStore
What you should know
What's in this book
Using JDataStore for the first time
Starting with the JDataStore Explorer
Deploying JDataStore application components
Contacting Borland developer support

Chapter 2: JDataStore fundamentals
JDataStore primer
Serializing objects
   Demonstration class: Hello.java
   Creating a JDataStore file
   Opening and closing a connection
   Handling basic JDataStore exceptions
   Deleting JDataStore files
   Storing Java objects
   Retrieving Java objects
   Advantages for persistent object storage
Using the directory
   Demonstration class: Dir.java
   Opening a JDataStore directory
   JDataStore directory contents
   Reading a JDataStore directory
   Closing the JDataStore directory
   Checking for existing streams
Storing arbitrary files
   Demonstration class: ImportFile.java
   Creating a file stream
   Referencing the connected JDataStore
   Writing to a file stream
   Closing a file stream
   Opening, seeking, and reading a file stream
Creating a basic JDBC application using JDataStore
Copying streams
   copyStreams parameters
   Demonstration class: Dup.java
Deleting and undeleting streams
   Deleting streams
   How JDataStore reuses deleted blocks
   Undeleting JDataStore streams
   Demonstration class: DeleteTest.java
   Locating directory entries
   Using individual directory rows
   Packing JDataStore files

Chapter 3: JDataStore as an embedded database
Using DataExpress for data access
   Demonstration class: DxTable.java
   Connecting to a JDataStore with StorageDataSet
   Creating JDataStore tables with DataExpress
   Using JDataStore tables with DataExpress
Transactional JDataStores
   Enabling transaction support
   Transaction log files
   Bypassing transaction support
   Removing transaction support
   Deleting transactional JDataStores
Controlling JDataStore transactions
   Understanding the transaction architecture
   Committing and rolling back transactions
   Tutorial: Controlling transactions via DataExpress
Using JDBC for data access
   Demonstration class: JdbcTable.java
   Controlling transactions through JDBC

Chapter 4: Using JDataStore's Security Features
User authentication
Authorization
JDataStore Encryption
Deciding how to apply JDataStore security

Chapter 5: Multi-user and remote access to JDataStores
Using the JDBC driver for remote access
Running the JDataStore Server
   Reconfiguring the server
Deploying the JDataStore Server
   Packaging the server
   Starting the server
Creating custom JDBC servers
Providing access to JDataStores via the web
Multi-user transaction issues
   Transaction isolation level
   Avoiding blocks and deadlocks
Connection pooling and distributed transaction support

Chapter 6: Persisting data in a JDataStore
Using DataStore instead of MemoryStore
Using a JDataStore with StorageDataSets
Tutorial: Offline editing with JDataStore
   Understanding how JDataStore manages offline data
Restructuring JDataStore StorageDataSets
   Data type coercions
   Persistent column editing
   Understanding structure changes

Chapter 7: Using the JDataStore Explorer
Launching the JDataStore Explorer
   Starting the JDataStore Explorer from the command line
Basic JDataStore operations
   Creating a new JDataStore file
   Opening an existing JDataStore file
   Viewing JDataStore file information
   Viewing stream contents
   Renaming streams
   Deleting streams
   Undeleting streams
   Copying JDataStore streams
   Verifying the JDataStore
   Making the JDataStore transactional
   Modifying transaction settings
   Removing transaction support
   Closing JDataStore files
JDataStore Explorer as a query console
   Using JDataStore Explorer to manage queries
   Creating and maintaining queries and connections
   Fetching and editing data
   Saving changes and refreshing data
Importing tables and files
   Importing text files as tables
   Importing files
Creating tables
Creating indexes
Executing SQL
JDataStore file operations
   Packing the JDataStore file
   Upgrading the JDataStore file
   Deleting the JDataStore file
JDataStore security tasks
   Administering Users
   Changing a password
   Encrypting a JDataStore

Chapter 8: Optimizing JDataStore applications
General usage recommendations
   Closing the JDataStore
   Controlling how often cache blocks are written to disk
   Tuning memory
   Miscellaneous performance tips
DataStore companion components
Using data modules
Optimizing transactional applications
   Using read-only transactions
   Using soft commit mode
   Transaction log files
Pruning deployed resources

Appendix A: Specifications
JDataStore file capacity
JDataStore stream names

Appendix B: Changes from previous versions
New features
   Security
   Connection pooling and distributed transaction (XA) support
   DataStorePump and DataStoreSync
   Automatic deadlock detection
Deployment changes
API changes
Transaction manager changes
Changes to the JDataStore Explorer
SQL dialect improvements

Appendix C: Troubleshooting
Debugging JDataStore applications
Verifying JDataStore contents
Problems locating and ordering data
Saving log file

Appendix D: SQL reference
Lists in syntax notation
Data types
Literals
JDBC Escape sequences
   Supported Escapes
Keywords
Identifiers
Expressions
Predicates
   BETWEEN
   IS
   LIKE
   IN
Functions
   CHAR_LENGTH and CHARACTER_LENGTH
   CURRENT_DATE, CURRENT_TIME, and CURRENT_TIMESTAMP
   EXTRACT
   LOWER and UPPER
   POSITION
   SUBSTRING
   TRIM
   CAST
Statements
   CREATE TABLE
   ALTER TABLE
   CREATE INDEX
   SELECT
   JOIN
   GROUP BY and HAVING
   ORDER BY
   INSERT
   UPDATE
   DELETE
   DROP INDEX
   DROP TABLE




© 1997, 2000 by INPRISE Corporation, Inc.
All Rights Reserved