Broker Command-line Utilities

EntireX Broker provides the following internal services: Command Service and Information Service, which can be used to administer and monitor brokers. Because these services are implemented internally, nothing has to be started or configured. You can use these services immediately after starting EntireX Broker. This document covers the following topics:


ETBINFO

Queries the Broker for different types of information, generating an output text string with basic formatting. This text output can be further processed by script languages. ETBINFO uses data descriptions called profiles to control the type of data that is returned for a request. ETBINFO is useful for monitoring and administering EntireX Broker efficiently, for example how many users can run concurrently and whether the number of specified message containers is large enough.

Although basic formatting of the output is available, it is usually formatted by script languages or other means external to the Broker.

Running the Command-line Utility

In a z/VSE environment, run the command-line utility ETBINFO as shown below:

* $$ JOB JNM=RUNINFO,CLASS=0,DISP=D                                             
* $$ LST CLASS=A,DISP=H                                                         
// JOB RUNINFO                                                                  
*                                                                               
* INFORMATION SERVICES SAMPLE JCL                                               
*                                                                               
// LIBDEF *,SEARCH=(SAGLIB.EXX960,SAGLIB.WAL826)                                
/*                                                                              
/* / EXEC ETBINFO,PARM='ENVAR("LOGNAME=ENTIRE")/-d BROKER -c PING -bip:+      
/*               port:TCP'                                                    
// EXEC ETBINFO,PARM='ENVAR("LOGNAME=ENTIRE")/-d BROKER -c PING -bETBn+        
               nnnn:SVCmmm:NET'                                              
/*                                                                              
// EXEC LISTLOG                                                                 
/&                                                                              
* $$ EOJ

Command-line Parameters

The table below explains the command-line parameters. The format string and profile parameters are described in detail following the table. All entries in the Option column are case-sensitive.

Option Command-line Parameter Req/
Opt
Explanation
-b brokerid R Broker identifier, for example localhost:1971:TCP.
-c class O Class as selection criterion.
-C   O Create output with comma-separated values, suitable for input into a spreadsheet or other analysis tool. Any format string specified by means of format string or profile command-line parameters is ignored.
-d object R Possible values:
Object Provides Info on
BROKER Broker.
CLIENT Client.
CMDLOG-FILTER Command log filter.
CONVERSATION Conversation.
NET Entire Net-Work transport.
PARTICIPANT Participant.
POOL-USAGE Broker pool usage.
PSF Unit-of-work status.
PSFADA Adabas persistent store.
PSFCTREE c-tree persistent store.
PSFDIV DIV persistent store.
RESOURCE-USAGE Broker resource usage.
SECURITY EntireX Security.
SERVER Server.
SERVICE Service.
STATISTICS Broker statistics.
TCP TCP transport.
UOW-STATISTICS Units of work per service.
USER Participant (short).
WORKER Worker.
WORKER-USAGE Worker usage.
-e recv class O Receiver's class name. This selection criterion is valid only for object PSF.
-f Format String O Format string how you expect the output. See Profile.
-g recv service O Receiver's service name. This selection criterion is valid only for object PSF.
-h help O Prints help information.
-i convid O Conversation ID as selection criterion. Only valid for object CONVERSATION.
-I conv type O Conversation's type.
-j recv server O Receiver's server name. This selection criterion is valid only for object PSF.
-k recv token O Receiver's token. This selection criterion is valid only for object PSF.
-l level O The amount of information displayed:
FULL All information.
SHORT User-specific information.
-m recv userid O Receiver's user ID. This selection criterion is valid only for object PSF.
-n server name O Server name. This selection criterion is valid only for the objects SERVER, SERVICE or CONVERSATION.
-p library.sublibrary(profile.pro) O Here you can specify a sublibrary element that defines the layout of the output. There are default files you can modify or you can use your own. The default files are:
BROKER CLIENT CLOGFLT CONV NET
POOL PSF PSFADA PSFCTREE PSFDIV
SERVICE STATIS STATIS TCP
USER WORKER WKRUSAGE
See Profile.
-q puserid O Physical user ID. This selection criterion is valid only for objects CLIENT, SERVER, CONVERSATION,

Note:
Must be a hex value.

-r sec O Refresh information after seconds.
-s service O Service. This selection criterion is valid only for objects SERVER, SERVICE or CONVERSATION.
-t token O This selection criterion is valid only for objects CLIENT, SERVER, SERVICE or CONVERSATION.
-u userid O User ID. This selection criterion is only valid for the display types CLIENT, SERVER, SERVICE or CONVERSATION.
-v UOW status O Unit of work status. This selection criterion is valid only for object PSF.
-w UOW ID O Unit of work ID. This selection criterion is valid only for object PSF.
-x userid O User ID. For security purposes.
-y password O Password. For security purposes.
-z token O Used with userid to uniquely identify a caller to Command and Information Services.

Profile

If you do not use the profile option or a format string, your output will be an unformatted list with all columns of that display type. To display specific columns, specify a profile that includes only those columns.

The following default sample profiles include all the columns defined for each display type:

  • BROKER

  • CLIENT

  • CLOGFLT

  • CONV

  • POOL

  • PSF

  • PSFADA

  • PSFCTREE

  • PSFDIV

  • RESOURCE

  • SECURITY

  • SERVER

  • SERVICE

  • STATIS

  • TCP

  • USER

  • WKRUSAGE

  • WORKER

You can either delete the columns not required or copy the default profile and modify the order of the columns. Ensure that the column names have a leading "%". Column names can be written in one line or on separate lines. The output is always written side by side.

Location of Profiles

On z/VSE, the profiles used to control the format of the data displayed are members of the EXX960 sublibrary and are named SERVER.PRO, CLIENT.PRO etc.

Example of using a profile:

// EXEC ETBINFO,PARM='ENVAR("LOGNAME=ENTIRE")/-b LOCALHOST:1971:TCP    +
               -d SERVICE -p DD:SAGLIB.EXX960(SERVICE.PRO)'

Format String

The format string, if specified, will override the use of a profile. The format string is built like a printf() in C language. The string must be enclosed in quotation marks. You can specify the columns by using a "%" and the column name. The column name must contain letters only. Numeric characters are not allowed. You can specify the length of column output by using a format precision, as in the ANSI-C printf() function. The column name must be followed by a blank. For example:

// EXEC ETBINFO,PARM='ENVAR("LOGNAME=ENTIRE")/-b LOCALHOST:1971:TCP    +
-d SERVICE',                                            +
PARM=' -f "CLASS: %24SERVER-CLASS   SERVER: %24SERVER-NA+
ME   SERVICE: %24SERVICE"'

which produces:

CLASS:                      SAG   SERVER:                   ETBCIS   SERVICE:                     INFO
CLASS:                      SAG   SERVER:                   ETBCIS   SERVICE:                USER-INFO
CLASS:                      SAG   SERVER:                   ETBCIS   SERVICE:                      CMD
CLASS:                      SAG   SERVER:                   ETBCIS   SERVICE:     PARTICIPANT-SHUTDOWN
CLASS:                      SAG   SERVER:                   ETBCIS   SERVICE:             SECURITY-CMD

Example:

// EXEC ETBINFO,PARM='ENVAR("LOGNAME=ENTIRE")/-b DAVLCSI:9084:TCP      +
               -d BROKER',                                             +
               PARM=' -f "%12.12CPLATNAME   %NUM-SERVER   %NUM-CLIENT"'

which produces:

z/VSE 5.1.2   12   200

You can also use an arbitrary column separator, which can be any character other than "%". You can use \n for a new line in the output and \t for a tabulator in the format string or profile. Please note that due to the PARM string syntax in the z/VSE EXEC command, \n becomes \\n. For example:

// EXEC ETBINFO,PARM='ENVAR("LOGNAME=ENTIRE")/-b LOCALHOST:1971:TCP    +
               -d SERVICE',                                            +
               PARM=' -f "CLASS: %SERVER-CLASS   \\n\\tSERVER: %SERVER-+
               NAME   \\n\\tSERVICE: %SERVICE"'

which produces:

CLASS: SAG
      SERVER: ETBCIS
      SERVICE: INFO
CLASS: SAG
      SERVER: ETBCIS
      SERVICE: USER-INFO
CLASS: SAG
      SERVER: ETBCIS
      SERVICE: CMD
CLASS: SAG
      SERVER: ETBCIS
      SERVICE: PARTICIPANT-SHUTDOWN
CLASS: SAG
      SERVER: ETBCIS
      SERVICE: SECURITY-CMD

Using SSL/TLS

Together with SSL parameters (to provide certificates), define ATLS rules for socket interception in the ATLS daemon startup job BSTTATLS graphics/no2.gif. If the rules match, the socket connection is turned into an SSL connection graphics/no5.gif. Refer to your IBM documentation for further information. For an overview, refer to the IBM Redbook Enhanced Networking on IBM z/VSE; for a more detailed description, refer to BSI SSL Installation, Programming and User's Guide.

graphics/commandLine_common_ssl.png

graphics/no1.gif BSI TCP/IP Stack, either BSTTINET (IPv4) or BSTT6NET (IPv6).
graphics/no2.gif ATLS rules are defined manually. See Sample ATLS Daemon Configuration below.
graphics/no3.gif BSTTATLS is associated with a TCP/IP stack.
graphics/no4.gif Application using a TCP connection.
graphics/no5.gif BSTTATLS intercepts outbound TCP connection and converts it to SSL connection. For inbound, SSL connections can also be intercepted and converted to TCP connections.

Start of instruction setTo set up SSL with ATLS

  1. To operate with SSL, certificates need to be provided and maintained. Depending on the platform, Software AG provides default certificates, but we strongly recommend that you create your own. See SSL/TLS Sample Certificates Delivered with EntireX in the EntireX Security documentation.

  2. Set up the tool for a TCP/IP connection. On mainframe platforms, use Transport-method-style Broker ID. Example:

    ETB024:1699:TCP
  3. Configure AT-TLS to turn the TCP/IP connection to an SSL connection, see above.

  4. Make sure the broker is prepared for SSL connections as well. See Running Broker with SSL/TLS Transport under z/OS | UNIX | Windows | z/VSE.

Sample ATLS Daemon Configuration

* Converting inbound EntireX Broker connection 
* Converts listen port 1971 to SSL listen port 1972
OPTION SERVER 
ATTLS 1971 AS 2071 SSL
*
* Converting outbound client connection
* Converts connect to 192.168.2.100:1972:TCP to 192.168.2.100:2072:SSL
OPTION CLIENT
ATTLS 1972 TO 192.168.2.100 AS 2072 SSL

Note:
We recommend setting SETPARM value SUBTASK to a value greater than 0 in the ATLS daemon startup job (valid values 0-16, default=0). For example:

// SETPARM SUBTASK=8

See also BSI SSL Installation, Programming and User's Guide.

ETBCMD

Allows the user to take actions - for example purge a unit of work, stop a server, shut down a Broker - against EntireX Broker.

Running the Command-line Utility

In a z/VSE environment, run the ETBCMD command-line utility like this:

* $$ JOB JNM=RUNCMD,CLASS=0,DISP=D                                              
* $$ LST CLASS=A,DISP=H                                                         
// JOB RUNCMD                                                                   
*                                                                               
* COMMAND SERVICES SAMPLE JCL                                                   
*                                                                               
// LIBDEF *,SEARCH=(SAGLIB.EXX960,SAGLIB.WAL826)                                
/*                                                                              
/* / EXEC ETBCMD,PARM='ENVAR("LOGNAME=ENTIRE")/-d BROKER -c PING -bip:+      
/*               port:TCP'                                                     
// EXEC ETBCMD,PARM='ENVAR("LOGNAME=ENTIRE")/-d BROKER -c PING -bETBnn+        
               nnn:SVCmmm:NET'                                               
/*                                                                              
// EXEC LISTLOG                                                                 
/amp;                                                                              
* $$ EOJ

Command-line Parameters

The table below explains the command-line parameters. All entries in the Option column are case-sensitive.

Command-line Parameter Option Parameter Req/ Opt Explanation
brokerid -b e.g. ETB001 R Broker ID.
command -c
  • ALLOW-NEWUOWMSGS

  • CLEAR-CMDLOG-FILTER

  • CONNECT-PSTORE

  • DISABLE-ACCOUNTING

  • DISABLE-CMDLOG-FILTER

  • DISABLE-CMDLOG

  • DISABLE-DYN-WORKER

  • DISCONNECT-PSTORE

  • ENABLE-ACCOUNTING

  • ENABLE-CMDLOG-FILTER

  • ENABLE-CMDLOG

  • ENABLE-DYN-WORKER

  • FORBID-NEWUOWMSGS

  • PING

  • PRODUCE-STATISTICS

  • PURGE

  • RESET-USER

  • RESUME

  • SET-CMDLOG-FILTER

  • SHUTDOWN

  • START

  • STATUS

  • STOP

  • SUSPEND

  • SWITCH-CMDLOG

  • TRACE-FLUSH

  • TRACE-OFF

  • TRACE-ON

  • TRAP-ERROR

R Command to be performed. See List of Commands and Objects below.
object type -d
  • BROKER

  • CONVERSATION

  • PARTICIPANT

  • PSF

  • SECURITY

  • SERVER

  • SERVICE

  • TRANSPORT

R The object type to be operated on. See List of Commands and Objects below. Within EntireX Broker nomenclature, a participant is an application implicitly or explicitly logged on to the Broker as a specific user. A participant could act as client or server.
  -e errornumber O Error number being trapped.
  -E   O Exclude attach servers from service shutdown.
help -h   O Prints help information.
class/server/service -n class/server/service O Service triplet.
option -o
  • ACCEPTED

  • CANCELLED

  • IMMED

  • QUIESCE

  • LEVELn, where n=1-8

O Command option.
puserid -p puserid O Physical User ID. For SERVER and PARTICIPANT objects only. This must be a hex value.
seqno -S sequence number O Sequence number of participant.
token -t token O Token. For PARTICIPANT object only.
uowid -u uowid O Unit of work ID. For PSF object only.
userid -U userid O User ID. For PARTICIPANT object only.
secuserid -x userid O User ID for security purposes.
transportid -X Transport ID O One of the following:
COM|NET|TCP|Tnn. See table below.
secpassword -y password O Password for security purposes.

Transport ID Values

This table explains the possible values for parameter transportid:

Transport ID Explanation
COM all communicators
NET NET transport communicator
TCP all TCP/IP communicators
T00 TCP/IP communicator 1
T01 TCP/IP communicator 2
T02 TCP/IP communicator 3
T03 TCP/IP communicator 4
T04 TCP/IP communicator 5

List of Commands and Objects

This table lists the available commands and the objects to which they can be applied.

Command Object

graphics/broker.gif

graphics/conversation.gif

graphics/participant.gif

graphics/psf.gif

graphics/security.gif

graphics/server.gif

graphics/service.gif

graphics/transport.gif

ALLOW-NEWUOWMSGS       x        
CLEAR-CMDLOG-FILTER x              
CONNECT-PSTORE       x        
DISABLE-ACCOUNTING x              
DISABLE-CMDLOG-FILTER x              
DISABLE-CMDLOG x              
DISCONNECT-PSTORE       x        
ENABLE-ACCOUNTING x              
ENABLE-CMDLOG-FILTER x              
ENABLE-CMDLOG x              
FORBID-NEWUOWMSGS       x        
PING x              
PRODUCE-STATISTICS x              
PURGE       x        
RESET-USER         x      
SET-CMDLOG-FILTER x              
SHUTDOWN x x x     x x  
START               x
STATUS               x
STOP               x
SWITCH-CMDLOG x              
TRACE-OFF x     x x      
TRACE-ON x     x x      

Examples

ETBCMD Example PARM Strings Description
PARM='ENVAR("LOGNAME=ENTIRE")/-h' Displays ETBCMD help text.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d BROKER -c TRACE-OFF' Turns Broker tracing off.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d BROKER -c TRACE-ON -o LEVEL2' Sets Broker trace level to 2.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d BROKER -c SHUTDOWN' Performs Broker shutdown.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d SERVICE -c SHUTDOWN -o IMMED -n ACLASS/ASERVER/ASERVICE' Shutdown service CLASS=ACLASS,SERVER=ASERVER,SERVICE=ASERVICE. See also SHUTDOWN SERVICE for more information on shutdown options.
  Create list of servers and shutdown specific server in two steps (first step uses ETBINFO). See also SHUTDOWN SERVER.
EXEC ETBINFO,PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d SERVER -l FULL -f"%USER-ID %SEQNO"' 1. Determine a list of all servers with sequence numbers.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d SERVER -c SHUTDOWN -o IMMED -S32' 2. Shutdown server with sequence number 32.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d BROKER -c PING' Performs an EntireX ping against the Broker.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d PSF -c DISCONNECT-PSTORE' Disconnects the Broker PSTORE.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d PSF -c CONNECT-PSTORE' Connects the Broker PSTORE.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d PSF -c PURGE -u 100000000U00001A' Purges a unit of work.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d PSF -c ALLOW-NEWUOWMSGS' Allows new units of work to be stored.
PARM='ENVAR("LOGNAME=ENTIRE")/-b etb001 -d PSF -c FORBID-NEWUOWMSGS' Disallows new units of work to be stored.

Using SSL/TLS

Together with SSL parameters (to provide certificates), define ATLS rules for socket interception in the ATLS daemon startup job BSTTATLS graphics/no2.gif. If the rules match, the socket connection is turned into an SSL connection graphics/no5.gif. Refer to your IBM documentation for further information. For an overview, refer to the IBM Redbook Enhanced Networking on IBM z/VSE; for a more detailed description, refer to BSI SSL Installation, Programming and User's Guide.

graphics/commandLine_common_ssl.png

graphics/no1.gif BSI TCP/IP Stack, either BSTTINET (IPv4) or BSTT6NET (IPv6).
graphics/no2.gif ATLS rules are defined manually. See Sample ATLS Daemon Configuration below.
graphics/no3.gif BSTTATLS is associated with a TCP/IP stack.
graphics/no4.gif Application using a TCP connection.
graphics/no5.gif BSTTATLS intercepts outbound TCP connection and converts it to SSL connection. For inbound, SSL connections can also be intercepted and converted to TCP connections.

Start of instruction setTo set up SSL with ATLS

  1. To operate with SSL, certificates need to be provided and maintained. Depending on the platform, Software AG provides default certificates, but we strongly recommend that you create your own. See SSL/TLS Sample Certificates Delivered with EntireX in the EntireX Security documentation.

  2. Set up the tool for a TCP/IP connection. On mainframe platforms, use Transport-method-style Broker ID. Example:

    ETB024:1699:TCP
  3. Configure AT-TLS to turn the TCP/IP connection to an SSL connection, see above.

  4. Make sure the broker is prepared for SSL connections as well. See Running Broker with SSL/TLS Transport under z/OS | UNIX | Windows | z/VSE.

Sample ATLS Daemon Configuration

* Converting inbound EntireX Broker connection 
* Converts listen port 1971 to SSL listen port 1972
OPTION SERVER 
ATTLS 1971 AS 2071 SSL
*
* Converting outbound client connection
* Converts connect to 192.168.2.100:1972:TCP to 192.168.2.100:2072:SSL
OPTION CLIENT
ATTLS 1972 TO 192.168.2.100 AS 2072 SSL

Note:
We recommend setting SETPARM value SUBTASK to a value greater than 0 in the ATLS daemon startup job (valid values 0-16, default=0). For example:

// SETPARM SUBTASK=8

See also BSI SSL Installation, Programming and User's Guide.