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

  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.
  4. See Writing Applications: Publish and Subscribe.

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

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:

  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

Examples

The following examples are available:

.NET CIS Client Example

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:

  1. Prepare Eclipse.

  2. Start Eclipse.

  3. Create a new Java Project.

  4. Add files SagCmdServiceV8.idl and SagInfServiceV8.idl to the project.

  5. Generate the .NET RPC Client from SagCmdServiceV8.idl using the context menu.

  6. Generate the .NET RPC Client from SagInfServiceV8.idl using the context menu.

  7. Start Visual Studio.

  8. Create a new Visual Studio Project. (.NET Console Application).

  9. Insert the generated sources SAGCCV8.cs and SAGCIV8.cs.

  10. Delete Program.cs.

  11. Insert .NET example file SagCisClient.cs to the project.

  12. Add Reference (<drive>:\SoftwareAG\common\EntireX\bin\SoftwareAG.EntireX.NETWrapper.Runtime.dll).

  13. Build the solution.

  14. Start the .NET CIS Client.

Java CIS Client Example

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:

  1. Prepare Eclipse.

  2. Start Eclipse.

  3. Create a new Java Project.

  4. Add files SagCmdServiceV8.idl and SagInfServiceV8.idl to the project.

  5. Add source file mainSagCisClient.java to the project.

  6. Generate the Java RPC Client from SagCmdServiceV8.idl using the context menu.

  7. Generate the Java RPC Client from SagInfServiceV8.idl using the context menu.

  8. Build the Java CIS Client project.

  9. Start the Java CIS Client.