[JBoss Remoting] - SSL bisocket socketWrite0() hangs, while holding Messaging Post Office lock (on a network failure)
by Todd Sandor
Todd Sandor [https://community.jboss.org/people/toddler] created the discussion
"SSL bisocket socketWrite0() hangs, while holding Messaging Post Office lock (on a network failure)"
To view the discussion, visit: https://community.jboss.org/message/754327#754327
--------------------------------------------------------------
Hi ...
We are using EAP5.1.1 (remoting-2-4-5.SP2) and experience a problem when using
SSL and there is a network hard failure (e.g. ethernet cable pulled), a socketWrite0() hangs
while holding a Messaging Post Office lock (readLock()) - this hangs JMS...(many threads
need PostOffice). Thread dump below. It is difficult to reproduce.
A Solaris 10 environment.
This problem has only been observed when SSL is used.
In our remoting-bisocket-service.xml file, we use:
<attribute isParam="true" name="writeTimeout">30000</attribute>
Have been told "writeTimeout" is broken when SSL is being used.
It has been suggested, for SSL, we change the configuration to turn on the check_connection parameter:
<attribute isParam="true" name="socket.check_connection">true</attribute>
But my concern is:
* results in an extra round-trip I/O (not good for a variety of reasons - throughput, remote clients with high latency connecitons, etc.).
* potential to hit other problems with check_connections enabled. e.g. found this:
https://community.jboss.org/message/369442#369442 https://community.jboss.org/message/369442
Has anyone experienced this problem and/or know a solution (other then using
"socket.check_connection") might be?
Searched and found a number of remoting issues on hard-network failure, but not this particular one...
Potentially Related Issue:
https://issues.jboss.org/browse/JBREM-1307 https://issues.jboss.org/browse/JBREM-1307
Thead Dump below:
2012.07.26 13:23:38 -0500 INFO [STDOUT] "WorkerThread#1[10.143.109.23:60321]" Id=74 RUNNABLE (in native)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at com.sun.net.ssl.internal.ssl.OutputRecord.writeBuffer(OutputRecord.java:297)
at com.sun.net.ssl.internal.ssl.OutputRecord.write(OutputRecord.java:286)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:743)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:731)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
- locked com.sun.net.ssl.internal.ssl.AppOutputStream@ac9224
at org.jboss.remoting.transport.socket.TimedOutputStream.write(TimedOutputStream.java:119)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
- locked java.io.BufferedOutputStream@1aea5f0
at java.io.DataOutputStream.write(DataOutputStream.java:90)
- locked java.io.DataOutputStream@16e88df
at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
at org.jboss.messaging.core.impl.message.MessageSupport.write(MessageSupport.java:387)
at org.jboss.jms.message.JBossMessage.write(JBossMessage.java:1069)
at org.jboss.jms.wireformat.ClientDelivery.write(ClientDelivery.java:91)
at org.jboss.jms.wireformat.JMSWireFormat.write(JMSWireFormat.java:237)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedWrite(MicroSocketClientInvoker.java:1325)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:861)
at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:470)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:169)
at org.jboss.remoting.Client.invoke(Client.java:2070)
at org.jboss.remoting.Client.invoke(Client.java:879)
at org.jboss.remoting.Client.invokeOneway(Client.java:928)
at org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallback(ServerInvokerCallbackHandler.java:835)
at org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallbackOneway(ServerInvokerCallbackHandler.java:708)
at org.jboss.jms.server.endpoint.ServerSessionEndpoint.performDelivery(ServerSessionEndpoint.java:1600)
at org.jboss.jms.server.endpoint.ServerSessionEndpoint.handleDelivery(ServerSessionEndpoint.java:1512)
- locked org.jboss.jms.server.endpoint.ServerSessionEndpoint@1105e96
at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:353)
- locked java.lang.Object@1b1dde3
at org.jboss.messaging.core.impl.RoundRobinDistributor.handle(RoundRobinDistributor.java:119)
at org.jboss.messaging.core.impl.MessagingQueue$DistributorWrapper.handle(MessagingQueue.java:617)
at org.jboss.messaging.core.impl.ClusterRoundRobinDistributor.handle(ClusterRoundRobinDistributor.java:79)
at org.jboss.messaging.core.impl.ChannelSupport.deliverInternal(ChannelSupport.java:681)
at org.jboss.messaging.core.impl.MessagingQueue.deliverInternal(MessagingQueue.java:540)
at org.jboss.messaging.core.impl.ChannelSupport.handle(ChannelSupport.java:251)
- locked java.lang.Object@5e7463
at org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.routeInternal(MessagingPostOffice.java:3133)
at org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.route(MessagingPostOffice.java:956)
at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendMessage(ServerConnectionEndpoint.java:794)
at org.jboss.jms.server.endpoint.ServerSessionEndpoint.send(ServerSessionEndpoint.java:435)
at org.jboss.jms.server.endpoint.advised.SessionAdvised.org$jboss$jms$server$endpoint$advised$SessionAdvised$send$aop(SessionAdvised.java:87)
at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_7280680627620114891.invokeTarget(SessionAdvised$send_7280680627620114891.java)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
at org.jboss.jms.server.container.SecurityAspect.handleSend(SecurityAspect.java:158)
at sun.reflect.GeneratedMethodAccessor224.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:122)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at com.timetra.nms.server.j2ee.jms.messaging.JBossMessagingServerInterceptor.handleSessionSend(JBossMessagingServerInterceptor.java:346)
at sun.reflect.GeneratedMethodAccessor223.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:122)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.jms.server.endpoint.advised.SessionAdvised.send(SessionAdvised.java)
at org.jboss.jms.wireformat.SessionSendRequest.serverInvoke(SessionSendRequest.java:95)
at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:165)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:967)
at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:791)
- locked org.jboss.remoting.transport.socket.ServerThread@465cc
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:744)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:586)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)
Number of locked synchronizers = 1
- java.util.concurrent.locks.ReentrantLock$NonfairSync@12b4a3e
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/754327#754327]
Start a new discussion in JBoss Remoting at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - How to build package in Guvnor with JBPM process that use user data types ?
by Anatoliy Kalenskiy
Anatoliy Kalenskiy [https://community.jboss.org/people/cybiks] created the discussion
"How to build package in Guvnor with JBPM process that use user data types ?"
To view the discussion, visit: https://community.jboss.org/message/754591#754591
--------------------------------------------------------------
I have business process described in bpmn file. It has scriptTasks that use some project types.
<itemDefinition id="_stepItem" structureRef="project.model.Step" />
<itemDefinition id="_actionsItem" structureRef="java.util.Map" />
<process processType="Private" isExecutable="true" id="com.sample.id" name="EXAMPLE" tns:packageName="defaultPackage" tns:version="1" >
| | <extensionElements> |
| | <tns:import name="project.model.StepAction" /> |
| | <tns:import name="project.model.Step" /> |
| | </extensionElements> |
<!-- process variables -->
<property id="step" itemSubjectRef="_stepItem"/>
<property id="actions" itemSubjectRef="_actionsItem"/>
...
<scriptTask id="_2" name="1FakedStepAction" scriptFormat=" http://www.java.com/java http://www.java.com/java" >
<script>
try {
((StepAction)(actions.get("1StepAction"))).executeStepAction((Step)step); }
catch (Exception e) {
System.out.println("Exception 1StepAction: "+e);
}
</script>
</scriptTask>
...
In Java code I put
Map<String, Object> params = new HashMap<String, Object>();
params.put("step", <some real instance of Step>);
params.put("actions", <some actions map like 1StepAction -> real instance of StepAction>);
ksession.startProcess("com.sample.id", params)
It works fine when I put such file in class path and spring configuration uploads it from this file. I put it to Guvnor. And application successfully load such process from it and run.
But when I try to build package in Guvnor with such process it complains :
Unable to generate action invoker. project.model.Step cannot be resolved to a type
Process Compilation error project.model.Step cannot be resolved to a type
StepActioncannot be resolved to a type
So, how Guvnor can access to my types deployed in my project? Is it possible?
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/754591#754591]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[Datasource Configuration] - Web -Services connection Handling
by gireesh g
gireesh g [https://community.jboss.org/people/ggireeshg] created the discussion
"Web -Services connection Handling"
To view the discussion, visit: https://community.jboss.org/message/787501#787501
--------------------------------------------------------------
Hi All,
1. I have implemented a *web service* with connection pooling(*oracle-ds.xml*) with *JBoss (http://www.coderanch.com/forums/f-63/JBoss)* server. In My business class, i am getting connection from pool and performing 4 to 5 DB operations, at last closing connection, statements and result set. It is working fine for one request.
2.If i tried for concurrent requests (Consider 5) only 1 or 2 processed, remaining failed with several reasons like (connection closed, statement closed, unusable connection, result set closed etc).
3.If i keep business class method as "synchronized" it is working fine. But it is serving only one request at a time (for concurrent request also). - This is slow downs my response time.
I came to know, This is connections problem, if one thread is doing DB operation, other thread is closing the connection or statement or result set.
Can any one help and tell me how to handle concurrent requests with out synchronized keyword.
Thanks in Advance.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/787501#787501]
Start a new discussion in Datasource Configuration at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - java.lang.String cannot be cast to org.jbpm.task.utils.MarshalledContentWrapper
by TC ONG
TC ONG [https://community.jboss.org/people/devilkazuya99] created the discussion
"java.lang.String cannot be cast to org.jbpm.task.utils.MarshalledContentWrapper"
To view the discussion, visit: https://community.jboss.org/message/740612#740612
--------------------------------------------------------------
String respond = "SOME_VALUE";
Map result = new HashMap();
result.put("answer", respond);
ContentData contentData = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out;
try {
out = new ObjectOutputStream(bos);
out.writeObject(result);
out.close();
contentData = new ContentData();
contentData.setContent(bos.toByteArray());
contentData.setAccessType(AccessType.Inline);
} catch (IOException ioe) {
ioe.printStackTrace();
}
localTaskService.complete(taskId, userName, contentData);
My process has a sequence of human tasks.
When I ran the code above, the first task executed fine, but the second task gives me:
java.lang.String cannot be cast to org.jbpm.task.utils.MarshalledContentWrapper
Any idea why it suddently doesn't work?
Full stack trace:
Application Message - java.lang.String cannot be cast to org.jbpm.task.utils.MarshalledContentWrapper
java.lang.ClassCastException: java.lang.String cannot be cast to org.jbpm.task.utils.MarshalledContentWrapper
at org.jbpm.task.utils.ContentMarshallerHelper.unmarshall(ContentMarshallerHelper.java:157)
at org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler$TaskCompletedHandler.handleCompletedTask(SyncWSHumanTaskHandler.java:354)
at org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler$TaskCompletedHandler.execute(SyncWSHumanTaskHandler.java:329)
at org.jbpm.task.service.local.LocalTaskService$SimpleEventTransport.trigger(LocalTaskService.java:307)
at org.jbpm.task.event.MessagingTaskEventListener.taskCompleted(MessagingTaskEventListener.java:73)
at org.jbpm.task.event.TaskEventSupport.fireTaskCompleted(TaskEventSupport.java:46)
at org.jbpm.task.service.TaskServiceSession.postTaskCompleteOperation(TaskServiceSession.java:502)
at org.jbpm.task.service.TaskServiceSession.taskOperation(TaskServiceSession.java:468)
at org.jbpm.task.service.local.LocalTaskService.complete(LocalTaskService.java:80)
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/740612#740612]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - No String constructor found on type [org.drools.builder.ResourceType]
by Ashok Kuppuswamy
Ashok Kuppuswamy [https://community.jboss.org/people/akuppu] created the discussion
"No String constructor found on type [org.drools.builder.ResourceType]"
To view the discussion, visit: https://community.jboss.org/message/780083#780083
--------------------------------------------------------------
I am trying to integrate with spring and I am stuck on this error
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [systemProperties] PropertySource with lowest search precedence
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [systemEnvironment] PropertySource with lowest search precedence
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initializing new StandardEnvironment
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [systemProperties] PropertySource with lowest search precedence
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [systemEnvironment] PropertySource with lowest search precedence
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initializing new StandardEnvironment
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [systemProperties] PropertySource with lowest search precedence
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [systemEnvironment] PropertySource with lowest search precedence
2012-12-05 04:43:45 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
2012-12-05 04:43:45 [main] DEBUG org.springframework.beans.BeanUtils - No property editor [org.drools.builder.ResourceTypeEditor] found for type org.drools.builder.ResourceType according to 'Editor' suffix convention
2012-12-05 04:43:45 [main] DEBUG org.springframework.beans.TypeConverterDelegate - No String constructor found on type [org.drools.builder.ResourceType]
java.lang.NoSuchMethodException: org.drools.builder.ResourceType.<init>(java.lang.String)
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:197)
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:470)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:516)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:510)
This is the config I have
<jbpm:kbase id="kbase">
<jbpm:resources>
<jbpm:resource type="BPMN2" source="classpath:Evaluation.bpmn"/>
</jbpm:resources>
</jbpm:kbase>
Any help is greatly appreciated.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/780083#780083]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months