Integration Toolbox
for IBM® TIVOLI® Storage Manager

package backup_restore; import hu.user.toolbox.tsm.IBackupObject; import hu.user.toolbox.tsm.IFilespace; import hu.user.toolbox.tsm.IResultSet; import hu.user.toolbox.tsm.ITSMSession; import hu.user.toolbox.tsm.Toolbox; import hu.user.toolbox.tsm.exception.ToolboxException; import hu.user.toolbox.tsm.query.IBackupQuery; import java.util.ArrayList; import java.util.List; /** * <b>Function:</b><br> * Deletes all backed-up objects from the TSM server. * <p> * Before executing this program send some objects to the server using * the BackupSingleObject, BackupSingleObjectManagementClassOverride or * BackupMultipleObjects sample. * <p> * The following operations are performed: * <ol> * <li>Initializing a single-threaded TSM API environment.</li> * <li>Creating a new TSMSession instance with the default connection options. * Connecting to the server using * the node name "TOOLBOX" and password "PASSWORD".</li> * <li>Retrieving the filespace named "/BACKUPFS"</li> * <li>Querying backup objects with the parameters: * high-level name "/BACKUP", low-level name "/* and object type "ANY_TYPE".</li> * <li>Iterating through the returned ResultSet, adding each object * to a list, then closing the result set.</li> * <li>Deleting each backup object from the list.</li> * <li>Disconnecting from the server and cleaning up the resources.</li> * </ol> * <p> * <b>Compile:</b> * <pre> * javac -d bin -cp ../lib/toolboxfortsm.jar backup_restore/DeleteBackupObjects.java * </pre> * <p> * <b>Execute:</b><br> * You should first set the environment variables to point to the correct * files/directories. * <pre> * set DSMI_CONFIG={Full path of your dsm.opt} * set DSMI_DIR={Tivoli Storage Manager API installation directory} * set DSMI_LOG={Any arbitrary directory} * </pre> * Then use the java command to execute the program: * <p> * <pre> * java -cp bin:../lib/toolboxfortsm.jar:../lib/ext/log4j-1.2.17.jar:../config * -Djava.library.path=../lib backup_restore.DeleteBackupObjects * </pre> */ public class DeleteBackupObjects { private static final String NODE_NAME = "TOOLBOX"; private static final String PASSWORD = "PASSWORD"; private static final String LOW_LEVEL_NAME_ANY = "/*"; private static final String HIGH_LEVEL_NAME = "/BACKUP"; private static final String FILESPACE_NAME = "/BACKUPFS"; public static void main(final String args[]) throws ToolboxException { ITSMSession session = null; try { // Initializing a single-threaded environment Toolbox.initSingleThreading(); // Connecting to the server with the default connection options session = Toolbox.createSession(NODE_NAME, PASSWORD); // Retrieving the existing filespace from server IFilespace filespace = session.retrieveFilespace(FILESPACE_NAME); // Checking if filespace exists if (filespace == null) { System.out.printf("Warning: '%s' does not exists.\n", FILESPACE_NAME); return; } List<IBackupObject> backupObjects = new ArrayList<IBackupObject>(); IBackupQuery backupQuery = filespace.createBackupQuery(); IResultSet backups = null; boolean hasObjects = false; try { // Querying all backup objects of the filespace matching the specified criteria backups = backupQuery .highLevelNameMatches(HIGH_LEVEL_NAME) .lowLevelNameMatches(LOW_LEVEL_NAME_ANY) .ownerMatchesAny() // Matches any owner name .filesAndDirectories() // Query for both files and directories .allVersions() // Query for both active and inactive versions .execute(); // Execute the query // Iterating over the returned result set while (backups.next()) { hasObjects = true; backupObjects.add((IBackupObject) backups.get()); } if (!hasObjects) { System.out.printf("The filespace '%s' does not contain any backup objects.\n", FILESPACE_NAME); } } catch (Exception e) { e.printStackTrace(); }finally{ // Result set must be closed. backups.close(); } // Beginning a transaction session.beginTransaction(); try { for (IBackupObject backup : backupObjects) { // Deleting archive object backup.delete(); System.out.printf("The backup %s%s%s has been deleted.\n", backup.getFilespaceName(), backup.getHighLevelName(), backup.getLowLevelName()); } session.commit(); } catch(ToolboxException e) { // Rolling back the current transaction session.rollback(); } } catch (ToolboxException e) { e.printStackTrace(); } finally { // Disconnecting session.disconnect(); // Cleaning up the environment Toolbox.cleanUp(); } } }