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

Last change on this file since 7982 was 7982, checked in by Nicklas Nordborg, 2 years ago

Merge BASE 3.18.2 to the trunk

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 33.8 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 7982 2021-06-14 08:01:21Z 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 
443  <simplesect id="appendix.base.config.log">
444    <title>Change history logging section</title>
445   
446    <para>
447      This section contains settings for logging the change history
448      of items. Logging is disabled by default, but BASE ships
449      with one implementation that log changes to the database.
450      To enable it, log in to the web client with administrator
451      privileges and enable the <guilabel>Database log manager</guilabel>
452      extension. See <xref linkend="extensions_developer.logging" /> for more
453      information about implementing custom logging.
454    </para>
455   
456    <variablelist>
457    <varlistentry>
458      <term><property>changelog.show-in-web</property></term>
459      <listitem>
460        <para>
461        A boolean value that specifies if the <guilabel>Change history</guilabel>
462        tab should be visible in the web interface or not. The change history
463        tab will show log information that has been stored in the database
464        and it doesn't make sense to show this tab unless the
465        <guilabel>Database log manager</guilabel> has been enabled.
466          </para>
467         
468          <note>
469            <para>
470            By default, only users that are members of the
471            <guilabel>Administrator</guilabel> role have permission to
472            view the change history. To give other users the same permission,
473            add the <guilabel>Change history</guilabel> permission to
474            the appropriate role(s).
475            </para>
476          </note>
477      </listitem>
478    </varlistentry>
479    <varlistentry>
480      <term><property>changelog.dblogger.detailed-properties</property></term>
481      <listitem>
482        <para>
483        A boolean value that specifies the amount of information
484        that should be logged by the database log manager. If set, the log
485        will contain information about which properties that was modified on each item,
486        otherwise only the type of change (create, update, delete) is logged.
487        </para>
488      </listitem>
489    </varlistentry>
490    </variablelist>
491   
492  </simplesect>
493 
494    <simplesect id="appendix.base.config.smtp">
495    <title>SMTP server section</title>
496   
497    <para>
498      This section contains settings for the SMTP server used for
499      outgoing mail. This is optional, and if not configured outgoing
500      mail (including 2-factor login) will be disabled.
501    </para>
502   
503    <variablelist>
504    <varlistentry>
505      <term><property>mail.server.host</property></term>
506      <listitem>
507        <para>
508        The host name of the SMTP server to use for outgoing mail.
509        If not configured mailing functions will be disabled.
510          </para>
511      </listitem>
512    </varlistentry>
513    <varlistentry>
514      <term><property>mail.server.port</property></term>
515      <listitem>
516        <para>
517        The port the SMTP server is listening on. If not configured a
518        default port is used. Eg. 25 for regular mail server, 465 for
519        SSL mail server.
520          </para>
521      </listitem>
522    </varlistentry>
523    <varlistentry>
524      <term><property>mail.server.ssl</property></term>
525      <listitem>
526        <para>
527        A boolean value that specifies if the SMTP server is using
528        SSL or not.
529        </para>
530      </listitem>
531    </varlistentry>
532    <varlistentry>
533      <term><property>mail.server.tls</property></term>
534      <listitem>
535        <para>
536        A boolean value that specifies if the SMTP server is using
537        TLS or not.
538        </para>
539      </listitem>
540    </varlistentry>
541    <varlistentry>
542      <term><property>mail.from.email</property></term>
543      <listitem>
544        <para>
545        The email address that will be used as the sender of outgoing
546        emails. If not configured mailing functions will be disabled.
547        </para>
548      </listitem>
549    </varlistentry>
550    <varlistentry>
551      <term><property>mail.from.name</property></term>
552      <listitem>
553        <para>
554        Thename that will be used as the sender of outgoing
555        emails. If not configured, a default name is automatically
556        generated using the host name of the BASE server.
557        </para>
558      </listitem>
559    </varlistentry>
560    </variablelist>
561   
562  </simplesect>
563 
564  <simplesect id="appendix.base.config.plugin">
565    <title>Plug-ins and extensions</title>
566    <variablelist>
567    <varlistentry>
568      <term><property>plugins.dir</property></term>
569      <listitem>
570        <para>
571          The path to the directory where jar-files for external plug-ins and extensions
572          are located. All new plug-ins and extensions found in this directory, can be selected
573          for installation, see <xref linkend="plugins.installation" />.
574        </para>
575      </listitem>
576    </varlistentry>
577   
578    <varlistentry>
579      <term><property>plugins.autounload</property></term>
580      <listitem>
581        <para>
582          Enable this setting to let BASE detect if a plug-in JAR file is changed
583          and automatically load and use the new code instead of the old code.
584          This setting is useful for plug-in developers since they don't have to
585          restart the web server each time the plug-in is recompiled.
586          <itemizedlist>
587            <listitem>
588              <simpara>
589                <userinput>true,yes,1</userinput>
590                to enable
591              </simpara>
592            </listitem>
593            <listitem>
594              <simpara>
595                <userinput>false,no,0</userinput>
596                to disable (default if no value is specified)
597              </simpara>
598            </listitem>
599          </itemizedlist>
600          Note that extensions doesn't support this feature. Use the installation
601          wizard to update an extension.
602        </para>
603      </listitem>
604    </varlistentry>
605   
606    <varlistentry>
607      <term><property>extensions.disabled</property></term>
608      <listitem>
609        <para>
610          A boolean flag that, if set, disables all external extensions.
611          Plug-ins or core extensions will never be disabled.
612        </para>
613      </listitem>
614    </varlistentry>
615   
616    </variablelist>
617  </simplesect>
618 
619  <simplesect id="appendix.base.config.other">
620    <title>Other settings</title>
621
622    <variablelist>
623    <varlistentry>
624      <term><property>app.title</property></term>
625      <listitem>
626        <para>
627        The title that is displayed in the browser tab. Use <code>$VERSION</code>
628        to include the current BASE version and <code>$SERVER</code> to include the
629        server name.
630          </para>
631      </listitem>
632    </varlistentry>
633
634    <varlistentry>
635      <term><property>userfiles</property></term>
636      <listitem>
637        <para>
638        The path to the directory where uploaded and generated files should
639        be stored. This is the primary file storage. Files are not
640        stored in the same directory structure or with the same names as in
641        the BASE file system. The internal structure may contain sub-directories.
642          </para>
643      </listitem>
644    </varlistentry>
645   
646    <varlistentry>
647      <term><property>permission.timeout</property></term>
648      <listitem>
649        <para>
650        Number of minutes to cache a logged in user's permissions before
651        reloading them. The default value is 10. This setting affect how
652        quickly a changed permission propagate to a logged in user. Permissions
653        are always reloaded when a user logs in.
654          </para>
655      </listitem>
656    </varlistentry>
657   
658    <varlistentry>
659      <term><property>cache.timeout</property></term>
660      <listitem>
661        <para>
662        Number of minutes to keep user sessions in the internal cache
663        before the user is automatically logged out. The timeout is counted
664        from the last access made from the user.
665          </para>
666      </listitem>
667    </varlistentry>
668   
669    <varlistentry>
670      <term><property>cache.static.disabled</property></term>
671      <listitem>
672        <para>
673        If the static cache should be enabled or disabled. It is enabled by
674        default. Disabling the static cache may reduce performance in some
675        cases. The static cache is used to cache processed information,
676        for example images, so that the database doesn't have to be queried
677        on every request.
678          </para>
679      </listitem>
680    </varlistentry>
681   
682    <varlistentry>
683      <term><property>cache.static.max-age</property></term>
684      <listitem>
685        <para>
686        The maximum age in days of files in the static cache. Files that
687        hasn't been accessed (read or written) in the specified amount
688        of time are deleted.
689          </para>
690      </listitem>
691    </varlistentry>
692   
693    <varlistentry>
694      <term><property>helptext.update</property></term>
695      <listitem>
696        <para>
697          Defines if already existing helptexts in BASE should be overwritten when
698          updating the program,
699          <xref linkend="installation.upgrade" />
700          <itemizedlist>
701            <listitem>
702              <simpara>
703                <userinput>true</userinput>
704                will overwrite existing helptexts.
705              </simpara>
706            </listitem>
707            <listitem>
708              <simpara>
709                <userinput>false</userinput>
710                will leave the existing helptexts in database unchanged and only
711                insert new helptexts.
712              </simpara>
713            </listitem>
714          </itemizedlist>
715        </para>
716      </listitem>
717    </varlistentry>
718   
719    <varlistentry>
720      <term><property>locale.language</property></term>
721      <term><property>locale.country</property></term>
722      <term><property>locale.variant</property></term>
723      <listitem>
724        <para>
725          Configure the server to a specific locale. The language and
726          country should be valid ISO codes as specified by the
727          <ulink url="http://download.oracle.com/javase/6/docs/api/java/util/Locale.html"
728            >java.util.Locale</ulink> documentation. The variant
729          can be any value that is valid as part of a filename.
730        </para>
731
732        <note>
733          <para>
734          Note that language codes are usually lower-case but country codes are
735          upper case. Eg. <code>sv</code> is the language code for swedish, and
736          <code>SE</code> is the country code.
737          </para>
738        </note>
739
740        <para>
741          This configuration can be used to provide translations to some parts of the web gui.
742          The aim is to externalize all hard-coded gui elements from the code but
743          it's a long way before this is a reality. The default text elements of
744          the gui are shipped within the BASE jar files and doesn't have any
745          locale-specific dependency. This means that unless a more specific
746          translation is provided the default texts are always used as a fallback.
747          Most of the default texts are found in property files in the
748          <filename>/net/sf/basedb/clients/web/resources</filename>
749          directory inside the <filename>base-webclient-3.x.jar</filename>
750          file. Translations should be located in the same relative path
751          either inside their own JAR file or in the <filename>WEB-INF/classes</filename> 
752          directory. The file names should be extended with the language, country
753          and variant separated with an underscore. For example, files with a swedish
754          translation should be named <filename>*_sv.properties</filename>, and files
755          with a swedish translation in Finland using the 'foo' variant should be
756          named <filename>*_sv_FI_foo.properties</filename>.
757        </para>
758       
759        <note>
760          <para>
761            Note that it is valid to have empty values for language and/or country
762            and still specify a variant. Underscores are NOT collapsed. For
763            example, in a swedish translation using the 'foo' variant the
764            files should be named <filename>*_sv__foo.properties</filename>.
765          </para>
766        </note>
767       
768        <important>
769          <para>
770            All files should be saved in UTF-8 format.
771          </para>
772        </important>
773       
774      </listitem>
775    </varlistentry>
776   
777    </variablelist>
778  </simplesect>
779
780  <simplesect id="appendix.base.config.ssl">
781    <title>SSL section</title>
782   
783    <para>
784      This section is for global configuration of SSL (HTTPS) connection
785      settings used when BASE need to access external file items. Note that
786      users can re-configure SSL connections per-file
787      basis by setting up File-server items, so there is usually no need
788      to change anything in this section. If the majority of users on the
789      BASE server is using a particular https file server for external files it
790      may make sense to register the certificates globally.
791    </para>
792   
793    <para>
794      When a https connection is made the server must present a valid
795      certificate or the client (BASE) will refuse to connect to it.
796      Typically, all certificates that have been signed by a recognised
797      Certification Authority are considered valid. The major reason for
798      configuring this section is to provide support for servers that
799      use a self-signed certificate.
800      Server-side certificate are stored in a <emphasis>trust-store</emphasis>.
801      A default trust-store is shipped with the Java runtime installation
802      and is found in <filename>&lt;java-home&gt;/jre/lib/security/cacerts</filename>.
803      This file contains the certificates of all recognised certification authorities.
804    </para>
805   
806    <para>
807      A https server may also require that the client has a valid certificate
808      in order to accept connections from it. Typically, the owner of the
809      server issues a certificate that the client must install in order
810      to access the server. This type of certificate is stored in a
811      <emphasis>key-store</emphasis>. By default, no key-store is setup.
812    </para>
813   
814    <para>
815      If all you need is to support servers with self-signed certificates we
816      recommend that those certificates are imported to the above mentioned file.
817      No configuration changes are needed. If a key-store is needed, you must also
818      configure the trust-store. Read the <ulink 
819      url="http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html"
820      >Java Secure Socket Extension Reference Guide</ulink> for more information about Java
821      security and SSL. Java ships with a certificate management tool that can be used
822      to manage certificate files and a lot of other things. The
823      <ulink url="http://java.sun.com/javase/6/docs/technotes/tools/windows/keytool.html"
824      >keytool - Key and Certificate Management Tool</ulink> document contains more information
825      about this tool.
826    </para>
827   
828    <para>
829      If you want to setup your own test environment with a https server that only
830      accepts clients with a trusted certificate you can find some information about
831      this on our wiki: <ulink url="https://base.thep.lu.se/wiki/HttpsFiles"
832      >https://base.thep.lu.se/wiki/HttpsFiles</ulink>
833    </para>
834   
835    <variablelist>
836    <varlistentry>
837      <term><property>ssl.context.protocol</property></term>
838      <listitem>
839        <para>
840        The SSL protocol to use. The default value is TLS.
841          </para>
842      </listitem>
843    </varlistentry>
844    <varlistentry>
845      <term><property>ssl.context.provider</property></term>
846      <listitem>
847        <para>
848        A security provider implementation. If not specified a suitable default is
849        selected.
850          </para>
851      </listitem>
852    </varlistentry>
853    <varlistentry>
854      <term><property>ssl.keystore.file</property></term>
855      <listitem>
856        <para>
857        The full path to a key-store file. If not specified no key-store is used.
858          </para>
859      </listitem>
860    </varlistentry>
861    <varlistentry>
862      <term><property>ssl.keystore.password</property></term>
863      <listitem>
864        <para>
865        The password for unlocking the keys in the key-store. All keys must use
866        the same password.
867          </para>
868      </listitem>
869    </varlistentry>
870    <varlistentry>
871      <term><property>ssl.keystore.type</property></term>
872      <listitem>
873        <para>
874        The file type of the key-store file. The default value is 'JKS'.
875          </para>
876      </listitem>
877    </varlistentry>
878    <varlistentry>
879      <term><property>ssl.keystore.provider</property></term>
880      <listitem>
881        <para>
882        The name of a provider implementation to use for reading the key-store file.
883        If not specified a suitable default is used.
884          </para>
885      </listitem>
886    </varlistentry>
887    <varlistentry>
888      <term><property>ssl.keystore.algorithm</property></term>
889      <listitem>
890        <para>
891        The algorithm used in the key-store file. The default value is
892        'SunX509'.
893          </para>
894      </listitem>
895    </varlistentry>
896    <varlistentry>
897      <term><property>ssl.truststore.file</property></term>
898      <listitem>
899        <para>
900        The full path to a trust-store certificate file. If not specified
901        the default depends on the key-store setting. If no key-store is
902        configured, the default trust-store is used. If a key-store has
903        been configured no trust-store is used.
904          </para>
905      </listitem>
906    </varlistentry>
907    <varlistentry>
908      <term><property>ssl.truststore.password</property></term>
909      <listitem>
910        <para>
911        The password for unlocking the certificates in the trust-store. All certificates
912        must use the same password.
913          </para>
914      </listitem>
915    </varlistentry>
916    <varlistentry>
917      <term><property>ssl.truststore.type</property></term>
918      <listitem>
919        <para>
920        The file type of the trust-store file. The default value is 'JKS'.
921          </para>
922      </listitem>
923    </varlistentry>
924    <varlistentry>
925      <term><property>ssl.truststore.provider</property></term>
926      <listitem>
927        <para>
928        The name of a provider implementation to use for reading the trust-store file.
929        If not specified a suitable default is used.
930          </para>
931      </listitem>
932    </varlistentry>
933    <varlistentry>
934      <term><property>ssl.truststore.algorithm</property></term>
935      <listitem>
936        <para>
937        The algorithm used in the trust-store file. The default value is
938        'PKIX'.
939          </para>
940      </listitem>
941    </varlistentry>
942    </variablelist>
943   
944  </simplesect>
945 
946  <simplesect id="appendix.base.config.migrate">
947    <title>Migration section</title>
948   
949    <para>
950      The settings in this section only affect the migration program that can
951      be used to move a BASE installation from a MySQL database to PostgreSQL.
952      For more information about this see <xref linkend="installation.migrate" />.
953    </para>
954   
955    <variablelist>
956      <varlistentry>
957        <term><property>migrate.export.compress</property></term>
958        <listitem>
959          <para>
960            Enable this option
961            to compress the data files generated by the export. This may
962            improve performance in case disk speed is a limiting factor.
963            Default is to not compress.
964          </para>
965        </listitem>
966      </varlistentry>
967      <varlistentry>
968        <term><property>migrate.export.fetch-size</property></term>
969        <listitem>
970          <para>
971            The number
972            of rows that should be fetch at the same time from the database.
973            A higher value may increase the performance but uses more
974            memory. The default value is 20000.
975          </para>
976        </listitem>
977      </varlistentry>
978      <varlistentry>
979        <term><property>migrate.import.analyze</property></term>
980        <listitem>
981          <para>
982            Enable this flag to issue an SQL statment for statistical
983            analysis of the imported data before continuing with the next
984            table. Disabling this may result in very poor performance. This
985            option is enabled by default.
986          </para>
987        </listitem>
988      </varlistentry>
989 
990      <varlistentry>
991        <term><property>migrate.import.drop-primary-key</property></term>
992        <listitem>
993          <para>
994            Enable this flag to drop the primary key of a table before
995            importing data to it. This may increase the performance. The
996            primary key is re-created after the data has been imported.
997            This option is enabled by default.
998          </para>
999        </listitem>
1000      </varlistentry>
1001     
1002      <varlistentry>
1003        <term><property>migrate.import.drop-constraints</property></term>
1004        <listitem>
1005          <para>
1006            Enable this flag to drop unique constraints and indexes before
1007            importing data to a table. This may increase the performance.
1008            The constraints and indexes are re-created after the data has been
1009            imported. NOTE! Foreign key constraints are not affected by this flag,
1010            since they must always be dropped. This option is enabled by
1011            default.
1012          </para>
1013        </listitem>
1014      </varlistentry>
1015    </variablelist>
1016   
1017  </simplesect>
1018
1019</appendix>
1020
Note: See TracBrowser for help on using the repository browser.