Index

A

aborting transactions
default effects on persistent objects 83
setting default object state 79
setting objects to default state 79
specifying a particular object state 79
abstract classes 162
accessing persistent objects
committing transactions 67
default effects of methods 83
dirty() 152
evicting objects 72
fetch() 152
obtaining a root 64
optimizing 133
procedure 64
saving changes by committing transaction 67
saving changes through eviction 72
active persistent objects
aborting transactions 80
committing transactions 69
default effects of methods 83
definition 8
evicting 75
annotations
automatic 97
customizing 129
description 99
manual 147
superclass modifications 117
you must add 139
application failure 4
applications
complex, finding right class files 114
required components 12
archive logging 3
-arraydims option 135
arrays
of interfaces 159
passing 140

B

batch
definition 100
postprocessing two 101
postprocessor requirement 104

C

C++ applications 3
class files
compile unannotated 112
complex applications 114
finding annotated 113
locations of annotated 119
managing annotated 111
refering to persistent and transient versions 127
ClassInfo class
-classinfosuffix option 143
create() 153
createArray() 153
defining subclass 153
getClassDescriptor() 153
getFields() 153
-classinfosuffix option 143
CLASSPATH
alternatives 115
-classpath 107
locating class files 112
requirements 102
-classpath option 143
clearContents()
manual annotations 151
postprocessor 129
COM.odi.Persistent
manual annotations 149
postprocessor 118
COM.odi.useDatabaseLocking
effects 26
COM.odi.util.HashPersistent
manual annotations 149
postprocessor 118
committing transactions
after evicting objects 77
default effects on persistent objects 83
introduction 52
RETAIN_HOLLOW 69
RETAIN_READONLY 69
RETAIN_STALE 68
RETAIN_UPDATE 71
concurrency 26
consistent state 56
-copyclass option 108
copying
classes without annotating 108
databases 38
creating database roots 61
creating databases 30

D

Database class
description 30
identity 31
database roots
changing referred to object 62
destroying 63
how many 62
null values 62
primitive values 62
Database.close() 36
Database.create() 30
Database.createRoot() 61
Database.destroy() 39
Database.destroyRoot() 63
Database.getOpenType() 40
Database.getPath() 41
Database.getSizeInBytes() 41
Database.isOpen() 40
Database.open() 34
Database.setRoot() 62
databases
checking references 45
closing 33
consistent state 56
copying 38
creating 30
creating roots 61
destroying 39
destroying objects 81
displaying information about 41
how many roots 62
locking 26
managing 29
maximum size 2
moving 38
obtaining information about 40
open for update or read? 40
open? 40
opening 33
pathname of 41
platforms 30
segments 32
size of 41
storing objects 60
debugger 122
-dest option 144
destination directory
about 106
requirement 104
destroying
database roots 63
databases 39
default effects on persistent objects 83
objects in the database 81
objects referred to by other objects 82
preDestroyPersistent() hook method 81
dirty()
background 164
manual annotations 152
duplicates
file specifications for postprocessor 109

E

evicting objects
all 76
committing transactions 77
cooperating threads 77
default effects on persistent objects 83
outside a transaction 76
RETAIN_HOLLOW 74
RETAIN_READONLY 75
RETAIN_STALE 73
examples
before running a program 16
code for people demo 13
compiling 17
general use 11
getFields() 165
hook methods 130
lock entry file 26
manual annotations 154
multiple persistence mode options 109
persistence-capable array of interfaces 160
postprocessing one batch 100
postprocessing two batches 101
postprocessor command line 104
running a program 18
running the postprocessor 105
serializing 95
transient-only fields 158

F

failover 3
fetch()
background 164
manual annotations 152
Field class 165
fields in manual annotations 167
file name too long 143
final fields as handled by postprocessor 120
flushContents()
background 164
manual annotations 150
postprocessor 129
-force option 144

G

garbage collection
active objects from commit() 70
active objects from evict() 75
hollow objects from commit() 69
hollow objects from evict() 74
stale objects from commit() 68
stale objects from evict() 73
weak references 66
GenericObject class
description 164
getting field values 166
setting field values 166
getFields()
background 165

H

hashCode()
manual annotations requirements 149
manual implementation 151
problems 118
hollow object constructors
creating 132
transient nonstatic fields 140
hollow persistent objects
aborting transactions 80
committing transactions 69
default effects of methods 83
definition 7
evict() 74
hook methods 129

I

inheritance 118
initializeContents()
background 164
manual annotations 150
postprocessor 129
input file for postprocessor 138
interfaces
arrays of 159
persistence-capable 136

J

Java executables 121
Java Remote Message Interface 70
java.lang.Object 118
Java-supplied classes 91

L

libraries
postprocessing existing 101
lock entry file 26
locking databases
effects 26
how it works 27
lock entry file 26
long file names 143

M

manual annotations
abstract classes 162
accessing fields 167
arrays of interfaces 159
background for accessing fields 163
background for creating fields 163
ClassInfo subclass definition 153
creating fields 167
example 154
inheritance 149
initializeContents() 150
persistence-aware classes 160
postprocessor conventions 161
procedure 148
required methods 150
transient-only fields 157
-modifyjava option 144
moving
databases 38

N

native methods
capability for persistence 93
postprocessing 139
nested transactions 51
nonpersistent methods 139
notation conventions xii
-nowrite option 137

O

