Here are a list of possible decorators to use to wrap a transaction. public interface Transaction{ public void execute(); } //Execute a list of transactions commands in one transaction public class TransactionList implements Transaction{ private final List _list; public TransactionList(List trans){ _list= trans; } public void execute(){ Iterator iter = _list.iterator(); while(iter.hasNext()){ ((Transaction)iter.next()).execute(); } } } --MikeRettig