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