The Broker-internal RPC CIS Server provides the Command and Information Services using the Remote Procedure Call (RPC) protocol.
Two CIS IDL files are available in directory EntireX\etc\idl.
RPC CIS is a complete implementation of the Command and Information Services.
See Broker CIS Data Structures for a description of the CIS API. The names of the fields can also be found in the IDL (with case-insensitive and insignificant modifications).
The service names SAG/ETBCIS/RPCCIS
and RPC/RPCCIS/CALLNAT
can be used for all
versions of the CIS IDLs.
This document covers the following topics:
The files SagCmdServiceV6.idl to SagCmdServiceV8.idl are contained in directory etc. They provide an interface description of CIS version 6 and above. Brokers with more recent CIS versions are backward compatible down to version 6 via RPC CIS.
File SagCmdServiceV8.idl provides the interface description for all Command Services of CIS version 8.
This section covers the following topics:
struct 'COMMAND_REQUEST' is /*Broker CIS: command request structure define data parameter 1 Command (I2) 1 ObjectType (I2) 1 Option (I2) 1 puid (B28) 1 uowid (A16) 1 Topic (A96) 1 uid (A32) 1 Token (A32) 1 ServerClass (A32) 1 ServerName (A32) 1 ServiceName (A32) 1 reserved_etbinfo_v73_2 (A32) 1 convid (A16) 1 transportId (A3) 1 nSequenceNumber (I4) 1 cExcludeAttachServers (I1) 1 nErrorNumber (I4) end-define
The request structure is described under Command Request Structure. Note also the Command Request Parameter Combinations.
Program 'COMMAND':'command' is /*command request define data parameter 1 CmdRequest ('COMMAND_REQUEST') In 1 Function_Result (I4) Out end-define
You can call the command service using program COMMAND
, with the structure COMMAND_REQUEST
as argument. See Command Request Structure. Alternatively, you can enter the functions listed in the table directly:
Program Short Name (1) | Long Name (2) | Number | Command |
---|---|---|---|
COMMAND |
command |
n | all available commands |
CALLOW |
cmdAllow |
13 | ALLOW-NEWUOWMSGS |
CCLECLF |
cmdClearCmdLogFilter |
20 | CLEAR-CMDLOG-FILTER |
CNOP |
cmdNoOperation |
88 | NO-OPERATION |
CCONPST |
cmdConnectPStore |
17 | CONNECT-PSTORE |
CDISACC |
cmdDisableAccounting |
28 | DISABLE-ACCOUNTING |
CDISCL |
cmdDisableCmdLog |
24 | DISABLE-CMDLOG |
CDISCLF |
cmdDisableCmdLogFilter |
22 | DISABLE-CMDLOG-FILTER |
CDISDWK |
cmdDisableDynWorker |
37 | DISABLE-DYN-WORKER |
CDISPST |
cmdDisconnectPStore |
18 | DISCONNECT-PSTORE |
CENAACC |
cmdEnableAccounting |
27 | ENABLE-ACCOUNTING |
CENACL |
cmdEnableCmdLog |
23 | ENABLE-CMDLOG |
CENACLF |
cmdEnableCmdLogFilter |
21 | ENABLE-CMDLOG-FILTER |
CENADWK |
cmdEnableDynWorker |
38 | ENABLE-DYN-WORKER |
CFORBID |
cmdForbid |
14 | FORBID-NEWUOWMSGS |
CPROSTA |
cmdProduceStatistics |
25 | PRODUCE-STATISTICS |
CPURGE |
cmdPurge |
12 | PURGE |
CRSTUSR |
cmdResetUser |
29 | RESET-USER |
CTRARES |
cmdResume |
31 | RESUME |
CSETCLF |
cmdSetCmdLogFilter |
19 | SET-CMDLOG-FILTER |
CSHUTB |
cmdShutdownBroker |
8 | SHUTDOWN (3) |
CSHUTC |
cmdShutdownConversation |
8 | SHUTDOWN |
CSHUTP |
cmdShutdownParticipant |
8 | SHUTDOWN |
CSHUTS |
cmdShutdownServer |
8 | SHUTDOWN |
CTRASTR |
cmdStart |
33 | START |
CTRASTA |
cmdStatus |
36 | STATUS |
CTRASTP |
cmdStop |
32 | STOP |
CSUB |
cmdSubscribe |
15 | SUBSCRIBE (4) |
CTRASUS |
cmdSuspend |
30 | SUSPEND |
CSWICL |
cmdSwitchCmdLog |
26 | SWITCH-CMDLOG |
CTRCFLU |
cmdTraceFlush |
35 | TRACE-FLUSH |
CTRCOFF |
cmdTraceOff |
2 | TRACE-OFF |
CTRCON |
cmdTraceOn |
1 | TRACE-ON |
CTRPERR |
cmdTrapError |
34 | TRAP-ERROR |
CUNSUB |
cmdUnsubscribe |
16 | UNSUBSCRIBE (4) |
Notes:
CSHUTB
(cmdShudtownBroker
) in a non-secure mode.
The prototypes and source code can be found in the generated files:
Language | File(s) |
---|---|
C | CSAGCCV8.h, CSAGCCV8.c |
Java | SagCmdServiceV8.java |
.NET | Sagccv8.cs |
Files SagInfServiceV6.idl to SagInfServiceV8.idl are contained in directory etc. They provide an interface description of CIS version 6 and above. Brokers with more recent CIS versions are backward compatible down to version 6 via RPC CIS.
File SagInfServiceV8.idl provides the interface description for all Information Services. The following functions are used to receive an unbounded array of the corresponding Broker Information Service.
See also Using Unbounded Arrays.
struct 'INFORMATION_REQUEST' is /*CIS: information request define data parameter 1 ObjectType (I2) 1 uid (A32) 1 puid (B28) 1 Token (A32) 1 ServerClass (A32) 1 ServerName (A32) 1 ServiceName (A32) 1 convid (A16) 1 uowid (A16) 1 uowStatus (I1) 1 userStatus (A32) 1 recvUID (A32) 1 recvToken (A32) 1 recvClass (A32) 1 recvServer (A32) 1 recvService (A32) 1 Topic (A96) 1 publicationId (A16) 1 subscriptionType (I2) 1 conversationType (I2) 1 level (I1) end-define
The request structure is described under Information Request Structure.
The optional parameter level
, which only appears in the Info Service IDL, determines the service used:
If level=0
the RPC request is passed to the broker-internal service USER-INFO
(default).
If level=1
the RPC request is passed to the service INFO
.
program 'INFO':'info' is /*all define data parameter 1 InfRequest ('INFORMATION_REQUEST') In 1 InfBroker ('INFO_BRK'/V) Out 1 InfWorker ('INFO_WRK'/V) Out 1 InfService ('INFO_SV'/V) Out 1 InfClient ('INFO_CS'/V) Out 1 InfServer ('INFO_CS'/V) Out 1 InfParticipant ('INFO_CS'/V) Out 1 InfConversation ('INFO_CV'/V) Out 1 InfPSF ('INFO_PSF'/V) Out 1 InfPSFADA ('INFO_PSFADA'/V) Out 1 InfPSFDIV ('INFO_PSFDIV'/V) Out 1 InfPSFFile ('INFO_PSFFILE'/V) Out 1 InfPSFCTree ('INFO_PSFCTREE'/V) Out 1 InfSubscriber ('INFO_SUBSCRIBER'/V) Out 1 InfPublisher ('INFO_PUBLISHER'/V) Out 1 InfPublication ('INFO_PUBLICATION'/V) Out 1 InfTopic ('INFO_TOPIC'/V) Out 1 InfTcp ('INFO_TCP'/V) Out 1 InfSecurity ('INFO_SECURITY'/V) Out 1 InfSsl ('INFO_SSL'/V) Out 1 InfCmdLogFilter ('INFO_CMDLOG_FILTER'/V) Out 1 InfNet ('INFO_NET'/V) Out 1 InfPoolUsage ('INFO_POOL_USAGE'/V) Out 1 InfResourceUsage ('INFO_RESOURCE_USAGE'/V) Out 1 InfStatistics ('INFO_STATISTICS'/V) Out 1 InfUser ('INFO_USER'/V) Out 1 InfWorkerUsage ('INFO_WRK_USAGE'/V) Out 1 Function_Result (I4) Out end-define
You can call the information service using program INFO
, with the structure INFORMATION_REQUEST
as argument. See Information Request Structure. Depending on the object type, the reply will contain the corresponding INFO_
structure containing one or more records. The variable array contains all available data. No segmentation takes place. Alternatively,
you can call directly the functions listed below for the individual object types.
All functions below return the corresponding structure from the information reply structures.
Program Short Name (1) | Long Name (2) | See |
---|---|---|
INFO |
info |
One of available reply structures; see Information Reply Structures |
IBROKER |
infoBroker |
BROKER-OBJECT |
ICMDLGF |
infoCmdLogFilter |
CMDLOG_FILTER-OBJECT |
ICLIENT |
infoClient |
CLIENT-SERVER-PARTICIPANT-OBJECT |
ICONV |
infoConversation |
CONVERSATION-OBJECT |
INET |
infoNet |
NET-OBJECT |
IPOOLUS |
infoPoolUsage |
POOL-USAGE-OBJECT |
IPARTI |
infoParticipant |
CLIENT-SERVER-PARTICIPANT-OBJECT |
IPSF |
infoPsf |
PSF-OBJECT |
IPSFADA |
infoPsfAda |
PSFADA-OBJECT |
IPSFCTR |
infoPsfCtr |
PSFCTREE-OBJECT |
IPSFDIV |
infoPsfDiv |
PSFDIV-OBJECT |
IPSFFIL |
infoPsfFil |
PSFFILE-OBJECT |
IPUBLIC |
infoPublication |
PUBLICATION-OBJECT |
IPUBLIS |
infoPublisher |
PUBLISHER-OBJECT |
IRESUS |
infoResourceUsage |
RESOURCE-USAGE-OBJECT |
ISECUR |
infoSecurity |
SECURITY-OBJECT |
ISERVER |
infoServer |
CLIENT-SERVER-PARTICIPANT-OBJECT |
ISERVIC |
infoService |
SERVICE-OBJECT |
ISSL |
infoSSL |
SSL-OBJECT |
ISTAT |
infoStatistics |
STATISTICS-OBJECT |
ISUBSCR |
infoSubscriber |
SUBSCRIBER-OBJECT |
ITCP |
infoTcp |
TCP-OBJECT |
ITOPIC |
infoTopic |
TOPIC-OBJECT |
IUSER |
infoUser |
USER-OBJECT |
IWORKER |
infoWorke |
WORKER-OBJECT |
IWORKUS |
infoWorkerUsage |
WORKER-USAGE-OBJECT |
Notes:
The prototypes and source code can be found in the generated files:
Language | File(s) |
---|---|
C | CSAGCIV8.h, CSAGCIV8.c |
Java | SagInfServiceV8.java |
.NET | Sagciv8.cs |
The following examples are available:
The .NET CIS Client Example can be found in the examples directory NetWrapper\Client\SagCisClient.cs. The directory includes the source file SagCisClient.cs and the README.TXT.
Information required to prepare and configure the EntireX Workbench:
Information required to to write a .NET CIS Client:
Build steps:
Prepare Eclipse.
Start Eclipse.
Create a new Java Project.
Add files SagCmdServiceV8.idl and SagInfServiceV8.idl to the project.
Generate the .NET RPC Client from SagCmdServiceV8.idl using the context menu.
Generate the .NET RPC Client from SagInfServiceV8.idl using the context menu.
Start Visual Studio.
Create a new Visual Studio Project. (.NET Console Application).
Insert the generated sources SAGCCV8.cs and SAGCIV8.cs.
Delete Program.cs.
Insert .NET example file SagCisClient.cs to the project.
Add Reference (<drive>:\SoftwareAG\common\EntireX\bin\SoftwareAG.EntireX.NETWrapper.Runtime.dll).
Build the solution.
Start the .NET CIS Client.
The Java CIS Client Example can be found in the examples directory EntireX\Examples\JavaWrapper\Client\SagCisService\mainSagCisClient.java. This directory includes the source file mainSagCisClient.java and the README.TXT.
Information required to prepare and configure the EntireX Workbench:
Information required to to write a Java CIS Client:
Build steps:
Prepare Eclipse.
Start Eclipse.
Create a new Java Project.
Add files SagCmdServiceV8.idl and SagInfServiceV8.idl to the project.
Add source file mainSagCisClient.java to the project.
Generate the Java RPC Client from SagCmdServiceV8.idl using the context menu.
Generate the Java RPC Client from SagInfServiceV8.idl using the context menu.
Build the Java CIS Client project.
Start the Java CIS Client.