Using the Enterprise Message Bank
This page describes how to access and use the Enterprise Message Bank, which is an optional remote archiving facility where you can collect messages, Event Log items, and search table entries from multiple client productions.
Accessing the Enterprise Message Bank
On the Message Bank Server
To access the Message Bank pages while on the Message Bank server:
-
Select Interoperability > Configure > Enterprise Systems.
-
Select either Message Bank Viewer or Message Bank Event Log.
This opens the Message Bank pages on this server.
On a Client System
To access the Message Bank pages while on a configured client:
-
Click Interoperability > Configure > Message Bank Link.
If the client has not yet been configured, the portal instead displays a page where you can specify the details needed to generate this link.
This opens the Message Bank pages on the Message Bank server.
Message Bank Pages
-
The Message Bank Viewer page is similar to the Message Viewer page. For general information, see Viewing Messages and Managing Messages.
On this page, when you resend messages, optionally select a value for Target Client. By default, the message is sent to its original client, but you can send it to a different client.
To improve efficiency, you can restrict the search to a single client by using the Message Bank Client filter. This allows InterSystems IRIS® to optimize searches with filters using message create times by using the system ID index.
-
The Message Bank Event Log page is similar to the Event Log page. For general information, see Viewing the Event Log.
Resending Messages to the Message Bank
Via the class Ens.Enterprise.MsgBank.ClientUtils, you can resend messages to the Message Bank from a client system. This class includes the following methods:
classmethod QueueForBanking(Output headersQueued As %Integer,
resultSet As %SQL.StatementResult,
startId,
endId As %String = "",
bankedFilter As %Integer = $$$MsgBankFilterAll,
bankOverrideFlags As %Integer = 0,
iterationLimit As %Integer = 100000,
msgBankOperation As %String = $$$MsgBankOperation) as %Status
Sends message headers, optional message bodies, and optional search table entries to a Message Bank. The parameters are as follows:
-
headersQueued—Returned as output, indicates the number of header-based requests sent in this call.
A header-based request is any message header or a header and body with optional search table.
-
resultSet—Optional instance of %SQL.StatementResultOpens in a new tab that includes the column ID, which is the ID of message headers to be resent to the Message Bank.
-
startId—Required if not specifying resultSet. This argument specifies the ID of the first message header to resend to the Message Bank.
-
endId—Optional. This argument specifies the ID of the last message header to resend to the Message Bank. The default is an empty string, which is interpreted as startId.
-
bankedFilter—Optional. This argument enables you to filter the set of messages to resend by whether they were previously sent to the Message Bank. Specify 1 to resend only messages that were previously sent to the Message Bank. Specify 2 to send only messages that were not previously sent to the Message Bank. Specify 3 (the default) to send all messages (no filtering).
-
bankOverrideFlags—Optional. This argument enables you to filter the set of kinds of entries to resend to the Message Bank. Specify an integer that is the sum of the following settings, as needed:
-
1 — Resend headers. Note that you must use at least this option.
-
2 — Resend bodies.
-
4 — Resend search table entries, if they exist.
For example, to send headers, bodies, and search table entries, specify this argument as 7 (that is, 1+2+4). Similarly, to send headers and search table entries, but not bodies, specify this argument as 5 (that is, 1+4).
-
-
iterationLimit—Optional. This argument limits the number of sequential headers that are examined. Defaults to 100,000.
-
msgBankOperation—Optional. This argument specifies the name of the banking operation. Defaults to Ens.Enterprise.MsgBankOperationOpens in a new tab.
To use this method, the caller must have the privilege %Ens_MsgBank_QueueForBanking:USE.
classmethod QueueForBankingAsync(Output queueToken As %String,
startId As %String = "",
endId As %String = "",
bankedFilter As %Integer = $$$MsgBankFilterAll,
bankOverrideFlags As %Integer = 0,
iterationLimit As %Integer = 100000,
msgBankOperation As %String = $$$MsgBankOperation) as %Status
Asynchronous version of the QueueForBanking() method; this uses the Work Queue Manager.
The queueToken argument, returned as output, is a secure token that you can use to subsequently attach the work queue to another process. See Detaching and Attaching a Work Queue.
Other arguments are the same as for QueueForBanking(), except that startId is required. This method does not support the resultSet argument.