Integration Toolbox
for IBM® TIVOLI® Storage Manager

for IBM® Tivoli® Storage Manager

IBM® Tivoli® Storage Manager (TSM) is an enterprise class backup and archive solution built on more than 25 years of experience. Thousands of enterprises are using and relying upon it as a proven backup and archive solution.

TSM offers a lot of functionality, yet many customers fail to recognize its full potential. For example, TSM provides IBM® System Storage® Archive Manager (SSAM), a seldom employed feature, which offers a secure way to archive, protect and expire data whose expiration can be triggered by business events. Utilizing SSAM can dramatically reduce the amount of data in online databases and can help companies to become compliant with records retention regulations.

Using SSAM’s features in business applications, however, is difficult and only possible through its C/C++ API or via IBM provided connectors. For Java based business applications, our Integration Toolbox for IBM Tivoli Storage Manager product provides an effortless way to take advantage of existing TSM/SSAM environments using a high level Java API. SOA environments can use our JAX-WS compliant Web Services for TSM feature without having a single line of code written.

At a glance

Accessible data – It is a daunting task for every company to store, access and share millions of documents – especially generated on a daily basis – in a reliable and efficient way. Storing a large number of documents in a relational database is an inefficient option. An enterprise content management system can be efficient, but giving clients access to such an archive may result in huge license costs. Application architects do not consider TSM/SSAM as a possible application backend component. We intend to change this thinking. Using our toolbox, you can discover and exploit TSM/SSAM’s wide range of document handling capabilities. It also offers you a fast and cost effective way to store documents and create an application specific archiving solution.

Simple yet comprehensive API – our toolbox is easy to use, it only takes 11 lines of concise source code to back up an object. It provides object oriented access to all native TSM API functions via a low-overhead gateway, and it also speeds up development of a TSM/SSAM based application by supporting contemporary programming patterns. Features include:

  • Fluent query language
  • Object-oriented event-based retention
  • Stream based object handling
  • Object oriented backup grouping
  • Portable program code

Bluemix version available. The Bluemix version of our Toolbox can be deployed to a Bluemix organization, it makes an SSAM based regulations compliant archive accessible  from Bluemix applications.  Integration Toolbox will be available in the IBM Cloud marketplace and in the Bluemix catalog at the beginning of May 2015.

How to get started – If you want to get started with Integration Toolbox for IBM Tivoli Storage Manager, please visit Use our PDF or Javadoc API documentation to discover more of what our product can offer. If you have any questions, please contact us via e-mail:

Code Snippet: An archive object query

// Starting a new session
TSMSession session = Toolbox.createSession(”TSMAPI”, ”PASSWORD”);
// Retrieving a filespace
IFilespace filespace = session.retrieveFilespace(”/ARCHIVEFS”);
// Create and execute a query for archive objects
IArchiveQuery archiveQuery = filespace.createArchiveQuery();
IResultSet archiveObjects = archiveQuery
	.highLevelNameMatches(”/ARCHIVE”)    // High level name = /ARCHIVE
	.lowLevelNameMatches(”/*”)           // Matches any low level name
	.ownerMatchesAny()                   // Matches any owner name
	.descriptionMatches(WILDCARD_STAR)   // Matches any description
	.insertedBetween(BEGINDATE, ENDDATE) // Matches any insert date
	.expireBetween(BEGINDATE, ENDDATE)   // Matches any expiration date
	.filesAndDirectories()               // Both files and directories
	.execute();                          // Execute the query
while ( {
	IArchiveObject archiveObject = (IArchiveObject) archiveObjects.get();
	processObject(archiveObject);        // Process the returned object