How to execute a server command

RMIRequest request = new RMIRequest();
        request.setSlot( "data" , queryXml);
        request.expectResultSlots( "result" );
        request = appSession.executeSyncRmiCommand(CMD_NAME, request, new CancelerImpl( this )).getRequest();
 
        // read result
        AXml resultDataXml = request.getXmlSlot( "result" );

How to execute a SQL Delete query

tm = command.getTransactionManager();
        pm = tm.getDataObjectTransaction().getPersistenceManager();
 
        QBuilder qb = new QBuilder(pm.getSchema());
        tm.begin();
        QAssetFeature qAssetFeature = qb.table(QAssetFeature. class );
        QDelete delete = qb.delete(qAssetFeature).where(qb.expr(qAssetFeature.VALUE_ASSET_ID, assetRefId));
        PreparedDelete pd = SQLQueryBuilder.preparedDelete(delete, tm.getConnection(), qAssetFeature, null );
        try {
            int changes = pd.execute();
            logger.info( "Delete " + changes + " asset features where  value_asset_id = " + assetRefId);
        }
        finally {
            pd.close();
        }
        tm.end();

How can I execute an XML Asset Query

XMLAssetQuery query = new XMLAssetQuery(queryXml);
                List<AssetRef> resultAssetRefs = QueryAssetsAction.executeQuery( this , query);

How to get data from cashed tables

CachedTable<Feature> featureTable = appSession.getCachedTables().getTable(Feature. class );
                Iterator<Feature> iterator = featureTable.getRecords().iterator();