sure.
snapshotParam is a valid application id and snapshotType is
SQLMA_DBASE_ALL or SQLMA_APPL
<code>
struct sqlma *sqlma;
sqlma = (struct sqlma *) malloc(SQLMASIZE(1));
struct db2gGetSnapshotData sanpshotData;
struct sqlm_collected collected;
struct sqlca sqlca;
sqluint32 buffer_sz;
db2GetSnapshotSizeData getSnapshotSizeParam;
sqluint32 outputFormat;
memset(sqlma,'\0',SQLMASIZE(1));
sqlma->obj_num = 1;
sqlma->obj_var[0].obj_type = snapshotType;
if (snapshotParam != NULL)
{
strcpy(sqlma->obj_var[0].object,snapshotParam);
}
memset(&getSnapshotSizeParam,0,sizeof(getSnapshotS izeParam));
getSnapshotSizeParam.piSqlmaData = sqlma;
getSnapshotSizeParam.iVersion = SQLM_CURRENT_VERSION;
getSnapshotSizeParam.iNodeNumber = SQLM_ALL_NODES;
getSnapshotSizeParam.iSnapshotClass = SQLM_CLASS_DEFAULT;
getSnapshotSizeParam.poBufferSize = &buffer_sz;
db2GetSnapshotSize(db2Version810, &getSnapshotSizeParam, &sqlca);
if(sqlca.sqlcode !=0)
{
free(sqlma);
sqlma = NULL;
Db2Utilities::throwSqlExceptionOnError(sqlca);
}
if (buffer_sz >0 )
{
memset(&collected, 0, sizeof(struct sqlm_collected));
memset(&sanpshotData,0,sizeof(db2gGetSnapshotData) );
buffer = (char*)malloc(buffer_sz);
sanpshotData.piSqlmaData = sqlma;
sanpshotData.iNodeNumber = SQLM_ALL_NODES;
sanpshotData.iBufferSize = buffer_sz;
sanpshotData.iVersion = SQLM_CURRENT_VERSION;
sanpshotData.iSnapshotClass = SQLM_CLASS_DEFAULT;
sanpshotData.poCollectedData = &collected;
sanpshotData.poBuffer = buffer;
sanpshotData.iStoreResult = 0;
sanpshotData.poOutputFormat = &outputFormat;
db2GetSnapshot(db2Version810,&sanpshotData,&sqlca) ;
free(sqlma);
sqlma = NULL;
if (sqlca.sqlcode != cEmptySnapshotSqlcode && sqlca.sqlcode !=0)
{
Db2Utilities::throwSqlExceptionOnError(sqlca);
}
</code>