Defining the Message Bank Server
Defining the Message Bank Server
To define the Message Bank server, do the following on the server machine, in an interoperability-enabled namespace:
-
Create a subclass of the Ens.Enterprise.MsgBank.ProductionOpens in a new tab abstract class.
-
Copy its ProductionDefinition XData block into your class.
-
Compile your new class.
The following shows an example:
Class MyPkg.MyMessageBank Extends Ens.Enterprise.MsgBank.Production
{
XData ProductionDefinition
{
<Production Name="Ens.Enterprise.MsgBank.Production" TestingEnabled="false" LogGeneralTraceEvents="false">
<Description>Production for receiving and collating message bank submissions from one or more client
interoperability-enabled namespaces and for maintaining a local repository of production status
information about each client namespace, for display on the Enterprise Monitor page. Open the Monitor
page on the same machine that is hosting this Production.</Description>
<ActorPoolSize>0</ActorPoolSize>
<Setting Target="Production" Name="ShutdownTimeout">120</Setting>
<Setting Target="Production" Name="UpdateTimeout">10</Setting>
<Item Name="MonitorService" Category="" ClassName="Ens.Enterprise.MonitorService" PoolSize="1"
Enabled="true" Foreground="false" InactivityTimeout="0" Comment="Populates global
^IRIS.Temp.Ens.EntMonitorStatus by polling namespaces from Systems List every CallInterval seconds"
LogTraceEvents="false" Schedule="">
<Setting Target="Host" Name="AlertGracePeriod">0</Setting>
<Setting Target="Host" Name="AlertOnError">0</Setting>
<Setting Target="Host" Name="ArchiveIO">0</Setting>
<Setting Target="Adapter" Name="CallInterval">10</Setting>
</Item>
<Item Name="MsgBankService" Category="" ClassName="Ens.Enterprise.MsgBank.TCPService" PoolSize="100"
Enabled="true" Foreground="false" InactivityTimeout="20" Comment="" LogTraceEvents="true" Schedule="">
<Setting Target="Host" Name="AlertGracePeriod">0</Setting>
<Setting Target="Host" Name="AlertOnError">0</Setting>
<Setting Target="Host" Name="ArchiveIO">0</Setting>
<Setting Target="Adapter" Name="Endian">Big</Setting>
<Setting Target="Adapter" Name="UseFileStream">0</Setting>
<Setting Target="Adapter" Name="JobPerConnection">1</Setting>
<Setting Target="Adapter" Name="AllowedIPAddresses"></Setting>
<Setting Target="Adapter" Name="QSize">100</Setting>
<Setting Target="Adapter" Name="CallInterval">5</Setting>
<Setting Target="Adapter" Name="Port">9192</Setting>
<Setting Target="Adapter" Name="StayConnected">-1</Setting>
<Setting Target="Adapter" Name="ReadTimeout">10</Setting>
<Setting Target="Adapter" Name="SSLConfig"></Setting>
</Item>
</Production>
}
}
This production has the following services:
-
Ens.Enterprise.MsgBank.TCPServiceOpens in a new tab—Accepts inbound data from the client productions. For details on configuring this service, see Configuring the Message Bank Service on the Server.
-
Ens.Enterprise.MonitorServiceOpens in a new tab—Collects status information from the client productions.
This production receives this data and maintains a local repository.
For testing purposes, you can put the Message Bank production on the same machine and instance as your regular productions, but it must be in a separate namespace from any production you plan to monitor.