Quartz job scheduling framework: building open source enterprise applications
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ
Prentice Hall
2006
|
Schlagworte: | |
Online-Zugang: | Table of contents Inhaltsverzeichnis |
Beschreibung: | Includes index. |
Beschreibung: | XXII, 330 S. graph. Darst. 24 cm |
ISBN: | 0131886703 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV021783033 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 061025s2006 xxud||| |||| 00||| eng d | ||
010 | |a 2006007504 | ||
015 | |a GBA650625 |2 dnb | ||
020 | |a 0131886703 |c pbk. : alk. paper |9 0-13-188670-3 | ||
035 | |a (OCoLC)65063629 | ||
035 | |a (DE-599)BVBBV021783033 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-1051 | ||
050 | 0 | |a TS157.5 | |
082 | 0 | |a 658.5/3 | |
100 | 1 | |a Cavaness, Chuck |e Verfasser |4 aut | |
245 | 1 | 0 | |a Quartz job scheduling framework |b building open source enterprise applications |c Chuck Cavaness |
264 | 1 | |a Upper Saddle River, NJ |b Prentice Hall |c 2006 | |
300 | |a XXII, 330 S. |b graph. Darst. |c 24 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Includes index. | ||
630 | 0 | 4 | |a Quartz (Electronic resource) |
650 | 7 | |a Programación de la producción |2 lemb | |
650 | 4 | |a Software de fuente abierta | |
650 | 4 | |a Production scheduling | |
650 | 4 | |a Open source software | |
856 | 4 | |u http://www.loc.gov/catdir/toc/ecip0610/2006007504.html |3 Table of contents | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995785&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-014995785 |
Datensatz im Suchindex
_version_ | 1804135656904982528 |
---|---|
adam_text | Contents
Foreword xxi
Preface xxiii
Chapter 1 Scheduling in the Enterprise 1
What Is Job Scheduling? 1
Why Job Scheduling Is Important 2
Uses for Job Schedulers in the Enterprise 3
Scenario #1: Sending E Mails, Reminders,
and Alerts 3
Scenario #2: Performing File Transfer
Operations 4
Scenario #3: Creating Sales Reports 4
Uses for Job Schedulers in Non Enterprise 5
Job Scheduling Versus Workflow 5
What About Alternative Solutions? 6
Java SDK Timer and TimerTask Classes 6
Home Grown Solution 6
Commercial Solutions 7
Chapter 2 Getting Started with Quartz 9
History of the Quartz Framework 9
Downloading and Installing Quartz 10
Installing the Necessary JAR Files 11
THE quartz.properties FILE 12
Building Quartz from Source 13
The Quartz CVS Repository 13
Getting Help from the Quartz Community 14
Who s Using Quartz? 15
Contents
Chapter 3 Hello, Quartz 17
The Hello, World Quartz Project 18
Setting Up the Quartz Project 18
Configuring Quartz Within Eclipse 19
Creating the Quartz Job Class 20
Scheduling the Quartz ScanDirectoryJob 25
Creating and Running the Quartz Scheduler 25
Scheduling a Quartz Job Programmatically 28
Understanding and Using Quartz Triggers 30
Running the Program in Listing 3.6 33
Scheduling a Quartz Job Declarattvely 34
Configuring the quartz.properties File 34
USING THE quartz_jobs.xml File 38
Modifying the quartz.properties File
for the Plug In 41
Packaging the Quartz Application 42
Quartz Third Party Dependencies 42
Configuration and Properties Files 43
Chapter 4 Scheduling Jobs 45
The Quartz Scheduler 46
The Quartz Scheduler Hierarchy 47
THE Quartz SchedulerFactory 47
USING the DirectScheduierFactory 48
Using the StdSchedulerFactory 5J
Scheduler Functionality 54
Managing the Scheduler 55
Starting the Scheduler 55
Standby Mode 56
Stoping the Scheduler 56
Contents IX
Managing Jobs 57
What Is a Quartz Job? 57
THE org.quartz. Job INTERFACE 57
DobExecutionContext 58
DobDetaii 59
Setting Job State Using the JobDataMap
Object 60
Stateful Versus Stateless Jobs 62
Volatility, Durability, and Recoverability 64
Job Volatility 64
Job Durability 65
Job Recoverability 65
Removing Jobs from the Scheduler 65
Interrupting Jobs 66
Jobs Provided by the Framework 67
Quick Java Thread Overview 68
Threads in Java 68
Life Cycle of a Thread 69
Processes Versus Threads 70
Understanding and Using Thread Priorities 71
Daemon Threads 72
Java ThreadGroups and ThreadPools 73
Thread Usage in Quartz 74
The Main Processing Thread:
QuartzScheduierThread 74
THE QuartzScheduierResources 75
What Are Quartz Worker Threads? 76
THE JobRunSheii run() METHOD 76
Understanding Quartz Triggers 77
USING THE org.quartz.SimpieTrigger 77
USING THE org.quartz.CronTrigger 78
X Contents
USING THE org.quartz.NthlncludedDayTrigger 79
Using Multiple Triggers for a Job 80
The Quartz Calendar 81
The org. quartz.Calendar INTERFACE 82
Using Quartz Calendars 83
Creating Your Own Calendars 85
Chapter 5 Cron Triggers and More 89
Quick Lesson in Cron 90
UNIX Cron Format 90
Using the Quartz CronTrigger 91
The Cron Expression Format 93
Understanding the Special Characters 94
Using Start and End Dates with CronTrigger 97
Using TriggerUtils WITH the CronTrigger 99
USING CronTriggers IN THE
DoblnitializationPlugin 100
Cron Expressions Cookbook 101
Minute Cron Expressions 101
Daily Cron Expressions 102
Weekly and Monthly Cron Expressions 102
Creating a Fire Now Trigger 102
Chapter 6 JobStores and Persistence 105
Job Storage 105
Job Storage in Quartz 106
The JobStore Interface 106
Using Memory to Store Scheduler
Information 107
Job Volatility with RAMjobStore 108
Configuring the RAMJobStore 108
Contents X!
Loading Jobs into the RAMJobStore 109
Disadvantage to RAMJobStore 709
Using Persistent DobStores 110
THE JobStoreSupport CLASS 110
Using the Database for Job Storage 112
Databases Supported by Persistent JobStores 112
Persistent Storage in a Stand Alone
Environment 113
Persistent Storage in an Application
Container 113
Creating the Quartz Database Structure 113
Installing the Quartz Database Tables 114
Using JobStoreTX 115
Configuring the JobStoreTX 116
Configuring a DataSource for JobStoreTX 120
Running Quartz with :obStoreTX 122
Using Memory to Store Scheduler
Information 123
Loading Jobs into the Database 123
Using the JobStoreCMT 124
Configuring the JobStoreCMT 125
Configuring Datasources for JobStoreCMT 127
Configuring the Nonmanaged Datasource 127
Configuring the Managed Datasource 128
Improving Performance with Persistent
iJobStores 130
Creating New JobStores 131
Implementing the JobStore Interface 131
Chapter 7 Implementing Quartz Listeners 133
Listeners as Extension Points 133
XII Contents
Implementing a Listener 134
Creating the Listener Class 134
Implementing the Listener Methods 134
Registering the Listener 135
Listening for Job Events 136
The getNameO METHOD 136
THE jobToBeExecutedO METHOD 137
The jobExecutionVetoed(j METHOD 137
THE jobWasExecutedO METHOD 137
Registering Nonglobal DobListeners 139
Listening for Trigger Events 142
The getNameO METHOD 142
THE t ri gge r Fi red O METHOD 142
The vetoJobExecutionO METHOD 143
THE t ri gge rMi sf i red () MEWTHOD 143
The triggerCompieteO METHOD 143
Registering a Nonglobal Trigger Listener 145
Listening for Scheduler Events 147
The jobScheduledO AND jobUnscheduledO
Methods 148
The triggerFinaiizedO METHOD 148
The triggersPausedO Method 148
The triggersResumedO METHOD 148
The jobsPausedO Method 148
The jobsResumedO Method 148
The scheduierErrorO METHOD 149
THE schedulerShutdownO METHOD 149
Using the FileScanListener 152
Implementing Listeners in the
quartz_jobs.xml FILE 155
Thread Use in Listeners 157
Uses of the Quartz Listeners 158
Contents XIII
Chapter 8 Using Quartz Plug Ins 161
What Is a Plug In? 161
The initializeO METHOD 162
The start() METHOD 163
The shutdown () METHOD 163
Creating a Quartz Plug In 163
THE JoblnitiaiizationPiugin 164
Creating the JobLoaderPiugin 164
Registering Your Plug Ins 168
Specifying the Plug In in quartz. properties 169
Passing Parameters to the Plug In 170
Creating the Job File for the DobLoaderPiugin 171
Using Multiple Plug Ins 174
Configuring the ParentPiugin in the
quartz, properti es FILE 176
Quartz Utility Plug Ins 177
JoblnitiaiizationPiugin 177
Doblni ti ai i zati onPI ugi nMul i tpl e 177
LoggingJobHistoryPiugin 178
LoggingTriggerHistoryPiugin 179
ShutdownHookPiugin 180
Chapter 9 Using Quartz Remotely 183
Why RMI with Quartz? 183
Brief Overview of Java RMI 184
Components of a Java RMI Application 186
Requirements of RMI 186
USING THE RMISecurityManager 187
Creating a Quartz RMI Server 187
Configuring the Quartz RMI Server 187
Creating a Quartz RMI Server Startup Class 189
XIV Contents
Using the RMI Registry 191
Creating the RMI Client 192
Configuring the Quartz RMI Client 192
Creating the Quartz RMI Client Class 194
Testing the RMI Server and Client 196
Running the Quartz RMI Server 196
Running the Quartz RMI Client 197
What s Up Next? 197
Chapter 10 Using Quartz with J2EE 199
If I Have J2EE, Why Do I Need Quartz? 199
I Need a Timer Service 200
Quartz/J2EE Deployment Models 200
Running Quartz as a J2SE Client 201
Deploying Quartz Within the J2EE Server 201
Running Quartz as a J2SE Client 202
Using the Quartz EJBlnvokerJob
to Call an EJB 203
Running Quartz Within the J2EE
Application Server 209
Including J2EE Client JARs 212
Using the J2EE Container s DataSource 213
Using Other J2EE Resources 213
The EJB 2.1 Specification: Finally Some Light 214
Chapter 11 Clustering Quartz 215
What Does Clustering Mean to Quartz? 215
The Benefits to Clustering Quartz
Applications 216
How Clustering Works in Quartz 218
Quartz Scheduler on Startup in a Cluster 219
Contents XV
Detecting Failed Scheduler Nodes 220
Recovering Jobs from Failed Instances 221
Configuring Quartz to Use Clustering 221
Configuring the Node s quartz.properties File 221
Configuring the JobStore Section 223
Configuring the JobStore Data Source 224
Loading the Database with Scheduler
Information 224
Running the Quartz Cluster Nodes 225
Quartz Clustering Cookbook 225
Assigning Jobs to Specific Instances in
the Cluster 225
Running Jobs on Every Node in the Cluster 225
Running Nodes on Separate Machines 226
Using a Time Synch Service 226
Retrieving a List of Executing Jobs from
the Cluster 226
Running Clustered and Nonclustered
Instances Together 227
Using Global Listeners in a Clustered
Environment 227
Chapter 12 Quartz Cookbook 229
Working with the Scheduler 229
Creating and Starting the Scheduler 229
Stopping a Scheduler 231
Pausing a Scheduler (Standby Mode) 232
Working with Jobs 232
Creating a New Job Class 232
scheduung a quartz job 235
Firing a Job One Time 236
Replacing an Existing Scheduled Job 237
Updating an Existing Trigger 241
XVI Contents
Listing Jobs in the Scheduler 241
Listing Triggers Within the Scheduler 242
Chapter 13 Quartz and Web Applications 245
Using Quartz Within a Web Application 245
Integrating Quartz 246
Structure of a Web Application 247
Installing the Quartz Libraries 247
Choosing a Web Application Framework 248
Using Quartz with the Struts Framework 248
Creating Your Web Application Directory
Structure 248
Creating the Job Management Console
Project Structure 250
Initializing Quartz Within the Web Application 251
The QuartzInitializerServlet TO THE RESCUE 251
Configuring the Web Deployment Descriptor 253
Accessing the ScheduierFactory
and Scheduler 255
Using a ServletContextListener 258
New QuartzlnitiaiizerListener ADDED
to Quartz 260
Introducing the Quartz Web Application 260
screenshots of the quartz web application 260
Downloading and Building the Quartz
Web Application 262
Installing the Quartz Web Application 263
Configuring and Running the Quartz Web
Application 263
Chapter 14 Using Quartz with Workflow 267
What Is Workflow? 268
What Does Workflow Have to Do
with Quartz? 268
Contents XVii
Job Chaining in Quartz 268
Job Chaining Isn t Workflow 269
Job Chaining with Listeners 269
Job Chaining with the JobDataMap 274
USING THE JoblnitializationPlugin WITH
Job Chaining 277
Quick Introduction to OS Workflow 278
Workflow Descriptor File 278
OSWorkflow Concepts 279
Workflow GUI Designer 283
Integration of Quartz with OSWorkflow 284
Downloading and Installing OSWorkflow 285
Creating a Workflow Job 289
Conclusion 291
Appendix A Quartz Configuration Reference 293
The Main Quartz Properties 293
org.quartz.scheduler.i nstanceName 294
org.quartz.scheduler.i nstanceld 294
org.quartz.scheduler.instanceldGenerator.
class 295
org.quartz.scheduler.threadName 295
org.quartz.scheduler.i dleWai tTime 295
org.quartz.scheduler.dbFai1ureRetrylnterval 295
org.quartz.scheduler.classLoadHelper.class 295
org.quartz.context.key.SOME_KEY 296
org.quartz.scheduler.userTransacti onURL 296
org.quartz.scheduler.wrapJobExecutionlnUser
Transaction 296
org.quartz.scheduler.jobFactory.class 296
Configuring the Quartz ThreadPool 297
org.quartz.threadPool.class 297
org.quartz.threadPool.threadCount 297
XVIli Contents
org.quartz.threadPool.threadPriority 298
org.quartz.threadPool.makeThreadsDaemons 298
org.quartz.threadPool.threadsInheritGroupOf
InitializingThread 298
org.quartz.threadPool.threadsInheritContext
ClassLoaderOfIni ti ali zi ngThread 298
Configuring Quartz Listeners 298
Configuring a JobListener 299
CONFIGURING a Trigger Listener 299
Configuring Quartz Plug Ins 299
Configuring Quartz RMI Settings 300
org.quartz.scheduler.rmi.export 300
org.quartz.scheduler.rmi.registryHost 301
org.quartz.scheduler.rmi.registryPort 301
org.quartz.scheduler.rmi.createRegistry 301
org.quartz.scheduler.rmi.serverPort 301
org.quartz.scheduler.rmi.proxy 301
Configuring JobStore Settings 302
Configuring the DobStoreTX JobStore 302
org.quartz.jobStore.dri verDelegated ass 303
org.quartz.jobStore.dataSource 304
org.quartz.jobStore.tablePrefi x 304
org.quartz.jobStore.useProperti es 304
org.quartz.jobStore.mi sfi reThreshold 304
org.quartz.jobStore.i sClustered 304
org.quartz.jobStore.clusterChecki ninterval 304
org.quartz.jobStore.maxMisfiresToHandleAt
ATime 305
org.quartz.jobStore.dontSetAutoCommi tFalse 305
org.quartz.jobStore.selectWi thLockSQL 305
org.quartz.jobStore.
txlsolati onLevelSeri ali zable 305
CONTENIS XSX
Configuring JobStoreCMT 306
org.quartz.jobStore.nonManagedTXDataSource 306
Org.quartz.jobStore.dontSetNonManagedTX
ConnectionAutoCommitFalse 306
org.quartz.jobStore.
txlsolati onLevelReadCommi tted 307
Configuring Quartz Datasources 307
org.quartz.dataSou rce.NAME.dri ver 308
org.quartz.dataSource.NAME.URL 308
org.quartz.dataSource.NAME.user 308
org.quartz.dataSource.NAME.password 308
org.quartz.dataSource.NAME.maxConnecti ons 308
org.quartz.dataSource.NAME.vaiidationQuery 308
org.quartz.dataSource.NAME.jndi URL 309
org.quartz.dataSou rce.NAME.j ava.nami ng.
factory.initial 309
org.quartz.dataSou rce.NAME.j ava.nami ng.
provider.uri 309
org.quartz.dataSou rce.NAME.j ava.nami ng.
security.principal 310
org.quartz.dataSou rce.NAME.j ava.nami ng.
security.credentials 310
Configuring a Datasource Using a Custom
ConnectionProvider 310
Index 311
|
adam_txt |
Contents
Foreword xxi
Preface xxiii
Chapter 1 Scheduling in the Enterprise 1
What Is Job Scheduling? 1
Why Job Scheduling Is Important 2
Uses for Job Schedulers in the Enterprise 3
Scenario #1: Sending E Mails, Reminders,
and Alerts 3
Scenario #2: Performing File Transfer
Operations 4
Scenario #3: Creating Sales Reports 4
Uses for Job Schedulers in Non Enterprise 5
Job Scheduling Versus Workflow 5
What About Alternative Solutions? 6
Java SDK Timer and TimerTask Classes 6
Home Grown Solution 6
Commercial Solutions 7
Chapter 2 Getting Started with Quartz 9
History of the Quartz Framework 9
Downloading and Installing Quartz 10
Installing the Necessary JAR Files 11
THE quartz.properties FILE 12
Building Quartz from Source 13
The Quartz CVS Repository 13
Getting Help from the Quartz Community 14
Who's Using Quartz? 15
Contents
Chapter 3 Hello, Quartz 17
The "Hello, World" Quartz Project 18
Setting Up the Quartz Project 18
Configuring Quartz Within Eclipse 19
Creating the Quartz Job Class 20
Scheduling the Quartz ScanDirectoryJob 25
Creating and Running the Quartz Scheduler 25
Scheduling a Quartz Job Programmatically 28
Understanding and Using Quartz Triggers 30
Running the Program in Listing 3.6 33
Scheduling a Quartz Job Declarattvely 34
Configuring the quartz.properties File 34
USING THE quartz_jobs.xml File 38
Modifying the quartz.properties File
for the Plug In 41
Packaging the Quartz Application 42
Quartz Third Party Dependencies 42
Configuration and Properties Files 43
Chapter 4 Scheduling Jobs 45
The Quartz Scheduler 46
The Quartz Scheduler Hierarchy 47
THE Quartz SchedulerFactory 47
USING the DirectScheduierFactory 48
Using the StdSchedulerFactory 5J
Scheduler Functionality 54
Managing the Scheduler 55
Starting the Scheduler 55
Standby Mode 56
Stoping the Scheduler 56
Contents IX
Managing Jobs 57
What Is a Quartz Job? 57
THE org.quartz. Job INTERFACE 57
DobExecutionContext 58
DobDetaii 59
Setting Job State Using the JobDataMap
Object 60
Stateful Versus Stateless Jobs 62
Volatility, Durability, and Recoverability 64
Job Volatility 64
Job Durability 65
Job Recoverability 65
Removing Jobs from the Scheduler 65
Interrupting Jobs 66
Jobs Provided by the Framework 67
Quick Java Thread Overview 68
Threads in Java 68
Life Cycle of a Thread 69
Processes Versus Threads 70
Understanding and Using Thread Priorities 71
Daemon Threads 72
Java ThreadGroups and ThreadPools 73
Thread Usage in Quartz 74
The Main Processing Thread:
QuartzScheduierThread 74
THE QuartzScheduierResources 75
What Are Quartz Worker Threads? 76
THE JobRunSheii run() METHOD 76
Understanding Quartz Triggers 77
USING THE org.quartz.SimpieTrigger 77
USING THE org.quartz.CronTrigger 78
X Contents
USING THE org.quartz.NthlncludedDayTrigger 79
Using Multiple Triggers for a Job 80
The Quartz Calendar 81
The org. quartz.Calendar INTERFACE 82
Using Quartz Calendars 83
Creating Your Own Calendars 85
Chapter 5 Cron Triggers and More 89
Quick Lesson in Cron 90
UNIX Cron Format 90
Using the Quartz CronTrigger 91
The Cron Expression Format 93
Understanding the Special Characters 94
Using Start and End Dates with CronTrigger 97
Using TriggerUtils WITH the CronTrigger 99
USING CronTriggers IN THE
DoblnitializationPlugin 100
Cron Expressions Cookbook 101
Minute Cron Expressions 101
Daily Cron Expressions 102
Weekly and Monthly Cron Expressions 102
Creating a Fire Now Trigger 102
Chapter 6 JobStores and Persistence 105
Job Storage 105
Job Storage in Quartz 106
The JobStore Interface 106
Using Memory to Store Scheduler
Information 107
Job Volatility with RAMjobStore 108
Configuring the RAMJobStore 108
Contents X!
Loading Jobs into the RAMJobStore 109
Disadvantage to RAMJobStore 709
Using Persistent DobStores 110
THE JobStoreSupport CLASS 110
Using the Database for Job Storage 112
Databases Supported by Persistent JobStores 112
Persistent Storage in a Stand Alone
Environment 113
Persistent Storage in an Application
Container 113
Creating the Quartz Database Structure 113
Installing the Quartz Database Tables 114
Using JobStoreTX 115
Configuring the JobStoreTX 116
Configuring a DataSource for JobStoreTX 120
Running Quartz with :obStoreTX 122
Using Memory to Store Scheduler
Information 123
Loading Jobs into the Database 123
Using the JobStoreCMT 124
Configuring the JobStoreCMT 125
Configuring Datasources for JobStoreCMT 127
Configuring the Nonmanaged Datasource 127
Configuring the Managed Datasource 128
Improving Performance with Persistent
iJobStores 130
Creating New JobStores 131
Implementing the JobStore Interface 131
Chapter 7 Implementing Quartz Listeners 133
Listeners as Extension Points 133
XII Contents
Implementing a Listener 134
Creating the Listener Class 134
Implementing the Listener Methods 134
Registering the Listener 135
Listening for Job Events 136
The getNameO METHOD 136
THE jobToBeExecutedO METHOD 137
The jobExecutionVetoed(j METHOD 137
THE jobWasExecutedO METHOD 137
Registering Nonglobal DobListeners 139
Listening for Trigger Events 142
The getNameO METHOD 142
THE t ri gge r Fi red O METHOD 142
The vetoJobExecutionO METHOD 143
THE t ri gge rMi sf i red () MEWTHOD 143
The triggerCompieteO METHOD 143
Registering a Nonglobal Trigger Listener 145
Listening for Scheduler Events 147
The jobScheduledO AND jobUnscheduledO
Methods 148
The triggerFinaiizedO METHOD 148
The triggersPausedO Method 148
The triggersResumedO METHOD 148
The jobsPausedO Method 148
The jobsResumedO Method 148
The scheduierErrorO METHOD 149
THE schedulerShutdownO METHOD 149
Using the FileScanListener 152
Implementing Listeners in the
quartz_jobs.xml FILE 155
Thread Use in Listeners 157
Uses of the Quartz Listeners 158
Contents XIII
Chapter 8 Using Quartz Plug Ins 161
What Is a Plug In? 161
The initializeO METHOD 162
The start() METHOD 163
The shutdown () METHOD 163
Creating a Quartz Plug In 163
THE JoblnitiaiizationPiugin 164
Creating the JobLoaderPiugin 164
Registering Your Plug Ins 168
Specifying the Plug In in quartz. properties 169
Passing Parameters to the Plug In 170
Creating the Job File for the DobLoaderPiugin 171
Using Multiple Plug Ins 174
Configuring the ParentPiugin in the
quartz, properti es FILE 176
Quartz Utility Plug Ins 177
JoblnitiaiizationPiugin 177
Doblni ti ai i zati onPI ugi nMul i tpl e 177
LoggingJobHistoryPiugin 178
LoggingTriggerHistoryPiugin 179
ShutdownHookPiugin 180
Chapter 9 Using Quartz Remotely 183
Why RMI with Quartz? 183
Brief Overview of Java RMI 184
Components of a Java RMI Application 186
Requirements of RMI 186
USING THE RMISecurityManager 187
Creating a Quartz RMI Server 187
Configuring the Quartz RMI Server 187
Creating a Quartz RMI Server Startup Class 189
XIV Contents
Using the RMI Registry 191
Creating the RMI Client 192
Configuring the Quartz RMI Client 192
Creating the Quartz RMI Client Class 194
Testing the RMI Server and Client 196
Running the Quartz RMI Server 196
Running the Quartz RMI Client 197
What's Up Next? 197
Chapter 10 Using Quartz with J2EE 199
If I Have J2EE, Why Do I Need Quartz? 199
I Need a Timer Service 200
Quartz/J2EE Deployment Models 200
Running Quartz as a J2SE Client 201
Deploying Quartz Within the J2EE Server 201
Running Quartz as a J2SE Client 202
Using the Quartz EJBlnvokerJob
to Call an EJB 203
Running Quartz Within the J2EE
Application Server 209
Including J2EE Client JARs 212
Using the J2EE Container's DataSource 213
Using Other J2EE Resources 213
The EJB 2.1 Specification: Finally Some Light 214
Chapter 11 Clustering Quartz 215
What Does Clustering Mean to Quartz? 215
The Benefits to Clustering Quartz
Applications 216
How Clustering Works in Quartz 218
Quartz Scheduler on Startup in a Cluster 219
Contents XV
Detecting Failed Scheduler Nodes 220
Recovering Jobs from Failed Instances 221
Configuring Quartz to Use Clustering 221
Configuring the Node's quartz.properties File 221
Configuring the JobStore Section 223
Configuring the JobStore Data Source 224
Loading the Database with Scheduler
Information 224
Running the Quartz Cluster Nodes 225
Quartz Clustering Cookbook 225
Assigning Jobs to Specific Instances in
the Cluster 225
Running Jobs on Every Node in the Cluster 225
Running Nodes on Separate Machines 226
Using a Time Synch Service 226
Retrieving a List of Executing Jobs from
the Cluster 226
Running Clustered and Nonclustered
Instances Together 227
Using Global Listeners in a Clustered
Environment 227
Chapter 12 Quartz Cookbook 229
Working with the Scheduler 229
Creating and Starting the Scheduler 229
Stopping a Scheduler 231
Pausing a Scheduler (Standby Mode) 232
Working with Jobs 232
Creating a New Job Class 232
scheduung a quartz job 235
Firing a Job One Time 236
Replacing an Existing Scheduled Job 237
Updating an Existing Trigger 241
XVI Contents
Listing Jobs in the Scheduler 241
Listing Triggers Within the Scheduler 242
Chapter 13 Quartz and Web Applications 245
Using Quartz Within a Web Application 245
Integrating Quartz 246
Structure of a Web Application 247
Installing the Quartz Libraries 247
Choosing a Web Application Framework 248
Using Quartz with the Struts Framework 248
Creating Your Web Application Directory
Structure 248
Creating the Job Management Console
Project Structure 250
Initializing Quartz Within the Web Application 251
The QuartzInitializerServlet TO THE RESCUE 251
Configuring the Web Deployment Descriptor 253
Accessing the ScheduierFactory
and Scheduler 255
Using a ServletContextListener 258
New QuartzlnitiaiizerListener ADDED
to Quartz 260
Introducing the Quartz Web Application 260
screenshots of the quartz web application 260
Downloading and Building the Quartz
Web Application 262
Installing the Quartz Web Application 263
Configuring and Running the Quartz Web
Application 263
Chapter 14 Using Quartz with Workflow 267
What Is Workflow? 268
What Does Workflow Have to Do
with Quartz? 268
Contents XVii
Job Chaining in Quartz 268
Job Chaining Isn't Workflow 269
Job Chaining with Listeners 269
Job Chaining with the JobDataMap 274
USING THE JoblnitializationPlugin WITH
Job Chaining 277
Quick Introduction to OS Workflow 278
Workflow Descriptor File 278
OSWorkflow Concepts 279
Workflow GUI Designer 283
Integration of Quartz with OSWorkflow 284
Downloading and Installing OSWorkflow 285
Creating a Workflow Job 289
Conclusion 291
Appendix A Quartz Configuration Reference 293
The Main Quartz Properties 293
org.quartz.scheduler.i nstanceName 294
org.quartz.scheduler.i nstanceld 294
org.quartz.scheduler.instanceldGenerator.
class 295
org.quartz.scheduler.threadName 295
org.quartz.scheduler.i dleWai tTime 295
org.quartz.scheduler.dbFai1ureRetrylnterval 295
org.quartz.scheduler.classLoadHelper.class 295
org.quartz.context.key.SOME_KEY 296
org.quartz.scheduler.userTransacti onURL 296
org.quartz.scheduler.wrapJobExecutionlnUser
Transaction 296
org.quartz.scheduler.jobFactory.class 296
Configuring the Quartz ThreadPool 297
org.quartz.threadPool.class 297
org.quartz.threadPool.threadCount 297
XVIli Contents
org.quartz.threadPool.threadPriority 298
org.quartz.threadPool.makeThreadsDaemons 298
org.quartz.threadPool.threadsInheritGroupOf
InitializingThread 298
org.quartz.threadPool.threadsInheritContext
ClassLoaderOfIni ti ali zi ngThread 298
Configuring Quartz Listeners 298
Configuring a JobListener 299
CONFIGURING a Trigger Listener 299
Configuring Quartz Plug Ins 299
Configuring Quartz RMI Settings 300
org.quartz.scheduler.rmi.export 300
org.quartz.scheduler.rmi.registryHost 301
org.quartz.scheduler.rmi.registryPort 301
org.quartz.scheduler.rmi.createRegistry 301
org.quartz.scheduler.rmi.serverPort 301
org.quartz.scheduler.rmi.proxy 301
Configuring JobStore Settings 302
Configuring the DobStoreTX JobStore 302
org.quartz.jobStore.dri verDelegated ass 303
org.quartz.jobStore.dataSource 304
org.quartz.jobStore.tablePrefi x 304
org.quartz.jobStore.useProperti es 304
org.quartz.jobStore.mi sfi reThreshold 304
org.quartz.jobStore.i sClustered 304
org.quartz.jobStore.clusterChecki ninterval 304
org.quartz.jobStore.maxMisfiresToHandleAt
ATime 305
org.quartz.jobStore.dontSetAutoCommi tFalse 305
org.quartz.jobStore.selectWi thLockSQL 305
org.quartz.jobStore.
txlsolati onLevelSeri ali zable 305
CONTENIS XSX
Configuring JobStoreCMT 306
org.quartz.jobStore.nonManagedTXDataSource 306
Org.quartz.jobStore.dontSetNonManagedTX
ConnectionAutoCommitFalse 306
org.quartz.jobStore.
txlsolati onLevelReadCommi tted 307
Configuring Quartz Datasources 307
org.quartz.dataSou rce.NAME.dri ver 308
org.quartz.dataSource.NAME.URL 308
org.quartz.dataSource.NAME.user 308
org.quartz.dataSource.NAME.password 308
org.quartz.dataSource.NAME.maxConnecti ons 308
org.quartz.dataSource.NAME.vaiidationQuery 308
org.quartz.dataSource.NAME.jndi URL 309
org.quartz.dataSou rce.NAME.j ava.nami ng.
factory.initial 309
org.quartz.dataSou rce.NAME.j ava.nami ng.
provider.uri 309
org.quartz.dataSou rce.NAME.j ava.nami ng.
security.principal 310
org.quartz.dataSou rce.NAME.j ava.nami ng.
security.credentials 310
Configuring a Datasource Using a Custom
ConnectionProvider 310
Index 311 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Cavaness, Chuck |
author_facet | Cavaness, Chuck |
author_role | aut |
author_sort | Cavaness, Chuck |
author_variant | c c cc |
building | Verbundindex |
bvnumber | BV021783033 |
callnumber-first | T - Technology |
callnumber-label | TS157 |
callnumber-raw | TS157.5 |
callnumber-search | TS157.5 |
callnumber-sort | TS 3157.5 |
callnumber-subject | TS - Manufactures |
ctrlnum | (OCoLC)65063629 (DE-599)BVBBV021783033 |
dewey-full | 658.5/3 |
dewey-hundreds | 600 - Technology (Applied sciences) |
dewey-ones | 658 - General management |
dewey-raw | 658.5/3 |
dewey-search | 658.5/3 |
dewey-sort | 3658.5 13 |
dewey-tens | 650 - Management and auxiliary services |
discipline | Wirtschaftswissenschaften |
discipline_str_mv | Wirtschaftswissenschaften |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01502nam a2200409zc 4500</leader><controlfield tag="001">BV021783033</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">061025s2006 xxud||| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2006007504</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBA650625</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0131886703</subfield><subfield code="c">pbk. : alk. paper</subfield><subfield code="9">0-13-188670-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)65063629</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV021783033</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1051</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">TS157.5</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">658.5/3</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Cavaness, Chuck</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Quartz job scheduling framework</subfield><subfield code="b">building open source enterprise applications</subfield><subfield code="c">Chuck Cavaness</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ</subfield><subfield code="b">Prentice Hall</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXII, 330 S.</subfield><subfield code="b">graph. Darst.</subfield><subfield code="c">24 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes index.</subfield></datafield><datafield tag="630" ind1="0" ind2="4"><subfield code="a">Quartz (Electronic resource)</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programación de la producción</subfield><subfield code="2">lemb</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Software de fuente abierta</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Production scheduling</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Open source software</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/toc/ecip0610/2006007504.html</subfield><subfield code="3">Table of contents</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995785&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014995785</subfield></datafield></record></collection> |
id | DE-604.BV021783033 |
illustrated | Illustrated |
index_date | 2024-07-02T15:42:12Z |
indexdate | 2024-07-09T20:43:59Z |
institution | BVB |
isbn | 0131886703 |
language | English |
lccn | 2006007504 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014995785 |
oclc_num | 65063629 |
open_access_boolean | |
owner | DE-1051 |
owner_facet | DE-1051 |
physical | XXII, 330 S. graph. Darst. 24 cm |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Prentice Hall |
record_format | marc |
spelling | Cavaness, Chuck Verfasser aut Quartz job scheduling framework building open source enterprise applications Chuck Cavaness Upper Saddle River, NJ Prentice Hall 2006 XXII, 330 S. graph. Darst. 24 cm txt rdacontent n rdamedia nc rdacarrier Includes index. Quartz (Electronic resource) Programación de la producción lemb Software de fuente abierta Production scheduling Open source software http://www.loc.gov/catdir/toc/ecip0610/2006007504.html Table of contents HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995785&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Cavaness, Chuck Quartz job scheduling framework building open source enterprise applications Quartz (Electronic resource) Programación de la producción lemb Software de fuente abierta Production scheduling Open source software |
title | Quartz job scheduling framework building open source enterprise applications |
title_auth | Quartz job scheduling framework building open source enterprise applications |
title_exact_search | Quartz job scheduling framework building open source enterprise applications |
title_exact_search_txtP | Quartz job scheduling framework building open source enterprise applications |
title_full | Quartz job scheduling framework building open source enterprise applications Chuck Cavaness |
title_fullStr | Quartz job scheduling framework building open source enterprise applications Chuck Cavaness |
title_full_unstemmed | Quartz job scheduling framework building open source enterprise applications Chuck Cavaness |
title_short | Quartz job scheduling framework |
title_sort | quartz job scheduling framework building open source enterprise applications |
title_sub | building open source enterprise applications |
topic | Quartz (Electronic resource) Programación de la producción lemb Software de fuente abierta Production scheduling Open source software |
topic_facet | Quartz (Electronic resource) Programación de la producción Software de fuente abierta Production scheduling Open source software |
url | http://www.loc.gov/catdir/toc/ecip0610/2006007504.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995785&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT cavanesschuck quartzjobschedulingframeworkbuildingopensourceenterpriseapplications |