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