Update year for documentation
[yazproxy-moved-to-github.git] / etc / helka.xml
1 <?xml version="1.0"?>
2 <proxy xmlns="http://indexdata.dk/yazproxy/schema/0.8/"
3  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4  xsi:schemaLocation="http://indexdata.dk/yazproxy/schema/0.8/ yazproxy.xsd"
5 >
6   <!-- define default target and name it voyager -->
7   <target default="1" name="voyager">
8     <!-- all backend addresses as seen from this proxy .. -->
9     <url>193.166.7.193:7590</url>
10
11     <!-- set session timeout between proxy and backend target -->
12     <target-timeout>300</target-timeout>
13
14     <!-- set session timeout between client and proxy.
15     Should be lower than target-timeout -->
16     <client-timeout>180</client-timeout>
17
18     <!-- if either bandwidth or pdu limit is reached the session is no
19     longer kept alive -->
20     <keepalive>
21       <bandwidth>500000</bandwidth>
22       <pdu>500</pdu>
23     </keepalive>
24
25     <!-- client limits .. -->
26     <limit>
27       <bandwidth>200000</bandwidth>
28       <pdu>31</pdu>
29       <retrieve>50</retrieve>
30     </limit>
31
32     <!-- use attributes -->
33     <attribute type="1" value="1-13,16,17,20,21,25,27,31,33,41,42,43,48,51,54,56,57,58,59,63,1002-1005,1007,1009,1016,1018,1027,1032,1056,1074,1078,1079,1209"/>
34     <attribute type="1" value="*" error="114"/>
35
36     <!-- relation attributes -->
37     <attribute type="2" value="3"/>
38     <attribute type="2" value="*" error="117"/>
39     
40     <!-- position attributes -->
41     <attribute type="3" value="1,2,3"/>
42     <attribute type="3" value="*" error="119"/>
43
44     <!-- structure attributes -->
45     <attribute type="4" value="1,2"/>
46     <attribute type="4" value="*" error="118"/>
47
48     <!-- truncation attributes -->
49     <attribute type="5" value="1,100"/>
50     <attribute type="5" value="*" error="120"/>
51
52     <!-- completeness attributes -->
53     <attribute type="6" value="1"/>
54     <attribute type="6" value="*" error="122"/>
55
56     <!-- other types -->
57     <attribute type="*" value="*" error="113"/>
58
59     <!-- list allowed record syntaxes and possible schemas (if any);
60     reject all others at the end -->
61     <syntax type="opac"/>
62     <syntax type="finmarc" backendtype="finmarc"/>
63     <zsyntax type="usmarc"/>
64     <syntax type="usmarc" backendtype="canmarc"/>
65     <syntax type="none" backendtype="usmarc"/>
66     
67     <syntax type="xml" marcxml="1"
68       identifier="info:srw/schema/1/marcxml-v1.1" backendtype="canmarc"
69       >
70       <title>MARCXML</title>
71       <name>marcxml</name>
72     </syntax>
73     <syntax type="xml" marcxml="1" stylesheet="MARC21slim2SRWDC.xsl"
74       identifier="info:srw/schema/1/dc-v1.1"
75       >
76       <title>Dublin Core</title>
77       <name>dc</name>
78     </syntax>
79     <syntax type="xml" marcxml="1" stylesheet="MARC21slim2MODS.xsl"
80       identifier="http://www.loc.gov/mods"
81       >
82       <title>MODS v2</title>
83       <name>mods2</name>
84     </syntax>
85     <syntax type="xml" marcxml="1" stylesheet="MARC21slim2MODS3.xsl"
86       identifier="info:srw/schema/1/mods-v3.0"
87       >
88       <title>MODS v3</title>
89       <name>mods3</name>
90       <name>mods</name>
91     </syntax>
92
93     <syntax type="*" error="238"/>
94
95     <!-- keep this number of spare sessions for future sessions -->
96     <preinit>0</preinit>
97
98     <explain xmlns="http://explain.z3950.org/dtd/2.0/">
99       <serverInfo>
100         <host>indexdata.dk</host>
101         <port>9000</port>
102         <database>voyager</database>
103       </serverInfo>
104       
105       <databaseInfo>
106         <title>FENNICA</title>
107         <description lang="en" primary="true">
108           SRW/SRU/Z39.50 Gateway to HELKA (The OPAC of the Helsinki University Libraries)
109         </description>
110       </databaseInfo>
111       
112       <indexInfo>
113         <set identifier="info:srw/cql-context-set/1/cql-v1.1"
114           name="cql"/>
115         <set identifier="info:srw/cql-context-set/1/dc-v1.1"
116           name="dc"/>
117         <set identifier="http://zing.z3950.org/cql/bath/2.0/"
118           name="bath"/>
119         
120         <index id="4">
121           <title>title</title>
122           <map><name set="dc">title</name></map>
123         </index>
124         <index id="21">
125           <title>subject</title>
126           <map><name set="dc">subject</name></map>
127         </index>
128         <index id="1003">
129           <title>creator</title>
130           <map><name set="dc">creator</name></map>
131           <map><name set="dc">author</name></map>
132         </index>
133         
134         <index id="1020">
135           <title>editor</title>
136           <map><name set="dc">editor</name></map>
137         </index>
138         
139         <index id="1018">
140           <title>publisher</title>
141           <map><name set="dc">publisher</name></map>
142         </index>
143         
144         <index id="62">
145           <title>description</title>
146           <map><name set="dc">description</name></map>
147         </index>
148         
149         <index id="30">
150           <title>date</title>
151           <map><name set="dc">date</name></map>
152         </index>
153         
154         <index id="1002">
155           <title>name</title>
156           <map><name set="bath">name</name></map>
157         </index>
158         
159         <index id="7">
160           <title>isbn</title>
161           <map><name set="bath">isbn</name></map>
162         </index>
163         <index id="8">
164           <title>issn</title>
165           <map><name set="bath">issn</name></map>
166         </index>
167       </indexInfo>
168
169       <schemaInfo>
170         <schema identifier="info:srw/schema/1/marcxml-v1.1"
171           sort="false" name="marcxml">
172           <title>MARCXML</title>
173         </schema>
174         
175         <schema identifier="info:srw/schema/1/dc-v1.1"
176           sort="false" name="dc">
177           <title>Dublin Core</title>
178         </schema>
179         
180         <schema identifier="http://www.loc.gov/mods"
181           sort="false" name="mods2">
182           <title>MODS v2</title>
183         </schema>
184
185         <schema identifier="info:srw/schema/1/mods-v3.0"
186           sort="false" name="mods">
187           <title>MODS v3</title>
188         </schema>
189
190       </schemaInfo>
191
192       <configInfo>
193         <default type="numberOfRecords">0</default>
194       </configInfo>
195     </explain>
196    <cql2rpn>pqf.properties</cql2rpn>
197   </target>
198
199
200   <!-- maximum number of client sessions. Remember to allow for
201      at least max-clients*2+5 sockets. Use 'ulimit -n 1040' on bash -->
202   <max-clients>500</max-clients>
203   
204   <!-- what we log. Allowed tokens: client-apdu, server-apdu,
205   client-requests, server-requests -->
206   <log>client-requests server-requests</log>
207   <!-- commentary:
208 Observerations on the Helsinki Voyager Server.  
209
210 1. Observerations:
211
212 1.1 A client must issue different OID than effective syntax OID.
213 To get USMARC, CanMarc must be sent. To get FINMARC, USMARC must be sent.
214 (OID for MARC21 and USMARC are equivalent). 
215
216 Solution: This is fixed by the 'backend' attribute for 'syntax' sections
217 in the proxy config.
218
219 1.2 Attribute 1=12 seems to work - unlike the Voyager target at LoC.
220
221 Solution: ensure that yazproxy accepts this attribute now that it seems
222 to work.
223
224 1.3 All attributes are accepted by the Server. The appropriate behavior is
225 to return a diagnostic. 
226
227 Solution: "attribute" sections in config is set to only accepts certain
228 attributes. Others are rejected with a diagnostic.
229
230 1.4 When no preferred Record syntax is provided by a client, the Voyager
231 server returns SUTRS record: Failed to retrieve record #x. The correct
232 behavior is to return a default record, say USMARC. The server could also
233 return a diagnostic, but there do not seem to be an appropriate diagnostic
234 for that one.
235
236 Solution: This is fixed by the 'backend' attribute and type='none' for
237 'syntax' sections in the proxy config.
238
239 1.5 Speed of initialize phase. The speed of initilization
240 (init-request/init-response) for the the Voyager target at Helsinki
241 seem to be acceptable.
242
243 Solution: No special precaution to limits/bandwidth needs to be taken.
244
245 1.6 Present Requests out of range. The voyager target does not return
246 a diagnostic when a client presents a record at a position out of the
247 range of a result set.
248
249 Solution: The yazproxy automatically deals with this fault.
250
251 2. List of targets:
252
253 |Database:   |HELKA  (The OPAC of the Helsinki University Libraries)     |
254 |Domain name:|193.166.7.193                                              |
255 |Port:       |7590                                                       |
256 |Database    |voyager                                                    |
257 |name:       |                                                           |
258 |Availability|24 hours a day, 7 days per week. The system is unavailable |
259 |:           |for about 15minutes daily at 1.00am GMT for routine        |
260 |            |maintenance.                                               |
261                                                                                 
262 |Database:   |FENNICA (the Finnish National Bibliography)                |
263 |Domain name:|193.166.7.194                                              |
264 |Port:       |11390                                                      |
265 |Database    |voyager                                                    |
266 |name:       |                                                           |
267 |Availability|24 hours a day, 7 days per week. The system is unavailable |
268 |:           |for about 15minutes daily at 1.00am GMT for routine        |
269 |            |maintenance.                                               |
270                                                                                 
271 |Database:   |LINDA (The Database of Finnish University Libraries)       |
272 |Domain name:|193.166.7.194                                              |
273 |Port:       |11190                                                      |
274 |Database    |Voyager                                                    |
275 |name:       |                                                           |
276 |Availability|24 hours a day, 7 days per week. The system is unavailable |
277 |:           |for about 15minutes daily at 1.00am GMT for routine        |
278 |            |maintenance.                                               |
279                                                                                 
280 |Database:   |MANDA  (Database of Major Public Libraries)                |
281 |Domain name:|193.166.7.194                                              |
282 |Port:       |11290                                                      |
283 |Database    |Voyager                                                    |
284 |name:       |                                                           |
285 |Availability|24 hours a day, 7 days per week. The system is unavailable |
286 |:           |for about 15minutes daily at 1.00am GMT for routine        |
287 |            |maintenance.                                               |
288                                                                                 
289 -->
290 </proxy>