org.apache.axis.transport.jms
Class JMSConnectorManager.ShareableObjectPool

java.lang.Object
  extended byorg.apache.axis.transport.jms.JMSConnectorManager.ShareableObjectPool
Enclosing class:
JMSConnectorManager

public class JMSConnectorManager.ShareableObjectPool
extends java.lang.Object

A simple non-blocking pool impl for objects that can be shared. Only a ref count is necessary to prevent collisions at shutdown. Todo: max size, cleanup stale connections


Nested Class Summary
 class JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject
          Wrapper to track the use count of an object
 
Constructor Summary
JMSConnectorManager.ShareableObjectPool()
           
 
Method Summary
 void addObject(java.lang.Object obj)
          Adds the object to the pool, if not already added
 java.util.Set getElements()
           
 void release(java.lang.Object obj)
          Decrements the connector's reference count
 void removeObject(java.lang.Object obj)
           
 void removeObject(java.lang.Object obj, long waitTime)
          Removes the object from the pool.
 void reserve(java.lang.Object obj)
          Marks the connector as in use by incrementing the connector's reference count
 int size()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JMSConnectorManager.ShareableObjectPool

public JMSConnectorManager.ShareableObjectPool()
Method Detail

addObject

public void addObject(java.lang.Object obj)
Adds the object to the pool, if not already added


removeObject

public void removeObject(java.lang.Object obj,
                         long waitTime)
Removes the object from the pool. If the object is reserved, waits the specified time before forcibly removing Todo: check expirations with the next request instead of holding up the current request


removeObject

public void removeObject(java.lang.Object obj)

reserve

public void reserve(java.lang.Object obj)
             throws java.lang.Exception
Marks the connector as in use by incrementing the connector's reference count

Throws:
java.lang.Exception

release

public void release(java.lang.Object obj)
Decrements the connector's reference count


getElements

public java.util.Set getElements()

size

public int size()


Copyright © 2003 Apache Web Services Project. All Rights Reserved.