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