org.apache.axis.transport.jms

Class 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

ShareableObjectPool()

Method Summary

void
addObject(Object obj)
Adds the object to the pool, if not already added
java.util.Set
getElements()
void
release(Object obj)
Decrements the connector's reference count
void
removeObject(Object obj)
void
removeObject(Object obj, long waitTime)
Removes the object from the pool.
void
reserve(Object obj)
Marks the connector as in use by incrementing the connector's reference count
int
size()

Constructor Details

ShareableObjectPool

public ShareableObjectPool()

Method Details

addObject

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

getElements

public java.util.Set getElements()

release

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

removeObject

public void removeObject(Object obj)

removeObject

public void removeObject(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

reserve

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

size

public int size()

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