[JBoss Cache] - Replication timeout on high load
by Satish Avhad
Satish Avhad [https://community.jboss.org/people/satishpa2] created the discussion
"Replication timeout on high load"
To view the discussion, visit: https://community.jboss.org/message/819406#819406
--------------------------------------------------------------
Hi;
During high load getting the following error in log when there are more "put xml to cache" operations
ERROR;[ACTIVE] ExecuteThread: '35' for queue: 'weblogic.kernel.Default (self-tuning)';putString
org.jboss.cache.lock.TimeoutException: Replication timeout for X , Y , Z
I am using JBOSS cache in JBoss Common Classes 2.2.14.GA deployed on Oracle Service Bus which is in a 2 X 4 clustered environment
JBOSS cache config file is given below. Pl suggest appropriate changes.to config file
<?xml version="1.0" encoding="UTF-8"?>
<jbosscache xmlns="urn:jboss:jbosscache-core:config:3.2">
<locking isolationLevel="REPEATABLE_READ"
lockParentForChildInsertRemove="false"
lockAcquisitionTimeout="10000"
nodeLockingScheme="mvcc"
writeSkewCheck="false"
useLockStriping="false"
concurrencyLevel="10000"
/>
<transaction
transactionManagerLookupClass="org.jboss.cache.transaction.GenericTransactionManagerLookup" />
<serialization useRegionBasedMarshalling="true" />
<clustering mode="replication"
clusterName="X-JBossCache-Cluster">
<sync replTimeout="15000" />
<stateRetrieval fetchInMemoryState="true" timeout="15000" />
<jgroupsConfig>
<UDP discard_incompatible_packets="true"
enable_bundling="false" enable_diagnostics="true" ip_ttl="2"
loopback="false" max_bundle_size="64000" max_bundle_timeout="30"
mcast_addr="XXX.XX.XXX" mcast_port="XXXX"
mcast_recv_buf_size="25000000" mcast_send_buf_size="640000"
oob_thread_pool.enabled="true"
oob_thread_pool.keep_alive_time="10000"
oob_thread_pool.max_threads="4" oob_thread_pool.min_threads="1"
oob_thread_pool.queue_enabled="true"
oob_thread_pool.queue_max_size="10"
oob_thread_pool.rejection_policy="Run" thread_naming_pattern="pl"
thread_pool.enabled="true" thread_pool.keep_alive_time="30000"
thread_pool.max_threads="25" thread_pool.min_threads="1"
thread_pool.queue_enabled="true" thread_pool.queue_max_size="10"
thread_pool.rejection_policy="Run" tos="8"
ucast_recv_buf_size="20000000" ucast_send_buf_size="640000"
use_concurrent_stack="true" use_incoming_packet_handler="true" />
<PING num_initial_members="3" timeout="2000" />
<MERGE2 max_interval="30000" min_interval="10000" />
<FD_SOCK />
<FD max_tries="5" shun="true" timeout="10000" />
<VERIFY_SUSPECT timeout="1500" />
<pbcast.NAKACK discard_delivered_msgs="true" gc_lag="0"
max_xmit_size="60000" retransmit_timeout="300,600,1200,2400,4800"
use_mcast_xmit="false" />
<UNICAST timeout="300,600,1200,2400,3600" />
<pbcast.STABLE desired_avg_gossip="50000" max_bytes="400000"
stability_delay="1000" />
<pbcast.GMS join_retry_timeout="2000" join_timeout="5000"
print_local_addr="true" shun="false"
view_ack_collection_timeout="5000" view_bundling="true" />
<FRAG2 frag_size="60000" />
<pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true" />
<pbcast.FLUSH timeout="0" />
</jgroupsConfig>
</clustering>
<eviction wakeUpInterval="5000">
<default
algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm">
<property name="maxNodes" value="5000" />
</default>
<region name="/a"
algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
eventQueueSize="">
<property name="maxNodes" value="50000" />
<property name="timeToLive" value="180000" />
<property name="maxAge" value="360000" />
</region>
<region name="/b"
algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
eventQueueSize="">
<property name="maxNodes" value="150000" />
<property name="timeToLive" value="360000" />
<property name="maxAge" value="360000" />
</region>
<region name="/c"
algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
eventQueueSize="">
<property name="maxNodes" value="1" />
<property name="timeToLive" value="3000000" />
<property name="maxAge" value="3000000" />
</region>
<region name="/d"
algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
eventQueueSize="">
<property name="maxNodes" value="10000" />
<property name="maxAge" value="300000" />
<property name="timeToLive" value="300000" />
</region>
</eviction>
</jbosscache>
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/819406#819406]
Start a new discussion in JBoss Cache at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
10 years, 11 months
[jBPM] - which JMS based human task work item handler need to use ?
by vinayak Bhadage
vinayak Bhadage [https://community.jboss.org/people/vinayakpict] created the discussion
"which JMS based human task work item handler need to use ?"
To view the discussion, visit: https://community.jboss.org/message/810199#810199
--------------------------------------------------------------
hi,
I want to user JMSTaskServer as transporter between JBPM 5.4 process engine and TaskClient.
Serever is initilized as:
Properties serverProperties = new Properties();
serverProperties.setProperty("JMSTaskServer.connectionFactory", "ConnectionFactory");
serverProperties.setProperty("JMSTaskServer.transacted", "true");
serverProperties.setProperty("JMSTaskServer.acknowledgeMode", "AUTO_ACKNOWLEDGE");
serverProperties.setProperty("JMSTaskServer.queueName", "tasksQueue");
serverProperties.setProperty("JMSTaskServer.responseQueueName", "tasksResponseQueue");
try {
this.server = new JMSTaskServer(taskService, serverProperties, new InitialContext());
} catch (NamingException e1) {
e1.printStackTrace();
}
thread = new Thread(server);
thread.start();
The Task client for JMS is as :
public static TaskService getTaskClient() {
Properties clientProperties = new Properties();
clientProperties.setProperty("JMSTaskClient.connectionFactory", "ConnectionFactory");
clientProperties.setProperty("JMSTaskClient.transactedQueue", "true");
clientProperties.setProperty("JMSTaskClient.acknowledgeMode", "AUTO_ACKNOWLEDGE");
clientProperties.setProperty("JMSTaskClient.queueName", "tasksQueue");
clientProperties.setProperty("JMSTaskClient.responseQueueName", "tasksResponseQueue");
TaskService client = null;
try {
client = new SyncTaskServiceWrapper(new TaskClient(new JMSTaskClientConnector( UUID.randomUUID().toString() + "WSThroughJMSHumanTaskHandler" , new JMSTaskClientHandler(
SystemEventListenerFactory.getSystemEventListener()), clientProperties, new InitialContext())));
} catch (NamingException e) {
e.printStackTrace();
}
return client;
}
When I do the TaskSummary look up it works fine.
But when i start the new process instance which having human task it fails.
so which human task work item handler need to use.
I have tried below but does not work
CommandBasedHornetQWSHumanTaskHandler wsHumanTaskHandler = new CommandBasedHornetQWSHumanTaskHandler(knowledgeSession);
wsHumanTaskHandler.setClient(getTaskClientInstance());
wsHumanTaskHandler.setConnection("127.0.0.1", 5445);
knowledgeSession.getWorkItemManager().registerWorkItemHandler("Human Task", wsHumanTaskHandler);
This is CommandBasedHornetQWSHumanTaskHandler deprecated class but I have no clue which one need use.
It is giving following error :
Caused by: java.lang.RuntimeException: Error creating message
at org.jbpm.task.service.jms.JMSTaskClientConnector.write(JMSTaskClientConnector.java:152) [jbpm-human-task-jms-5.4.0.Final.jar:5.4.0.Final]
at org.jbpm.task.service.TaskClient.registerForEvent(TaskClient.java:623) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]
at org.jbpm.task.service.hornetq.CommandBasedHornetQWSHumanTaskHandler.connect(CommandBasedHornetQWSHumanTaskHandler.java:103) [jbpm-human-tas
k-hornetq-5.4.0.Final.jar:5.4.0.Final]
at org.jbpm.task.service.hornetq.CommandBasedHornetQWSHumanTaskHandler.executeWorkItem(CommandBasedHornetQWSHumanTaskHandler.java:111) [jbpm-h
uman-task-hornetq-5.4.0.Final.jar:5.4.0.Final]
at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalExecuteWorkItem(JPAWorkItemManager.java:55) [drools-persistence-jpa-5
.5.0.Final.jar:5.5.0.Final]
at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:107) [jbpm-flow-5.4.0.Final.jar:5.4.0.Final]
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:126) [jbpm-flow-5.4.0.Final.jar:5.4.0.Final]
... 42 more
Caused by: java.lang.NullPointerException
at org.jbpm.task.service.jms.JMSTaskClientConnector.write(JMSTaskClientConnector.java:126) [jbpm-human-task-jms-5.4.0.Final.jar:5.4.0.Final]
... 48 more
Please help me ....
Thanks & regards,
-vinayak
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/810199#810199]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
10 years, 11 months
[JBoss Web Services] - Request timeout - JAXWS
by klind
klind [https://community.jboss.org/people/klind] created the discussion
"Request timeout - JAXWS"
To view the discussion, visit: https://community.jboss.org/message/819176#819176
--------------------------------------------------------------
Hi, I am trying to set the connect timeout and request time out on a webservice request..
public static ProfitWebService getProfitService(final String url) throws MalformedURLException {
QName qname = new QName(ProfitWebService.WS_TARGET_NAMESPACE, ProfitWebService.WS_NAME);
QName ProfitWebServicePort = new QName(ProfitWebService.WS_TARGET_NAMESPACE, ProfitWebService.WS_PORT);
URL wsdlURL = new URL(url + WSDL);
// This is not working....
try {
URLConnection openConnection = wsdlURL.openConnection();
openConnection.setConnectTimeout(Configuration.PROFIT_CONNECT_TIMEOUT*1000);
openConnection.setReadTimeout(Configuration.PROFIT_REQUEST_TIMEOUT*1000);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Service service = Service.create(wsdlURL, qname);
ProfitWebService port = service.getPort(ProfitWebServicePort, ProfitWebService.class);
// This is not working....
BindingProvider binding = (javax.xml.ws.BindingProvider)port;
Map<String, Object> requestContext = binding.getRequestContext();
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, Configuration.PROFIT_CONNECT_TIMEOUT*1000);
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, Configuration.PROFIT_REQUEST_TIMEOUT*1000);
// This is not working....
requestContext.put("com.sun.xml.internal.ws.request.timeout", Configuration.PROFIT_REQUEST_TIMEOUT*1000);
return port;
}
But I cant get anything to work.
In the webservice I sleep for a longer period that the request timeout... but no timeout is happening..
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/819176#819176]
Start a new discussion in JBoss Web Services at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
10 years, 11 months