[jbossws-issues] [JBoss JIRA] Commented: (JBWS-2879) Multiple threads: getPort Hangs on 100% CPU with fast infoset on asynchronous invocation

Alessio Soldano (JIRA) jira-events at lists.jboss.org
Wed Jan 13 08:06:30 EST 2010


    [ https://jira.jboss.org/jira/browse/JBWS-2879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12503854#action_12503854 ] 

Alessio Soldano commented on JBWS-2879:
---------------------------------------

Could you please open a thread on the forum and provide a bit more of code to understand how multithreading is being implemented? Then please link the forum thread here. Thanks.

> Multiple threads: getPort Hangs on 100% CPU with fast infoset on asynchronous invocation
> ----------------------------------------------------------------------------------------
>
>                 Key: JBWS-2879
>                 URL: https://jira.jboss.org/jira/browse/JBWS-2879
>             Project: JBoss Web Services
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: jbossws-native
>    Affects Versions: jbossws-native-3.2.1
>         Environment: jboss-5.1.0 GA
> debian 64 bit
>            Reporter: Hajo Krabbenhöft
>
> Hi,
> i'm caching an instance of  javax.xml.ws.Service.
> I cache the results of getPort in a ThreadLocal.
> When i use multiple parallel asynchronous invocations, this approach does not seem to work, so i invoke getPort for each asynchronous invocation.
> I have 8 threads using a web service running in parallel on a i7.
> After about 20h of work, all my worker threads are hanging on:
> "pool-41-thread-7" prio=10 tid=0x00007f8cc469d400 nid=0x156a runnable [0x000000004691a000..0x0000000046921ba0]
>    java.lang.Thread.State: RUNNABLE
>         at java.util.HashMap.put(HashMap.java:374)
>         at java.util.HashSet.add(HashSet.java:200)
>         at org.jboss.ws.metadata.umdm.FeatureSet.addFeature(FeatureSet.java:63)
>         at org.jboss.ws.metadata.umdm.EndpointMetaData.addFeature(EndpointMetaData.java:375)
>         at org.jboss.ws.core.jaxws.client.ClientFeatureProcessor.processFeature(ClientFeatureProcessor.java:84)
>         at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.initWebserviceFeatures(ServiceDelegateImpl.java:537)
>         at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:526)
>         at javax.xml.ws.Service.getPort(Service.java:607)
>         at com.spratpix.subdomains.ThreadLocalWebserviceProxy.getAsyncPort(ThreadLocalWebserviceProxy.java:47)
> Here is how i use getPort
> 	protected T getAsyncPort() {
> 		long t0 = System.nanoTime();
> 		try {
> 			return service.getPort(portClass, new FastInfosetFeature());
> 		} finally {
> 			long dt = System.nanoTime() - t0;
> 			TimingInterceptor.callChain.addInvocationWithMethod(method, dt);
> 		}
> 	}
> And the problematic web service call seems to be
> 	public Future<Boolean> PutFileAsync(String domain, String type, String filename, S3Object file, AsyncHandler<Boolean> asyncHandler);

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the jbossws-issues mailing list