Hi, Martin:

 I added a logging statement to the remove method in both RgbWSDFAttHome
class and the PersistentRgbWSDFAtt class.
According
http://www.globus.org/api/javadoc-4.0/globus_java_ws_core/index.html

public void *remove*(ResourceKey
<http://www.globus.org/api/javadoc-4.0/globus_java_ws_core/org/globus/wsrf/ResourceKey.html>
key)
            throws ResourceException
<http://www.globus.org/api/javadoc-4.0/globus_java_ws_core/org/globus/wsrf/ResourceException.html>
"If the resource implements the RemoveCallback
<http://www.globus.org/api/javadoc-4.0/globus_java_ws_core/org/globus/wsrf/RemoveCallback.html>
interface the RemoveCallback.remove()
<http://www.globus.org/api/javadoc-4.0/globus_java_ws_core/org/globus/wsrf/RemoveCallback.html#remove%28%29>
operation will be called."
I overwrote the 'public void remove(ResourceKey key)' method in the
RgbWSDFAttHome class anyway. But still could
not see the remove logging information. I did see the create() logging
information within the same class.
I also tried with the Counter service originally packaged in the
source code and all timeout are set to 120000( 2minutes).
They have the same problem.

Donglai



On Tue, Jan 20, 2009 at 12:30 PM, Martin Feller <[email protected]> wrote:

> Hmm, just to make sure, i assume you know it: Do you feel or do you know
> that the
> remove() method of your resource objects is not invoked when a resource is
> destroyed
> (adding a logging statement should clarify this)?
>
> How does RgbWSDFAttHome look like: Does it extend from
> org.globus.wsrf.impl.ResourceHomeImpl?
> If so: Do you maybe overwrite 'public void remove(ResourceKey key)'?
>
> Btw: Your timeout value of 600 in the LRUCache is pretty low: The unit is
> ms
>
> Martin
>
> Donglai Zhang wrote:
>
>> Hi, Martin:
>>
>> Thanks for your hints!
>>
>> I have got a service named RgbWSDFAtt and the "resourceClass" is
>> "PersistentRgbWSDFAtt" and the signature of this class is:
>>
>> public class PersistentRgbWSDFAtt
>>    extends RgbWSDFAtt
>>    implements PersistenceCallback, RemoveCallback {
>> ...
>> // I also implemented the  remove() method
>> public void remove() throws ResourceException {
>> //Remove the resource...
>> }
>> ...
>> }
>>
>> However, I feel this has never been invoked.  I am not sure if the
>> parameters in the deploy-jndi-config.xml has been configured properly so the
>> wscore server understands when it should remove the resource.
>> Donglai
>>
>> On Tue, Jan 20, 2009 at 3:25 AM, Martin Feller <[email protected]<mailto:
>> [email protected]>> wrote:
>>
>>    The remove() method of a resource is called by ResourceHome if the
>>    resource
>>    is removed, if the resource implements the interface RemoveCallback.
>>    (see
>>
>> http://www.mcs.anl.gov/~gawor/javawscore/HEAD/doc/javadocs/org/globus/wsrf/RemoveCallback.html<http://www.mcs.anl.gov/%7Egawor/javawscore/HEAD/doc/javadocs/org/globus/wsrf/RemoveCallback.html>
>>    <
>> http://www.mcs.anl.gov/%7Egawor/javawscore/HEAD/doc/javadocs/org/globus/wsrf/RemoveCallback.html
>> >)
>>
>>
>>    But there is no magic that deletes persistence data of a resource
>>    automatically.
>>    You have to implement in remove() whatever resource-specific you
>>    want to happen
>>    in case a resource is removed, including handling of persistence data.
>>
>>    Martin
>>
>>
>>
>>    Donglai Zhang wrote:
>>
>>        Hi,
>>
>>        I am writing a web service with WS-CORE. I found under the
>> directory
>>
>>  /home/globus/.globus/persisted/129.127.XX.XXX-8010/PersistentRgbWSDFAtt,
>>        there are lots of .ser file.  I have a remove() method in class
>>        org.globus.wsrf.samples.rgbwsdfatt.PersistentRgbWSDFAtt (Same as
>>        the following one in red). I thought this method could help me
>>        remove the reference, but seems not. The following is the
>>        deploy-jndi-config.xml file of my RgbWSDFAtt service.
>>
>>
>>        <?xml version="1.0" encoding="UTF-8"?>
>>        <jndiConfig xmlns="http://wsrf.globus.org/jndi/config";>
>>           <service name="RgbWSDFAttService">
>>               <resource
>>                   name="home"
>>
>> type="org.globus.wsrf.samples.rgbwsdfatt.RgbWSDFAttHome">
>>                   <resourceParams>
>>                       <parameter>
>>                           <name>resourceClass</name>
>>
>> <value>org.globus.wsrf.samples.rgbwsdfatt.PersistentRgbWSDFAtt</value>
>>                       </parameter>
>>                       <parameter>
>>                           <name>resourceKeyName</name>
>>                                 <value>{http://rgbwsdfatt.com
>> }RgbWSDFAttKey</value>
>>                       </parameter>
>>                       <parameter>
>>                           <name>resourceKeyType</name>
>>                           <value>java.lang.Integer</value>
>>                       </parameter>
>>                       <parameter>
>>                           <name>cacheLocation</name>
>>
>> <value>java:comp/env/services/RgbWSDFAttService/cache</value>
>>                       </parameter>
>>                   </resourceParams>
>>               </resource>
>>             <resource name="cache"
>>                       type="org.globus.wsrf.utils.cache.LRUCache">
>>                   <resourceParams>
>>                       <parameter>
>>                           <name>timeout</name>
>>                           <value>600</value>
>>                       </parameter>
>>                   </resourceParams>
>>              </resource>
>>           </service>
>>        .....
>>
>>        I thought the timeout should remove the reference, but it seems
>>        not. Can I (How can I) remove the used resource by setting the
>>        configuration file?
>>        --        Cheers,
>>
>>
>>        Donglai Zhang
>>
>>        School of Computer Science
>>        University of Adelaide,
>>        SA, Australia  5083
>>
>>
>>
>>
>>
>> --
>> Donglai Zhang
>>
>> Ph.D Candidate
>> School of Computer Science
>> University of Adelaide,
>> SA, Australia  5083
>>
>> Tel: 0061 8 83036166
>>
>>
>>
>>
>


-- 
Donglai Zhang

Ph.D Candidate
School of Computer Science
University of Adelaide,
SA, Australia  5083

Tel: 0061 8 83036166

Reply via email to