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

Jeff Barrett commented on AXIS2-4952:
-------------------------------------

I have a fix for this Jira.  Here are some notes on the fix:

The flag to revert the behavior to sharing dynamic ports across services is 
public static final String  SHARE_DYNAMIC_PORTS_ACROSS_SERVICES = 
"jaxws.share.dynamic.ports.enable"; declared in 
modules/metadata/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java.
  A value of "true" will revert the behavior; the default value is null which 
is interpreted as "false".  See the javadoc on the field for more information.

Note that when the dynamic ports are scoped to the instance of the service that 
created them, it will increase the memory usage, since each dynamic port across 
different service instances will have context and metadata objects associated 
with it.  Those resources will be released for garbage collection when the 
service instance goes out of scope.  In order to force the release and not rely 
on finalization of the service instance, there is a non-standard static method 
that can be called: 
org.apache.axis2.jaxws.spi.ServiceDelegate.releaseService(Service).  See the 
javadoc of that method for more information.  Note that this method has been 
there for a while; it was not added as part of the fix for this Jira.

The fix contains TDD Unit Tests to validate the new behavior and that the flag 
reverts to the old behavior.

> JAX-WS dynamic ports should be scoped to the service instance the created them
> ------------------------------------------------------------------------------
>
>                 Key: AXIS2-4952
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4952
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Jeff Barrett
>            Assignee: Jeff Barrett
>
> When a JAX-WS dynamic port is added via addPort(...), it should be scoped to 
> the instance of the service that created it.  Currently dynamic ports are 
> scoped in the runtime by (PortQName, Binding ID, Endpoint Address) across all 
> services on a given configuration context.  That means that different 
> services will share the same dynamic ports based only on (PortQName, Binding 
> ID, Endpoint Address), even if those services are entirely different (i.e. 
> different service QNames).
> A flag needs to be provided to revert the behavior to share the dynamic ports 
> across services.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to