]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/examples/opensrf.xml.example
read XSL file and path from opensrf.xml
[Evergreen.git] / Open-ILS / examples / opensrf.xml.example
1 <?xml version='1.0'?>
2
3 <!-- 
4 Example opensrf config file for OpenILS
5 vim:et:ts=4:sw=4:
6 -->
7
8 <opensrf version='0.0.3'>
9
10     <default>
11
12         <!-- unless otherwise overidden, use this locale -->
13         <default_locale>en-US</default_locale>
14
15         <dirs>
16             <log>LOCALSTATEDIR/log</log> <!-- unix::server log files -->
17             <sock>LOCALSTATEDIR/lock</sock> <!-- unix::server sock files -->
18             <pid>LOCALSTATEDIR/run</pid>
19             <xsl>LOCALSTATEDIR/xsl</xsl>
20             <script>LOCALSTATEDIR</script>
21             <script_lib>LOCALSTATEDIR</script_lib>
22             <templates>LOCALSTATEDIR/templates</templates>
23         </dirs>
24
25         <!-- global data visibility settings -->
26         <share>
27             <user>
28                 <!-- Set to "true" to require patron opt-in for foreign (non-home_ou) transactions -->
29                 <opt_in>false</opt_in>
30             </user>
31         </share>
32
33         <IDL>SYSCONFDIR/fm_IDL.xml</IDL> <!-- top level IDL file -->
34         <IDL2js>fm_IDL2js.xsl</IDL2js> <!-- IDL JS XSLT -->
35
36
37         <server_type>prefork</server_type> <!-- net::server type -->
38
39         <ils_events>LOCALSTATEDIR/data/ils_events.xml</ils_events> <!-- ILS events description file -->
40
41         <email_notify> <!-- this will eventually move into the notifications section below... -->
42             <!-- global email notification settings -->
43             <template>LOCALSTATEDIR/data/hold_notification_template.example</template>
44             <smtp_server>localhost</smtp_server>
45
46             <!--
47             in most cases, this is overridden by location 
48             specific config settings.  this is just the default
49             -->
50             <sender_address>evergreen@localhost</sender_address>
51         </email_notify>
52
53
54       <notifications>
55         <!-- global mail server settings -->
56         <smtp_server>localhost</smtp_server>
57         <sender_address>evergreen@localhost</sender_address>
58
59         <!-- global telephony (asterisk) settings -->
60         <telephony>
61             <!-- replace all values below when telephony server is configured -->
62             <enabled>0</enabled>
63             <driver>SIP</driver>    <!-- SIP (default) or multi -->
64             <channels>              <!-- explicit list of channels used if multi -->
65                                     <!-- A channel specifies technology/resource -->
66                 <channel>Zap/1</channel>
67                 <channel>Zap/2</channel>
68                 <channel>IAX/user:secret@widgets.biz</channel>
69             </channels>
70             <host>localhost</host>
71             <port>10080</port>
72             <user>evergreen</user>
73             <pw>evergreen</pw>
74             <!--
75                 The overall composition of callfiles is determined by the
76                 relevant template, but this section can be invoked for callfile
77                 configs common to all outbound calls.
78                 callfile_lines will be inserted into ALL generated callfiles
79                 after the Channel line.  This content mat be overridden
80                 (in whole) by the org unit setting callfile_lines.
81                 Warning: Invalid syntax may break ALL outbound calls.
82             -->
83             <!-- <callfile_lines>
84                 MaxRetries: 3
85                 RetryTime: 60
86                 WaitTime: 30
87                 Archive: 1
88                 Extension: 10
89             </callfile_lines> -->
90         </telephony>
91
92         <!-- Overdue notices -->
93         <overdue>
94
95             <!-- optionally, you can define a sender address per notice type -->
96             <sender_address>overdue@localhost</sender_address>
97
98             <!-- The system can generate an XML file of overdue notices.  This is the
99                 directory where they are stored.  Files are named overdue.YYYY-MM-DD.xml -->
100             <notice_dir>LOCALSTATEDIR/data/overdue</notice_dir>
101             <combined_template>LOCALSTATEDIR/data/templates/overdue_combined_xml.example</combined_template>
102
103             <notice>
104                 <!-- Notify at 7 days overdue -->
105                 <notify_interval>7 days</notify_interval>
106                 <!-- Options include always, noemail, and never.  'noemail' means a notice
107                      will be appended to the notice file only if the patron has no valid email address.  -->
108                 <file_append>noemail</file_append>
109                 <!-- do we attempt email notification? -->
110                 <email_notify>true</email_notify>
111                 <!-- notice template file -->
112                 <email_template>LOCALSTATEDIR/data/templates/overdue_7day.example</email_template>
113             </notice>
114         </overdue>
115
116         <!-- Courtesy notices -->
117         <predue>
118             <notice>
119                 <!-- All circulations that circulate between 5 and 13 days -->
120                 <circ_duration_range>
121                     <from>5 days</from>
122                     <to>13 days</to>
123                 </circ_duration_range>
124                 <!-- notify at 1 day before the due date -->
125                 <notify_interval>1 day</notify_interval>
126                 <file_append>false</file_append>
127                 <email_notify>true</email_notify>
128                 <email_template>LOCALSTATEDIR/data/templates/predue_1day.example</email_template>
129             </notice>
130         </predue>
131       </notifications>
132
133         <reporter>
134             <!--
135             Settings for the reporter daemon process 
136             -->
137             <setup>
138                 <base_uri>https://localhost/reporter/</base_uri>
139                 <database>
140                     <driver>Pg</driver>
141                     <host>localhost</host>
142                     <port>5432</port>
143                     <db>evergreen</db>
144                     <user>postgres</user>
145                     <pw>postgres</pw>
146                 </database>
147                 <state_store>
148                     <driver>Pg</driver>
149                     <host>localhost</host>
150                     <port>5432</port>
151                     <db>evergreen</db>
152                     <user>postgres</user>
153                     <pw>postgres</pw>
154                 </state_store>
155                 <files>
156                     <!-- successful report outputs go here -->
157                     <output_base>LOCALSTATEDIR/web/reporter</output_base>
158                     <success_template>LOCALSTATEDIR/data/report-success</success_template>
159                     <fail_template>LOCALSTATEDIR/data/report-fail</fail_template>
160                 </files>
161             </setup>
162         </reporter>
163
164
165
166         <xml-rpc>
167             <!-- XML-RPC gateway.  Do NOT publish unprotected services here -->
168             <allowed_services>
169                 <!-- list of published services -->
170                 <service>opensrf.math</service>
171                 <service>opensrf.dbmath</service>
172                 <service>open-ils.cat</service>
173                 <service>open-ils.search</service>
174                 <service>open-ils.circ</service>
175                 <service>open-ils.actor</service>
176                 <service>open-ils.auth</service>
177                 <service>open-ils.collections</service>
178             </allowed_services>
179         </xml-rpc>
180
181
182         <z3950>
183             <default>biblios</default>
184             <services>
185                 <biblios>
186                     <!-- biblios does not require username/password -->
187                     <name>‡biblios.net</name>
188                     <host>z3950.biblios.net</host>
189                     <port>210</port>
190                     <db>bibliographic</db>
191                     <!-- fetch the full record with no holdings. FI is the most common choice -->
192                     <record_format>FI</record_format> 
193
194                     <!-- Record transmission format from the server.  Supported -->
195                     <!-- formats include usmarc and xml (for marcxml).         -->
196                     <transmission_format>usmarc</transmission_format> 
197
198                     <attrs>
199                         <tcn><code>12</code><format>1</format></tcn>
200                         <isbn><code>7</code><format>6</format></isbn>
201                         <lccn><code>9</code><format>1</format></lccn>
202                         <author><code>1003</code><format>6</format></author>
203                         <title><code>4</code><format>6</format></title>
204                         <issn><code>8</code><format>1</format></issn>
205                         <publisher><code>1018</code><format>6</format></publisher>
206                         <pubdate><code>31</code><format>1</format></pubdate>
207                         <item_type><code>1001</code><format>1</format></item_type>
208                     </attrs>
209                 </biblios>
210
211                 <loc>
212                     <!-- LoC does not require username/password -->
213                     <name>loc</name>
214                     <host>z3950.loc.gov</host>
215                     <port>7090</port>
216                     <db>Voyager</db>
217                     <!-- fetch the full record with no holdings. FI is the most common choice -->
218                     <record_format>FI</record_format> 
219
220                     <!-- Record transmission format from the server.  Supported -->
221                     <!-- formats include usmarc and xml (for marcxml).         -->
222                     <transmission_format>usmarc</transmission_format> 
223
224                     <attrs>
225                         <tcn><code>12</code><format>1</format></tcn>
226                         <isbn><code>7</code><format>6</format></isbn>
227                         <lccn><code>9</code><format>1</format></lccn>
228                         <author><code>1003</code><format>6</format></author>
229                         <title><code>4</code><format>6</format></title>
230                         <issn><code>8</code><format>1</format></issn>
231                         <publisher><code>1018</code><format>6</format></publisher>
232                         <pubdate><code>31</code><format>1</format></pubdate>
233                         <item_type><code>1001</code><format>1</format></item_type>
234                     </attrs>
235                 </loc>
236
237                 <oclc>
238                     <!-- Z3950 settings for OCLC.  Note that OCLC requires username/password -->
239                     <host>zcat.oclc.org</host>
240                     <port>210</port>
241                     <db>OLUCWorldCat</db>
242                     <attrs>
243                         <!--
244                         These are directly from the Bib-1 Attribute Set
245                         http://www.loc.gov/z3950/agency/defns/bib1.html
246                         <code> is the "use attribute", <format> is the "structure attribute"
247                         This just puts some friendly names on the data.
248                         -->
249                         <tcn><code>12</code><format>1</format></tcn>
250                         <isbn><code>7</code><format>6</format></isbn>
251                         <lccn><code>9</code><format>1</format></lccn>
252                         <author><code>1003</code><format>6</format></author>
253                         <title><code>4</code><format>6</format></title>
254                         <issn><code>8</code><format>1</format></issn>
255                         <publisher><code>1018</code><format>6</format></publisher>
256                         <pubdate><code>31</code><format>1</format></pubdate>
257                         <item_type><code>1001</code><format>1</format></item_type>
258                     </attrs>
259                 </oclc>
260
261             </services>
262         </z3950>
263
264
265         <added_content>
266
267             <!-- load the OpenLibrary added content module -->
268             <module>OpenILS::WWW::AddedContent::OpenLibrary</module>
269
270             <!--
271             Max number of seconds to wait for an added content request to 
272             return data.  Data not returned within the timeout is considered
273             a failure
274             -->
275             <timeout>1</timeout>
276
277             <!--
278             After added content lookups have been disabled due to too many
279             lookup failures, this is the amount of time to wait before
280             we try again
281             -->
282             <retry_timeout>600</retry_timeout>
283
284             <!--
285             maximum number of consecutive lookup errors a given process can 
286             have before added content lookups are disabled for everyone
287             -->
288             <max_errors>15</max_errors>
289
290             <!-- If a userid is required to access the added content.. -->
291             <userid>MY_USER_ID</userid>
292
293             <!--
294             Base URL for Amazon added content fetching. Not needed by OpenLibrary
295             <base_url>http://images.amazon.com/images/P/</base_url>
296             -->
297
298             <!--
299             Segregating the details for ContentCafe out for easier use.  At some point, we
300             may want to support multiple services at one time.
301             -->
302             <ContentCafe>
303                 <userid>MY_USER_ID</userid>
304                 <password>MY_PASSWORD</password>
305
306                 <!--
307                 If no cover/jacket image exists for a given ISBN, then a value of T here will
308                 return an 80x120 pixel image containing the text "No Image Available".  A
309                 value of 1 will return a 1x1 pixel image.
310                 -->
311                 <return_behavior_on_no_jacket_image>T</return_behavior_on_no_jacket_image>
312             </ContentCafe>
313
314             <!--
315  
316             You can add free-form settings here and they will be accessible
317             within the added content module
318             -->
319
320         </added_content>
321
322
323
324         <!-- no apps are enabled globally by default -->
325         <activeapps/> 
326
327         <cache>
328             <!-- memcache servers -->
329             <global>
330                 <servers>
331                     <server>127.0.0.1:11211</server>
332                 </servers>
333                 <max_cache_time>86400</max_cache_time>
334             </global>
335             <anon>
336                 <!-- anonymous cache.  currently, primarily used for web session caching -->
337                 <servers>
338                     <server>127.0.0.1:11211</server>
339                 </servers>
340                 <max_cache_time>1800</max_cache_time>
341                 <!-- maximum size of a single cache entry / default = 100k-->
342                 <max_cache_size>102400</max_cache_size>
343             </anon>
344         </cache>
345
346         <apps>
347             <!-- Acquisitions server -->
348             <open-ils.acq>
349                 <keepalive>5</keepalive>
350                 <stateless>1</stateless>
351                 <language>perl</language>
352                 <implementation>OpenILS::Application::Acq</implementation>
353                 <max_requests>100</max_requests>
354                 <unix_config>
355                     <unix_sock>open-ils.acq_unix.sock</unix_sock>
356                     <unix_pid>open-ils.acq_unix.pid</unix_pid>
357                     <unix_log>open-ils.acq_unix.log</unix_log>
358                     <max_requests>100</max_requests>
359                     <min_children>1</min_children>
360                     <max_children>15</max_children>
361                     <min_spare_children>1</min_spare_children>
362                     <max_spare_children>5</max_spare_children>
363                 </unix_config>
364             </open-ils.acq>
365
366             <!-- Authentication server -->
367             <open-ils.auth>
368
369                 <!-- how long to wait between stateful requests before the child process re-joins the pool -->
370                 <keepalive>5</keepalive>
371
372                 <!-- true if this service support stateless requests -->
373                 <stateless>1</stateless>
374
375                 <!-- implementation language -->
376                 <language>c</language>
377
378                 <!-- library to plugin -->
379                 <implementation>oils_auth.so</implementation>
380
381                 <!-- maximum required opensrf requests within a stateful connection -->
382                 <max_requests>93</max_requests>
383
384                 <unix_config>
385                     <!--
386                     maximum number of top level requests coming to 
387                     this child before the child is recycled
388                     -->
389                     <max_requests>1000</max_requests>
390                     <!-- min children to fork -->
391                     <min_children>1</min_children>
392                     <!-- max possible children to fork -->
393                     <max_children>15</max_children>
394
395                     <!--
396                     C forking implementation does not support 
397                     min/max idle children, but may in the future
398                     -->
399
400                     <!-- min idle children -->
401                     <min_spare_children>1</min_spare_children>
402                     <!-- max idle children -->
403                     <max_spare_children>5</max_spare_children>
404
405                 </unix_config>
406
407                 <app_settings>
408                     <!-- defined app-specific settings here -->
409                     <default_timeout>
410                         <!-- default login timeouts based on login type -->
411                         <opac>420</opac>
412                         <staff>7200</staff>
413                         <temp>300</temp>
414                                                 <persist>2 weeks</persist>
415                     </default_timeout>
416                 </app_settings>
417             </open-ils.auth>
418
419
420             <!-- Generic search server -->
421             <open-ils.search>
422                 <keepalive>5</keepalive>
423                 <stateless>1</stateless>
424                 <language>perl</language>
425                 <implementation>OpenILS::Application::Search</implementation>
426                 <max_requests>93</max_requests>
427                 <unix_config>
428
429                     <!-- the following 3 settings are currently used by Perl services only -->
430                     <unix_sock>open-ils.search_unix.sock</unix_sock>
431                     <unix_pid>open-ils.search_unix.pid</unix_pid>
432                     <unix_log>open-ils.search_unix.log</unix_log>
433
434                     <max_requests>1000</max_requests>
435                     <min_children>1</min_children>
436                     <max_children>15</max_children>
437                     <min_spare_children>1</min_spare_children>
438                     <max_spare_children>5</max_spare_children>
439                 </unix_config>
440                 <app_settings>
441                     <marc_html_xsl>oilsMARC21slim2HTML.xsl</marc_html_xsl>
442                     <marc_html_xsl_slim>oilsMARC21slim2HTMLslim.xsl</marc_html_xsl_slim>
443
444                     <spelling_dictionary>
445                         <!-- 
446                             Optionally configure different dictionaries depending on search context.  
447                             If no dictionaries are defined, the default Aspell dictionary is used.
448                         -->
449                         <!--
450                         <default>LOCALSTATEDIR/data/default_dict.txt</default>
451                         <title>LOCALSTATEDIR/data/title_dict.txt</title>
452                         <author>LOCALSTATEDIR/data/author_dict.txt</author>
453                         <subject>LOCALSTATEDIR/data/subject_dict.txt</subject>
454                         <series>LOCALSTATEDIR/data/series_dict.txt</series>
455                         -->
456                     </spelling_dictionary>
457
458                     <!-- Default to using staged search -->
459                     <use_staged_search>true</use_staged_search>
460
461                     <!--
462                         For staged search, we estimate hits based on inclusion or exclusion.
463
464                         Valid settings:
465                             inclusion - visible ratio on superpage
466                             exclusion - excluded ratio on superpage
467                             delete_adjusted_inclusion - included ratio on superpage, ratio adjusted by deleted count
468                             delete_adjusted_exclusion - excluded ratio on superpage, ratio adjusted by deleted count
469
470                         Under normal circumstances, inclusion is the best strategy, and both delete_adjusted variants
471                         will return the same value +/- 1.  The exclusion strategy is the original, and works well
472                         when there are few deleted or excluded records, in other words, when the superpage is not
473                         sparsely populated with visible records.
474                     -->
475                     <estimation_strategy>inclusion</estimation_strategy>
476
477                     <!-- Baseline number of records to check for hit estimation. -->
478                     <superpage_size>1000</superpage_size>
479
480                     <!-- How many superpages to consider for searching overall. -->
481                     <max_superpages>10</max_superpages>
482
483                     <!-- zip code database file -->
484                     <!--<zips_file>LOCALSTATEDIR/data/zips.txt</zips_file>-->
485                 </app_settings>
486             </open-ils.search>
487
488             <!-- server for accessing user info -->
489             <open-ils.actor>
490                 <keepalive>5</keepalive>
491                 <stateless>1</stateless>
492                 <language>perl</language>
493                 <implementation>OpenILS::Application::Actor</implementation>
494                 <max_requests>93</max_requests>
495                 <unix_config>
496                     <unix_sock>open-ils.actor_unix.sock</unix_sock>
497                     <unix_pid>open-ils.actor_unix.pid</unix_pid>
498                     <max_requests>1000</max_requests>
499                     <unix_log>open-ils.actor_unix.log</unix_log>
500                     <min_children>1</min_children>
501                     <max_children>15</max_children>
502                     <min_spare_children>1</min_spare_children>
503                     <max_spare_children>5</max_spare_children>
504                 </unix_config>
505                 <!-- set this to 'true' to have barcode search also search patron records by unique ID -->
506                 <app_settings>
507                     <id_as_barcode>false</id_as_barcode>
508                 </app_settings>
509
510             </open-ils.actor>
511
512             <open-ils.booking>
513                 <keepalive>5</keepalive>
514                 <stateless>1</stateless>
515                 <language>perl</language>
516                 <implementation>OpenILS::Application::Booking</implementation>
517                 <max_requests>199</max_requests>
518                 <unix_config>
519                     <unix_sock>open-ils.booking_unix.sock</unix_sock>
520                     <unix_pid>open-ils.booking_unix.pid</unix_pid>
521                     <max_requests>1000</max_requests>
522                     <unix_log>open-ils.booking_unix.log</unix_log>
523                     <min_children>1</min_children>
524                     <max_children>15</max_children>
525                     <min_spare_children>1</min_spare_children>
526                     <max_spare_children>5</max_spare_children>
527                 </unix_config>
528                 <app_settings>
529                     <marctemplates>
530                         <K_book>LOCALSTATEDIR/templates/marc/k_book.xml</K_book>
531                         <K_audio>LOCALSTATEDIR/templates/marc/k_audio.xml</K_audio>
532                         <K_video>LOCALSTATEDIR/templates/marc/k_video.xml</K_video>
533                     </marctemplates>
534                 </app_settings>
535             </open-ils.booking>
536
537             <open-ils.cat>
538                 <keepalive>5</keepalive>
539                 <stateless>1</stateless>
540                 <language>perl</language>
541                 <implementation>OpenILS::Application::Cat</implementation>
542                 <max_requests>199</max_requests>
543                 <unix_config>
544                     <unix_sock>open-ils.cat_unix.sock</unix_sock>
545                     <unix_pid>open-ils.cat_unix.pid</unix_pid>
546                     <max_requests>1000</max_requests>
547                     <unix_log>open-ils.cat_unix.log</unix_log>
548                     <min_children>1</min_children>
549                     <max_children>15</max_children>
550                     <min_spare_children>1</min_spare_children>
551                     <max_spare_children>5</max_spare_children>
552                 </unix_config>
553                 <app_settings>
554                     <marctemplates>
555                         <K_book>LOCALSTATEDIR/templates/marc/k_book.xml</K_book>
556                     </marctemplates>
557                 </app_settings>
558             </open-ils.cat>
559
560             <open-ils.supercat>
561                 <keepalive>5</keepalive>
562                 <stateless>1</stateless>
563                 <language>perl</language>
564                 <implementation>OpenILS::Application::SuperCat</implementation>
565                 <max_requests>199</max_requests>
566                 <unix_config>
567                     <unix_sock>open-ils.supercat_unix.sock</unix_sock>
568                     <unix_pid>open-ils.supercat_unix.pid</unix_pid>
569                     <max_requests>1000</max_requests>
570                     <unix_log>open-ils.supercat_unix.log</unix_log>
571                     <min_children>1</min_children>
572                     <max_children>15</max_children>
573                     <min_spare_children>1</min_spare_children>
574                     <max_spare_children>5</max_spare_children>
575                 </unix_config>
576             </open-ils.supercat>
577
578             <!-- server for accessing user info -->
579             <open-ils.trigger>
580                 <keepalive>5</keepalive>
581                 <stateless>1</stateless>
582                 <language>perl</language>
583                 <implementation>OpenILS::Application::Trigger</implementation>
584                 <max_requests>93</max_requests>
585                 <unix_config>
586                     <unix_sock>open-ils.trigger_unix.sock</unix_sock>
587                     <unix_pid>open-ils.trigger_unix.pid</unix_pid>
588                     <max_requests>1000</max_requests>
589                     <unix_log>open-ils.trigger_unix.log</unix_log>
590                     <min_children>1</min_children>
591                     <max_children>15</max_children>
592                     <min_spare_children>1</min_spare_children>
593                     <max_spare_children>5</max_spare_children>
594                 </unix_config>
595                 <app_settings>
596                     <!-- number of parallel open-ils.trigger processes to use for collection and reaction -->
597                     <!--
598                     <parallel>
599                         <collect>3</collect>
600                         <react>3</react>
601                     </parallel>
602                     -->
603                 </app_settings>
604             </open-ils.trigger>
605
606             <opensrf.math>
607                 <keepalive>3</keepalive>
608                 <stateless>1</stateless>
609                 <language>c</language>
610                 <implementation>osrf_math.so</implementation>
611                 <max_requests>97</max_requests>
612                 <unix_config>
613                     <unix_sock>opensrf.math_unix.sock</unix_sock>
614                     <unix_pid>opensrf.math_unix.pid</unix_pid>
615                     <max_requests>1000</max_requests>
616                     <unix_log>opensrf.math_unix.log</unix_log>
617                     <min_children>1</min_children>
618                     <max_children>15</max_children>
619                     <min_spare_children>1</min_spare_children>
620                     <max_spare_children>5</max_spare_children>
621                 </unix_config>
622             </opensrf.math>
623
624             <opensrf.dbmath> 
625                 <keepalive>3</keepalive>
626                 <stateless>1</stateless>
627                 <language>c</language>
628                 <implementation>osrf_dbmath.so</implementation>
629                 <max_requests>99</max_requests>
630                 <unix_config>
631                     <max_requests>1000</max_requests>
632                     <unix_log>opensrf.dbmath_unix.log</unix_log>
633                     <unix_sock>opensrf.dbmath_unix.sock</unix_sock>
634                     <unix_pid>opensrf.dbmath_unix.pid</unix_pid>
635                     <min_children>1</min_children>
636                     <max_children>15</max_children>
637                     <min_spare_children>1</min_spare_children> 
638                     <max_spare_children>5</max_spare_children>
639                 </unix_config>
640             </opensrf.dbmath>
641
642             <open-ils.penalty>
643                 <keepalive>3</keepalive>
644                 <stateless>1</stateless>
645                 <language>perl</language>
646                 <implementation>OpenILS::Application::Penalty</implementation>
647                 <max_requests>99</max_requests>
648                 <unix_config>
649                     <max_requests>1000</max_requests>
650                     <unix_log>open-ils.penalty_unix.log</unix_log>
651                     <unix_sock>open-ils.penalty_unix.sock</unix_sock>
652                     <unix_pid>open-ils.penalty_unix.pid</unix_pid>
653                     <min_children>1</min_children>
654                     <max_children>15</max_children>
655                     <min_spare_children>1</min_spare_children>
656                     <max_spare_children>5</max_spare_children>
657                 </unix_config>
658                 <app_settings>
659                     <patron_penalty>penalty/patron_penalty.js</patron_penalty>
660                     <script_path>LIBDIR/javascript</script_path>
661                     <script_path>LOCALSTATEDIR</script_path>
662                     <script_path>LOCALSTATEDIR/catalog</script_path>
663                 </app_settings>
664             </open-ils.penalty>
665
666             <open-ils.circ> 
667                 <keepalive>3</keepalive>
668                 <stateless>1</stateless>
669                 <language>perl</language>
670                 <implementation>OpenILS::Application::Circ</implementation>
671                 <max_requests>99</max_requests>
672                 <unix_config>
673                     <max_requests>1000</max_requests>
674                     <unix_log>open-ils.circ_unix.log</unix_log>
675                     <unix_sock>open-ils.circ_unix.sock</unix_sock>
676                     <unix_pid>open-ils.circ_unix.pid</unix_pid>
677                     <min_children>1</min_children>
678                     <max_children>15</max_children>
679                     <min_spare_children>1</min_spare_children> 
680                     <max_spare_children>5</max_spare_children>
681                 </unix_config>
682                 <app_settings>
683                     <notify_hold>
684                         <email>true</email> <!-- set to false to disable hold notice emails -->
685                     </notify_hold>
686
687                     <!-- circulation policy scripts -->
688                     <script_path>LIBDIR/javascript</script_path>
689                     <script_path>LOCALSTATEDIR</script_path>
690                     <script_path>LOCALSTATEDIR/catalog</script_path>
691                     <legacy_script_support>false</legacy_script_support>
692                     <scripts> 
693                         <circ_permit_patron>circ/circ_permit_patron.js</circ_permit_patron>
694                         <circ_permit_copy>circ/circ_permit_copy.js</circ_permit_copy>
695                         <circ_duration>circ/circ_duration.js</circ_duration>
696                         <circ_recurring_fines>circ/circ_recurring_fines.js</circ_recurring_fines>
697                         <circ_max_fines>circ/circ_max_fines.js</circ_max_fines>
698                         <circ_permit_renew>circ/circ_permit_renew.js</circ_permit_renew>
699                         <circ_permit_hold>circ/circ_permit_hold.js</circ_permit_hold>
700                     </scripts>               
701
702                     <circ_modifiers>
703                         <mod>art</mod>
704                         <mod>atlas</mod>
705                         <mod>audiobook</mod>
706                         <mod>av</mod>
707                         <mod>new-av</mod>
708                         <mod>bestseller</mod>
709                         <mod>bestsellernh</mod>
710                         <mod>book</mod>
711                         <mod>cd</mod>
712                         <mod>dvd</mod>
713                         <mod>dvd-long</mod>
714                         <mod>e-book</mod>
715                         <mod>equipment</mod>
716                         <mod>filmstrip</mod>
717                         <mod>kit</mod>
718                         <mod>magazine</mod>
719                         <mod>map</mod>
720                         <mod>microform</mod>
721                         <mod>music</mod>
722                         <mod>record</mod>
723                         <mod>software</mod>
724                         <mod>softwrlong</mod>
725                         <mod>equip-long</mod>
726                         <mod>talking book</mod>
727                         <mod>toy</mod>
728                         <mod>video</mod>
729                         <mod>video-long</mod>
730                     </circ_modifiers>
731
732                     <billing_types>
733                         <type>Miscellaneous</type>
734                         <type>Overdue materials</type>
735                         <type>Fee for placing a hold</type>
736                         <type>Fee for checking out a book</type>
737                         <type>Fee for library card</type>
738                         <type>Miscellaneous charges</type>
739                         <type>Lost materials</type>
740                         <type>Damaged material</type>
741                         <type>Overdue Reserves charge</type>
742                         <type>Recall overdue</type>
743                         <type>Fee for processing lost library materials</type>
744                         <type>Fee for sending patron bills to collection agency</type>
745                         <type>Fee for interlibrary loan</type>
746                         <type>Fee for copies</type>
747                         <type>Money advanced to pay for telephone use</type>
748                         <type>Deposit fee</type>
749                         <type>Fee for disk</type>
750                         <type>Fee for faxing</type>
751                         <type>Fee for laminating</type>
752                         <type>Fee for room cleaning</type>
753                         <type>Deposit returned; fee refund</type>
754                         <type>Sale items</type>
755                         <type>Fee for lost card</type>
756                         <type>Long overdue items</type>
757                         <type>Lost/Replacement Cassette</type>
758                         <type>Returned Check</type>
759                     </billing_types>
760                 </app_settings>
761             </open-ils.circ>
762
763             <open-ils.ingest>
764                 <keepalive>3</keepalive>
765                 <stateless>1</stateless>
766                 <implementation>OpenILS::Application::Ingest</implementation>
767                 <language>perl</language>
768                 <max_requests>1000000</max_requests>
769                 <unix_config>
770                     <max_requests>1000000</max_requests>
771                     <unix_log>open-ils.ingest-unix.log</unix_log>
772                     <unix_sock>open-ils.ingest-unix.sock</unix_sock>
773                     <unix_pid>open-ils.ingest-unix.pid</unix_pid>
774                     <min_children>5</min_children>
775                     <max_children>20</max_children>
776                     <min_spare_children>2</min_spare_children>
777                     <max_spare_children>5</max_spare_children>
778                 </unix_config>
779                 <app_settings>
780                     <script_path>LIBDIR/javascript/</script_path>
781                     <script_path>LOCALSTATEDIR/catalog/</script_path>
782                     <script_path>LOCALSTATEDIR/web/opac/common/js/</script_path>
783                     <scripts>
784                         <biblio_fingerprint>biblio_fingerprint.js</biblio_fingerprint>
785                         <biblio_descriptor>biblio_descriptor.js</biblio_descriptor>
786                     </scripts>
787                 </app_settings>
788             </open-ils.ingest>
789
790             <open-ils.storage>
791                 <keepalive>10</keepalive>
792                 <stateless>1</stateless>
793                 <language>perl</language>
794                 <implementation>OpenILS::Application::Storage</implementation>
795                 <unix_config>
796                     <max_requests>1000</max_requests>
797                     <unix_log>open-ils.storage_unix.log</unix_log>
798                     <unix_sock>open-ils.storage_unix.sock</unix_sock>
799                     <unix_pid>open-ils.storage_unix.pid</unix_pid>
800                     <min_children>1</min_children>
801                     <max_children>10</max_children>
802                     <min_spare_children>1</min_spare_children>
803                     <max_spare_children>5</max_spare_children>
804                 </unix_config>
805                 <app_settings>
806                     <!-- default_preferred_language: Set the global, default preferred languange -->
807                     <default_preferred_language>eng</default_preferred_language>
808
809                     <!-- default_preferred_language_weight: Set the weight (higher is "better") for the preferred language -->
810                     <default_preferred_language_weight>5</default_preferred_language_weight>
811
812                     <script_path>LIBDIR/javascript/</script_path>
813                     <script_path>LOCALSTATEDIR/catalog/</script_path>
814                     <scripts>
815                         <biblio_fingerprint>biblio_fingerprint.js</biblio_fingerprint>
816                     </scripts>
817                     <databases>
818                         <driver>Pg</driver>
819                         <database>
820                             <type>master</type>
821                             <weight>2</weight>
822                             <user>postgres</user>
823                             <host>localhost</host>
824                             <port>5432</port>
825                             <pw>postgres</pw>
826                             <db>evergreen</db>
827                             <client_encoding>UTF-8</client_encoding>
828                         </database>
829                     </databases>
830                 </app_settings>
831             </open-ils.storage>
832
833
834             <open-ils.cstore>
835                 <keepalive>6</keepalive>
836                 <stateless>1</stateless>
837                 <language>C</language>
838                 <implementation>oils_cstore.so</implementation>
839                 <max_requests>200</max_requests>
840                 <unix_config>
841                     <max_requests>1000</max_requests>
842                     <min_children>1</min_children>
843                     <max_children>15</max_children>
844                     <min_spare_children>1</min_spare_children>
845                     <max_spare_children>5</max_spare_children>
846                 </unix_config>
847                 <app_settings>
848                     <max_query_recursion>100</max_query_recursion>
849                     <driver>pgsql</driver>
850                     <database>
851                         <type>master</type>
852                         <weight>2</weight>
853                         <user>postgres</user>
854                         <host>localhost</host>
855                         <port>5432</port>
856                         <pw>postgres</pw>
857                         <db>evergreen</db>
858                         <client_encoding>UTF-8</client_encoding>
859                     </database>
860                 </app_settings>
861             </open-ils.cstore>
862
863
864             <open-ils.pcrud>
865                 <keepalive>6</keepalive>
866                 <migratable>1</migratable>
867                 <stateless>1</stateless>
868                 <language>C</language>
869                 <implementation>oils_pcrud.so</implementation>
870                 <max_requests>200</max_requests>
871
872                 <unix_config>
873                     <unix_log>open-ils.pcrud.log</unix_log>
874                     <unix_sock>open-ils.pcrud.sock</unix_sock>
875                     <unix_pid>open-ils.pcrud.pid</unix_pid>
876                     <max_requests>1000</max_requests>
877                     <min_children>1</min_children>
878                     <max_children>15</max_children>
879                     <min_spare_children>1</min_spare_children>
880                     <max_spare_children>5</max_spare_children>
881                 </unix_config>
882
883                 <app_settings>
884                     <IDL>SYSCONFDIR/fm_IDL.xml</IDL>
885                     <driver>pgsql</driver>
886                     <database>
887                         <type>master</type>
888                         <weight>2</weight>
889                         <user>postgres</user>
890                         <host>localhost</host>
891                         <port>5432</port>
892                         <pw>postgres</pw>
893                         <db>evergreen</db>
894                         <client_encoding>UTF-8</client_encoding>
895                     </database>
896                 </app_settings>
897             </open-ils.pcrud>
898
899
900             <open-ils.qstore>
901                 <keepalive>6</keepalive>
902                 <stateless>1</stateless>
903                 <language>C</language>
904                 <implementation>oils_qstore.so</implementation>
905                 <max_requests>200</max_requests>
906                 <unix_config>
907                     <max_requests>1000</max_requests>
908                     <min_children>1</min_children>
909                     <max_children>15</max_children>
910                     <min_spare_children>1</min_spare_children>
911                     <max_spare_children>5</max_spare_children>
912                 </unix_config>
913                 <app_settings>
914                     <driver>pgsql</driver>
915                     <database>
916                         <type>master</type>
917                         <weight>2</weight>
918                         <user>postgres</user>
919                         <host>localhost</host>
920                         <port>5432</port>
921                         <pw>postgres</pw>
922                         <db>evergreen</db>
923                         <client_encoding>UTF-8</client_encoding>
924                     </database>
925                 </app_settings>
926             </open-ils.qstore>
927
928
929             <opensrf.settings>
930                 <keepalive>1</keepalive>
931                 <stateless>1</stateless>
932                 <language>perl</language>
933                 <implementation>OpenSRF::Application::Settings</implementation>
934                 <max_requests>17</max_requests>
935                 <unix_config>
936                     <unix_sock>opensrf.settings_unix.sock</unix_sock>
937                     <unix_pid>opensrf.settings_unix.pid</unix_pid>
938                     <max_requests>300</max_requests>
939                     <unix_log>opensrf.settings_unix.log</unix_log>
940                     <min_children>5</min_children>
941                     <max_children>15</max_children>
942                     <min_spare_children>3</min_spare_children>
943                     <max_spare_children>5</max_spare_children>
944                 </unix_config>
945             </opensrf.settings>
946
947             <open-ils.collections>
948                 <keepalive>3</keepalive>
949                 <stateless>1</stateless>
950                 <language>perl</language>
951                 <implementation>OpenILS::Application::Collections</implementation>
952                 <max_requests>17</max_requests>
953                 <unix_config>
954                     <unix_sock>open-ils.collections_unix.sock</unix_sock>
955                     <unix_pid>open-ils.collections_unix.pid</unix_pid>
956                     <max_requests>1000</max_requests>
957                     <unix_log>open-ils.collections_unix.log</unix_log>
958                     <min_children>1</min_children>
959                     <max_children>10</max_children>
960                     <min_spare_children>1</min_spare_children>
961                     <max_spare_children>5</max_spare_children>
962                 </unix_config>
963             </open-ils.collections>
964
965             <open-ils.reporter>
966                 <keepalive>3</keepalive>
967                 <stateless>1</stateless>
968                 <language>perl</language>
969                 <implementation>OpenILS::Application::Reporter</implementation>
970                 <max_requests>99</max_requests>
971                 <unix_config>
972                     <unix_sock>open-ils.reporter_unix.sock</unix_sock>
973                     <unix_pid>open-ils.reporter_unix.pid</unix_pid>
974                     <max_requests>1000</max_requests>
975                     <unix_log>open-ils.reporter_unix.log</unix_log>
976                     <min_children>1</min_children>
977                     <max_children>10</max_children>
978                     <min_spare_children>1</min_spare_children>
979                     <max_spare_children>5</max_spare_children>
980                 </unix_config>
981             </open-ils.reporter>
982
983
984             <open-ils.reporter-store>
985                 <keepalive>6</keepalive>
986                 <stateless>1</stateless>
987                 <language>C</language>
988                 <implementation>oils_rstore.so</implementation>
989                 <max_requests>95</max_requests>
990                 <unix_config>
991                     <max_requests>400</max_requests>
992                     <min_children>1</min_children>
993                     <max_children>10</max_children>
994                     <min_spare_children>1</min_spare_children>
995                     <max_spare_children>5</max_spare_children>
996                 </unix_config>
997                 <app_settings>
998                     <driver>pgsql</driver>
999                     <database>
1000                         <type>master</type>
1001                         <weight>2</weight>
1002                         <user>postgres</user>
1003                         <host>localhost</host>
1004                         <port>5432</port>
1005                         <pw>postgres</pw>
1006                         <db>evergreen</db>
1007                         <client_encoding>UTF-8</client_encoding>
1008                     </database>
1009                 </app_settings>
1010             </open-ils.reporter-store>
1011
1012 <!--
1013            <open-ils.resolver>
1014                <keepalive>3</keepalive>
1015                <stateless>1</stateless>
1016                <language>perl</language>
1017                <implementation>OpenILS::Application::ResolverResolver</implementation>
1018                <max_requests>93</max_requests>
1019                <unix_config>
1020                   <unix_sock>open-ils.resolver_unix.sock</unix_sock>
1021                   <unix_pid>open-ils.resolver_unix.pid</unix_pid>
1022                   <max_requests>1000</max_requests>
1023                   <unix_log>open-ils.resolver_unix.log</unix_log>
1024                   <min_children>5</min_children>
1025                   <max_children>15</max_children>
1026                   <min_spare_children>3</min_spare_children>
1027                   <max_spare_children>5</max_spare_children>
1028                </unix_config>
1029                <app_settings>
1030                   <cache_timeout>86400</cache_timeout>
1031                   <default_url_base>http://path/to/sfx</default_url_base>
1032                </app_settings>
1033             </open-ils.resolver>
1034 -->
1035
1036             <open-ils.permacrud>
1037                <keepalive>3</keepalive>
1038                <stateless>1</stateless>
1039                <language>perl</language>
1040                <implementation>OpenILS::Application::PermaCrud</implementation>
1041                <max_requests>17</max_requests>
1042                <unix_config>
1043                   <unix_sock>open-ils.permacrud_unix.sock</unix_sock>
1044                   <unix_pid>open-ils.permacrud_unix.pid</unix_pid>
1045                   <max_requests>1000</max_requests>
1046                   <unix_log>open-ils.permacrud_unix.log</unix_log>
1047                   <min_children>5</min_children>
1048                   <max_children>15</max_children>
1049                   <min_spare_children>3</min_spare_children>
1050                   <max_spare_children>5</max_spare_children>
1051                </unix_config>
1052             </open-ils.permacrud>
1053
1054             <open-ils.fielder>
1055                <keepalive>3</keepalive>
1056                <stateless>1</stateless>
1057                <language>perl</language>
1058                <implementation>OpenILS::Application::Fielder</implementation>
1059                <max_requests>17</max_requests>
1060                <unix_config>
1061                   <unix_sock>open-ils.fielder_unix.sock</unix_sock>
1062                   <unix_pid>open-ils.fielder_unix.pid</unix_pid>
1063                   <max_requests>1000</max_requests>
1064                   <unix_log>open-ils.fielder_unix.log</unix_log>
1065                   <min_children>5</min_children>
1066                   <max_children>15</max_children>
1067                   <min_spare_children>3</min_spare_children>
1068                   <max_spare_children>5</max_spare_children>
1069                </unix_config>
1070             </open-ils.fielder>
1071
1072             <open-ils.vandelay>
1073                 <keepalive>5</keepalive>
1074                 <stateless>1</stateless>
1075                 <language>perl</language>
1076                 <implementation>OpenILS::Application::Vandelay</implementation>
1077                 <max_requests>100</max_requests>
1078                 <unix_config>
1079                     <unix_sock>vandelay_unix.sock</unix_sock>
1080                     <unix_pid>vandelay_unix.pid</unix_pid>
1081                     <unix_log>vandelay_unix.log</unix_log>
1082                     <max_requests>100</max_requests>
1083                     <min_children>1</min_children>
1084                     <max_children>15</max_children>
1085                     <min_spare_children>1</min_spare_children>
1086                     <max_spare_children>5</max_spare_children>
1087                 </unix_config>
1088                 <app_settings>
1089                     <databases>
1090                         <!-- temporary location for MARC import files.  
1091                             Files will be deleted after records are spooled.
1092                             *note:  in a multi-brick environment, this will need to
1093                             be on a write-able NFS share.  -->
1094                         <importer>/tmp</importer>
1095                     </databases>
1096                 </app_settings>
1097             </open-ils.vandelay>
1098
1099             <open-ils.serial>
1100                 <keepalive>3</keepalive>
1101                 <stateless>1</stateless>
1102                 <language>perl</language>
1103                 <implementation>OpenILS::Application::Serial</implementation>
1104                 <max_requests>17</max_requests>
1105                 <unix_config>
1106                     <unix_sock>open-ils.serial_unix.sock</unix_sock>
1107                     <unix_pid>open-ils.serial_unix.pid</unix_pid>
1108                     <max_requests>1000</max_requests>
1109                     <unix_log>open-ils.serial_unix.log</unix_log>
1110                     <min_children>5</min_children>
1111                     <max_children>15</max_children>
1112                     <min_spare_children>3</min_spare_children>
1113                     <max_spare_children>5</max_spare_children>
1114                 </unix_config>
1115                 <app_settings>
1116                 </app_settings>
1117             </open-ils.serial>
1118
1119         </apps>
1120     </default>
1121
1122     <hosts>
1123
1124         <localhost> 
1125             <!-- ^-=- 
1126             Should match the fully qualified domain name of the host.
1127
1128             On Linux, the output of the following command is authoritative:
1129             $ perl -MNet::Domain -e 'print Net::Domain::hostfqdn() . "\n";'
1130
1131             To use 'localhost' instead, run osrf_ctl.sh with the -l flag
1132             -->
1133
1134             <activeapps>
1135                 <!-- services hosted on this machine -->
1136                 <appname>opensrf.settings</appname> 
1137                 <appname>opensrf.math</appname> 
1138                 <appname>opensrf.dbmath</appname> 
1139                 <appname>open-ils.acq</appname> 
1140                 <appname>open-ils.booking</appname>
1141                 <appname>open-ils.cat</appname> 
1142                 <appname>open-ils.supercat</appname> 
1143                 <appname>open-ils.search</appname> 
1144                 <appname>open-ils.circ</appname> 
1145                 <appname>open-ils.actor</appname> 
1146                 <appname>open-ils.auth</appname> 
1147                 <appname>open-ils.storage</appname>  
1148                 <appname>open-ils.penalty</appname>  
1149                 <appname>open-ils.cstore</appname>  
1150                 <appname>open-ils.collections</appname>  
1151                 <appname>open-ils.ingest</appname>  
1152                 <appname>open-ils.reporter</appname>  
1153                 <appname>open-ils.reporter-store</appname>  
1154                 <appname>open-ils.resolver</appname>  
1155                 <appname>open-ils.permacrud</appname>  
1156                 <appname>open-ils.pcrud</appname>  
1157                 <appname>open-ils.trigger</appname>  
1158                 <appname>open-ils.fielder</appname>  
1159                 <appname>open-ils.vandelay</appname>  
1160                 <appname>open-ils.serial</appname>  
1161             </activeapps>
1162         </localhost>
1163     </hosts>
1164
1165 </opensrf>