-
Notifications
You must be signed in to change notification settings - Fork 0
/
proai.properties
276 lines (236 loc) · 9.09 KB
/
proai.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
#
# Proai Configuration
# ================================
##############################
# Front-End OAI-PMH Behavior #
##############################
# For multi-part OAI responses, this specifies the maximum time to wait
# between requests before cleaning up the session.
#
proai.secondsBetweenRequests = 600
# The maximum number of records to include in each part of a
# ListRecords response.
#
proai.incompleteRecordListSize = 250
# The maximum number of record headers to include in each part of a
# ListIdentifiers response.
#
proai.incompleteIdentifierListSize = 500
# The maximum number of sets to include in each part of a
# ListSets response.
#
proai.incompleteSetListSize = 500
############################
# Back-End Update Behavior #
############################
# How often Proai should poll the driver for updates.
#
proai.driverPollSeconds = 120
# Set this to false to start the service without polling enabled.
# Note: You can also change polling behavior while the service is running
# by executing the following SQL against the database:
#
# <pre>
# UPDATE rcAdmin SET pollingEnabled = 0 (or 1 to enable it)
# </pre>
#
# The value configured via this property will always be put into effect
# when the service is started.
#
proai.driverPollingEnabled = true
# The maximum number of worker threads to use while retrieving new/updated
# OAI records from the driver.
#
proai.maxWorkers = 5
# How many requests each worker thread should make before returning the
# batch to the database to be committed.
#
proai.maxWorkBatchSize = 10
# If a request of the driver for a specific record fails for any reason,
# this is the maximum number of times that record should be automatically
# retried before giving up on that record. If this is exceeded, the
# record information will remain in the rcFailure table until it is dealt
# with manually.
#
proai.maxFailedRetries = 3
# The maximum size the in-memory record commit queue is allowed to reach.
# If this threshold is reached, it means that worker threads are returning
# results faster than they can be committed to the database by the commit
# thread. If this occurs, workers will have to wait until more items have
# been committed before they can add any more to the queue.
#
proai.maxCommitQueueSize = 120
# The maximum number of record updates (from the in-memory commit queue)
# that should be committed to the database at one time.
#
proai.maxRecordsPerTransaction = 60
# Whether to run schema validation during the update process.
# This defaults to true.
#
proai.validateUpdates = false
##########################
# File Storage Locations #
##########################
# The directory where cache files should be stored. This will be created
# if it doesn't exist.
#
proai.cacheBaseDir = build/test/cache
# Where OAI-PMH session data will be stored when needed.
# This directory will be created at startup if it doesn't already exist.
#
# Each session consists of a series of small data files in a uniquely-named
# subdirectory beneath this one. They are automatically created and
# removed as needed.
#
proai.sessionBaseDir = build/test/sessions
# Where to store schema files if validation is enabled.
#
proai.schemaDir = build/test/schemas
##################################
# Primary Database Configuration #
##################################
# The JDBC connection URL for the database that will be used by the cache.
#
# <p>Embedded McKoi example:<br/>
# <code>jdbc:mckoi:local://build/test/mckoi/mckoi.conf?create_or_boot=true</code>
# </p>
# <p>Local McKoi example:<br/>
# <code>jdbc:mckoi://localhost/</code>
# </p>
# <p>Local MySQL example:<br/>
# <code>jdbc:mysql://localhost/proai?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true</code>
# </p>
# <p>Local Oracle example:<br/>
# <code>jdbc:oracle:thin:@localhost:1521:proai</code>
# </p>
# <p>Local Postgres example:<br/>
# <code>jdbc:postgresql://localhost/proai</code>
# </p>
#
proai.db.url = jdbc:postgresql://postgres/proai
# The class name of the JDBC driver appropriate for use
# with the connection url. The appropriate library must be
# in the classpath.
#
# <p>Mckoi example:<br/>
# <code>proai.db.driverClassName = com.mckoi.JDBCDriver</code>
# </p>
# <p>MySQL example:<br/>
# <code>proai.db.driverClassName = com.mysql.jdbc.Driver</code>
# </p>
# <p>Oracle example:<br/>
# <code>proai.db.driverClassName = oracle.jdbc.driver.OracleDriver</code>
# </p>
# <p>Postgres example:<br/>
# <code>proai.db.driverClassName = org.postgresql.Driver</code>
# </p>
#
proai.db.driverClassName = org.postgresql.Driver
# If using MySQL, this indicates whether to stream query results
# one-at-a-time from the database to conserve memory. If unspecified,
# this defaults to false.
#
# <p>
# Background: For large repositories, MySQL's default behavior of reading
# all results into memory can cause <code>OutOfMemory</code> errors in
# Proai. If this value is set to true, memory requirements for Proai
# will be lower, but query performance will suffer. For more detail,
# please see the
# <a href="http://dev.mysql.com/doc/connector/j/en/cj-implementation-notes.html">Connector-J
# Implementation Notes</a>.
# </p>
#
proai.db.mySQLResultTrickling = false
# The database user. This user should already exist in the database
# and must have permission to create, modify, and query tables.
#
proai.db.username = proai
# The password for the database user.
#
proai.db.password = proai
###################################
# Advanced Database Configuration #
###################################
# The maxiumum number of connections from the pool that may be active
# (leased) at once. If unspecified, this defaults to 8.
#
proai.db.maxActive = 16
# The maximum number of milliseconds to wait for a connection from the
# pool if none are available. If unspecified, this defaults to -1,
# which means "indefinite".
#
proai.db.maxWait = 5000
# proai.db.*
#
# Any other properties defined by the Apache commons-DBCP project
# can be specified. See the full list (and documentation) at
# http://jakarta.apache.org/commons/dbcp/configuration.html
#
# To use standard DBCP properties, just prefix them with "proai.db."
# here.
# proai.db.connection.*
#
# To use JDBC driver-specific properties (in DBCP, these
# are called "connectionProperties"), prefix them with
# "proai.db.connection.".
# The Java class responsible for creating the database tables required
# by Proai's record cache.
#
# <p>The name of the property should be the driverClassName of the JDBC
# driver you're using, plus ".ddlConverter".</p>
#
com.mckoi.JDBCDriver.ddlConverter = proai.util.McKoiDDLConverter
com.mysql.jdbc.Driver.ddlConverter = proai.util.MySQLDDLConverter
oracle.jdbc.driver.OracleDriver.ddlConverter = proai.util.OracleDDLConverter
org.postgresql.Driver.ddlConverter = proai.util.PostgresDDLConverter
# Whether the database interprets backslashes in SQL strings as
# escape characters. This is needed to that Proai can formulate
# proper queries against the database.
#
# <p>The name of the property should be the driverClassName of the JDBC
# driver you're using plus ".backslashIsEscape". If unspecified,
# backslashIsEscape will be assumed true.</p>
#
com.mckoi.JDBCDriver.backslashIsEscape = true
com.mysql.jdbc.Driver.backslashIsEscape = true
oracle.jdbc.driver.OracleDriver.backslashIsEscape = false
org.postgresql.Driver.backslashIsEscape = true
####################################
# OAIDriver-Specific Configuration #
####################################
# The class name of the proai.driver.OAIDriver implementation to use.
# The appropriate library must be in the classpath.
#
proai.driverClassName = au.com.redboxresearchdata.proai.SolrDriver
# The directory where OAIDriverImpl can find the files it requires.
#
proai.driver.simple.baseDir = build/test/input
# SOLR data driver Configuration
proai.driver.solr.baseUrl = http://solr:8983
proai.driver.solr.core = dataset
# The field name used to qualify record types
proai.driver.solr.recordTypeField = record_type_s
# The record type for "Identity"
proai.driver.solr.recordTypeIdentity = oaipmh_identity
# The record type for metadata format
proai.driver.solr.recordTypeMetadataFormat = oaipmh_metadataformat
# The record type for sets
proai.driver.solr.recordTypeSet = oaipmh_setspec
# The record type for the actual records
proai.driver.solr.recordTypeRecord = oaipmh_record
# The ID for the Driver's internal metadata
proai.driver.solr.idOaipmhMeta = oaipmh_meta
# The solr field name for "spec set" for sets
proai.driver.solr.fieldSpecSet = setSpec_s
# The solr field name for set name
proai.driver.solr.fieldSpecName = setName_s
# The solr field name for the record's schema
proai.driver.solr.fieldRecordSchema = metadataSchema_s
# The solr field name for the record's xml
proai.driver.solr.fieldRecordXml = xml_s
# The solr field name for the metadata's prefix
proai.driver.solr.fieldMetadataPrefix = prefix_s
# The solr field name for metadata's namespace
proai.driver.solr.fieldMetadataNamespace = metadataNamespace_s
# The solr field name from metadata's schema
proai.driver.solr.fieldMetadataSchema = schema_s