-
Notifications
You must be signed in to change notification settings - Fork 208
/
jbossts-properties.xml
348 lines (336 loc) · 15.6 KB
/
jbossts-properties.xml
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
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
<?xml version="1.0" encoding="UTF-8"?>
<transaction-service>
<properties name="documentation">
<!--
This is the JBossTS configuration file. Note that starting with JBossTS 4.6
the names jbossjta-properties.xml and jbossjts-properties.xml are obsolete.
Both the JTA and JTS versions of JBossTS now read their configuration from
jbossts-properties.xml, although the contents of the file differs between
the JTA and JTS. Care should be taken to use the correct version of the file.
***************************
Property values may be literals or be tokens of the form ${p1[,p2][:v]}
in which case the token values are substituted for the values of the corresponding system
properties as follows:
- Any occurrence of ${p} with the System.getProperty(p) value.
If there is no such property p defined, then the ${p} reference will remain unchanged.
- If the property reference is of the form ${p:v} and there is no such property p,
then the default value v will be returned.
- If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
the primary and the secondary properties will be tried in turn, before
returning either the unchanged input, or the default value.
The property ${/} is replaced with System.getProperty("file.separator")
value and the property ${:} is replaced with System.getProperty("path.separator").
Note this substitution applies to property values only at the point they are read from
the config file. Tokens in system properties won't be substituted.
-->
</properties>
<properties depends="common" name="arjuna">
<!--
Transaction Reaper Timeout (default is 120000 ms).
-->
<property
name="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="120000"/>
<!--
Transaction Reaper Mode, can be: PERIODIC or DYNAMIC. Default is DYNAMIC.
-->
<property name="com.arjuna.ats.arjuna.coordinator.txReaperMode" value="DYNAMIC"/>
<!--
Transaction Reaper Cancel Wait Period (default is 500 ms, min is 10 msecs).
-->
<property
name="com.arjuna.ats.arjuna.coordinator.txReaperCancelWaitPeriod" value="500"/>
<!--
Transaction Reaper Cancel Fail Wait Period (default is 500 ms, min is 10 msecs).
-->
<property
name="com.arjuna.ats.arjuna.coordinator.txReaperCancelFailWaitPeriod" value="500"/>
<!--
Transaction Reaper Zombie Max (default is 8).
-->
<property
name="com.arjuna.ats.arjuna.coordinator.txReaperZombieMax" value="8"/>
<!--
(default is NO)
-->
<property name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/>
<!--
(default is NO)
-->
<property name="com.arjuna.ats.arjuna.coordinator.asyncPrepare" value="NO"/>
<!--
(default is YES)
-->
<property
name="com.arjuna.ats.arjuna.coordinator.commitOnePhase" value="YES"/>
<!--
(default is defaultStore)
-->
<property name="com.arjuna.ats.arjuna.objectstore.localOSRoot" value="defaultStore"/>
<!--
default is under user.home - must be writeable!)
-->
<property
name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="PutObjectStoreDirHere"/>
<!--
(default is ON)
-->
<property
name="com.arjuna.ats.arjuna.objectstore.objectStoreSync" value="ON"/>
<!--
(default is ShadowNoFileLockStore)
-->
<property
name="com.arjuna.ats.arjuna.objectstore.objectStoreType" value="ShadowNoFileLockStore"/>
<!--
(default is 255)
-->
<property
name="com.arjuna.ats.arjuna.objectstore.hashedDirectories" value="255"/>
<!--
(default is ON)
-->
<property
name="com.arjuna.ats.arjuna.objectstore.transactionSync" value="ON"/>
<!--
(Must be unique across all Arjuna instances.)
-->
<property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="1"/>
<!--
Base port number for determining a unique number to associate with an instance of the transaction service
(which is needed in order to support multiple instances on the same machine).
Use the value 0 to allow the system to select the first available port number.
If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
to the loopback address is created or until the the maximum number of ports (specified by the
com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
reaches the maximum possible port number.
-->
<property
name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort" value="0"/>
<!--
The maximum number of ports to try starting from the value specified by the property
com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort. Any non-numeric or value less than 1 will
defautl to 1.
-->
<property
name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts" value="1"/>
<!--
Run the TransactionStatusManager to allow out-of-process recovery managers to query
the status of transactions owned by this coordinator. Default is YES.
This can be set to NO in cases where an ObjectStore is used only by one transaction manager
and the recovery manager for that store is in the same JVM. In any other cases disabling the
TransactionStatusManager may cause crash recovery to misbehave.
-->
<property
name="com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable" value="YES"/>
<!-- property
name="com.arjuna.ats.arjuna.coordinator.actionStore"
value="HashedActionStore"
value="JDBCActionStore"
-->
<!-- property
name="com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
value="JDBCAccess"
-->
<!-- property
name="com.arjuna.ats.arjuna.objectstore.objectStoreType"
value="ShadowNoFileLockStore"
value="JDBCStore"
-->
<!-- property
name="com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
value="JDBCAccess"
-->
<!-- property
name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial"
value="1"
-->
<!-- property
name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum"
value="1"
-->
<!-- property
name="com.arjuna.ats.arjuna.objectstore.jdbcPoolPutConnections"
value="false"
-->
<!-- property
name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.size"
value=""
-->
<!-- property
name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.period"
value=""
-->
<!--
The location for creating temporary files, e.g., Uids.
Default is under user.home.
IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix
may not be!
-->
<!--
<property
name="com.arjuna.ats.arjuna.common.varDir"
value="var"/>
-->
<!-- Should beforeCompletion synchronizations be fired even when it is known the
transaction can't commit e.g. is marked rollbackOnly? (default NO).
Note that turning this on still does not guarantee the syncronizations will run in all cases
e.g. explicit rollback() calls. JTS users should also take into account the supportRollbackSync
property which affects both beforeCompletion and afterCompletion syncs. -->
<!--
<property name="com.arjuna.ats.coordinator.beforeCompletionWhenRollbackOnly" value="NO"/>
-->
</properties>
<properties name="common">
<!-- CLF 2.0 properties -->
<property name="com.arjuna.common.util.logging.DebugLevel"
type="System" value="0x00000000"/>
<property name="com.arjuna.common.util.logging.FacilityLevel"
type="System" value="0xffffffff"/>
<property name="com.arjuna.common.util.logging.VisibilityLevel"
type="System" value="0xffffffff"/>
<property name="com.arjuna.common.util.logger" type="System" value="log4j"/>
</properties>
<properties depends="arjuna" name="txoj">
<!--
(default is LockStore of installation - must be writeable!)
-->
<!--
<property
name="com.arjuna.ats.txoj.lockstore.lockStoreDir"
value="LockStore"/>
-->
<!--
(default is BasicLockStore)
-->
<property name="com.arjuna.ats.txoj.lockstore.lockStoreType" value="BasicLockStore"/>
<!--
(default is NO)
-->
<property name="com.arjuna.ats.txoj.lockstore.multipleLockStore" value="NO"/>
<!--
(default is YES)
-->
<property name="com.arjuna.ats.txoj.lockstore.singleLockStore" value="YES"/>
<!--
(default is YES)
-->
<property
name="com.arjuna.ats.txoj.lockstore.allowNestedLocking" value="YES"/>
</properties>
<properties depends="arjuna" name="jta">
<!--
Support subtransactions in the JTA layer?
Default is NO.
-->
<property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/>
<property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/>
<!--
com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
-->
<property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/>
<!--
com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple
-->
<property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.HORNETQ1"
value="org.hornetq.jms.server.recovery.HornetQXAResourceRecovery;org.hornetq.core.remoting.impl.invm.InVMConnectorFactory"/>
<!--you'll need something like this if the HornetQ Server is remote-->
<!--
<property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.HORNETQ2"
value="org.hornetq.jms.server.recovery.HornetQXAResourceRecovery;org.hornetq.core.remoting.impl.netty.NettyConnectorFactory,guest,guest,host=localhost,port=5445"/>-->
<!--you'll need something like this if the HornetQ Server is remote and has failover configured-->
<!--
<property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.HORNETQ2"
value="org.hornetq.jms.server.recovery.HornetQXAResourceRecovery;org.hornetq.core.remoting.impl.netty.NettyConnectorFactory,guest,guest,host=localhost,port=5445;org.hornetq.core.remoting.impl.netty.NettyConnectorFactory,guest,guest,host=localhost2,port=5446"/>-->
<property name="com.arjuna.ats.jta.xaRecoveryNode" value="1"/>
</properties>
<properties depends="arjuna,txoj,jta" name="recoverymanager">
<!--
Properties used only by the RecoveryManager.
-->
<!--
Periodic recovery settings.
Time values in this section are in seconds.
-->
<!--
Interval in seconds between initiating the periodic recovery modules.
Default is 120 seconds.
-->
<property
name="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" value="120"/>
<!--
Interval in seconds between first and second pass of periodic recovery.
Default is 10 seconds.
-->
<property
name="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod" value="10"/>
<!--
The port number on which the recovery manager listens.
-->
<property name="com.arjuna.ats.arjuna.recovery.recoveryPort" value="4712"/>
<!--
The address on which the recovery manager listens.
If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
-->
<property name="com.arjuna.ats.arjuna.recovery.recoveryAddress" value=""/>
<!--
Periodic recovery modules to use. Invoked in sort-order of names.
-->
<property
name="com.arjuna.ats.arjuna.recovery.recoveryExtension1" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
<property
name="com.arjuna.ats.arjuna.recovery.recoveryExtension2" value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
<property
name="com.arjuna.ats.arjuna.recovery.recoveryExtension3" value="com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"/>
<!--
Expired entry removal
-->
<!--
Expiry scanners to use (order of invocation is random).
Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
-->
<property
name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager" value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
<!--
Interval, in hours, between running the expiry scanners.
This can be quite long. The absolute value determines the interval -
if the value is negative, the scan will NOT be run until after one
interval has elapsed. If positive the first scan will be immediately
after startup. Zero will prevent any scanning.
Default = 12 = run immediately, then every 12 hours.
-->
<property
name="com.arjuna.ats.arjuna.recovery.expiryScanInterval" value="12"/>
<!--
This is the interval, in hours, after which a process that cannot be contacted will be considered dead.
It should be long enough to avoid accidentally removing valid entries due to short lived
transient errors such as network downtime. Zero = Never removed. Default is 12.
-->
<property
name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime" value="12"/>
<!--
Use this to fix the port on which the TransactionStatusManager listens,
The default behaviour is to use any free port.
-->
<property
name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort" value="0"/>
<!--
Use this to fix the address on which the TransactionStatusManager binds,
The default behaviour is to use the loopback address (ie localhost).
If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
-->
<property
name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress" value=""/>
<!--
For cases where the recovery manager is in process with the transaction manager and nothing else uses
the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
-->
<property name="com.arjuna.ats.arjuna.recovery.recoveryListener" value="YES"/>
</properties>
<properties depends="jta" name="jdbc">
<!--
property name="com.arjuna.ats.jdbc.isolationLevel" value="TRANSACTION_SERIALIZABLE"/>
-->
</properties>
</transaction-service>