zoom: implement cunning scheme for retry/proxy failover
[metaproxy-moved-to-github.git] / etc / config-zoom.xml
1 <?xml version="1.0"?>
2 <metaproxy xmlns="http://indexdata.com/metaproxy" version="1.0">
3   <start route="start"/>
4   <filters>
5     <filter id="frontend" type="frontend_net">
6       <threads>10</threads>
7       <port>@:9000</port>
8       <message>FN</message>
9     </filter>
10     <filter id="backend" type="zoom">
11       <torus
12           url="http://usi.indexdata.com/torus2/searchable.%realm/records/?query=%query"
13             realm="production"
14             xsldir="."
15             element_transform="pz2"
16             element_raw="raw"
17             explain_xsl="torus2zeerex.xsl"
18             record_xsl="pz22usi.xsl"
19             >   
20         <!-- these records are examples only -->
21         <records>
22
23           <!-- local z-target and content connector -->
24           <record>
25             <piggyback>1</piggyback>
26             <queryEncoding>UTF-8</queryEncoding>
27             <udb>z-local</udb>
28             <cclmap_term>1=1016 s=al</cclmap_term>
29             <cclmap_ti>1=4 s=pw t=l,r</cclmap_ti>
30             <requestSyntax>usmarc</requestSyntax>
31             <transform>tmarc.xsl</transform>
32             <urlRecipe>http://sever.com?title=${md-title[\s+/+/g]}&amp;parm=1</urlRecipe>
33             <zurl>localhost:9998/Default?search-delay=2&amp;present-delay=2</zurl>
34             <contentConnector>heikki/content1</contentConnector>
35           </record>
36           <record>
37             <udb>heikki/content1</udb>
38             <zurl>localhost:9999/heikki/content1</zurl>
39             <cfAuth>cfuser/cfpassword</cfAuth>
40           </record>
41
42           <!-- sru local connector -->
43           <record>
44             <piggyback>1</piggyback>
45             <queryEncoding>UTF-8</queryEncoding>
46             <udb>sru-local</udb>
47             <cclmap_term>s=al</cclmap_term>
48             <cclmap_ti>1=title s=pw t=l,r</cclmap_ti>
49             <sru>get</sru>
50             <sruVersion>1.1</sruVersion>
51             <transform>tmarc.xsl</transform>
52             <zurl>localhost:9998/db01</zurl>
53             <sortStrategy>embed</sortStrategy>
54             <sortmap_title>dc.title</sortmap_title>
55           </record>
56
57           <!-- jstor1 -->
58           <record>
59             <piggyback>1</piggyback>
60             <queryEncoding>UTF-8</queryEncoding>
61             <udb>jstor1</udb>
62             <cclmap_term>s=al</cclmap_term>
63             <cclmap_ti>1=title s=pw t=l,r</cclmap_ti>
64             <sru>get</sru>
65             <transform>dc.xsl</transform>
66             <literalTransform>&lt;?xml version="1.0" encoding="UTF-8"?>
67 &lt;!--
68
69     This stylesheet expects oai/dc records
70 -->
71 &lt;xsl:stylesheet
72     version="1.0"
73     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
74     xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
75     xmlns:dc="http://purl.org/dc/elements/1.1/"
76     xmlns:dcterms="http://purl.org/dc/terms/">
77
78  &lt;xsl:output indent="yes"
79         method="xml"
80         version="1.0"
81         encoding="UTF-8"/>
82
83   &lt;xsl:param name="medium" />
84
85   &lt;xsl:template match="/*">
86     &lt;pz:record>
87
88       &lt;pz:metadata type="id">
89         &lt;xsl:value-of select="dc:identifier"/>
90       &lt;/pz:metadata>
91
92       &lt;xsl:for-each select="dc:title">
93         &lt;pz:metadata type="title">
94           &lt;xsl:value-of select="."/>
95         &lt;/pz:metadata>
96       &lt;/xsl:for-each>
97
98       &lt;xsl:for-each select="dc:date">
99         &lt;pz:metadata type="date">
100           &lt;xsl:value-of select="."/>
101               &lt;/pz:metadata>
102       &lt;/xsl:for-each>
103
104       &lt;xsl:for-each select="dc:subject">
105         &lt;pz:metadata type="subject">
106                 &lt;xsl:value-of select="."/>
107               &lt;/pz:metadata>
108       &lt;/xsl:for-each>
109
110       &lt;xsl:for-each select="dc:creator">
111               &lt;pz:metadata type="author">
112           &lt;xsl:value-of select="."/>
113               &lt;/pz:metadata>
114       &lt;/xsl:for-each>
115
116       &lt;xsl:for-each select="dc:description">
117         &lt;pz:metadata type="description">
118                 &lt;xsl:value-of select="."/>
119               &lt;/pz:metadata>
120       &lt;/xsl:for-each>
121
122       &lt;xsl:for-each select="dc:identifier">
123         &lt;pz:metadata type="electronic-url">
124                 &lt;xsl:value-of select="."/>
125               &lt;/pz:metadata>
126       &lt;/xsl:for-each>
127
128       &lt;xsl:for-each select="dc:type">
129         &lt;pz:metadata type="medium">
130                 &lt;xsl:value-of select="."/>
131               &lt;/pz:metadata>
132       &lt;/xsl:for-each>
133
134       &lt;xsl:for-each select="dcterms:bibliographicCitation">
135         &lt;pz:metadata type="citation">
136           &lt;xsl:value-of select="."/>
137         &lt;/pz:metadata>
138       &lt;/xsl:for-each>
139
140       &lt;pz:metadata type="medium">
141         &lt;xsl:value-of select="$medium" />
142       &lt;/pz:metadata>
143
144     &lt;/pz:record>
145   &lt;/xsl:template>
146
147   &lt;xsl:template match="text()"/>
148
149 &lt;/xsl:stylesheet></literalTransform>
150             <zurl>dfr.jstor.org/sru</zurl>
151           </record>
152
153           <!-- jstor2 -->
154           <record>
155             <piggyback>1</piggyback>
156             <queryEncoding>UTF-8</queryEncoding>
157             <udb>jstor2</udb>
158             <cclmap_term>s=al</cclmap_term>
159             <cclmap_ti>1=title s=pw t=l,r</cclmap_ti>
160             <elementSet>info:srw/schema/srw_jstor</elementSet>
161             <sru>get</sru>
162             <transform>jstor-pz2.xsl</transform>
163             <zurl>dfr.jstor.org/sru</zurl>
164           </record>
165
166
167           <!-- cf connector -->
168           <record>
169             <piggyback>1</piggyback>
170             <queryEncoding>UTF-8</queryEncoding>
171             <udb>cf-local</udb>
172             <cclmap_term>1=1016 s=al</cclmap_term>
173             <cclmap_ti>1=4 s=pw t=l,r</cclmap_ti>
174             <requestSyntax>xml</requestSyntax>
175             <transform>cf.xsl</transform>
176             <zurl>localhost:9999/db01</zurl>
177             <cfAuth>cfuser/cfpassword</cfAuth>
178             <cfProxy>localhost:3128</cfProxy>
179             <cfSubDB>mysub</cfSubDB>
180           </record>
181         </records>
182       </torus>
183       <fieldmap cql="cql.anywhere"/>
184       <fieldmap cql="cql.serverChoice"/>
185       <fieldmap cql="dc.creator" ccl="au"/>
186       <fieldmap cql="dc.title" ccl="ti"/>
187       <fieldmap cql="dc.subject" ccl="su"/>
188       <fieldmap cql="bath.isbn" ccl="isbn"/>
189       <fieldmap cql="bath.issn" ccl="issn"/>
190       <fieldmap cql="dc.date" ccl="date"/>
191       <cclmap>
192         <qual name="ocn">
193           <attr type="1" value="12"/>
194         </qual>
195       </cclmap>
196       <contentProxy
197          config_file="/etc/cf-proxy/cproxy.cfg"
198       />
199       <log apdu="true"/>
200       <zoom timeout="20" proxy_timeout="1"/>
201     </filter>
202   </filters>
203   <routes>  
204     <route id="start">
205       <filter refid="frontend"/>
206       <filter type="log">
207         <message>F</message>
208         <category apdu="false" session="true"/>
209       </filter>
210       <filter type="sru_z3950"/>
211       <filter type="session_shared">
212         <resultset ttl="0" restart="false"/>
213         <session ttl="60" max="100"/>
214       </filter>
215       <filter type="log">
216         <message>B</message>
217         <category apdu="false" session="true"/>
218       </filter>
219       <filter refid="backend"/>
220       <filter type="bounce"/>
221     </route>
222   </routes>
223 </metaproxy>
224