Command and Info Services IDLs

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:


Command Service IDL

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:

Stucture COMMAND_REQUEST

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

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

Notes:

  1. Short name as used, for example, by C programs.
  2. Long name as used, for example, by Java programs.
  3. You cannot execute 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

Info Service IDL

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.

Structure INFORMATION_REQUEST

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

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 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
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
ITCP infoTcp TCP-OBJECT
IUSER infoUser USER-OBJECT
IWORKER infoWorke WORKER-OBJECT
IWORKUS infoWorkerUsage WORKER-USAGE-OBJECT

Notes:

  1. Short name as used, for example, by C programs.
  2. Long name as used, for example, by Java programs.

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