4 Example opensrf config file for OpenILS
8 <opensrf version='0.0.3'>
12 <!-- unless otherwise overidden, use this locale -->
13 <default_locale>en-US</default_locale>
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>
24 <!-- global data visibility settings -->
27 <!-- Set to "true" to require patron opt-in for foreign (non-home_ou) transactions -->
28 <opt_in>false</opt_in>
32 <IDL>SYSCONFDIR/fm_IDL.xml</IDL> <!-- top level IDL file -->
34 <server_type>prefork</server_type> <!-- net::server type -->
36 <ils_events>LOCALSTATEDIR/data/ils_events.xml</ils_events> <!-- ILS events description file -->
38 <email_notify> <!-- this will eventually move into the notifications section below... -->
39 <!-- global email notification settings -->
40 <template>LOCALSTATEDIR/data/hold_notification_template.example</template>
41 <smtp_server>localhost</smtp_server>
44 in most cases, this is overridden by location
45 specific config settings. this is just the default
47 <sender_address>evergreen@localhost</sender_address>
52 <!-- global mail server settings -->
53 <smtp_server>localhost</smtp_server>
54 <sender_address>evergreen@localhost</sender_address>
56 <!-- Overdue notices -->
59 <!-- optionally, you can define a sender address per notice type -->
60 <sender_address>overdue@localhost</sender_address>
62 <!-- The system can generate an XML file of overdue notices. This is the
63 directory where they are stored. Files are named overdue.YYYY-MM-DD.xml -->
64 <notice_dir>LOCALSTATEDIR/data/overdue</notice_dir>
65 <combined_template>LOCALSTATEDIR/data/templates/overdue_combined_xml.example</combined_template>
68 <!-- Notify at 7 days overdue -->
69 <notify_interval>7 days</notify_interval>
70 <!-- Options include always, noemail, and never. 'noemail' means a notice
71 will be appended to the notice file only if the patron has no valid email address. -->
72 <file_append>noemail</file_append>
73 <!-- do we attempt email notification? -->
74 <email_notify>true</email_notify>
75 <!-- notice template file -->
76 <email_template>LOCALSTATEDIR/data/templates/overdue_7day.example</email_template>
80 <!-- Courtesy notices -->
83 <!-- All circulations that circulate between 5 and 13 days -->
87 </circ_duration_range>
88 <!-- notify at 1 day before the due date -->
89 <notify_interval>1 day</notify_interval>
90 <file_append>false</file_append>
91 <email_notify>true</email_notify>
92 <email_template>LOCALSTATEDIR/data/templates/predue_1day.example</email_template>
99 Settings for the reporter daemon process
102 <base_uri>https://localhost/reporter/</base_uri>
105 <host>localhost</host>
108 <user>postgres</user>
112 <!-- successful report outputs go here -->
113 <output_base>LOCALSTATEDIR/web/reporter</output_base>
114 <success_template>LOCALSTATEDIR/data/report-success</success_template>
115 <fail_template>LOCALSTATEDIR/data/report-fail</fail_template>
123 <!-- XML-RPC gateway. Do NOT publish unprotected services here -->
125 <!-- list of published services -->
126 <service>opensrf.math</service>
127 <service>opensrf.dbmath</service>
128 <service>open-ils.cat</service>
129 <service>open-ils.search</service>
130 <service>open-ils.circ</service>
131 <service>open-ils.actor</service>
132 <service>open-ils.auth</service>
133 <service>open-ils.collections</service>
139 <default>oclc</default>
143 <!-- LoC does not require username/password -->
145 <host>z3950.loc.gov</host>
148 <!-- fetch the full record with no holdings. FI is the most common choice -->
149 <record_format>FI</record_format>
151 <!-- Record transmission format from the server. Supported -->
152 <!-- formats include usmarc and xml (for marcxml). -->
153 <transmission_format>usmarc</transmission_format>
156 <tcn><code>12</code><format>1</format></tcn>
157 <isbn><code>7</code><format>6</format></isbn>
158 <lccn><code>9</code><format>1</format></lccn>
159 <author><code>1003</code><format>6</format></author>
160 <title><code>4</code><format>6</format></title>
161 <issn><code>8</code><format>1</format></issn>
162 <publisher><code>1018</code><format>6</format></publisher>
163 <pubdate><code>31</code><format>1</format></pubdate>
164 <item_type><code>1001</code><format>1</format></item_type>
169 <!-- Z3950 settings for OCLC. Note that OCLC requires username/password -->
170 <host>zcat.oclc.org</host>
172 <db>OLUCWorldCat</db>
175 These are directly from the Bib-1 Attribute Set
176 http://www.loc.gov/z3950/agency/defns/bib1.html
177 <code> is the "use attribute", <format> is the "structure attribute"
178 This just puts some friendly names on the data.
180 <tcn><code>12</code><format>1</format></tcn>
181 <isbn><code>7</code><format>6</format></isbn>
182 <lccn><code>9</code><format>1</format></lccn>
183 <author><code>1003</code><format>6</format></author>
184 <title><code>4</code><format>6</format></title>
185 <issn><code>8</code><format>1</format></issn>
186 <publisher><code>1018</code><format>6</format></publisher>
187 <pubdate><code>31</code><format>1</format></pubdate>
188 <item_type><code>1001</code><format>1</format></item_type>
198 <!-- XXX If you use the Amazon plugin, you must link back to Amazon in the OPAC -->
200 <!-- load the Amazon added content module -->
201 <module>OpenILS::WWW::AddedContent::Amazon</module>
203 Base URL for Amazon added content fetching. This URL may
204 need to be shortened when new (read: non-image) content
205 fetching capabilities are added
207 <base_url>http://images.amazon.com/images/P/</base_url>
210 Max number of seconds to wait for an added content request to
211 return data. Data not returned within the timeout is considered
217 After added content lookups have been disabled due to too many
218 lookup failures, this is the amount of time to wait before
221 <retry_timeout>600</retry_timeout>
224 maximum number of consecutive lookup errors a given process can
225 have before added content lookups are disabled for everyone
227 <max_errors>15</max_errors>
229 <!-- If a userid is required to access the added content.. -->
230 <userid>MY_USER_ID</userid>
233 You can add free-form settings here and they will be accessible
234 within the added content module
241 <!-- no apps are enabled globally by default -->
245 <!-- memcache servers -->
248 <server>localhost:11211</server>
250 <max_cache_time>86400</max_cache_time>
255 <!-- Authentication server -->
258 <!-- how long to wait between stateful requests before the child process re-joins the pool -->
259 <keepalive>5</keepalive>
261 <!-- true if this service support stateless requests -->
262 <stateless>1</stateless>
264 <!-- implementation language -->
265 <language>c</language>
267 <!-- library to plugin -->
268 <implementation>oils_auth.so</implementation>
270 <!-- maximum required opensrf requests within a stateful connection -->
271 <max_requests>93</max_requests>
275 maximum number of top level requests coming to
276 this child before the child is recycled
278 <max_requests>1000</max_requests>
279 <!-- min children to fork -->
280 <min_children>1</min_children>
281 <!-- max possible children to fork -->
282 <max_children>15</max_children>
285 C forking implementation does not support
286 min/max idle children, but may in the future
289 <!-- min idle children -->
290 <min_spare_children>1</min_spare_children>
291 <!-- max idle children -->
292 <max_spare_children>5</max_spare_children>
297 <!-- defined app-specific settings here -->
299 <!-- default login timeouts based on login type -->
308 <!-- Generic search server -->
310 <keepalive>5</keepalive>
311 <stateless>1</stateless>
312 <language>perl</language>
313 <implementation>OpenILS::Application::Search</implementation>
314 <max_requests>93</max_requests>
317 <!-- the following 3 settings are currently used by Perl services only -->
318 <unix_sock>open-ils.search_unix.sock</unix_sock>
319 <unix_pid>open-ils.search_unix.pid</unix_pid>
320 <unix_log>open-ils.search_unix.log</unix_log>
322 <max_requests>1000</max_requests>
323 <min_children>1</min_children>
324 <max_children>15</max_children>
325 <min_spare_children>1</min_spare_children>
326 <max_spare_children>5</max_spare_children>
329 <marc_html_xsl>oilsMARC21slim2HTML.xsl</marc_html_xsl>
330 <marc_html_xsl_slim>oilsMARC21slim2HTMLslim.xsl</marc_html_xsl_slim>
332 <!-- Default to using staged search -->
333 <use_staged_search>true</use_staged_search>
336 For staged search, we estimate hits based on inclusion or exclusion.
339 inclusion - visible ratio on superpage
340 exclusion - excluded ratio on superpage
341 delete_adjusted_inclusion - included ratio on superpage, ratio adjusted by deleted count
342 delete_adjusted_exclusion - excluded ratio on superpage, ratio adjusted by deleted count
344 Under normal circumstances, inclusion is the best strategy, and both delete_adjusted variants
345 will return the same value +/- 1. The exclusion strategy is the original, and works well
346 when there are few deleted or excluded records, in other words, when the superpage is not
347 sparsely populated with visible records.
349 <estimation_strategy>inclusion</estimation_strategy>
351 <!-- Baseline number of records to check for hit estimation. -->
352 <superpage_size>1000</superpage_size>
354 <!-- How many superpages to consider for searching overall. -->
355 <max_superpages>10</max_superpages>
357 <!-- zip code database file -->
358 <!--<zips_file>LOCALSTATEDIR/data/zips.txt</zips_file>-->
362 <!-- server for accessing user info -->
364 <keepalive>5</keepalive>
365 <stateless>1</stateless>
366 <language>perl</language>
367 <implementation>OpenILS::Application::Actor</implementation>
368 <max_requests>93</max_requests>
370 <unix_sock>open-ils.actor_unix.sock</unix_sock>
371 <unix_pid>open-ils.actor_unix.pid</unix_pid>
372 <max_requests>1000</max_requests>
373 <unix_log>open-ils.actor_unix.log</unix_log>
374 <min_children>1</min_children>
375 <max_children>15</max_children>
376 <min_spare_children>1</min_spare_children>
377 <max_spare_children>5</max_spare_children>
383 <keepalive>5</keepalive>
384 <stateless>1</stateless>
385 <language>perl</language>
386 <implementation>OpenILS::Application::Cat</implementation>
387 <max_requests>199</max_requests>
389 <unix_sock>open-ils.cat_unix.sock</unix_sock>
390 <unix_pid>open-ils.cat_unix.pid</unix_pid>
391 <max_requests>1000</max_requests>
392 <unix_log>open-ils.cat_unix.log</unix_log>
393 <min_children>1</min_children>
394 <max_children>15</max_children>
395 <min_spare_children>1</min_spare_children>
396 <max_spare_children>5</max_spare_children>
400 <K_book>LOCALSTATEDIR/templates/marc/k_book.xml</K_book>
406 <keepalive>5</keepalive>
407 <stateless>1</stateless>
408 <language>perl</language>
409 <implementation>OpenILS::Application::SuperCat</implementation>
410 <max_requests>199</max_requests>
412 <unix_sock>open-ils.supercat_unix.sock</unix_sock>
413 <unix_pid>open-ils.supercat_unix.pid</unix_pid>
414 <max_requests>1000</max_requests>
415 <unix_log>open-ils.supercat_unix.log</unix_log>
416 <min_children>1</min_children>
417 <max_children>15</max_children>
418 <min_spare_children>1</min_spare_children>
419 <max_spare_children>5</max_spare_children>
425 <keepalive>3</keepalive>
426 <stateless>1</stateless>
427 <language>c</language>
428 <implementation>osrf_math.so</implementation>
429 <max_requests>97</max_requests>
431 <unix_sock>opensrf.math_unix.sock</unix_sock>
432 <unix_pid>opensrf.math_unix.pid</unix_pid>
433 <max_requests>1000</max_requests>
434 <unix_log>opensrf.math_unix.log</unix_log>
435 <min_children>1</min_children>
436 <max_children>15</max_children>
437 <min_spare_children>1</min_spare_children>
438 <max_spare_children>5</max_spare_children>
443 <keepalive>3</keepalive>
444 <stateless>1</stateless>
445 <language>c</language>
446 <implementation>osrf_dbmath.so</implementation>
447 <max_requests>99</max_requests>
449 <max_requests>1000</max_requests>
450 <unix_log>opensrf.dbmath_unix.log</unix_log>
451 <unix_sock>opensrf.dbmath_unix.sock</unix_sock>
452 <unix_pid>opensrf.dbmath_unix.pid</unix_pid>
453 <min_children>1</min_children>
454 <max_children>15</max_children>
455 <min_spare_children>1</min_spare_children>
456 <max_spare_children>5</max_spare_children>
461 <keepalive>3</keepalive>
462 <stateless>1</stateless>
463 <language>perl</language>
464 <implementation>OpenILS::Application::Penalty</implementation>
465 <max_requests>99</max_requests>
467 <max_requests>1000</max_requests>
468 <unix_log>open-ils.penalty_unix.log</unix_log>
469 <unix_sock>open-ils.penalty_unix.sock</unix_sock>
470 <unix_pid>open-ils.penalty_unix.pid</unix_pid>
471 <min_children>1</min_children>
472 <max_children>15</max_children>
473 <min_spare_children>1</min_spare_children>
474 <max_spare_children>5</max_spare_children>
477 <patron_penalty>penalty/patron_penalty.js</patron_penalty>
478 <script_path>LIBDIR/javascript</script_path>
479 <script_path>LOCALSTATEDIR</script_path>
480 <script_path>LOCALSTATEDIR/catalog</script_path>
485 <keepalive>3</keepalive>
486 <stateless>1</stateless>
487 <language>perl</language>
488 <implementation>OpenILS::Application::Circ</implementation>
489 <max_requests>99</max_requests>
491 <max_requests>1000</max_requests>
492 <unix_log>open-ils.circ_unix.log</unix_log>
493 <unix_sock>open-ils.circ_unix.sock</unix_sock>
494 <unix_pid>open-ils.circ_unix.pid</unix_pid>
495 <min_children>1</min_children>
496 <max_children>15</max_children>
497 <min_spare_children>1</min_spare_children>
498 <max_spare_children>5</max_spare_children>
502 <email>false</email> <!-- set to true for hold notice emails -->
505 <!-- circulation policy scripts -->
506 <script_path>LIBDIR/javascript</script_path>
507 <script_path>LOCALSTATEDIR</script_path>
508 <script_path>LOCALSTATEDIR/catalog</script_path>
509 <legacy_script_support>false</legacy_script_support>
511 <circ_permit_patron>circ/circ_permit_patron.js</circ_permit_patron>
512 <circ_permit_copy>circ/circ_permit_copy.js</circ_permit_copy>
513 <circ_duration>circ/circ_duration.js</circ_duration>
514 <circ_recurring_fines>circ/circ_recurring_fines.js</circ_recurring_fines>
515 <circ_max_fines>circ/circ_max_fines.js</circ_max_fines>
516 <circ_permit_renew>circ/circ_permit_renew.js</circ_permit_renew>
517 <circ_permit_hold>circ/circ_permit_hold.js</circ_permit_hold>
526 <mod>bestseller</mod>
527 <mod>bestsellernh</mod>
542 <mod>softwrlong</mod>
543 <mod>equip-long</mod>
544 <mod>talking book</mod>
547 <mod>video-long</mod>
551 <type>Miscellaneous</type>
552 <type>Overdue materials</type>
553 <type>Fee for placing a hold</type>
554 <type>Fee for checking out a book</type>
555 <type>Fee for library card</type>
556 <type>Miscellaneous charges</type>
557 <type>Lost materials</type>
558 <type>Damaged material</type>
559 <type>Overdue Reserves charge</type>
560 <type>Recall overdue</type>
561 <type>Fee for processing lost library materials</type>
562 <type>Fee for sending patron bills to collection agency</type>
563 <type>Fee for interlibrary loan</type>
564 <type>Fee for copies</type>
565 <type>Money advanced to pay for telephone use</type>
566 <type>Deposit fee</type>
567 <type>Fee for disk</type>
568 <type>Fee for faxing</type>
569 <type>Fee for laminating</type>
570 <type>Fee for room cleaning</type>
571 <type>Deposit returned; fee refund</type>
572 <type>Sale items</type>
573 <type>Fee for lost card</type>
574 <type>Long overdue items</type>
575 <type>Lost/Replacement Cassette</type>
576 <type>Returned Check</type>
582 <keepalive>3</keepalive>
583 <stateless>1</stateless>
584 <implementation>OpenILS::Application::Ingest</implementation>
585 <language>perl</language>
586 <max_requests>1000000</max_requests>
588 <max_requests>1000000</max_requests>
589 <unix_log>open-ils.ingest-unix.log</unix_log>
590 <unix_sock>open-ils.ingest-unix.sock</unix_sock>
591 <unix_pid>open-ils.ingest-unix.pid</unix_pid>
592 <min_children>5</min_children>
593 <max_children>20</max_children>
594 <min_spare_children>2</min_spare_children>
595 <max_spare_children>5</max_spare_children>
598 <script_path>LIBDIR/javascript/</script_path>
599 <script_path>LOCALSTATEDIR/catalog/</script_path>
600 <script_path>LOCALSTATEDIR/web/opac/common/js/</script_path>
602 <biblio_fingerprint>biblio_fingerprint.js</biblio_fingerprint>
603 <biblio_descriptor>biblio_descriptor.js</biblio_descriptor>
609 <keepalive>10</keepalive>
610 <stateless>1</stateless>
611 <language>perl</language>
612 <implementation>OpenILS::Application::Storage</implementation>
614 <max_requests>1000</max_requests>
615 <unix_log>open-ils.storage_unix.log</unix_log>
616 <unix_sock>open-ils.storage_unix.sock</unix_sock>
617 <unix_pid>open-ils.storage_unix.pid</unix_pid>
618 <min_children>1</min_children>
619 <max_children>10</max_children>
620 <min_spare_children>1</min_spare_children>
621 <max_spare_children>5</max_spare_children>
624 <script_path>LIBDIR/javascript/</script_path>
625 <script_path>LOCALSTATEDIR/catalog/</script_path>
627 <biblio_fingerprint>biblio_fingerprint.js</biblio_fingerprint>
634 <user>postgres</user>
635 <host>localhost</host>
639 <client_encoding>UTF-8</client_encoding>
647 <keepalive>6</keepalive>
648 <stateless>1</stateless>
649 <language>C</language>
650 <implementation>oils_cstore.so</implementation>
651 <max_requests>95</max_requests>
653 <max_requests>400</max_requests>
654 <min_children>1</min_children>
655 <max_children>15</max_children>
656 <min_spare_children>1</min_spare_children>
657 <max_spare_children>5</max_spare_children>
660 <max_query_recursion>100</max_query_recursion>
661 <driver>pgsql</driver>
665 <user>postgres</user>
666 <host>localhost</host>
670 <client_encoding>UTF-8</client_encoding>
678 <keepalive>1</keepalive>
679 <stateless>1</stateless>
680 <language>perl</language>
681 <implementation>OpenSRF::Application::Settings</implementation>
682 <max_requests>17</max_requests>
684 <unix_sock>opensrf.settings_unix.sock</unix_sock>
685 <unix_pid>opensrf.settings_unix.pid</unix_pid>
686 <max_requests>300</max_requests>
687 <unix_log>opensrf.settings_unix.log</unix_log>
688 <min_children>5</min_children>
689 <max_children>15</max_children>
690 <min_spare_children>3</min_spare_children>
691 <max_spare_children>5</max_spare_children>
695 <open-ils.collections>
696 <keepalive>3</keepalive>
697 <stateless>1</stateless>
698 <language>perl</language>
699 <implementation>OpenILS::Application::Collections</implementation>
700 <max_requests>17</max_requests>
702 <unix_sock>open-ils.collections_unix.sock</unix_sock>
703 <unix_pid>open-ils.collections_unix.pid</unix_pid>
704 <max_requests>1000</max_requests>
705 <unix_log>open-ils.collections_unix.log</unix_log>
706 <min_children>1</min_children>
707 <max_children>10</max_children>
708 <min_spare_children>1</min_spare_children>
709 <max_spare_children>5</max_spare_children>
711 </open-ils.collections>
714 <keepalive>3</keepalive>
715 <stateless>1</stateless>
716 <language>perl</language>
717 <implementation>OpenILS::Application::Reporter</implementation>
718 <max_requests>99</max_requests>
720 <unix_sock>open-ils.reporter_unix.sock</unix_sock>
721 <unix_pid>open-ils.reporter_unix.pid</unix_pid>
722 <max_requests>1000</max_requests>
723 <unix_log>open-ils.reporter_unix.log</unix_log>
724 <min_children>1</min_children>
725 <max_children>10</max_children>
726 <min_spare_children>1</min_spare_children>
727 <max_spare_children>5</max_spare_children>
732 <open-ils.reporter-store>
733 <keepalive>6</keepalive>
734 <stateless>1</stateless>
735 <language>C</language>
736 <implementation>oils_rstore.so</implementation>
737 <max_requests>95</max_requests>
739 <max_requests>400</max_requests>
740 <min_children>1</min_children>
741 <max_children>10</max_children>
742 <min_spare_children>1</min_spare_children>
743 <max_spare_children>5</max_spare_children>
746 <driver>pgsql</driver>
750 <user>postgres</user>
751 <host>localhost</host>
755 <client_encoding>UTF-8</client_encoding>
758 </open-ils.reporter-store>
761 <keepalive>3</keepalive>
762 <stateless>1</stateless>
763 <language>perl</language>
764 <implementation>OpenILS::Application::PermaCrud</implementation>
765 <max_requests>17</max_requests>
767 <unix_sock>open-ils.permacrud_unix.sock</unix_sock>
768 <unix_pid>open-ils.permacrud_unix.pid</unix_pid>
769 <max_requests>1000</max_requests>
770 <unix_log>open-ils.permacrud_unix.log</unix_log>
771 <min_children>5</min_children>
772 <max_children>15</max_children>
773 <min_spare_children>3</min_spare_children>
774 <max_spare_children>5</max_spare_children>
776 </open-ils.permacrud>
779 <keepalive>3</keepalive>
780 <stateless>1</stateless>
781 <language>perl</language>
782 <implementation>OpenILS::Application::Fielder</implementation>
783 <max_requests>17</max_requests>
785 <unix_sock>open-ils.fielder_unix.sock</unix_sock>
786 <unix_pid>open-ils.fielder_unix.pid</unix_pid>
787 <max_requests>1000</max_requests>
788 <unix_log>open-ils.fielder_unix.log</unix_log>
789 <min_children>5</min_children>
790 <max_children>15</max_children>
791 <min_spare_children>3</min_spare_children>
792 <max_spare_children>5</max_spare_children>
797 <keepalive>5</keepalive>
798 <stateless>1</stateless>
799 <language>perl</language>
800 <implementation>OpenILS::Application::Vandelay</implementation>
801 <max_requests>100</max_requests>
803 <unix_sock>vandelay_unix.sock</unix_sock>
804 <unix_pid>vandelay_unix.pid</unix_pid>
805 <unix_log>vandelay_unix.log</unix_log>
806 <max_requests>100</max_requests>
807 <min_children>1</min_children>
808 <max_children>15</max_children>
809 <min_spare_children>1</min_spare_children>
810 <max_spare_children>5</max_spare_children>
814 <!-- temporary location for MARC import files.
815 Files will be deleted after records are spooled.
816 *note: in a multi-brick environment, this will need to
817 be on a write-able NFS share. -->
818 <importer>/tmp</importer>
830 Should match the fully qualified domain name of the host.
832 On Linux, the output of the following command is authoritative:
833 $ perl -MNet::Domain -e 'print Net::Domain::hostfqdn() . "\n";'
835 To use 'localhost' instead, run osrf_ctl.sh with the -l flag
839 <!-- services hosted on this machine -->
840 <appname>opensrf.settings</appname>
841 <appname>opensrf.math</appname>
842 <appname>opensrf.dbmath</appname>
843 <appname>open-ils.cat</appname>
844 <appname>open-ils.supercat</appname>
845 <appname>open-ils.search</appname>
846 <appname>open-ils.circ</appname>
847 <appname>open-ils.actor</appname>
848 <appname>open-ils.auth</appname>
849 <appname>open-ils.storage</appname>
850 <appname>open-ils.penalty</appname>
851 <appname>open-ils.cstore</appname>
852 <appname>open-ils.collections</appname>
853 <appname>open-ils.ingest</appname>
854 <appname>open-ils.reporter</appname>
855 <appname>open-ils.reporter-store</appname>
856 <appname>open-ils.permacrud</appname>
857 <appname>open-ils.fielder</appname>
858 <appname>open-ils.vandelay</appname>