You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Alex Boisvert (JIRA)" <ji...@apache.org> on 2007/06/05 22:48:25 UTC

[jira] Commented: (AXIS2-2770) Under load, Axis2 client throws AxisFault: Two services can not have same name, a service with anonService28797891118106994 already exists in the system

    [ https://issues.apache.org/jira/browse/AXIS2-2770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12501691 ] 

Alex Boisvert commented on AXIS2-2770:
--------------------------------------

The issue here is the member "allservices"  of AxisConfiguration is not correctly protected from concurrent access.

In Axis 1.2, the following method are unsafe because they are not synchronized:
1) removeServiceGroup()
2) getService()
3) getServiceForActivation()
4) getServices()   notoriously dangerous, unless allservices is cloned
5) stopService()
6) startService()

In Axis 1.2, the following method are unsafe:
1) addToAllServices()
2) removeServiceGroup()
3) getService()
4) getServiceForActivation()
5) getServices()    again, notoriously dangerous
6) stopService()
7) startService()

I don't know enough about the synchronization strategy in Axis2 to know if adding synchronization to the above methods is a good idea (deadlocks??)


> Under load, Axis2 client throws AxisFault: Two services can not have same name, a service with anonService28797891118106994 already exists in the system
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-2770
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2770
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: client-api
>    Affects Versions: 1.1.1
>            Reporter: Alex Boisvert
>
> Here's the exception I get under high load / concurrent invocations using Axis2 1.1.1 on a dual-core system with roughly 100 concurrent threads.
> 11:59:03,198 ERROR [ExternalService] Error sending message to Axis2 for ODE mex {PartnerRoleMex#4611686018427389612 [PID {http://example.com/SyncProcess/SyncProcess}SyncProcess-4] calling org.apache.ode.bpel.epr.WSAEndpoint@1c5884f.newOrder(...)}
> org.apache.axis2.AxisFault: Two services can not have same name, a service with anonService287978911181069943120 already exists in the system
>         at org.apache.axis2.engine.AxisConfiguration.addServiceGroup(AxisConfiguration.java:254)
>         at org.apache.axis2.engine.AxisConfiguration.addService(AxisConfiguration.java:206)
>         at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:128)
>         at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:114)
>         at org.apache.ode.axis2.ExternalService.invoke(ExternalService.java:114)
>         at org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:52)
>         at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:779)
>         at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:96)
> This exception is non-deterministic... but I can reproduce it every 5 second or so on my system.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org