You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Bharath Ganesh (JIRA)" <ji...@apache.org> on 2008/06/17 23:00:45 UTC

[jira] Created: (CXF-1656) PolicyEngineImpl Memory Improvement

PolicyEngineImpl Memory Improvement
-----------------------------------

                 Key: CXF-1656
                 URL: https://issues.apache.org/jira/browse/CXF-1656
             Project: CXF
          Issue Type: Improvement
          Components: WS-* Components
    Affects Versions: 2.1.1, 2.0.7
            Reporter: Bharath Ganesh
            Assignee: Bharath Ganesh
             Fix For: 2.1.2, 2.0.8


PolicyEngineImpl maintains a clientEndpointInfos map to keep the EndpointPolicies for client endpoints. An entry added to this map (while a client comes in)  is removed only when the server endpoint is stopped. This leads to very high memory usage when there are frequent getPort() Calls.
This can be can be reduced by maintaining a weak reference to the client EndpointInfo's. [Make clientEndpointInfoMap a weakhashmap]
This would mean that after the lifetime of a single client port, all its data structures would be cleared. We need to explore more on this.

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


[jira] Commented: (CXF-1656) PolicyEngineImpl Memory Improvement

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605731#action_12605731 ] 

Daniel Kulp commented on CXF-1656:
----------------------------------


Interesting.  Yea, definitely an issue to explore.

I wonder if it would be possible to remove those maps entirely.   When the policy set is computed, store it on the associated object directly.   

Kind of like:
    public EffectivePolicy getEffectiveClientRequestPolicy(EndpointInfo ei, BindingOperationInfo boi, 
                                                           Conduit c) {
        EffectivePolicy effectivePolicy = (EfectivePolicy)boi.get(CLIENT_REQUEST_POLICY);
        if (effectivePolicy == null) {
            EffectivePolicyImpl epi = createOutPolicyInfo();
            Assertor assertor = null;
            if (c instanceof Assertor) {
                assertor = (Assertor)c;
            }
            epi.initialise(ei, bo.boi, this, assertor, true);
            boi.put(CLIENT_REQUEST_POLICY, epi);
            effectivePolicy = epi;
        }
        return effectivePolicy;
    }


> PolicyEngineImpl Memory Improvement
> -----------------------------------
>
>                 Key: CXF-1656
>                 URL: https://issues.apache.org/jira/browse/CXF-1656
>             Project: CXF
>          Issue Type: Improvement
>          Components: WS-* Components
>    Affects Versions: 2.1.1, 2.0.7
>            Reporter: Bharath Ganesh
>            Assignee: Bharath Ganesh
>             Fix For: 2.1.2, 2.0.8
>
>
> PolicyEngineImpl maintains a clientEndpointInfos map to keep the EndpointPolicies for client endpoints. An entry added to this map (while a client comes in)  is removed only when the server endpoint is stopped. This leads to very high memory usage when there are frequent getPort() Calls.
> This can be can be reduced by maintaining a weak reference to the client EndpointInfo's. [Make clientEndpointInfoMap a weakhashmap]
> This would mean that after the lifetime of a single client port, all its data structures would be cleared. We need to explore more on this.

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


[jira] Resolved: (CXF-1656) PolicyEngineImpl Memory Improvement

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1656.
------------------------------

    Resolution: Fixed

> PolicyEngineImpl Memory Improvement
> -----------------------------------
>
>                 Key: CXF-1656
>                 URL: https://issues.apache.org/jira/browse/CXF-1656
>             Project: CXF
>          Issue Type: Improvement
>          Components: WS-* Components
>    Affects Versions: 2.1.1, 2.0.7
>            Reporter: Bharath Ganesh
>            Assignee: Daniel Kulp
>             Fix For: 2.1.3
>
>
> PolicyEngineImpl maintains a clientEndpointInfos map to keep the EndpointPolicies for client endpoints. An entry added to this map (while a client comes in)  is removed only when the server endpoint is stopped. This leads to very high memory usage when there are frequent getPort() Calls.
> This can be can be reduced by maintaining a weak reference to the client EndpointInfo's. [Make clientEndpointInfoMap a weakhashmap]
> This would mean that after the lifetime of a single client port, all its data structures would be cleared. We need to explore more on this.

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


[jira] Assigned: (CXF-1656) PolicyEngineImpl Memory Improvement

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp reassigned CXF-1656:
--------------------------------

    Assignee: Daniel Kulp  (was: Bharath Ganesh)

> PolicyEngineImpl Memory Improvement
> -----------------------------------
>
>                 Key: CXF-1656
>                 URL: https://issues.apache.org/jira/browse/CXF-1656
>             Project: CXF
>          Issue Type: Improvement
>          Components: WS-* Components
>    Affects Versions: 2.1.1, 2.0.7
>            Reporter: Bharath Ganesh
>            Assignee: Daniel Kulp
>             Fix For: 2.1.3
>
>
> PolicyEngineImpl maintains a clientEndpointInfos map to keep the EndpointPolicies for client endpoints. An entry added to this map (while a client comes in)  is removed only when the server endpoint is stopped. This leads to very high memory usage when there are frequent getPort() Calls.
> This can be can be reduced by maintaining a weak reference to the client EndpointInfo's. [Make clientEndpointInfoMap a weakhashmap]
> This would mean that after the lifetime of a single client port, all its data structures would be cleared. We need to explore more on this.

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


[jira] Closed: (CXF-1656) PolicyEngineImpl Memory Improvement

Posted by "Willem Jiang (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Willem Jiang closed CXF-1656.
-----------------------------


> PolicyEngineImpl Memory Improvement
> -----------------------------------
>
>                 Key: CXF-1656
>                 URL: https://issues.apache.org/jira/browse/CXF-1656
>             Project: CXF
>          Issue Type: Improvement
>          Components: WS-* Components
>    Affects Versions: 2.1.1, 2.0.7
>            Reporter: Bharath Ganesh
>            Assignee: Daniel Kulp
>             Fix For: 2.1.3
>
>
> PolicyEngineImpl maintains a clientEndpointInfos map to keep the EndpointPolicies for client endpoints. An entry added to this map (while a client comes in)  is removed only when the server endpoint is stopped. This leads to very high memory usage when there are frequent getPort() Calls.
> This can be can be reduced by maintaining a weak reference to the client EndpointInfo's. [Make clientEndpointInfoMap a weakhashmap]
> This would mean that after the lifetime of a single client port, all its data structures would be cleared. We need to explore more on this.

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