Considerations for designing an application
When you design an application, you must have a broad understanding of many aspects of the API.
- Determining size limits
- Maintaining API version control
- Using multithreading
- Signals and signal handlers
- Starting or ending a session
- Object names and IDs
- Controlling access to password files
- Accessing objects as session owner
- Accessing objects across nodes and owners
- Managing file spaces
- Associating objects with management classes
- Expiration/deletion hold and release
- Querying the IBM Storage Protect system
- Sending data to a server
- Example flow diagrams for backup and archive
- File grouping
- State diagram summary for the IBM Storage Protect API
When you design your application, review the considerations in Table 1. Start structures with memset fields might change in subsequent releases. The stVersion value increments with each product enhancement.
| Design item | Considerations |
|---|---|
| Setting locale | The application must set the locale before the API is called. To set the locale to the default value, add the following code to the application: To set the locale to another value, use the same call with the proper locale in the second parameter. Check for specifics in the documentation for each operating system that you are using. |
| Session control | Apply the following guidelines to session control:
|
| Session control (continued) |
|
| Operation sequence | The IBM Storage Protect server locks file space database entries during some operations. The following rules apply when you are designing IBM Storage Protect API applications:
|
| Object naming | When you name objects, consider the following
factors:
|
| Object grouping | Group objects logically by using file spaces.
A file space is a container on the server that provides a grouping
category for the objects. The API queries all file spaces during the
initial sign-on and also during queries, so the number of file spaces
must be restricted. A reasonable assumption is that an application
sets up 20 - 100 file spaces per node. The API can cater for more
file spaces, but each file space incurs an overhead for the session.
To create a more granular separation, use the directory object in the application. |
| Object handling | Do not store objectID values
to use for future restores. These values are not guaranteed to be
persistent during the life of the object. During a restore, pay special attention to the restore order. After the query, sort on this value before the restore. If you are using multiple types of serial media, then access the different types of media in separate sessions. For more information, see the following topic: |
| Management class | Consider how much control the application must have over the management class that is associated with the application objects. You can define include statements, or you can specify a name on the dsmSendObj function call. |
| Object size | IBM Storage Protect needs to know a size estimate for each object. Consider how your application estimates the size of an object. An overestimation of the object size is better than an underestimation. |