Математика

Физика

Химия

Биология

Техника и    технологии

Pro SQL Server 2005 Service Broker-Klaus Aschenbrenner 2007 str 436
Pro SQL Server 2005 Service Broker-Klaus Aschenbrenner 2007 str 436


Contents at a Glance
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
PART 1 ¦ ¦ ¦ The Service Broker
Programming Model
¦CHAPTER 1 Fundamentals of Message-Based Processing . . . . . . . . . . . . . . . . . . . . . . 3
¦CHAPTER 2 Introduction to Service Broker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
¦CHAPTER 3 Service Broker in Action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
¦CHAPTER 4 Service Broker Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
¦CHAPTER 5 Service Broker with Managed Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
¦CHAPTER 6 Locking and Transaction Management . . . . . . . . . . . . . . . . . . . . . . . . . . 151
¦CHAPTER 7 Distributed Service Broker Applications. . . . . . . . . . . . . . . . . . . . . . . . . . 221
PART 2 ¦ ¦ ¦ Advanced Service Broker
Programming
¦CHAPTER 8 Advanced Distributed Service Broker Programming . . . . . . . . . . . . . . . 253
¦CHAPTER 9 Service-Oriented Database Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 285
¦CHAPTER 10 Real-World Application Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
¦CHAPTER 11 High Availability and Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
¦CHAPTER 12 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
¦INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

Contents
vii
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
PART 1 ¦ ¦ ¦ The Service Broker
Programming Model
¦CHAPTER 1 Fundamentals of Message-Based Processing . . . . . . . . . . . . . . . . 3
Message Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Message Anatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Messaging in Daily Life . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Why Messaging? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Asynchronous Message Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Deferred Message Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Fault Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Distributed Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Messaging Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Queue Reader Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Transaction Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Message Sequencing and Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Maintenance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Messaging Architectures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
SOA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
SODA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Available Messaging Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
MSMQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Queued Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
BizTalk Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
XML Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
WCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
viii ¦CONTENTS
¦CHAPTER 2 Introduction to Service Broker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Conversations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Dialog Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Conversation Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Message Sequencing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Reliable Delivery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Anatomy of a Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Message Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Service Programs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Transport Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Dialog Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Message Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
¦CHAPTER 3 Service Broker in Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Defining Service Broker Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Message Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Queue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Sending Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Retrieving and Processing Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Retrieving Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Processing Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Error Handling in Service Programs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Poison-Message Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Ending Conversations with Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
¦CHAPTER 4 Service Broker Activation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Activation Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Startup Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
When Is Activation Needed? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
¦CONTENTS ix
Internal Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Controlling Message Throughput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Stored-Procedure Signing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Calling a Stored Procedure in Another Database . . . . . . . . . . . . . . . . . . . 90
Using a Single Stored Procedure to Process Many Queues . . . . . . . . . . . 94
External Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Parallel Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Troubleshooting Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
When the Activated Stored Procedure Doesn’t Run . . . . . . . . . . . . . . . . 117
When Messages Remain on the Queue. . . . . . . . . . . . . . . . . . . . . . . . . . 117
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
¦CHAPTER 5 Service Broker with Managed Code . . . . . . . . . . . . . . . . . . . . . . . . 119
The Managed Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Architecture and Design of the Managed Assembly. . . . . . . . . . . . . . . . . . . . . 123
Building a Managed Service Broker Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Building a Managed Service Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Derive Your Service Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Implement an Entry Point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Implement Message Type Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Deploy the Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Register the Managed Stored Procedure . . . . . . . . . . . . . . . . . . . . . . . . 138
Configure the Service Broker Activation . . . . . . . . . . . . . . . . . . . . . . . . . 139
Using the Service Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
A Practical Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
¦CHAPTER 6 Locking and Transaction Management . . . . . . . . . . . . . . . . . . . . . 151
Conversation Groups and Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
State Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
GET CONVERSATION GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
The Receive Loop with State Handling . . . . . . . . . . . . . . . . . . . . . . . . . . 160
State Handling with a Managed Stored Procedure . . . . . . . . . . . . . . . . . 164
A Practical Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Compensation Logic with Service Broker . . . . . . . . . . . . . . . . . . . . . . . . 198
Transaction Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Basic Receive Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Measuring Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Batched Commits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Cursor-Based Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Set-Based Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Binary Payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
x ¦CONTENTS
¦CHAPTER 7 Distributed Service Broker Applications. . . . . . . . . . . . . . . . . . . . 221
Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Service Broker Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Sending a Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Routing Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Managing Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Distributed Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
The Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Setting Up Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Establishing a Communication Channel . . . . . . . . . . . . . . . . . . . . . . . . . 232
Setting Up Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
PART 2 ¦ ¦ ¦ Advanced Service Broker
Programming
¦CHAPTER 8 Advanced Distributed Service Broker Programming . . . . . . . 253
Transport Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
LOCAL Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
TRANSPORT Route. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Dialog Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Service Broker Security Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Transport Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Dialog Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Recommendation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Transport Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Setting Up Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
The Captured Service Broker Message . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Replaying Service Broker Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Replacing Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Transport Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Dialog Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Service Listing Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Exporting a Service Listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Importing a Service Listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
¦CONTENTS xi
¦CHAPTER 9 Service-Oriented Database Architecture . . . . . . . . . . . . . . . . . . . 285
Service-Oriented Database Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
SOA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Reasons for SODA Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Requirements for a SODA Service Provider. . . . . . . . . . . . . . . . . . . . . . . 288
Data in SODA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Outside Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Inside Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
SODA Features in SQL Server 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
XML Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Native Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
SQLCLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Query Notifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
¦CHAPTER 10 Real-World Application Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Asynchronous Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Defining the Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Implementing the Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Creating the Service Broker Infrastructure . . . . . . . . . . . . . . . . . . . . . . . 333
Writing the Service Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Batch Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Creating the Service Broker Infrastructure . . . . . . . . . . . . . . . . . . . . . . . 338
The Implementation of the Batch Framework . . . . . . . . . . . . . . . . . . . . . 339
Extending the Batch Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Publish-Subscribe Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Defining the Infrastructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Applying Publisher Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Publishing Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Priority-Based Message Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Implementing Priority-Based Messaging. . . . . . . . . . . . . . . . . . . . . . . . . 358
Reliable Web Service Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Service Broker Infrastructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Implementation of the Web Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Using the Web Proxy in a Smart Client . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
xii ¦CONTENTS
¦CHAPTER 11 High Availability and Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Implementation Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Setting Up Database Mirroring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Using Service Broker with Database Mirroring . . . . . . . . . . . . . . . . . . . . 402
Load Balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Service Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Initiator Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Message Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Reliable Delivery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Network Topology Abstraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Centralized Routing Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Work Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Using Message Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Monitoring Message Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Configuration Notice Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Implementing Dynamic Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Implementing the Configuration Notice Service . . . . . . . . . . . . . . . . . . . 417
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
¦CHAPTER 12 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
SQL Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Using SQL Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
SQL Server Management Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Creating Service Broker Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Retrieving Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

Цена: 200руб.

Назад

Заказ

На главную страницу