@@ -214,6 +214,20 @@ public class InfinispanRegionFactory implements RegionFactory {
214
214
*/
215
215
public static final String PENDING_PUTS_CACHE_NAME = "pending-puts" ;
216
216
217
+ /**
218
+ * A local, lightweight cache for pending puts, which is
219
+ * non-transactional and has aggressive expiration settings.
220
+ * Locking is still required since the putFromLoad validator
221
+ * code uses conditional operations (i.e. putIfAbsent)
222
+ */
223
+ public static final Configuration PENDING_PUTS_CACHE_CONFIGURATION = new ConfigurationBuilder ()
224
+ .clustering ().cacheMode (CacheMode .LOCAL )
225
+ .transaction ().transactionMode (TransactionMode .NON_TRANSACTIONAL )
226
+ .expiration ().maxIdle (TimeUnit .SECONDS .toMillis (60 ))
227
+ .storeAsBinary ().enabled (false )
228
+ .locking ().isolationLevel (IsolationLevel .READ_COMMITTED )
229
+ .jmxStatistics ().disable ().build ();
230
+
217
231
private EmbeddedCacheManager manager ;
218
232
219
233
private final Map <String , TypeOverrides > typeOverrides = new HashMap <String , TypeOverrides >();
@@ -345,7 +359,7 @@ public AccessType getDefaultAccessType() {
345
359
346
360
@ Override
347
361
public long nextTimestamp () {
348
- return System .currentTimeMillis () / 100 ;
362
+ return System .currentTimeMillis ();
349
363
}
350
364
351
365
public void setCacheManager (EmbeddedCacheManager manager ) {
@@ -374,7 +388,7 @@ public void start(SessionFactoryOptions settings, Properties properties) throws
374
388
}
375
389
}
376
390
defineGenericDataTypeCacheConfigurations ( properties );
377
- definePendingPutsCache ( );
391
+ manager . defineConfiguration ( PENDING_PUTS_CACHE_NAME , PENDING_PUTS_CACHE_CONFIGURATION );
378
392
}
379
393
catch (CacheException ce ) {
380
394
throw ce ;
@@ -384,22 +398,6 @@ public void start(SessionFactoryOptions settings, Properties properties) throws
384
398
}
385
399
}
386
400
387
- private void definePendingPutsCache () {
388
- final ConfigurationBuilder builder = new ConfigurationBuilder ();
389
- // A local, lightweight cache for pending puts, which is
390
- // non-transactional and has aggressive expiration settings.
391
- // Locking is still required since the putFromLoad validator
392
- // code uses conditional operations (i.e. putIfAbsent).
393
- builder .clustering ().cacheMode ( CacheMode .LOCAL )
394
- .transaction ().transactionMode ( TransactionMode .NON_TRANSACTIONAL )
395
- .expiration ().maxIdle ( TimeUnit .SECONDS .toMillis ( 60 ) )
396
- .storeAsBinary ().enabled ( false )
397
- .locking ().isolationLevel ( IsolationLevel .READ_COMMITTED )
398
- .jmxStatistics ().disable ();
399
-
400
- manager .defineConfiguration ( PENDING_PUTS_CACHE_NAME , builder .build () );
401
- }
402
-
403
401
protected org .infinispan .transaction .lookup .TransactionManagerLookup createTransactionManagerLookup (
404
402
SessionFactoryOptions settings , Properties properties ) {
405
403
return new HibernateTransactionManagerLookup ( settings , properties );
0 commit comments