项目最近准备做集群,涉及到缓存企业级数据的问题,方案适用的是jbosscache,服务器为weblogic,jdk为1.4
现在遇到的问题是:涉及到多用户并发修改的情况就出现卡死的问题,等很长一段时间才能恢复正常。
以下为配置文件,请指教
<server>
<classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/> <mbean code="org.jboss.cache.TreeCache"
name="jboss.cache:service=TreeCache"> <depends>jboss:service=Naming</depends>
<depends>jboss:service=TransactionManager</depends> <!--
Configure the TransactionManager DummyTransactionManagerLookup GenericTransactionManagerLookup BatchModeTransactionManagerLookup
org.jboss.cache.GenericTransactionManagerLookup-->
<attribute name="TransactionManagerLookupClass">org.jboss.cache.DummyTransactionManagerLookup</attribute> <!--锁定节点隔离级别 (ignored if NodeLockingScheme attribute set to OPTIMISTIC value)
Isolation level : SERIALIZABLE
REPEATABLE_READ (default)
READ_COMMITTED
READ_UNCOMMITTED
NONE
-->
<attribute name="IsolationLevel">REPEATABLE_READ</attribute>
<!--节点锁
Node locking scheme:
OPTIMISTIC :lower performent , hight cpu
PESSIMISTIC (default) : hight performent , but maybe dead-lock
-->
<attribute name="NodeLockingScheme">PESSIMISTIC</attribute> <!--
This JIRA will restore the old behavior for the pessimistic locking use case. A new cache configuration flag
LockParentForChildInsertRemove will be added. If set to false, the 1.4.0.SP1 behavior of only requiring the RL
will be restored. The default value of the flag will be false.
<attribute name="LockParentForChildInsertRemove">true</attribute> -->
<!--
Valid modes are LOCAL
REPL_ASYNC
REPL_SYNC
INVALIDATION_ASYNC
INVALIDATION_SYNC
-->
<attribute name="CacheMode">REPL_SYNC</attribute> <!--
Just used for async repl: use a replication queue
-->
<attribute name="UseReplQueue">false</attribute> <!--
Replication interval for replication queue (in ms)
-->
<attribute name="ReplQueueInterval">0</attribute> <!--
Max number of elements which trigger replication
-->
<attribute name="ReplQueueMaxElements">0</attribute> <!-- Name of cluster. Needs to be the same for all clusters, in order
to find each other
-->
<attribute name="ClusterName">imep1-cluster</attribute> <!-- JGroups protocol stack properties. Can also be a URL,
e.g. file:/home/bela/default.xml
<attribute name="ClusterProperties"></attribute>
--> <attribute name="ClusterConfig">
<config>
<!-- UDP: if you have a multihomed machine,
set the bind_addr attribute to the appropriate NIC IP address, e.g bind_addr="192.168.0.2"
-->
<!-- UDP: On Windows machines, because of the media sense feature
being broken with multicast (even after disabling media sense)
set the loopback attribute to true -->
<!--ip_ttl="2" loopback="false" bind_addr="10.70.85.91"224.0.0.1 45588 enable_bundling="false" discard_incompatible_packets="false"-->
<UDP
mcast_addr="224.0.0.1"
mcast_port="45566"
tos="8"
ucast_recv_buf_size="20000000"
ucast_send_buf_size="640000"
mcast_recv_buf_size="25000000"
mcast_send_buf_size="640000"
loopback="false"
discard_incompatible_packets="true"
max_bundle_size="64000"
max_bundle_timeout="30"
use_incoming_packet_handler="false"
use_outgoing_packet_handler="false"
ip_ttl="2"
down_thread="false" up_thread="false"
enable_bundling="true" bind_addr="10.70.85.90"/>
<PING timeout="2000"
down_thread="false" up_thread="false" num_initial_members="3"/>
<MERGE2 max_interval="30000"
down_thread="false" up_thread="false" min_interval="10000"/>
<FD_SOCK down_thread="false" up_thread="false"/>
<FD timeout="10000" max_tries="5" down_thread="false" up_thread="false" shun="true"/>
<VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
<pbcast.NAKACK max_xmit_size="60000"
use_mcast_xmit="false" gc_lag="0"
retransmit_timeout="300,600,1200,2400,4800,8800"
down_thread="false" up_thread="false"
discard_delivered_msgs="true"/>
<UNICAST timeout="30,100,500,1000,4400,6000,8000,12000"
down_thread="false" up_thread="false"/>
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
down_thread="false" up_thread="false"
max_bytes="400000"/>
<VIEW_SYNC avg_send_interval="60000" down_thread="false" up_thread="false" />
<pbcast.GMS print_local_addr="true" join_timeout="3000"
down_thread="false" up_thread="false"
join_retry_timeout="2000" shun="true" use_flush="true" flush_timeout="5000" view_ack_collection_timeout="7000"
view_bundling="true"/>
<FC max_credits="2000000" down_thread="false" up_thread="false"
min_threshold="0.10"/>
<!--FRAG2:分块传送协议-->
<FRAG2 frag_size="60000" down_thread="false" up_thread="false"/> <!--20000-->
<!--<pbcast.STREAMING_STATE_TRANSFER down_thread="false" up_thread="false"
use_flush="true" use_reading_thread="true"/>-->
<pbcast.STATE_TRANSFER down_thread="false" up_thread="false"/>
<pbcast.FLUSH down_thread="false" up_thread="false"/>
</config>
</attribute>
<!--
Whether or not to fetch state on joining a cluster
NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive.
-->
<attribute name="FetchInMemoryState">true</attribute> <!--
The max amount of time (in milliseconds) we wait until the
initial state (ie. the contents of the cache) are retrieved from
existing members in a clustered environment
-->
<attribute name="InitialStateRetrievalTimeout">95000</attribute> <attribute name="StateTransferTimeout">95000</attribute>
<attribute name="MethodCallTimeout">95000</attribute>
<!--
Number of milliseconds to wait until all responses for a
synchronous call have been received.
-->
<attribute name="SyncReplTimeout">90000</attribute> <!-- Max number of milliseconds to wait for a lock acquisition -->
<attribute name="LockAcquisitionTimeout">102000</attribute> <!-- Name of the eviction policy class org.jboss.cache.aop.eviction.AopLRUPolicy
<attribute name="EvictionPolicyClass">org.jboss.cache.aop.eviction.AopLRUPolicy</attribute> -->
<!--驱逐策略:管理jbosscache内存-->
<attribute name="EvictionConfig">
<config>
<attribute name="wakeUpIntervalSeconds">10</attribute>
<!-- This defaults to 200000 if not specified -->
<attribute name="eventQueueSize">100000</attribute>
<!-- Name of the DEFAULT eviction policy class. -->
<attribute name="policyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
<!-- Cache wide default -->
<region name="/_default_">
<attribute name="maxNodes">8000</attribute>
<attribute name="timeToLiveSeconds">0</attribute>
<!--<attribute name="minTimeToLiveSeconds">150</attribute>
<attribute name="maxAgeSeconds">250</attribute>-->
</region>
<!-- override policy used for this region -->
<region name="/org/jboss/data" policyClass="org.jboss.cache.eviction.LRUPolicy">
<attribute name="maxNodes">50000</attribute>
<attribute name="minTimeToLiveSeconds">150</attribute>
<attribute name="maxAgeSeconds">250</attribute>
<attribute name="timeToLiveSeconds">0</attribute>
</region>
<!-- We expect a lot of events for this region,
so override the default event queue size -->
<region name="/org/jboss/test/data" eventQueueSize="500000">
<attribute name="maxNodes">60000</attribute>
<attribute name="minTimeToLiveSeconds">150</attribute>
<attribute name="maxAgeSeconds">250</attribute>
<attribute name="timeToLiveSeconds">0</attribute>
</region>
</config>
</attribute>
<!--
Indicate whether to use region based marshalling or not. Set this to true if you are running under a scoped
class loader, e.g., inside an application server. Default is "false".
-->
<attribute name="UseRegionBasedMarshalling">true</attribute>
<attribute name="FetchStateOnStartup">true</attribute>
</mbean> </server>
现在遇到的问题是:涉及到多用户并发修改的情况就出现卡死的问题,等很长一段时间才能恢复正常。
以下为配置文件,请指教
<server>
<classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/> <mbean code="org.jboss.cache.TreeCache"
name="jboss.cache:service=TreeCache"> <depends>jboss:service=Naming</depends>
<depends>jboss:service=TransactionManager</depends> <!--
Configure the TransactionManager DummyTransactionManagerLookup GenericTransactionManagerLookup BatchModeTransactionManagerLookup
org.jboss.cache.GenericTransactionManagerLookup-->
<attribute name="TransactionManagerLookupClass">org.jboss.cache.DummyTransactionManagerLookup</attribute> <!--锁定节点隔离级别 (ignored if NodeLockingScheme attribute set to OPTIMISTIC value)
Isolation level : SERIALIZABLE
REPEATABLE_READ (default)
READ_COMMITTED
READ_UNCOMMITTED
NONE
-->
<attribute name="IsolationLevel">REPEATABLE_READ</attribute>
<!--节点锁
Node locking scheme:
OPTIMISTIC :lower performent , hight cpu
PESSIMISTIC (default) : hight performent , but maybe dead-lock
-->
<attribute name="NodeLockingScheme">PESSIMISTIC</attribute> <!--
This JIRA will restore the old behavior for the pessimistic locking use case. A new cache configuration flag
LockParentForChildInsertRemove will be added. If set to false, the 1.4.0.SP1 behavior of only requiring the RL
will be restored. The default value of the flag will be false.
<attribute name="LockParentForChildInsertRemove">true</attribute> -->
<!--
Valid modes are LOCAL
REPL_ASYNC
REPL_SYNC
INVALIDATION_ASYNC
INVALIDATION_SYNC
-->
<attribute name="CacheMode">REPL_SYNC</attribute> <!--
Just used for async repl: use a replication queue
-->
<attribute name="UseReplQueue">false</attribute> <!--
Replication interval for replication queue (in ms)
-->
<attribute name="ReplQueueInterval">0</attribute> <!--
Max number of elements which trigger replication
-->
<attribute name="ReplQueueMaxElements">0</attribute> <!-- Name of cluster. Needs to be the same for all clusters, in order
to find each other
-->
<attribute name="ClusterName">imep1-cluster</attribute> <!-- JGroups protocol stack properties. Can also be a URL,
e.g. file:/home/bela/default.xml
<attribute name="ClusterProperties"></attribute>
--> <attribute name="ClusterConfig">
<config>
<!-- UDP: if you have a multihomed machine,
set the bind_addr attribute to the appropriate NIC IP address, e.g bind_addr="192.168.0.2"
-->
<!-- UDP: On Windows machines, because of the media sense feature
being broken with multicast (even after disabling media sense)
set the loopback attribute to true -->
<!--ip_ttl="2" loopback="false" bind_addr="10.70.85.91"224.0.0.1 45588 enable_bundling="false" discard_incompatible_packets="false"-->
<UDP
mcast_addr="224.0.0.1"
mcast_port="45566"
tos="8"
ucast_recv_buf_size="20000000"
ucast_send_buf_size="640000"
mcast_recv_buf_size="25000000"
mcast_send_buf_size="640000"
loopback="false"
discard_incompatible_packets="true"
max_bundle_size="64000"
max_bundle_timeout="30"
use_incoming_packet_handler="false"
use_outgoing_packet_handler="false"
ip_ttl="2"
down_thread="false" up_thread="false"
enable_bundling="true" bind_addr="10.70.85.90"/>
<PING timeout="2000"
down_thread="false" up_thread="false" num_initial_members="3"/>
<MERGE2 max_interval="30000"
down_thread="false" up_thread="false" min_interval="10000"/>
<FD_SOCK down_thread="false" up_thread="false"/>
<FD timeout="10000" max_tries="5" down_thread="false" up_thread="false" shun="true"/>
<VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
<pbcast.NAKACK max_xmit_size="60000"
use_mcast_xmit="false" gc_lag="0"
retransmit_timeout="300,600,1200,2400,4800,8800"
down_thread="false" up_thread="false"
discard_delivered_msgs="true"/>
<UNICAST timeout="30,100,500,1000,4400,6000,8000,12000"
down_thread="false" up_thread="false"/>
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
down_thread="false" up_thread="false"
max_bytes="400000"/>
<VIEW_SYNC avg_send_interval="60000" down_thread="false" up_thread="false" />
<pbcast.GMS print_local_addr="true" join_timeout="3000"
down_thread="false" up_thread="false"
join_retry_timeout="2000" shun="true" use_flush="true" flush_timeout="5000" view_ack_collection_timeout="7000"
view_bundling="true"/>
<FC max_credits="2000000" down_thread="false" up_thread="false"
min_threshold="0.10"/>
<!--FRAG2:分块传送协议-->
<FRAG2 frag_size="60000" down_thread="false" up_thread="false"/> <!--20000-->
<!--<pbcast.STREAMING_STATE_TRANSFER down_thread="false" up_thread="false"
use_flush="true" use_reading_thread="true"/>-->
<pbcast.STATE_TRANSFER down_thread="false" up_thread="false"/>
<pbcast.FLUSH down_thread="false" up_thread="false"/>
</config>
</attribute>
<!--
Whether or not to fetch state on joining a cluster
NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive.
-->
<attribute name="FetchInMemoryState">true</attribute> <!--
The max amount of time (in milliseconds) we wait until the
initial state (ie. the contents of the cache) are retrieved from
existing members in a clustered environment
-->
<attribute name="InitialStateRetrievalTimeout">95000</attribute> <attribute name="StateTransferTimeout">95000</attribute>
<attribute name="MethodCallTimeout">95000</attribute>
<!--
Number of milliseconds to wait until all responses for a
synchronous call have been received.
-->
<attribute name="SyncReplTimeout">90000</attribute> <!-- Max number of milliseconds to wait for a lock acquisition -->
<attribute name="LockAcquisitionTimeout">102000</attribute> <!-- Name of the eviction policy class org.jboss.cache.aop.eviction.AopLRUPolicy
<attribute name="EvictionPolicyClass">org.jboss.cache.aop.eviction.AopLRUPolicy</attribute> -->
<!--驱逐策略:管理jbosscache内存-->
<attribute name="EvictionConfig">
<config>
<attribute name="wakeUpIntervalSeconds">10</attribute>
<!-- This defaults to 200000 if not specified -->
<attribute name="eventQueueSize">100000</attribute>
<!-- Name of the DEFAULT eviction policy class. -->
<attribute name="policyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
<!-- Cache wide default -->
<region name="/_default_">
<attribute name="maxNodes">8000</attribute>
<attribute name="timeToLiveSeconds">0</attribute>
<!--<attribute name="minTimeToLiveSeconds">150</attribute>
<attribute name="maxAgeSeconds">250</attribute>-->
</region>
<!-- override policy used for this region -->
<region name="/org/jboss/data" policyClass="org.jboss.cache.eviction.LRUPolicy">
<attribute name="maxNodes">50000</attribute>
<attribute name="minTimeToLiveSeconds">150</attribute>
<attribute name="maxAgeSeconds">250</attribute>
<attribute name="timeToLiveSeconds">0</attribute>
</region>
<!-- We expect a lot of events for this region,
so override the default event queue size -->
<region name="/org/jboss/test/data" eventQueueSize="500000">
<attribute name="maxNodes">60000</attribute>
<attribute name="minTimeToLiveSeconds">150</attribute>
<attribute name="maxAgeSeconds">250</attribute>
<attribute name="timeToLiveSeconds">0</attribute>
</region>
</config>
</attribute>
<!--
Indicate whether to use region based marshalling or not. Set this to true if you are running under a scoped
class loader, e.g., inside an application server. Default is "false".
-->
<attribute name="UseRegionBasedMarshalling">true</attribute>
<attribute name="FetchStateOnStartup">true</attribute>
</mbean> </server>
解决方案 »
- java项目中jsp引用其他文件路径的困惑
- 求助!!!急
- JPA - failed to lazily initialize a collection of role . no session or session w
- myeclipse 6.5中的代码延迟现象
- 点击按钮,javacript表单验证不执行,无法跳转到处理页面
- 请教一个关于框架间传递参数的问题。急!
- 关于乱码的一个问题
- Struts2和Spring集成时org.springframework.web.struts.ActionSupport出错
- struts中怎样实现在单击某一个链接如"delete.do"时弹出"是否确定要删除?"的提示框,下面是一个确定和一个取消按扭
- linux下weblogic数据源的配置问题
- 这段代码里check()函数怎么没被调用啊 高手帮帮我 偶是新手
- 请高手求解啊
改为异步看看