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