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 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 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:
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.