在使用atomikos 事务管理中,当并发数超过50的时候会产生异常如下:
java.lang.IllegalStateException:Max number of active transactions reched:50
java.lang.IllegalStateException:Max number of active transactions reched:50
原因:
atomikos的默认配置中 transactions.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
|
# SAMPLE PROPERTIES FILE FOR THE TRANSACTION SERVICE # THIS FILE ILLUSTRATES THE DIFFERENT SETTINGS FOR THE TRANSACTION MANAGER # UNCOMMENT THE ASSIGNMENTS TO OVERRIDE DEFAULT VALUES; # Required: factory implementation class of the transaction core.
# NOTE: there is no default for this , so it MUST be specified!
# com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory # Set base name of file where messages are output # (also known as the 'console file' ).
# # com.atomikos.icatch.console_file_name = tm.out # Size limit (in bytes) for the console file;
# negative means unlimited. # # com.atomikos.icatch.console_file_limit=- 1
# For size-limited console files, this option
# specifies a number of rotating files to # maintain. # # com.atomikos.icatch.console_file_count= 1
# Set the number of log writes between checkpoints # # com.atomikos.icatch.checkpoint_interval= 500
# Set output directory where console file and other files are to be put # make sure this directory exists!
# # com.atomikos.icatch.output_dir = ./ # Set directory of log files; make sure this directory exists!
# # com.atomikos.icatch.log_base_dir = ./ # Set base name of log file # this name will be used as the first part of
# the system-generated log file name # # com.atomikos.icatch.log_base_name = tmlog # Set the max number of active local transactions # or - 1 for unlimited.
# # com.atomikos.icatch.max_actives = 50 (原因)
# Set the default timeout (in milliseconds) for local transactions
# # com.atomikos.icatch.default_jta_timeout = 10000
# Set the max timeout (in milliseconds) for local transactions
# # com.atomikos.icatch.max_timeout = 300000
# The globally unique name of this transaction manager process
# override this value with a globally unique name
# # com.atomikos.icatch.tm_unique_name = tm # Do we want to use parallel subtransactions? JTA's default
# is NO for J2EE compatibility
# # com.atomikos.icatch.serial_jta_transactions= true
# If you want to do explicit resource registration then
# you need to set this value to false .
# # com.atomikos.icatch.automatic_resource_registration= true # Set this to WARN, INFO or DEBUG to control the granularity
# of output to the console file. # # com.atomikos.icatch.console_log_level=WARN # Do you want transaction logging to be enabled or not? # If set to false , then no logging overhead will be done
# at the risk of losing data after restart or crash. # # com.atomikos.icatch.enable_logging= true
# Should two-phase commit be done in (multi-)threaded mode or not? # Set this to false if you want commits to be ordered according
# to the order in which resources are added to the transaction. # # NOTE: threads are reused on JDK 1.5 or higher.
# For JDK 1.4 , thread reuse is enabled as soon as the
# concurrent backport is in the classpath - see # http: //mirrors.ibiblio.org/pub/mirrors/maven2/backport-util-concurrent/backport-util-concurrent/
# # com.atomikos.icatch.threaded_2pc= false
# Should shutdown of the VM trigger shutdown of the transaction core too? # # com.atomikos.icatch.force_shutdown_on_vm_exit= false
|
修改默认配置中的:
1
|
com.atomikos.icatch.max_actives = 50 ------改为更大就可以解决
|
本文转自yunlielai51CTO博客,原文链接:http://blog.51cto.com/4925054/2067855,如需转载请自行联系原作者