object table 66
ObjectStore.destroy() 81
ObjectStore.evict() 72
ObjectStore.evict(RETAIN_HOLLOW) 74
ObjectStore.evict(RETAIN_READONLY) 75
ObjectStore.evict(RETAIN_STALE) 73
ObjectStore.evictAll() 76
ObjectStore.READONLY 50
ObjectStore.RETAIN_HOLLOW
aborting transactions 80
committing transactions 69
evicting objects 74
ObjectStore.RETAIN_READONLY
aborting transactions 80
committing transactions 69
evicting objects 75
ObjectStore.RETAIN_STALE
aborting transactions 80
committing transactions 68
evicting objects 73
ObjectStore.RETAIN_UPDATE
aborting transactions 80
committing transactions 71
ObjectStore.UPDATE 50
online backup 3
oscp utility 38
osjcfp
options 143
See also postprocessor.
OSJCFPJAVA environment variable 121
osjcheckdb utility 45
osji.zip file 16
osjshowdb utility 41
osjversion utility 90
osmv utility 38

P

package names
postprocessed classes 125
renaming 142
PATH requirements 102
performance
Java-supplied classes 93
-persistaware option 108
-persistcapable option 108
persistence
Java-supplied classes 91
manual annotations 157
postprocessor 97
persistence mode options 108
persistence-aware classes
creating 116
definition 9
manual annotations 160
persistence-capable classes
abstract 162
annotations 99
automatically generating 97
definition 7
inheritance 118
manually generating 147
subclasses 140
superclasses 117
transient fields 128
transient versions 106
persistence-capable interfaces 136
Persistent class
serializing 95
persistent objects
definition 7
destroying 81
evicting all 76
keeping contents readable with abort() 80
keeping contents updatable with abort() 80
keeping them active with evict() 75
making them hollow with abort() 80
making them hollow with commit() 69
making them hollow with evict() 74
making them modifyable after commit() 71
making them readable after commit() 69
making them stale with abort() 80
making them stale with commit() 68
making them stale with evict() 73
multiple representations 22
retrieving 64
serializing 95
specifying object state 65
UPDATE transaction 50
Persistent.deepFetch() 95
Persistent.dirty() 152
Persistent.fetch() 152
Persistent.preDestroyPersistent() 81
postInitializeContents() 129
postprocessor
array dimensions 135
batches 100
CLASSPATH requirements 102
complex applications 114
consistency 117
conventions 161
customizing 129
debugger 122
destination directory background 106
destination directory requirement 104
duplicate file specifications 109
errors and warnings 120
example of multiple persistence modes 109
example of running 105
file name interpretation 107
file not found 109
final fields 120
hollow object constructor 132
how it works 117
inheritance 118
input file 138
introduction 99
limitations 142
location of annotated class files 119
managing annotated class files 111
modifications to superclasses 117
modifying standard Java classes 144
new packages 125
nonpersistent classes 123
nonpersistent methods 139
optimizing retrieval of objects 133
options 143
order of processing 107
PATH requirements 102
persistence mode options 108
persistence-aware classes 116
persistence-capable interfaces 136
preparing to run 102
previously annotated classes 110
running 102
sample command line 104
sample hook methods 130
static fields 120
subclasses of postprocessed classes 140
testing 137
transient classes 127
transient fields 128
-translatepackage option 125
zip files 110
preClearContents() 130
preFlushContents() 130

Q

-quiet option 145
-quietclass option 145
-quietfield option 145

R

recovery 4
remote machines 3
RMI
preparing to serialize 70
serializing for 95

S

saving modifications
committing transactions 67
evicting objects 72
segments
description 32
serializing 95
session
definition 6
sessions
metaobjects 23
multiple 21
threads 20
transactions 51
stale persistent objects
aborting transactions 80
attempts to access 83
committing transactions 68
definition 8
evict() 73
static fields as handled by postprocessor 120
storing objects
procedure 60
superclasses
abstract 162
modifications for persistence 117
persistence-aware classes 116
system crash 4

T

testing postprocessor 137
threads
access to persistent objects 22
allowable simultaneous actions 23
allowing use of API 24
applets 25
cooperating 20
effect of committing a transaction 22
evicting objects 77
noncooperating 21
sessions 20
transaction boundaries 57
tools.zip file 16
training xii
Transaction class description 50
Transaction.abort()
example 79
general discussion 53
retain 54
Transaction.abort(RETAIN_HOLLOW) 80
Transaction.abort(RETAIN_READONLY) 80
Transaction.abort(RETAIN_STALE) 80
Transaction.abort(RETAIN_UPDATE) 80
Transaction.begin() 50
Transaction.commit()
general discussion 52
saving modifications 67
Transaction.commit(retain)
general discussion 52
specifying object state 67
Transaction.current() 51
Transaction.inTransaction() 55
Transaction.setDefaultAbortRetain() 79
transactions
aborting 53
aborting to cancel changes 79
committing
description 52
setting object state 67
determining boundaries 56
ending 52
evicting objects outside 76
is one in progress? 55
nested 51
obtaining the Transaction object 51
RETAIN_HOLLOW 69
RETAIN_READONLY 69
RETAIN_STALE 68
RETAIN_UPDATE 71
sessions 51
starting 50
update and readonly 50
transient database 173
transient fields
manual annotations 157
postprocessor 128
transient objects 9
transient version of class file 106
transitive persistence
definition 9
troubleshooting
OutOfMemory error 110

U

Unicode strings 91
updating objects 65
UTF8 encoding 91

V

-verbose option 146
version information 90

W

weak references 66

doc@odi.com
Copyright © 1997 Object Design, Inc. All rights reserved.

Updated: 05/13/97 12:20:42