Sayings-entity build target, 364, 374
Sayings-stateful-bmt build target, 364, 374
Sayings-stateful-cmt build target, 364, 374
Sayings-stateless-bmt build target, 364, 374
Sayings-stateless-cmt build target, 364, 374
Scalability, 355, 337–338
Scaling up, 356, 373
SCO (second class object), 10–15
defined, 17
vs. embedded object, 11
Search order for metadata files, 166–167
Second-level cache, 139–140
Secondary cache, 139–140
SecurityException, 194
select apple command (StateTracker program), 294
SELECT-FOR-UPDATE (Oracle), 107
Select on join query
using many-to-many, 68–69
using one-to-many, 68
using one-to-one, 67–68
select on one table query, 67
select on outer join query, 70
select on self-join query, 69
select using subquery, 70
select.sql file, 299
Semicolon, trailing, 56
Serializable interface, 16, 29, 147, 153–156, 223, 346
fields that implement, 147
PersistenceManagerFactory object as, 224
Serializable isolation level, 107
Serializable queries, 42
Serialization, 208, 373
of application data object vs. data transfer object, 154–156
of data objects in business method response, 208, 219
enhancement and, 153–156
session, 355
Serialized data objects, returning from methods, 208, 219
serialVersionUID field, 153
server.xml file (Tomcat), 362
Servlet container, session serialization in, 335–336
Servlet controller
getAction method, 342
handling redundant requests, 343
incrementing a count, 345
Servlet session, saving conversational state in, 344
ServletRequest object attribute methods, 332
Servlets
destroy method, 357
doGet and doPost methods, 341
idempotent, 332, 343
init method, 356
multithreaded nature of, 332
sessions within, 335
Session beans, 200, 359, 373
BMT, 136, 220–224
CMT, 201–208
stateless vs. stateful, 201, 220
Session Facade pattern, 359
Session locks, 342
Session object, 335, 342
Session-Only pattern, 359
Session serialization, 355
between requests, 335
in servlet container, 335–336
SessionContext interface, 136, 207
SessionLock object, obtaining, 341–342
SessionLock class, 333, 342, 345
SessionLock class lock method, 345
Sessions, within Java servlets, 335
setAttribute method, 332
setCandidates methods, 42–43
setClass method, 43
setEntityContext method, 214
setFilter method, 43
setIgnoreCache method, 47, 99
setMultithreaded method, 100
setNontransactionalRead method, 113
setNontransactionalWrite method, 114
setOptimistic method, 112
setOrdering method, 45
setRestoreValues method, 116
setRetainValues method, 115
setRollbackOnly method, 122, 239
setSessionContext method, 207, 223–224
setSynchronization method, 121
setup method (QuoteServer bean), 216–217
setUserObject method, 100
shallow clone method (application data class), 159
Shared embedded objects, 12–13
Shared persistence manager, 356–357
Shared read-only persistence manager, 356–357
Shared requests, Web service and, 334
Shielded cast operator, 53
Simplicity
in JDOQL, 71
and Web app design goals, 337
Simply-ignore exception-handling strategy, 253
Small Town Library example. See Library app
snoop command, 296–297
Soft and weak references, 248
SourceForge.net, JDO Learning Tools from, 272
SQL queries
ad hoc access to the database, 72–73
vs. JDO query select on join, 68–69
method to support, 71
that can be mapped to JDOQL, 64–71
using when JDOQL is not sufficient, 71
standard-doc WAR file, 322
standard-examples WAR file, 322
Standard version of JDO implementation, 200
startsWith query method, 54
State manager, 89, 149
State transitions
inside transactions, 124–126
outside transactions, 122–124
and RestoreValues, 124–125, 130–133, 135
and RetainValues, 124–125, 129–133, 135
and strong RestoreValues, 131–132
that are common to all transactions, 126
transactional properties and, 122–133
and transient-transactional feature, 134
unique to datastore transactions, 126–127
unique to optimistic transactions, 127–129
and weak RestoreValues, 132–133
when RestoreValues is false, 130–131
when RetainValues is false, 129
when RetainValues is true, 130
Stateful BMT session bean, 223–224
Stateful session beans, 201, 220, 223–224
StateHandler service, 289–290
Stateless BMT session bean, 220–223
Stateless session beans, 201, 220–223
StateTracker class, 289
StateTracker program, 289–297
building, 290–291
classes and interfaces, 289
commands, 291–297
help output from, 291–292
persistent fields of, 290
running, 291
user commands, 293–294
StateTracker.java, 289
Static content requests from user's browser, 333
Static fields, 144
Static inner classes, enhancement of, 163
Storing modifications upon transaction commit, 6
String class equals method, 25
String concatenation operator (+), 53
String values, with escaped double quotes, 51
Stringified JDO identity, 96
Strings, collection of, 196
Strong references, 138, 248
Strong RestoreValues property, 116–119, 131–132
submit method, 265–266
Super constructor, 152
Super.clone method, 89, 159
supportedOptions method (PersistenceManagerFactory interface), 18, 86, 195–196
SupportsIdentity interface, getIdentityString method, 346
SupportsIdentityString interface, 349–351
SupportsVersion interface, 340–341, 349, 351–352
Swing client (see also Rental Swing app)
conflicting changes in, 308–310
menus and user interface, 307–310
nonconflicting reservations in, 309
on startup, 307
testing, 306–308
viewing available rentals, 307
Swing client/server applications, exception-handling in, 254
Synchronization, 9, 30, 100
Synchronization interface, 120–122
afterCompletion method, 120–121
beforeCompletion method, 120–122
class diagram of, 121, 391
scenarios for using, 121
and Web app thread-safety, 332
Synchronization object, 121
Synchronization property (Transaction interface), 121
synchronized (keyword), 332
System classes
change tracking in, 14
JDO-supported, 8