source: trunk/doc/src/docbook/appendix/base.config.xml @ 7548

Last change on this file since 7548 was 7548, checked in by Nicklas Nordborg, 4 years ago

Fixes #2134: Deprecate secondary storage

Code and documentatation has been updated.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 36.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE appendix PUBLIC
3    "-//Dawid Weiss//DTD DocBook V3.1-Based Extension for XML and graphics inclusion//EN"
4    "../../../../lib/docbook/preprocess/dweiss-docbook-extensions.dtd">
5<!--
6  $Id: base.config.xml 7548 2018-12-10 11:53:32Z nicklas $
7 
8  Copyright (C) 2007 Peter Johansson, Nicklas Nordborg, Martin Svensson
9 
10  This file is part of BASE - BioArray Software Environment.
11  Available at http://base.thep.lu.se/
12 
13  BASE is free software; you can redistribute it and/or
14  modify it under the terms of the GNU General Public License
15  as published by the Free Software Foundation; either version 3
16  of the License, or (at your option) any later version.
17 
18  BASE is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  GNU General Public License for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with BASE. If not, see <http://www.gnu.org/licenses/>.
25-->
26
27<appendix id="appendix.base.config">
28  <?dbhtml filename="base.config.html" ?>
29 
30  <title>base.config reference</title>
31
32  <para>
33    The <filename>base.config</filename> file is the main configuration file
34    for BASE. It is located in the <filename>&lt;basedir&gt;/www/WEB-INF/classes</filename>
35    directory. Most configuration properties have sensible defaults or are only used
36    for advanced features. However, a few are required and may need to be specified
37    or changed:
38  </para>
39 
40  <itemizedlist>
41    <listitem>
42      <property>db.dialect</property>,
43      <property>db.url</property>, <property>db.username</property>,
44      <property>db.password</property>:
45      Settings for connecting to the database.
46    </listitem>
47    <listitem>
48      <property>userfiles</property>: Setting that specify where uploaded files are stored
49      on the BASE server.
50    </listitem>
51    <listitem>
52      <property>plugins.dir</property>: Settings that specify where plug-ins and extensions
53      are installed.
54    </listitem>
55  </itemizedlist>
56 
57  <simplesect id="appendix.base.config.dbdriver">
58    <title>Database driver section</title>
59   
60    <para>
61      This section has parameters needed for the database connection, such
62      as the database dialect, username and password.
63    </para>
64   
65    <variablelist>
66    <varlistentry>
67      <term><property>db.dialect</property></term>
68      <listitem>
69        <para>
70          The Hibernate dialect to use when generating SQL commands to the database.
71          Use:
72          <itemizedlist>
73          <listitem>
74            <userinput>org.hibernate.dialect.MySQL5InnoDBDialect</userinput> 
75            for MySQL
76          </listitem>
77          <listitem>
78            <userinput>org.hibernate.dialect.PostgreSQL9Dialect</userinput> 
79            for PostgreSQL
80          </listitem>
81          </itemizedlist> 
82          Other dialects may work but are not supported.
83        </para>
84      </listitem>
85    </varlistentry>
86   
87    <varlistentry>
88      <term><property>db.url</property></term>
89      <listitem>
90        <para>
91          The connection URL that locates the BASE database. The exact syntax
92          of the string depends on the JDBC driver. Here are two examples which
93          leaves all other settings to their defaults:
94          <itemizedlist>
95          <listitem>
96            <userinput>jdbc:mysql://localhost/basedb</userinput> 
97            for MySQL
98          </listitem>
99          <listitem>
100            <userinput>jdbc:postgresql:basedb</userinput> 
101            for PostgreSQL
102          </listitem>
103          </itemizedlist>
104         
105          You can get more information about the parameters that are supported on the
106          connection URL by reading the documentation from
107          <ulink url="http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html"
108            >MySQL</ulink> and
109          <ulink url="http://jdbc.postgresql.org/documentation/81/connect.html"
110            >PostgreSQL</ulink>.
111           
112           
113          <note>
114            <para>
115            For MySQL we recommend that you set the character encoding to UTF-8
116            and enable the server-side cursors feature. The latter option will
117            reduce memory usage since the JDBC driver does not have to
118            load all data into memory. The value below should go into one line
119            <userinput>
120            jdbc:mysql://localhost/basedb?characterEncoding=UTF-8&amp;useCursorFetch=true&amp;defaultFetchSize=100&amp;useServerPrepStmts=true
121            </userinput>
122            </para>
123          </note>
124           
125        </para>
126      </listitem>
127    </varlistentry>
128   
129    <varlistentry>
130      <term><property>db.dynamic.catalog</property></term>
131      <listitem>
132        <para>
133        The name of the catalog where the dynamic database used to store
134        analysed data is located. If not specified the same catalog as the regular
135        database is used. The exact meaning of catalog depends on the actual database.
136        For MySQL the catalog is the name of the database so this value is simply the
137        name of the dynamic database. PostgreSQL does not support connecting to multiple
138        databases with the same connection so this should have the same value as the
139        database in the <property>db.url</property> setting.
140        </para>
141      </listitem>
142    </varlistentry>
143
144    <varlistentry>
145      <term><property>db.dynamic.schema</property></term>
146      <listitem>
147        <para>
148        The name of the schema where the dynamic database used to store
149        analysed data is located. MySQL does not have schemas so this value should
150        be left empty. PostgreSQL supports schemas and we recommend that the dynamic
151        part is created in it's own schema to avoid mixing the dynamic tables with
152        the regular ones.
153        </para>
154      </listitem>
155    </varlistentry>
156
157    <varlistentry>
158      <term><property>db.username</property></term>
159      <listitem>
160        <para>
161        The username to connect to the database. The user should have full permission
162        to both the regular and the dynamic database.
163        </para>
164      </listitem>
165    </varlistentry>
166   
167    <varlistentry>
168      <term><property>db.password</property></term>
169      <listitem>
170        <para>
171         The password for the user.
172         </para>
173      </listitem>
174    </varlistentry>
175   
176    <varlistentry>
177      <term><property>db.batch-size</property></term>
178      <listitem>
179        <para>
180        The batch size to use when inserting/updating items with the Batch API.
181        A higher value requires more memory, a lower value degrades performance
182        since the number of database connections increases. The default value is
183        50.
184        </para>
185      </listitem>
186    </varlistentry>
187   
188    <varlistentry>
189      <term><property>db.queries</property></term>
190      <listitem>
191        <para>
192        The location of an XML file which contains database-specific
193        queries overriding those that does not work from the
194        <filename>/common-queries.xml</filename> file. Use:
195       
196        <itemizedlist>
197          <listitem><userinput>/mysql-queries.xml</userinput> for MySQL</listitem>
198          <listitem><userinput>/postgres-queries.xml</userinput> for PostgreSQL</listitem>
199        </itemizedlist>
200          See also <xref linkend="appendix.otherconfig.sql" />.
201          </para>
202      </listitem>
203    </varlistentry>
204   
205    <varlistentry>
206      <term><property>db.extended-properties</property></term>
207      <listitem>
208        <para>
209        The location of an XML file describing the extended properties for extendable
210        item types, ie. the reporters. The default value is <userinput>/extended-properties.xml</userinput>.
211        See <xref linkend="appendix.extendedproperties" /> for more information
212        about extended properties.
213          </para>
214      </listitem>
215    </varlistentry>
216   
217    <varlistentry>
218      <term><property>db.raw-data-types</property></term>
219      <listitem>
220        <para>
221        The location of an XML file describing all raw data types and their properties.
222        The default value is <userinput>/raw-data-types.xml</userinput>.
223        See <xref linkend="appendix.rawdatatypes" /> for more information
224        about raw data types.
225          </para>
226      </listitem>
227    </varlistentry>
228
229    <varlistentry>
230      <term><property>db.cleanup.interval</property></term>
231      <listitem>
232        <para>
233        Interval in hours between database cleanups. Set this to
234        0 to disable (recommened for job agents). The default value
235        is 24. The cleanup will remove entries in the database that
236        have been orphaned due to other information that has been removed.
237        For example, change history entries, any-to-any links and
238        permission keys.
239          </para>
240      </listitem>
241    </varlistentry>
242    </variablelist>
243   
244  </simplesect>
245 
246  <simplesect id="appendix.base.config.authentication">
247    <title>Authentication section</title>
248    <para>
249      This section describes parameters that are needed if you are
250      going to use external authentication. If you let BASE handle this
251      you will not have to bother about these settings. See
252      <xref linkend="extensions_developer.login-manager"/> for more information about
253      external authentication.
254    </para>
255   
256    <variablelist>
257    <varlistentry>
258      <term><property>auth.synchronize</property></term>
259      <listitem>
260        <para>
261        If this setting is 1 or TRUE, BASE will synchronize the extra
262        information (name, address, email, etc.) sent by the authentication manager
263        when a user logs in to BASE. This setting is ignored if the manager does not
264        provide extra information.
265          </para>
266      </listitem>
267    </varlistentry>
268   
269    <varlistentry>
270      <term><property>auth.cachepasswords</property></term>
271      <listitem>
272        <para>
273        If passwords should be cached by BASE or not. If the passwords are
274        cached a user may login to BASE even if the external authentication
275        server is down. The cached passwords are only used if the external
276        authentication does not answer properly.
277          </para>
278      </listitem>
279    </varlistentry>
280   
281    <varlistentry>
282      <term><property>auth.daystocache</property></term>
283      <listitem>
284        <para>
285        How many days a cached password is valid if caching is enabled. A value of
286        0 caches the passwords forever.
287          </para>
288      </listitem>
289    </varlistentry>
290    </variablelist>
291  </simplesect>
292 
293  <simplesect id="appendix.base.config.jobqueue">
294    <title>Internal job queue section</title>
295   
296    <para>
297      This section contains setting that control the internal job queue.
298      The internal job queue is a simple queue that executes jobs more or
299      less in the order they were added to the queue. To make sure long-running
300      jobs do not block the queue, there are four slots that uses the
301      expected execution time to decide if a job should be allowed to execute
302      or not.
303    </para>
304   
305    <variablelist>
306    <varlistentry>
307      <term><property>jobqueue.internal.enabled</property></term>
308      <listitem>
309        <para>
310         If <userinput>0</userinput> or <userinput>FALSE</userinput> the internal
311         job queue will be disabled.
312         </para>
313      </listitem>
314    </varlistentry>
315   
316    <varlistentry>
317      <term><property>jobqueue.internal.runallplugins</property></term>
318      <listitem>
319        <para>
320         If <userinput>1</userinput> or <userinput>TRUE</userinput> the internal
321         job queue will ignore the <property>useInternalJobQueue</property>
322         flag specified on plug-ins. If <userinput>0</userinput> or <userinput>FALSE</userinput>
323         the internal job queue will only execute plug-ins which has
324         <property>useInternalJobQueue=true</property>
325         </para>
326      </listitem>
327    </varlistentry>
328
329    <varlistentry>
330      <term><property>jobqueue.internal.signalreceiver.class</property></term>
331      <listitem>
332        <para>
333         A class implementing the <interfacename docapi="net.sf.basedb.core.signal"
334         >SignalReceiver</interfacename>
335         interface. The class must have a public no-argument constructor. If
336         no value is specified the default setting is:
337         <classname docapi="net.sf.basedb.core.signal"
338         >net.sf.basedb.core.signal.LocalSignalReceiver</classname>.
339         </para>
340         <para>
341         Change to <classname docapi="net.sf.basedb.core.signal"
342         >net.sf.basedb.core.signal.SocketSignalReceiver</classname>
343         if the internal job queue must be able to receive signals from outside
344         this JVM.
345         </para>
346      </listitem>
347    </varlistentry>
348   
349    <varlistentry>
350      <term><property>jobqueue.internal.signalreceiver.init</property></term>
351      <listitem>
352        <para>
353        Initialisation string sent to <methodname>SignalReceiver.init()</methodname>.
354        The syntax and meaning of the string depends on the actual implementation
355        that is used. Please see the Javadoc for more information.
356         </para>
357      </listitem>
358    </varlistentry>
359
360    <varlistentry>
361      <term><property>jobqueue.internal.checkinterval</property></term>
362      <listitem>
363        <para>
364         The number of seconds between checks to the database for jobs
365         that are waiting for execution.
366         </para>
367      </listitem>
368    </varlistentry>
369   
370    <varlistentry>
371      <term><property>jobqueue.internal.shortest.threads</property></term>
372      <term><property>jobqueue.internal.short.threads</property></term>
373      <term><property>jobqueue.internal.medium.threads</property></term>
374      <term><property>jobqueue.internal.long.threads</property></term>
375      <listitem>
376        <para>
377        Maximum number of threads to reserve for jobs with a given expected
378        execution time. A job with a short execution time may use a thread
379        from one of the slots with longer execution time. When all threads
380        are in use, new jobs will have to wait until an executing job
381        has finished.
382        </para>
383      </listitem>
384    </varlistentry>
385   
386    <varlistentry>
387      <term><property>jobqueue.internal.shortest.threadpriority</property></term>
388      <term><property>jobqueue.internal.short.threadpriority</property></term>
389      <term><property>jobqueue.internal.medium.threadpriority</property></term>
390      <term><property>jobqueue.internal.long.threadpriority</property></term>
391      <listitem>
392        <para>
393        The priority to give to jobs. The priority is a value between 1 and 10.
394        See <ulink url="http://download.oracle.com/javase/6/docs/api/java/lang/Thread.html"
395        >http://download.oracle.com/javase/6/docs/api/java/lang/Thread.html</ulink> 
396        for more information about thread priorities.
397        </para>
398      </listitem>
399    </varlistentry>
400    </variablelist>
401
402  </simplesect>
403
404  <simplesect id="appendix.base.config.jobagent">
405    <title>Job agent section</title>
406   
407    <para>
408      This section contains settings that BASE uses when communicating
409      with external job agents. See <xref linkend="installation.jobagents"/> 
410      for more information about job agents.
411    </para>
412   
413    <variablelist>
414    <varlistentry>
415      <term><property>agent.maxage</property></term>
416      <listitem>
417        <para>
418        Number of seconds to keep job agent information in the internal cache.
419        The information includes, CPU and memory usage and the status of executing
420        jobs. This setting controls how long the information is kept in the cache
421        before a new request is made to the job agent. The default value is 60 seconds.
422          </para>
423      </listitem>
424    </varlistentry>
425
426    <varlistentry>
427      <term><property>agent.connection.timeout</property></term>
428      <listitem>
429        <para>
430        The timeout in milliseconds to wait for a response from a job agent
431        when sending a request to it. The default timeout is 1000 milliseconds.
432        This should be more than enough if the job agent is on the internal
433        network, but may have to be increased if it is located somewhere else.
434          </para>
435      </listitem>
436    </varlistentry>
437
438    </variablelist>
439   
440  </simplesect>
441
442  <simplesect id="appendix.base.config.secondary">
443    <title>Secondary storage controller</title>
444   
445    <note>
446      This feature has been deprecated in BASE 3.14 and will be removed in a
447      future release. The recommendation is to replace this with an
448      external files solution instead.
449    </note>
450   
451    <para>
452      This section contains settings for the secondary storage controller. See
453      <xref linkend="plugin_developer.other.secondary"/> for more
454      information about secondary storage.
455    </para>
456   
457    <variablelist>
458    <varlistentry>
459      <term><property>secondary.storage.driver</property></term>
460      <listitem>
461        <para>
462        The class name of the plug-in that acts as the secondary storage controller.
463        BASE ships with a simple plug-in that just moves files to another directory,
464        but it is not enabled by default. The class name of that plug-in is
465        <classname docapi="net.sf.basedb.core">net.sf.basedb.core.InternalStorageController</classname>.
466        If no class is specified the secondary storage feature is disabled.
467          </para>
468      </listitem>
469    </varlistentry>
470   
471    <varlistentry>
472      <term><property>secondary.storage.init</property></term>
473      <listitem>
474        <para>
475        Initialisation parameters sent to the plug-in when calling the
476        <methodname>init()</methodname> method. The syntax and meaning of this
477        string depends on the plug-in. For the internal controller this is simply
478        the path to the secondary directory.
479          </para>
480      </listitem>
481    </varlistentry>
482   
483    <varlistentry>
484      <term><property>secondary.storage.interval</property></term>
485      <listitem>
486        <para>
487        Interval in seconds between each execution of the secondary storage
488        controller plug-in. If this property is not specified, <property>secondary.storage.time</property>
489        should be set, or the secondary storage feature will be disabled.
490          </para>
491      </listitem>
492    </varlistentry>
493   
494    <varlistentry>
495      <term><property>secondary.storage.time</property></term>
496      <listitem>
497        <para>
498        Time-point values specifying the time(s) of day that the secondary storage controller
499        should be executed. If present, this setting overrides the
500        <property>secondary.storage.interval</property> setting.
501        Time-point values are given as comma-separated list of two-digit, 24-based hour
502        and two-digit minute values. For example: <userinput>03:10,09:00,23:59</userinput>.
503          </para>
504      </listitem>
505    </varlistentry>
506    </variablelist>
507   
508  </simplesect>
509 
510  <simplesect id="appendix.base.config.log">
511    <title>Change history logging section</title>
512   
513    <para>
514      This section contains settings for logging the change history
515      of items. Logging is disabled by default, but BASE ships
516      with one implementation that log changes to the database.
517      To enable it, log in to the web client with administrator
518      privileges and enable the <guilabel>Database log manager</guilabel>
519      extension. See <xref linkend="extensions_developer.logging" /> for more
520      information about implementing custom logging.
521    </para>
522   
523    <variablelist>
524    <varlistentry>
525      <term><property>changelog.show-in-web</property></term>
526      <listitem>
527        <para>
528        A boolean value that specifies if the <guilabel>Change history</guilabel>
529        tab should be visible in the web interface or not. The change history
530        tab will show log information that has been stored in the database
531        and it doesn't make sense to show this tab unless the
532        <guilabel>Database log manager</guilabel> has been enabled.
533          </para>
534         
535          <note>
536            <para>
537            By default, only users that are members of the
538            <guilabel>Administrator</guilabel> role have permission to
539            view the change history. To give other users the same permission,
540            add the <guilabel>Change history</guilabel> permission to
541            the appropriate role(s).
542            </para>
543          </note>
544      </listitem>
545    </varlistentry>
546    <varlistentry>
547      <term><property>changelog.dblogger.detailed-properties</property></term>
548      <listitem>
549        <para>
550        A boolean value that specifies the amount of information
551        that should be logged by the database log manager. If set, the log
552        will contain information about which properties that was modified on each item,
553        otherwise only the type of change (create, update, delete) is logged.
554        </para>
555      </listitem>
556    </varlistentry>
557    </variablelist>
558   
559  </simplesect>
560 
561    <simplesect id="appendix.base.config.smtp">
562    <title>SMTP server section</title>
563   
564    <para>
565      This section contains settings for the SMTP server used for
566      outgoing mail. This is optional, and if not configured outgoing
567      mail (including 2-factor login) will be disabled.
568    </para>
569   
570    <variablelist>
571    <varlistentry>
572      <term><property>mail.server.host</property></term>
573      <listitem>
574        <para>
575        The host name of the SMTP server to use for outgoing mail.
576        If not configured mailing functions will be disabled.
577          </para>
578      </listitem>
579    </varlistentry>
580    <varlistentry>
581      <term><property>mail.server.port</property></term>
582      <listitem>
583        <para>
584        The port the SMTP server is listening on. If not configured a
585        default port is used. Eg. 25 for regular mail server, 465 for
586        SSL mail server.
587          </para>
588      </listitem>
589    </varlistentry>
590    <varlistentry>
591      <term><property>mail.server.ssl</property></term>
592      <listitem>
593        <para>
594        A boolean value that specifies if the SMTP server is using
595        SSL or not.
596        </para>
597      </listitem>
598    </varlistentry>
599    <varlistentry>
600      <term><property>mail.server.tls</property></term>
601      <listitem>
602        <para>
603        A boolean value that specifies if the SMTP server is using
604        TLS or not.
605        </para>
606      </listitem>
607    </varlistentry>
608    <varlistentry>
609      <term><property>mail.from.email</property></term>
610      <listitem>
611        <para>
612        The email address that will be used as the sender of outgoing
613        emails. If not configured mailing functions will be disabled.
614        </para>
615      </listitem>
616    </varlistentry>
617    <varlistentry>
618      <term><property>mail.from.name</property></term>
619      <listitem>
620        <para>
621        Thename that will be used as the sender of outgoing
622        emails. If not configured, a default name is automatically
623        generated using the host name of the BASE server.
624        </para>
625      </listitem>
626    </varlistentry>
627    </variablelist>
628   
629  </simplesect>
630 
631  <simplesect id="appendix.base.config.plugin">
632    <title>Plug-ins and extensions</title>
633    <variablelist>
634    <varlistentry>
635      <term><property>plugins.dir</property></term>
636      <listitem>
637        <para>
638          The path to the directory where jar-files for external plug-ins and extensions
639          are located. All new plug-ins and extensions found in this directory, can be selected
640          for installation, see <xref linkend="plugins.installation" />.
641        </para>
642      </listitem>
643    </varlistentry>
644   
645    <varlistentry>
646      <term><property>plugins.autounload</property></term>
647      <listitem>
648        <para>
649          Enable this setting to let BASE detect if a plug-in JAR file is changed
650          and automatically load and use the new code instead of the old code.
651          This setting is useful for plug-in developers since they don't have to
652          restart the web server each time the plug-in is recompiled.
653          <itemizedlist>
654            <listitem>
655              <simpara>
656                <userinput>true,yes,1</userinput>
657                to enable
658              </simpara>
659            </listitem>
660            <listitem>
661              <simpara>
662                <userinput>false,no,0</userinput>
663                to disable (default if no value is specified)
664              </simpara>
665            </listitem>
666          </itemizedlist>
667          Note that extensions doesn't support this feature. Use the installation
668          wizard to update an extension.
669        </para>
670      </listitem>
671    </varlistentry>
672   
673    <varlistentry>
674      <term><property>extensions.disabled</property></term>
675      <listitem>
676        <para>
677          A boolean flag that, if set, disables all external extensions.
678          Plug-ins or core extensions will never be disabled.
679        </para>
680      </listitem>
681    </varlistentry>
682   
683    </variablelist>
684  </simplesect>
685 
686  <simplesect id="appendix.base.config.other">
687    <title>Other settings</title>
688
689    <variablelist>
690    <varlistentry>
691      <term><property>app.title</property></term>
692      <listitem>
693        <para>
694        The title that is displayed in the browser tab. Use <code>$VERSION</code>
695        to include the current BASE version and <code>$SERVER</code> to include the
696        server name.
697          </para>
698      </listitem>
699    </varlistentry>
700
701    <varlistentry>
702      <term><property>userfiles</property></term>
703      <listitem>
704        <para>
705        The path to the directory where uploaded and generated files should
706        be stored. This is the primary file storage. See <xref linkend="appendix.base.config.secondary" /> 
707        for information about how to configure the secondary storage. Files are not
708        stored in the same directory structure or with the same names as in
709        the BASE file system. The internal structure may contain sub-directories.
710          </para>
711      </listitem>
712    </varlistentry>
713   
714    <varlistentry>
715      <term><property>permission.timeout</property></term>
716      <listitem>
717        <para>
718        Number of minutes to cache a logged in user's permissions before
719        reloading them. The default value is 10. This setting affect how
720        quickly a changed permission propagate to a logged in user. Permissions
721        are always reloaded when a user logs in.
722          </para>
723      </listitem>
724    </varlistentry>
725   
726    <varlistentry>
727      <term><property>cache.timeout</property></term>
728      <listitem>
729        <para>
730        Number of minutes to keep user sessions in the internal cache
731        before the user is automatically logged out. The timeout is counted
732        from the last access made from the user.
733          </para>
734      </listitem>
735    </varlistentry>
736   
737    <varlistentry>
738      <term><property>cache.static.disabled</property></term>
739      <listitem>
740        <para>
741        If the static cache should be enabled or disabled. It is enabled by
742        default. Disabling the static cache may reduce performance in some
743        cases. The static cache is used to cache processed information,
744        for example images, so that the database doesn't have to be queried
745        on every request.
746          </para>
747      </listitem>
748    </varlistentry>
749   
750    <varlistentry>
751      <term><property>cache.static.max-age</property></term>
752      <listitem>
753        <para>
754        The maximum age in days of files in the static cache. Files that
755        hasn't been accessed (read or written) in the specified amount
756        of time are deleted.
757          </para>
758      </listitem>
759    </varlistentry>
760   
761    <varlistentry>
762      <term><property>helptext.update</property></term>
763      <listitem>
764        <para>
765          Defines if already existing helptexts in BASE should be overwritten when
766          updating the program,
767          <xref linkend="installation.upgrade" />
768          <itemizedlist>
769            <listitem>
770              <simpara>
771                <userinput>true</userinput>
772                will overwrite existing helptexts.
773              </simpara>
774            </listitem>
775            <listitem>
776              <simpara>
777                <userinput>false</userinput>
778                will leave the existing helptexts in database unchanged and only
779                insert new helptexts.
780              </simpara>
781            </listitem>
782          </itemizedlist>
783        </para>
784      </listitem>
785    </varlistentry>
786   
787    <varlistentry>
788      <term><property>locale.language</property></term>
789      <term><property>locale.country</property></term>
790      <term><property>locale.variant</property></term>
791      <listitem>
792        <para>
793          Configure the server to a specific locale. The language and
794          country should be valid ISO codes as specified by the
795          <ulink url="http://download.oracle.com/javase/6/docs/api/java/util/Locale.html"
796            >java.util.Locale</ulink> documentation. The variant
797          can be any value that is valid as part of a filename.
798        </para>
799
800        <note>
801          <para>
802          Note that language codes are usually lower-case but country codes are
803          upper case. Eg. <code>sv</code> is the language code for swedish, and
804          <code>SE</code> is the country code.
805          </para>
806        </note>
807
808        <para>
809          This configuration can be used to provide translations to some parts of the web gui.
810          The aim is to externalize all hard-coded gui elements from the code but
811          it's a long way before this is a reality. The default text elements of
812          the gui are shipped within the BASE jar files and doesn't have any
813          locale-specific dependency. This means that unless a more specific
814          translation is provided the default texts are always used as a fallback.
815          Most of the default texts are found in property files in the
816          <filename>/net/sf/basedb/clients/web/resources</filename>
817          directory inside the <filename>base-webclient-3.x.jar</filename>
818          file. Translations should be located in the same relative path
819          either inside their own JAR file or in the <filename>WEB-INF/classes</filename> 
820          directory. The file names should be extended with the language, country
821          and variant separated with an underscore. For example, files with a swedish
822          translation should be named <filename>*_sv.properties</filename>, and files
823          with a swedish translation in Finland using the 'foo' variant should be
824          named <filename>*_sv_FI_foo.properties</filename>.
825        </para>
826       
827        <note>
828          <para>
829            Note that it is valid to have empty values for language and/or country
830            and still specify a variant. Underscores are NOT collapsed. For
831            example, in a swedish translation using the 'foo' variant the
832            files should be named <filename>*_sv__foo.properties</filename>.
833          </para>
834        </note>
835       
836        <important>
837          <para>
838            All files should be saved in UTF-8 format.
839          </para>
840        </important>
841       
842      </listitem>
843    </varlistentry>
844   
845    </variablelist>
846  </simplesect>
847
848  <simplesect id="appendix.base.config.ssl">
849    <title>SSL section</title>
850   
851    <para>
852      This section is for global configuration of SSL (HTTPS) connection
853      settings used when BASE need to access external file items. Note that
854      users can re-configure SSL connections per-file
855      basis by setting up File-server items, so there is usually no need
856      to change anything in this section. If the majority of users on the
857      BASE server is using a particular https file server for external files it
858      may make sense to register the certificates globally.
859    </para>
860   
861    <para>
862      When a https connection is made the server must present a valid
863      certificate or the client (BASE) will refuse to connect to it.
864      Typically, all certificates that have been signed by a recognised
865      Certification Authority are considered valid. The major reason for
866      configuring this section is to provide support for servers that
867      use a self-signed certificate.
868      Server-side certificate are stored in a <emphasis>trust-store</emphasis>.
869      A default trust-store is shipped with the Java runtime installation
870      and is found in <filename>&lt;java-home&gt;/jre/lib/security/cacerts</filename>.
871      This file contains the certificates of all recognised certification authorities.
872    </para>
873   
874    <para>
875      A https server may also require that the client has a valid certificate
876      in order to accept connections from it. Typically, the owner of the
877      server issues a certificate that the client must install in order
878      to access the server. This type of certificate is stored in a
879      <emphasis>key-store</emphasis>. By default, no key-store is setup.
880    </para>
881   
882    <para>
883      If all you need is to support servers with self-signed certificates we
884      recommend that those certificates are imported to the above mentioned file.
885      No configuration changes are needed. If a key-store is needed, you must also
886      configure the trust-store. Read the <ulink 
887      url="http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html"
888      >Java Secure Socket Extension Reference Guide</ulink> for more information about Java
889      security and SSL. Java ships with a certificate management tool that can be used
890      to manage certificate files and a lot of other things. The
891      <ulink url="http://java.sun.com/javase/6/docs/technotes/tools/windows/keytool.html"
892      >keytool - Key and Certificate Management Tool</ulink> document contains more information
893      about this tool.
894    </para>
895   
896    <para>
897      If you want to setup your own test environment with a https server that only
898      accepts clients with a trusted certificate you can find some information about
899      this on our wiki: <ulink url="http://base.thep.lu.se/wiki/HttpsFiles"
900      >http://base.thep.lu.se/wiki/HttpsFiles</ulink>
901    </para>
902   
903    <variablelist>
904    <varlistentry>
905      <term><property>ssl.context.protocol</property></term>
906      <listitem>
907        <para>
908        The SSL protocol to use. The default value is TLS.
909          </para>
910      </listitem>
911    </varlistentry>
912    <varlistentry>
913      <term><property>ssl.context.provider</property></term>
914      <listitem>
915        <para>
916        A security provider implementation. If not specified a suitable default is
917        selected.
918          </para>
919      </listitem>
920    </varlistentry>
921    <varlistentry>
922      <term><property>ssl.keystore.file</property></term>
923      <listitem>
924        <para>
925        The full path to a key-store file. If not specified no key-store is used.
926          </para>
927      </listitem>
928    </varlistentry>
929    <varlistentry>
930      <term><property>ssl.keystore.password</property></term>
931      <listitem>
932        <para>
933        The password for unlocking the keys in the key-store. All keys must use
934        the same password.
935          </para>
936      </listitem>
937    </varlistentry>
938    <varlistentry>
939      <term><property>ssl.keystore.type</property></term>
940      <listitem>
941        <para>
942        The file type of the key-store file. The default value is 'JKS'.
943          </para>
944      </listitem>
945    </varlistentry>
946    <varlistentry>
947      <term><property>ssl.keystore.provider</property></term>
948      <listitem>
949        <para>
950        The name of a provider implementation to use for reading the key-store file.
951        If not specified a suitable default is used.
952          </para>
953      </listitem>
954    </varlistentry>
955    <varlistentry>
956      <term><property>ssl.keystore.algorithm</property></term>
957      <listitem>
958        <para>
959        The algorithm used in the key-store file. The default value is
960        'SunX509'.
961          </para>
962      </listitem>
963    </varlistentry>
964    <varlistentry>
965      <term><property>ssl.truststore.file</property></term>
966      <listitem>
967        <para>
968        The full path to a trust-store certificate file. If not specified
969        the default depends on the key-store setting. If no key-store is
970        configured, the default trust-store is used. If a key-store has
971        been configured no trust-store is used.
972          </para>
973      </listitem>
974    </varlistentry>
975    <varlistentry>
976      <term><property>ssl.truststore.password</property></term>
977      <listitem>
978        <para>
979        The password for unlocking the certificates in the trust-store. All certificates
980        must use the same password.
981          </para>
982      </listitem>
983    </varlistentry>
984    <varlistentry>
985      <term><property>ssl.truststore.type</property></term>
986      <listitem>
987        <para>
988        The file type of the trust-store file. The default value is 'JKS'.
989          </para>
990      </listitem>
991    </varlistentry>
992    <varlistentry>
993      <term><property>ssl.truststore.provider</property></term>
994      <listitem>
995        <para>
996        The name of a provider implementation to use for reading the trust-store file.
997        If not specified a suitable default is used.
998          </para>
999      </listitem>
1000    </varlistentry>
1001    <varlistentry>
1002      <term><property>ssl.truststore.algorithm</property></term>
1003      <listitem>
1004        <para>
1005        The algorithm used in the trust-store file. The default value is
1006        'PKIX'.
1007          </para>
1008      </listitem>
1009    </varlistentry>
1010    </variablelist>
1011   
1012  </simplesect>
1013 
1014  <simplesect id="appendix.base.config.migrate">
1015    <title>Migration section</title>
1016   
1017    <para>
1018      The settings in this section only affect the migration program that can
1019      be used to move a BASE installation from a MySQL database to PostgreSQL.
1020      For more information about this see <xref linkend="installation.migrate" />.
1021    </para>
1022   
1023    <variablelist>
1024      <varlistentry>
1025        <term><property>migrate.export.compress</property></term>
1026        <listitem>
1027          <para>
1028            Enable this option
1029            to compress the data files generated by the export. This may
1030            improve performance in case disk speed is a limiting factor.
1031            Default is to not compress.
1032          </para>
1033        </listitem>
1034      </varlistentry>
1035      <varlistentry>
1036        <term><property>migrate.export.fetch-size</property></term>
1037        <listitem>
1038          <para>
1039            The number
1040            of rows that should be fetch at the same time from the database.
1041            A higher value may increase the performance but uses more
1042            memory. The default value is 20000.
1043          </para>
1044        </listitem>
1045      </varlistentry>
1046      <varlistentry>
1047        <term><property>migrate.import.analyze</property></term>
1048        <listitem>
1049          <para>
1050            Enable this flag to issue an SQL statment for statistical
1051            analysis of the imported data before continuing with the next
1052            table. Disabling this may result in very poor performance. This
1053            option is enabled by default.
1054          </para>
1055        </listitem>
1056      </varlistentry>
1057 
1058      <varlistentry>
1059        <term><property>migrate.import.drop-primary-key</property></term>
1060        <listitem>
1061          <para>
1062            Enable this flag to drop the primary key of a table before
1063            importing data to it. This may increase the performance. The
1064            primary key is re-created after the data has been imported.
1065            This option is enabled by default.
1066          </para>
1067        </listitem>
1068      </varlistentry>
1069     
1070      <varlistentry>
1071        <term><property>migrate.import.drop-constraints</property></term>
1072        <listitem>
1073          <para>
1074            Enable this flag to drop unique constraints and indexes before
1075            importing data to a table. This may increase the performance.
1076            The constraints and indexes are re-created after the data has been
1077            imported. NOTE! Foreign key constraints are not affected by this flag,
1078            since they must always be dropped. This option is enabled by
1079            default.
1080          </para>
1081        </listitem>
1082      </varlistentry>
1083    </variablelist>
1084   
1085  </simplesect>
1086
1087</appendix>
1088
Note: See TracBrowser for help on using the repository browser.