-
Notifications
You must be signed in to change notification settings - Fork 0
/
01-Setup-broker.sql
147 lines (120 loc) · 3.86 KB
/
01-Setup-broker.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
SELECT name, is_broker_enabled, service_broker_guid FROM sys.databases;
ALTER DATABASE msdb SET ENABLE_BROKER;
ALTER DATABASE CURRENT SET NEW_BROKER WITH ROLLBACK IMMEDIATE; -- Use ENABLE_BROKER if restoring db
GO
-- Content Queue DDL
CREATE QUEUE [ContentQueue]
GO
CREATE XML SCHEMA COLLECTION UpdateBlogPostMessageSchema AS
N'<?xml version="1.0" encoding="UTF-16" ?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="nodeType"/>
<xs:element type="xs:string" name="summary"/>
<xs:element type="xs:int" name="nodeId"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>';
CREATE MESSAGE TYPE [//Recommendations/UpdateBlogPostMessage]
AUTHORIZATION dbo
VALIDATION = VALID_XML WITH SCHEMA COLLECTION UpdateBlogPostMessageSchema;
GO
CREATE CONTRACT [//Content/Blog/UpdateRecommendationContract]
( [//Recommendations/UpdateBlogPostMessage] SENT BY ANY )
GO
CREATE SERVICE [//Content/Blog/UpdateRecommendation]
AUTHORIZATION dbo
ON QUEUE [ContentQueue]
( [//Content/Blog/UpdateRecommendationContract] );
GO
CREATE SERVICE [//Recommendation/Blog/Update]
AUTHORIZATION dbo
ON QUEUE [ContentQueue]
( [//Content/Blog/UpdateRecommendationContract] );
GO
-- Member Queue DDL
CREATE QUEUE [MemberQueue];
GO
CREATE XML SCHEMA COLLECTION WelcomePackMessageSchema AS
N'<?xml version="1.0" encoding="UTF-16" ?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="email"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>';
CREATE MESSAGE TYPE [//Member/Email/WelcomePackMessage]
AUTHORIZATION dbo
VALIDATION = VALID_XML WITH SCHEMA COLLECTION WelcomePackMessageSchema;
GO
CREATE CONTRACT [//Member/Email/WelcomePackContract]
( [//Member/Email/WelcomePackMessage] SENT BY ANY )
GO
CREATE SERVICE [//Member/Email/WelcomePack]
AUTHORIZATION dbo
ON QUEUE [MemberQueue]
( [//Member/Email/WelcomePackContract] );
GO
CREATE SERVICE [//Email/SendAgent]
AUTHORIZATION dbo
ON QUEUE [MemberQueue]
( [//Member/Email/WelcomePackContract] );
GO
--**
-- Media Queue DDL
CREATE QUEUE [MediaQueue];
GO
CREATE XML SCHEMA COLLECTION CdnMessageSchema AS
N'<?xml version="1.0" encoding="UTF-16" ?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="resource"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>';
-- CDN Invalidation
CREATE MESSAGE TYPE [//Media/Cdn/SetInvalidationMessage]
AUTHORIZATION dbo
VALIDATION = VALID_XML WITH SCHEMA COLLECTION CdnMessageSchema;
GO
CREATE CONTRACT [//Media/Cdn/SetInvalidationContract]
( [//Media/Cdn/SetInvalidationMessage] SENT BY ANY )
GO
CREATE SERVICE [//Media/Cdn/SetInvalidation]
AUTHORIZATION dbo
ON QUEUE [MediaQueue]
( [//Media/Cdn/SetInvalidationContract] );
GO
CREATE SERVICE [//Cdn/InvalidationAgent]
AUTHORIZATION dbo
ON QUEUE [MediaQueue]
( [//Media/Cdn/SetInvalidationContract] );
GO
-- CDN Set Policy
CREATE MESSAGE TYPE [//Media/Cdn/SetPolicyMessage]
AUTHORIZATION dbo
VALIDATION = VALID_XML WITH SCHEMA COLLECTION CdnMessageSchema;
GO
CREATE CONTRACT [//Media/Cdn/SetPolicyContract]
( [//Media/Cdn/SetPolicyMessage] SENT BY ANY )
GO
CREATE SERVICE [//Media/Cdn/SetPolicy]
AUTHORIZATION dbo
ON QUEUE [MediaQueue]
( [//Media/Cdn/SetPolicyContract] );
GO
CREATE SERVICE [//Cdn/PolicyAgent]
AUTHORIZATION dbo
ON QUEUE [MediaQueue]
( [//Media/Cdn/SetPolicyContract] );
GO