API for data archiving
Sample script that initiates a connection to an archive server
Set SessionOref = ##class(%Archive.Session).%New() Set SessionOref.Host = 184.108.40.206 // IP address of the archive server Set SessionOref.AuthFile = AuthFilePath // path of the .pea file (for Centera) Set Status = SessionOref.Connect()
// create a content object as source, whose handle is ContentOref (see %Archive.Content) Set Status = SessionOref.Store(ContentOref, .ContentUID)
Here is a sample script to retrieve the file from the archive server, using the ContentUID and open connection above:
// create a content object as target, whose handle is ContentOref (see %Archive.Content) Set Status = SessionOref.Retrieve(ContentOref, ContentUID)
- Only EMC Centera server is supported as an archive server
- The source of storing and the target of retrieval must be files
- Only one open connection per Cache process. Attempt to open additional connections (whether to the same server as the existing connection or not) would get an error.
- Retrieving selected files from a content containing multiple files ("blobs") is not supported.
Type of the archive system (EMC Centera) parameter VERSION = "0.1";
Version of the API
Name of the application, default to something like "Cache for Windows (x86-32)" (from $zv) property ApplicationVersion as %String;
Version of the application, default to something like "2008.2 (Build 366U)" (from $zv) property AuthFile as %String;
The path of a Pool Entry Authorization file (*.pea) property Host as %String;
Connection information, a comma-delimited list of IP addresses property Password as %String; property UserName as %String;
For example, "10.2.3.4,10.6.7.8"
An alternative to a PEA file is a pair of UserName and Password
Test the existence of a content (C-Clip) by its UID (ContentAddress) method Connect() as %Status
Connect to the server method DeleteContent(ContentUID As %String) as %Status
Delete a content (C-Clip) by its UID (ContentAddress) method Disconnect() as %Status
Disconnect from the server method Retrieve(ContentOref As %Archive.Content, ContentUID As %String) as %Status
Retrieve an entire content from server method Store(ContentOref As %Archive.Content, ByRef ContentUID As %String) as %Status
Store an entire content to server, commit and return a UID by reference