@Override
    public Object execute(Config config) throws PageException {
	((ConfigImpl) config).getDatasourceConnectionPool().releaseDatasourceConnection(this);
	return null;
    }
@ Override public Object execute ( Config config ) throws PageException { ( ( ConfigImpl ) config ) . getDatasourceConnectionPool ( ) . releaseDatasourceConnection ( this ) ; return null ; }
/*

public PreparedStatement getPreparedStatement(SQL sql, int resultSetType,int
resultSetConcurrency) throws SQLException { boolean allowCaching=false; // create key String
strSQL=sql.getSQLString(); String key=strSQL.trim()+":"+resultSetType+":"+resultSetConcurrency;
try { key = MD5.getDigestAsString(key); } catch (IOException e) {} PreparedStatement ps =
allowCaching?preparedStatements.get(key):null; if(ps!=null) {
if(DataSourceUtil.isClosed(ps,true)) preparedStatements.remove(key); else return ps; }

ps=getConnection().prepareStatement(strSQL,resultSetType,resultSetConcurrency);
if(preparedStatements.size()>MAX_PS)
closePreparedStatements((preparedStatements.size()-MAX_PS)+1);
if(allowCaching)preparedStatements.put(key,ps); return ps; }