——————————————————— Janus TCP/IP Base Reference Manual Model 204 Interoperability Products ——————————————————— Sirius Software, Inc. 875 Massachusetts Avenue, Suite 21 Cambridge, MA 02139 Telephone: (617) 876-6677 FAX: (617) 234-1200 E-mail: support@sirius-software.com World Wide Web: http://sirius-software.com December 15, 2010 © 2010 Sirius Software, Inc. —————————————————————————————————————————— —————————————————————————————————————————— —————————————————————————————————————————— ii Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Proprietary Notices —————————————————————————————————————————— —————— Proprietary Notices The following products: ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Fast/Backup Fast/Reload Fast/Unload User Language Interface Janus Network Security Janus Open Client Janus Open Server Janus Sockets Janus Specialty Data Store Janus TCP/IP Base Janus Web Server Sirius Mods SirMon SirPro SirScan UL/SPF are proprietary products of Sirius Software, Inc.: Sirius Software, Inc. 875 Massachusetts Avenue, Suite 21 Cambridge, Massachusetts 02139 USA Model 204® is a proprietary product of Computer Corporation of America, a whollyowned subsidiary of Rocket Software, Inc., which owns the trademark: Rocket Software Corporate Office M204 Division 275 Grove Street Suite 3-410 Newton, Massachusetts 02466-2272 USA Microsoft Internet Explorer™ is a proprietary product of Microsoft Corporation. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual iii —————————————————————————————————————————— Proprietary Notices —————————————————————————————————————————— —————————————————————————————————————————— iv Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Contents —————————————————————————————————————————— ——————— Contents Proprietary Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Summary of Changes . . . Sirius Mods Version 7.7 Sirius Mods Version 7.6 Sirius Mods Version 7.2 Sirius Mods Version 7.1 Sirius Mods Version 6.8 Sirius Mods Version 6.7 Sirius Mods Version 6.5 Sirius Mods Version 6.4 Sirius Mods Version 6.3 Sirius Mods Version 6.2 Sirius Mods Version 6.1 Sirius Mods Version 6.0 Sirius Mods Version 5.5 Sirius Mods Version 5.4 Sirius Mods Version 5.3 Chapter 1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii xiii xiii xiii xiii xiv xiv xiv xv xv xvi xvii xvii xvii xviii xviii Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Janus, the Sirius Mods, and UL/SPF Versions and compatibility . . . . . Related manuals . . . . . . . . . . Related products . . . . . . . . . . System requirements . . . . . . . Chapter 2: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 4 4 4 Janus / Connectivity Concepts . . . . . . . . . . . . . . . . . . . 7 Server Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 JANUS DEFINE and JANUS DEFINEREMOTE Subcommands . . . . . . . . . 8 Chapter 3: Translate tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Defining translate tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 4: Environment Definition . . . . . . . . . . . . . . . . . . . . . . 10 15 —————————————————————————————————————————— Janus TCP/IP Base Reference Manual v —————————————————————————————————————————— Contents —————————————————————————————————————————— Chapter 5: Janus Commands . . . . . . . . . . . . . . . . . . . . . . . . . The JANUSDEBUG command . . . . . . . . . . JANUSDEBUG command format . . . . . . . JANUS command overview . . . . . . . . . . . . JANUS ADDCA . . . . . . . . . . . . . . . . . . JANUS CHARSET . . . . . . . . . . . . . . . . . JANUS CLSOCK . . . . . . . . . . . . . . . . . JANUS CLSOCK ALLOW . . . . . . . . . . . JANUS CLSOCK DISALLOW . . . . . . . . . Rule matching order and examples . . . . . . JANUS CONFIGURATION . . . . . . . . . . . . JANUS DEFINE . . . . . . . . . . . . . . . . . . ALLOCC . . . . . . . . . . . . . . . . . . . ANONYMOUS [maxanon | *] . . . . . . . . . ANONUSER user . . . . . . . . . . . . . . . AUDTERM . . . . . . . . . . . . . . . . . . AUTODONE . . . . . . . . . . . . . . . . . AUTOLOAD . . . . . . . . . . . . . . . . . . AUTOON . . . . . . . . . . . . . . . . . . . AUTOSYS subsys . . . . . . . . . . . . . . BINARY . . . . . . . . . . . . . . . . . . . . BINDADDR xxx . . . . . . . . . . . . . . . . BSIZE xxx . . . . . . . . . . . . . . . . . . . CHAR . . . . . . . . . . . . . . . . . . . . . CHARSET xxx . . . . . . . . . . . . . . . . CLIENTSOCKET socketname . . . . . . . . CLOSEIMMED . . . . . . . . . . . . . . . . CLOSEREAD . . . . . . . . . . . . . . . . . CMD 'xxx' . . . . . . . . . . . . . . . . . . . COMPRESS level . . . . . . . . . . . . . . . CR . . . . . . . . . . . . . . . . . . . . . . . CRLF . . . . . . . . . . . . . . . . . . . . . CSSINSP, NOCSSINSP, and AUTOCSSINSP CSSTITLEDIV and CSSTITLESPAN . . . . . DBCS and NODBCS . . . . . . . . . . . . . DEBPORTCMD and NODEBPORTCMD . . . DEBPORTOPEN and NODEBPORTOPEN . EXEC2RPC . . . . . . . . . . . . . . . . . . FDWOL . . . . . . . . . . . . . . . . . . . . FORMPOSTWAIT seconds . . . . . . . . . . FORMREDIRWAIT seconds . . . . . . . . . FINCLOSE | NOFINCLOSE . . . . . . . . . . HIGHPRIORITY . . . . . . . . . . . . . . . . HTTPVERSION xxx . . . . . . . . . . . . . . IBSIZE xxx . . . . . . . . . . . . . . . . . . INPUTTIMEOUT xxx . . . . . . . . . . . . . JANCAT xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 22 24 25 27 30 31 32 36 39 40 40 43 43 44 44 45 45 46 46 47 47 48 48 48 49 49 49 50 51 53 53 53 54 55 55 55 56 56 56 57 57 58 58 59 59 60 —————————————————————————————————————————— vi Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Contents —————————————————————————————————————————— KEEPALIVE xxxx . . . . . . . . . . . . . . . . . . . . . . . . . . . LANGUAGE xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . LEGBL, LEGREV, LEGUS, NOLEGBL, NOLEGREV and NOLEGUS LEGCSS and NOLEGCSS . . . . . . . . . . . . . . . . . . . . . . LEGJS and NOLEGJS . . . . . . . . . . . . . . . . . . . . . . . . LF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LINEND [hexstr | NONE] . . . . . . . . . . . . . . . . . . . . . . . LOG REQ | OPT [FORMAT COMMON | COMBINED] xxxx . . . . . LOGAPPEND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LOGCLOSET minutes . . . . . . . . . . . . . . . . . . . . . . . . LOGGMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LOGMSGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MASTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAXCURS xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAXIPSES xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAXREC xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAXSAVE xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAXTEMP nnnn . . . . . . . . . . . . . . . . . . . . . . . . . . . MSGSEND and NOMSGSEND . . . . . . . . . . . . . . . . . . . . MSG204 xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSG204L xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NEWPASSWORDC . . . . . . . . . . . . . . . . . . . . . . . . . . NEWSESCMD 'xxx' . . . . . . . . . . . . . . . . . . . . . . . . . . NEWGUESTOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . NEWSESNOCLEARG . . . . . . . . . . . . . . . . . . . . . . . . NEWSESOPEN list . . . . . . . . . . . . . . . . . . . . . . . . . . NOAUDTERM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NOAUTODONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . NOAUTOON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NOSCREENREDIR . . . . . . . . . . . . . . . . . . . . . . . . . . NOTRACEFIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . NOUPCASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OBSIZE xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OMNIACCT xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . OMNIUSER xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . OPEN list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PASVPORT startportnum . . . . . . . . . . . . . . . . . . . . . . . PRELOGINUSER userid . . . . . . . . . . . . . . . . . . . . . . . PRSTOK [AMBIG|]hexstr1|hexstr2|... | NONE . . . . . . . . . . . . PUBLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAWINPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAWINPUTONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . RBSIZE xxxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REMOTE hostID portnum | * . . . . . . . . . . . . . . . . . . . . . RPCONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SCREEN and NOSCREEN . . . . . . . . . . . . . . . . . . . . . . SCREENURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SDSACCT xxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 61 61 61 62 62 63 63 64 65 65 65 66 66 67 67 68 68 68 69 69 69 70 72 72 72 73 74 75 76 76 77 77 77 77 78 78 79 79 80 81 81 82 82 83 83 84 84 —————————————————————————————————————————— Janus TCP/IP Base Reference Manual vii —————————————————————————————————————————— Contents —————————————————————————————————————————— SDSUSER xxx . . . . . . . . . . . SESCOOKIE cookie . . . . . . . . SESCOOKIENOSEC . . . . . . . . SESFASTLOGIN . . . . . . . . . . SESTIMEOUT xxx . . . . . . . . . SLOWCLOSE mask . . . . . . . . SOCKACCT xxxx . . . . . . . . . . SOCKPMAX . . . . . . . . . . . . SOCKUSER xxxx . . . . . . . . . . SQUAREB opsys . . . . . . . . . . SSL . . . . . . . . . . . . . . . . . SSLBSIZE xxxx . . . . . . . . . . . SSLCACHE xxxx . . . . . . . . . . SSLCIPH xxx . . . . . . . . . . . . SSLCLCERT and SSLCLCERTR . . SSLIBSIZE xxxx . . . . . . . . . . SSLMAXAGE xxx . . . . . . . . . . SSLMAXCERTL xxx . . . . . . . . SSLOBSIZE xxxx . . . . . . . . . . SSLOPT . . . . . . . . . . . . . . . SSLPROT xxx . . . . . . . . . . . . SSLSES . . . . . . . . . . . . . . . SSLUNENC . . . . . . . . . . . . . STIMEOUT seconds . . . . . . . . TCPLOG . . . . . . . . . . . . . . TCPKEEPALIVE . . . . . . . . . . TIMEOUT xxxx . . . . . . . . . . . TRACE xxx . . . . . . . . . . . . . UPCASE . . . . . . . . . . . . . . VARIPADDR . . . . . . . . . . . . WEBACCT xxxx . . . . . . . . . . . WEBCOOKID . . . . . . . . . . . . WEBLH . . . . . . . . . . . . . . . WEBLM . . . . . . . . . . . . . . . WEBLOGCOOKIE cookie-name . . WEBLOGHOLD xxxx . . . . . . . . WEBLOGMAX xxxx . . . . . . . . . WEBPL . . . . . . . . . . . . . . . WEBPUBLOG . . . . . . . . . . . . WEBREALM xxxx . . . . . . . . . . WEBSDMAX xxxx . . . . . . . . . . WEBSM . . . . . . . . . . . . . . . WEBUSER xxxx . . . . . . . . . . WSFQUERY . . . . . . . . . . . . XTAB table . . . . . . . . . . . . . Janus port processing and examples JANUS DEFINEIPGROUP . . . . . . . JANUS DEFINEREMOTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 85 85 85 86 86 87 87 88 88 89 90 90 91 92 93 94 94 95 95 96 97 97 98 98 99 100 100 101 101 102 102 102 102 103 103 104 104 104 105 105 106 106 106 107 107 110 111 —————————————————————————————————————————— viii Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Contents —————————————————————————————————————————— CHARSET xxx . . . . . . . . . . . . . . . . INONLY . . . . . . . . . . . . . . . . . . . . LANGUAGE xxx . . . . . . . . . . . . . . . NOSITE . . . . . . . . . . . . . . . . . . . . OPTSITE . . . . . . . . . . . . . . . . . . . OUTONLY . . . . . . . . . . . . . . . . . . SITEACCT xxx . . . . . . . . . . . . . . . . SITEUSER xxx . . . . . . . . . . . . . . . . TIMEOUT xxx . . . . . . . . . . . . . . . . . TRUST, JANUS DEFINEREMOTE . . . . . . VERIP . . . . . . . . . . . . . . . . . . . . . Janus remote server processing and examples JANUS DEFINEUSGROUP . . . . . . . . . . . . JANUS DELCA . . . . . . . . . . . . . . . . . . JANUS DELETE . . . . . . . . . . . . . . . . . . JANUS DELETEIPGROUP . . . . . . . . . . . . JANUS DELETEREMOTE . . . . . . . . . . . . . JANUS DELETEUSGROUP . . . . . . . . . . . . JANUS DISPLAY . . . . . . . . . . . . . . . . . JANUS DISPLAYCA . . . . . . . . . . . . . . . . JANUS DISPLAYREMOTE . . . . . . . . . . . . JANUS DISPLAYSOCK . . . . . . . . . . . . . . JANUS DISPLAYTRACE . . . . . . . . . . . . . JANUS DISPLAYWEB . . . . . . . . . . . . . . . JANUS DISPXT . . . . . . . . . . . . . . . . . . JANUS DOMAIN . . . . . . . . . . . . . . . . . . JANUS DRAIN . . . . . . . . . . . . . . . . . . . JANUS FTP . . . . . . . . . . . . . . . . . . . . JANUS FTP ALLOW . . . . . . . . . . . . . JANUS FTP ASSIGN . . . . . . . . . . . . . JANUS FTP DEASSIGN . . . . . . . . . . . JANUS FTP DISALLOW . . . . . . . . . . . JANUS FTP HOME . . . . . . . . . . . . . . JANUS FTP ON . . . . . . . . . . . . . . . . JANUS FTP SUFFIX . . . . . . . . . . . . . JANUS FORCE . . . . . . . . . . . . . . . . . . JANUS LANGUAGE . . . . . . . . . . . . . . . . JANUS LIMITS . . . . . . . . . . . . . . . . . . . JANUS LOADXT . . . . . . . . . . . . . . . . . . JANUS NAMESERVER . . . . . . . . . . . . . . JANUS RELOAD . . . . . . . . . . . . . . . . . JANUS SRVSOCK . . . . . . . . . . . . . . . . . JANUS SRVSOCK ALLOW . . . . . . . . . . JANUS SRVSOCK DISALLOW . . . . . . . . Rule matching order and examples . . . . . . JANUS SSLSTAT or SSLSTATUS . . . . . . . . JANUS START . . . . . . . . . . . . . . . . . . JANUS STAT or STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 112 112 112 112 113 113 113 113 113 113 114 116 116 117 117 118 118 119 120 121 121 122 123 124 125 126 127 128 129 131 132 133 134 136 137 137 138 139 141 144 145 146 147 148 149 151 151 —————————————————————————————————————————— Janus TCP/IP Base Reference Manual ix —————————————————————————————————————————— Contents —————————————————————————————————————————— JANUS STATCA or STATUSCA . . . . . . . . . JANUS STATUSREMOTE . . . . . . . . . . . . JANUS TCPLOG . . . . . . . . . . . . . . . . JANUS TRACE . . . . . . . . . . . . . . . . . JANUS TSTAT or TSTATUS . . . . . . . . . . The JANUS WEB command . . . . . . . . . . . JANUS WEB NOREDIRECT . . . . . . . . . . JANUS WEB REDIRECT . . . . . . . . . . . . JANUS WEB DISALLOW . . . . . . . . . . . . JANUS WEB ALLOW . . . . . . . . . . . . . . JANUS WEB TYPE . . . . . . . . . . . . . . . JANUS WEB DEBUG . . . . . . . . . . . . . . JANUS WEB ON . . . . . . . . . . . . . . . . . CMD cmd [AND cmd [AND...]] . . . . . . . SEND pname . . . . . . . . . . . . . . . . RECV pname . . . . . . . . . . . . . . . . AUDTERM | NOAUDTERM . . . . . . . . . AUTODONE | NOAUTODONE . . . . . . . AUTOON | NOAUTOON . . . . . . . . . . BASE64 | BINARY | TEXT . . . . . . . . . CLOSEIMMED | NOCLOSEIMMED . . . . CLOSEREAD | NOCLOSEREAD . . . . . . COMPRESS level . . . . . . . . . . . . . . CR | CRLF | LF . . . . . . . . . . . . . . . EXPIRE time . . . . . . . . . . . . . . . . FORMREDIRWAIT nnnn . . . . . . . . . . FORMPOSTWAIT nnnn . . . . . . . . . . MAXTEMP nnnn . . . . . . . . . . . . . . MSGSEND | NOMSGSEND . . . . . . . . OPEN FILE | GROUP fgname [[WITH] priv] RAWINPUTONLY | NOTRAWINPUTONLY SSI . . . . . . . . . . . . . . . . . . . . . WRAPJS . . . . . . . . . . . . . . . . . . XTAB xtabname . . . . . . . . . . . . . . . JANUS WEB SCREEN . . . . . . . . . . . . . AUTOPF setting . . . . . . . . . . . . . . . BGCOLOR color . . . . . . . . . . . . . . BRIGHT color . . . . . . . . . . . . . . . . BROWSER [NOT] type [PRE | POST ver.rel]] CSS url . . . . . . . . . . . . . . . . . . . CSSINSP | NOCSSINSP | AUTOCSSINSP CSSTITLECLASS class . . . . . . . . . . . CSSTITLEDIV | CSSTITLESPAN . . . . . . EXITURL url . . . . . . . . . . . . . . . . . HEADJS url, PREJS url, and POSTJS url . HOVER color . . . . . . . . . . . . . . . . HOVERBG color . . . . . . . . . . . . . . KBGCOLOR color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 153 154 155 158 159 162 163 163 164 166 168 171 171 173 174 174 174 175 175 176 176 176 176 177 177 177 177 177 178 179 182 182 182 183 184 185 185 185 186 187 187 187 187 188 188 189 189 —————————————————————————————————————————— x Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Contents —————————————————————————————————————————— KEYLOC where . . . . . . . . . . . . KHOVER color . . . . . . . . . . . . KHOVERBG color . . . . . . . . . . . KTEXT color . . . . . . . . . . . . . LEGBL | NOLEGBL . . . . . . . . . . LEGCSS | NOLEGCSS . . . . . . . . LEGJS | NOLEGJS . . . . . . . . . . LEGREV | NOLEGREV . . . . . . . . LEGUS | NOLEGUS . . . . . . . . . ONLOAD text . . . . . . . . . . . . . SCREEN | NOSCREEN . . . . . . . . SCREENREDIR | NOSCREENREDIR SCREENURL | NOSCREENURL . . . STIMEOUT seconds . . . . . . . . . STIMEOUTURL url . . . . . . . . . . TEXT color . . . . . . . . . . . . . . TITLE title . . . . . . . . . . . . . . . UBGCOLOR color . . . . . . . . . . UBRIGHT color . . . . . . . . . . . . UTEXT color . . . . . . . . . . . . . 3270color HTMLcolor . . . . . . . . . 3270key label . . . . . . . . . . . . . Rule matching order and examples . . . . Exception rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 190 190 191 191 191 191 192 192 192 192 192 193 193 193 193 194 194 194 194 195 196 196 198 Janus User Parameters . . . . . . . . . . . . . . . . . . . . . 201 JANDEBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRSPARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 201 Chapter 6: Chapter 7: Janus IFDIAL Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 . . . . . . . . . . . . . . . . . . 203 204 206 207 208 210 212 212 212 Janus TCP/IP Base IFDIAL Installation . . . . . . . . . . . . . 215 Unix-style workstations . . . . . . . . . . . . . . . . . . . . . . . . . . . . Windows-based workstations . . . . . . . . . . . . . . . . . . . . . . . . . 215 217 C Routines . . . . . ifdial . . . . . . iffinish . . . . . ifhangup . . . . ifread . . . . . ifwrite . . . . . Workstation Utilities batch2 . . . . . m204 . . . . . Appendix A: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . —————————————————————————————————————————— Janus TCP/IP Base Reference Manual xi —————————————————————————————————————————— Contents —————————————————————————————————————————— Appendix B: Storage requirements . . . . . . . . . . . . . . . . . . . . . . 219 Appendix C: Sample IFDIAL procedure . . . . . . . . . . . . . . . . . . . . 221 Appendix D: Date Processing . . . . . . . . . . . . . . . . . . . . . . . . . 223 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 —————————————————————————————————————————— xii Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Summary of Changes —————————————————————————————————————————— —————— Summary of Changes This section describes significant changes to the documentation. Usually, these changes correspond to enhancements made to the underlying product, although they might be simple documentation improvements. Sirius Mods Version 7.7 The following changes correspond to changes in Janus TCP/IP Base since version 7.6: ● ADDCA utility lets you load Sirius-provided SSL CA certificates (“JANUS ADDCA” on page 27). Sirius Mods Version 7.6 The following changes correspond to changes in Janus TCP/IP Base since version 7.2: ● UNICODE and DEFAULT parameter options added to the JANUS LOADXT command (“JANUS LOADXT” on page 139). ● Description added for the largely undocumented JANUS DISPXT subcommand (“JANUS DISPXT” on page 124). Sirius Mods Version 7.2 The following changes correspond to changes in Janus TCP/IP Base since version 7.1: ● The JANUS TCPLOG subcommand is added (“JANUS TCPLOG” on page 154). Sirius Mods Version 7.1 The following changes correspond to changes in Janus TCP/IP Base since version 6.8: ● The DEBUGGERSERVER and DEBUGGERCLIENT port types are added to the JANUS DEFINE command (“JANUS DEFINE” on page 40). —————————————————————————————————————————— Janus TCP/IP Base Reference Manual xiii —————————————————————————————————————————— Summary of Changes —————————————————————————————————————————— Sirius Mods Version 6.8 The following changes correspond to changes in Janus TCP/IP Base since version 6.7: ● The RAWINPUTONLY parameter implemented for the JANUS DEFINE command (“RAWINPUTONLY” on page 81). ● Janus Web Server and Janus Sockets HTTP helper keep-alive support. See “KEEPALIVE xxxx” on page 60. ● JANUS NAMESERVER command enhancements. See “JANUS NAMESERVER” on page 141. Sirius Mods Version 6.7 The following changes correspond to changes in Janus TCP/IP Base since version 6.6: ● New port definition parameter RAWINPUT (“RAWINPUT” on page 81), to facilitate generic treatment of input and output HTTP content and to allow Janus Web Server to automatically detect whether an HTTP Post used the encoding used for form posts. ● The RAWINPUTONLY parameter implemented for JANUS WEB ON rules (“RAWINPUTONLY | NOTRAWINPUTONLY” on page 179). Sirius Mods Version 6.5 The following changes correspond to changes in Janus TCP/IP Base since version 6.4: ● The new Janus DEFINE parameter SESFASTLOGIN (see “SESFASTLOGIN” on page 85) reduces the login security overhead for Janus Web threads by causing fast logins for continued sessions. The new Janus DEFINE parameter HIGHPRIORITY (see “HIGHPRIORITY” on page 58) starts web threads at the upper end of their priority range rather than at their default priority. Both parameters are valid only for Janus Web Server ports. ● The new JANUS DEFINE parameter HTTPVERSION (see “HTTPVERSION xxx” on page 58) allows changing of the HTTP version returned to the browser by Janus Web Server. ● The JANUS DEBUG subcommand is no longer available, and it is removed from this manual. Formerly, you could use JANUS DEBUG as an alias for the JANUS TRACE command (which specifies what kind of audit trail tracing to perform on one or more JANUS ports or on some selected connections on the ports). —————————————————————————————————————————— xiv Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Sirius Mods Version 6.5 —————————————————————————————————————————— The DEBUG parameter of the JANUS DEFINE command is also no longer available and is removed from this manual. Formerly, you could use DEBUG as an alias for the TRACE parameter of the JANUS DEFINE command. The DEBUG parameter of the JANUS DEFINEREMOTE command is obsolete and is removed from this manual. The JANUS DISPLAYDEBUG command, which formerly was an alias for the JANUS DISPLAYTRACE command, is obsolete and is removed from this manual. Sirius Mods Version 6.4 The following changes correspond to changes in Janus TCP/IP Base in version 6.4 of the Sirius Mods. ● The new JANUS DEFINE parameter FINCLOSE closes a Janus Sockets connection immediately if the remote host closes the connection (“FINCLOSE | NOFINCLOSE” on page 57). ● New User 0 parameter NCMPBUF defines the number of buffers available for compressed data. NCMPBUF must be set before the data compression $functions ($DEFLATE or $INFLATE) can be used by Janus products and before the compression feature can be used by Janus Web Server ports (“Environment Definition” on page 15). ● New option, (TLS, X'04'), which also becomes the new default, for the SSLPROT parameter of the JANUS DEFINE command: (see “SSLPROT xxx” on page 96). Sirius Mods Version 6.3 The following changes correspond to changes in Janus TCP/IP Base in version 6.3 of the Sirius Mods. ● New JANUS DEFINE parameter, SCREENURL, for backward compatibility. See “SCREENURL” on page 84. ● Data compresssion for Janus ports. See “COMPRESS level” on page 51 and “COMPRESS level” on page 176. ● New wildcard substitution capabilities in JANUS WEB ON rules. See “CMD cmd [AND cmd [AND...]]” on page 171 and “OPEN FILE | GROUP fgname [[WITH] priv]” on page 178. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual xv —————————————————————————————————————————— Summary of Changes —————————————————————————————————————————— ● New HEADJS and ONLOAD JANUS WEB SCREEN rule parameters. See “HEADJS url, PREJS url, and POSTJS url” on page 188 and “ONLOAD text” on page 192. Sirius Mods Version 6.2 The following changes correspond to changes in Janus TCP/IP Base in version 6.2 of the Sirius Mods. ● JANUS command now available as an operator command. ● AUTOPF LINK in JANUS WEB SCREEN rules. See “AUTOPF setting” on page 184. ● New JANUS DEFINE parameters. See “CSSINSP, NOCSSINSP, and AUTOCSSINSP” on page 53, “CSSTITLEDIV and CSSTITLESPAN” on page 54, “LEGBL, LEGREV, LEGUS, NOLEGBL, NOLEGREV and NOLEGUS” on page 61, and “LEGCSS and NOLEGCSS” on page 61. ● EXPIRE parameter in JANUS WEB ON rules. See “EXPIRE time” on page 177. ● New JANUS DEFINE parameters. See “CSSINSP, NOCSSINSP, and AUTOCSSINSP” on page 53, “CSSTITLEDIV and CSSTITLESPAN” on page 54, “LEGBL, LEGREV, LEGUS, NOLEGBL, NOLEGREV and NOLEGUS” on page 61, and “LEGCSS and NOLEGCSS” on page 61. ● New JANUS DISPLAYWEB now allows URL. See “JANUS DISPLAYWEB” on page 123. ● New JANUS WEB SCREEN rule parameters: BRIGHT, BROWSER, CSS, CSSINSP, NOCSSINSP, AUTOCSSINSP, CSSTITLECLASS, CSSTITLEDIV, CSSTITLESPAN, HOVER, HOVERBG, KBGCOLOR, KEYLOC, KHOVER, KHOVERBG, KTEXT, LEGBL, NOLEGBL, LEGREV, NOLEGREV, LEGUS, NOLEGUS, PREJS, POSTJS, UBGCOLOR, UBRIGHT and UTEXT. See “JANUS WEB SCREEN” on page 183. ● WRAPJS parameter in JANUS WEB ON rules and $WEBSET. See “WRAPJS” on page 182. —————————————————————————————————————————— xvi Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Sirius Mods Version 6.1 —————————————————————————————————————————— Sirius Mods Version 6.1 The following changes correspond to changes in Janus TCP/IP Base in version 6.1 of the Sirius Mods. ● VSE operating systems are now supported using the TCP/IP stack from Connectivity Systems Inc.. Sirius Mods Version 6.0 The following changes correspond to changes in Janus TCP/IP Base in version 6.0 of the Sirius Mods. ● New CLSOCK and SRVSOCK port types: for the new Janus Sockets product. ● New JANUS CLSOCK, JANUS SRVSOCK, and JANUS DISPLAYSOCK commands to establish and display rules to control access to CLSOCK and SRVSOCK ports. ● New parameters for Janus Sockets on JANUS DEFINE command: ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ BINARY CHAR LINEND PRSTOK REMOTE SOCKACCT SOCKPMAX SOCKUSER ● DEBUG keyword replaced by TRACE ● JANUS DEFINE's [NO]AUDTERM parameter applicable to all server port types, with NOAUDTERM becoming the default ● LOADXT parameter for JANUS DEFINE command.. Sirius Mods Version 5.5 The following changes correspond to changes in Janus TCP/IP Base in version 5.5 of the Sirius Mods. ● New parameter SDSUSER and SDSACCT on JANUS DEFINE command. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual xvii —————————————————————————————————————————— Summary of Changes —————————————————————————————————————————— Sirius Mods Version 5.4 The following changes correspond to changes in Janus TCP/IP Base in version 5.4 of the Sirius Mods. ● New port types SDS and OAS. ● New parameter MAXCURS on JANUS DEFINE command. Sirius Mods Version 5.3 The following changes correspond to changes in Janus TCP/IP Base in version 5.3 of the Sirius Mods. ● New SSLCIPH parameter for JANUS DEFINE —————————————————————————————————————————— xviii Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Overview —————————————————————————————————————————— —————— CHAPTER 1 Overview Janus TCP/IP Base is part of the Janus family of products that provides connectivity to the Model 204 database. Janus TCP/IP Base is a pre-requisite for all other products in the Janus family, because without it, it is impossible to use these other products. A Janus TCP/IP Base site will probably have one or more of the other products in the Janus family, though no others are required. The other Janus products are: ● Janus Network Security, which supports the Secure Sockets Layer (SSL) protocol, providing secure communications for users of Janus products. This is documented in Janus Network Security Reference Manual. ● Janus Specialty Data Store, which enables Model 204 to operate as a Sybase/Microsoft SQL Server, principally for the Sybase OmniConnect feature of Adaptive Server. Features include optimized translation of SQL into User Language and cataloging tools to map unchanged Model 204 files onto normalized. This is documented in Janus Specialty Data Store Reference Manual. ● Janus Open Client, which enables your Model 204 User Language applications to invoke Sybase/Microsoft Remote Procedure Calls (RPCs) or language requests (e.g. SQL) to one or more Sybase or Microsoft Open Servers and/or SQL servers. This is documented in Janus Open Client Reference Manual. ● Janus Open Server, which enables you to create Model 204 User Language applications which respond to requests from clients which use Sybase DB-Library Open Client calls and SQL EXECUTE statements. This is documented in Janus Open Server Reference Manual. ● Janus Web Server, which enables you to provide access to Model 204 data and objects to clients (usually called browsers) via the World Wide Web. This is documented in Janus Web Server Reference Manual. A single Model 204 online region can contain any number of the three different Janus server products (Janus Specialty Data Store, Janus Open Server, and Janus Web Server). A Janus Open Server or Janus Web Server User Language request can also invoke Janus Open Client $functions; this enables server applications to exchange information with other Model 204 or non-Model 204 servers. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 1 —————————————————————————————————————————— Overview —————————————————————————————————————————— 1.1 Janus, the Sirius Mods, and UL/SPF Janus TCP/IP Base is part of the Janus family of products that provides connectivity to the Model 204 database. A Janus TCP/IP Base site might also have one or more of the other products in the Janus family, though no others are required. Note that if Limited Janus Web Server is available, then Janus TCP/IP Base is automatically authorized. Limited Janus Web Server is a free, restricted version of Janus Web Server; they are both documented in the Janus Web Server Reference Manual. The Janus family of products is itself made up of two components installed on the mainframe; additionally, if Janus TCP/IP Base IFDIAL is used, installation of software on a workstation is required (see “Janus TCP/IP Base IFDIAL Installation” on page 215). ● A collection of object code enhancements to the Model 204 database-engine nucleus. These enhancements are distributed as components of the Sirius Mods and make up a collection of products including those in the Janus family. The Sirius Mods include many non-connectivity related products (such as Fast/Backup, Fast/Reload, and the Fast/Unload User Language Interface) that are not part of the Janus family. No Sirius Mods products are required to run Janus TCP/IP Base other than itself. ● A collection of Model 204 procedures that contain User Language, documentation, and assorted other data. These Model 204 procedures install and implement the components of the User Language Structured Programming Facility, also known as UL/SPF. All the UL/SPF files reside in the SIRIUS procedure file (as of Sirius Mods version 6.8). which also contains code and data useful to Janus users including Janus TCP/IP Base users. UL/SPF also includes files that are components of non-connectivity related products such as SirPro, SirScan, and SirMon. No other UL/SPF products are required to run Janus TCP/IP Base, or any other Janus product, for that matter. Thus, to install Janus TCP/IP Base, both the Sirius Mods and UL/SPF must be installed, following the instructions in the Sirius Mods Installation Guide and the UL/SPF Installation and Maintenance Guide, respectively. When the Sirius Mods are installed, all other products owned by the installing site that are part of the Sirius Mods will also be installed. Similarly, when UL/SPF is installed, all other products owned by the installing site that are part of UL/SPF will be installed. —————————————————————————————————————————— 2 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Versions and compatibility —————————————————————————————————————————— 1.2 Versions and compatibility Because the Sirius Mods and UL/SPF have somewhat different release cycles, the version numbers for these two components will often differ in a distribution. For example, version 7.6 of the Sirius Mods might be shipped with version 7.3 of UL/SPF. All the products in UL/SPF depend on certain features being present in the version of the Sirius Mods that is installed in the Model 204 load module under which UL/SPF is running. This implies, obviously, that the Sirius Mods must be installed for any UL/SPF component to operate correctly. And, as of version 6.8, the Sirius Mods version must match or be higher than the UL/SPF version number. The Sirius Mods however, do not depend on any particular features of the UL/SPF product, merely the presence of the UL/SPF SIRIUS file. The SIRIUS file contains the code for the sample Janus Web Server, and Janus port definitions have default rules that call to this file. Sirius Software has a strong commitment to backward compatibility with the Sirius Mods. This means that any User Language application (including UL/SPF) that uses the Sirius Mods will run correctly on subsequent versions of the Sirius Mods. It is, thus, always possible to upgrade the Sirius Mods without having to worry about upgrading UL/SPF. This is not to say that this is always a good idea, only that it is possible and that the installed version of a UL/SPF product will continue to run as it had before the Sirius Mods upgrade. While the Janus family of products has a UL/SPF component, most of the critical code is actually in the Sirius Mods — object code enhancements to the Model 204 nucleus. The UL/SPF component of the Janus family consists mostly of utilities, examples, and documentation. Because of this, the version number of a Janus product is generally considered to be the version of the Sirius Mods in which it is contained. This document, the Janus TCP/IP Base Reference Manual, assumes that a site is running Sirius Mods version 6.7 or later and has installed UL/SPF version 6.2 or later. Any documentation that requires a later version of the Sirius Mods or UL/SPF will be clearly marked to indicate this. For example, a JANUS DEFINE parameter that is only available in versions 7.7 and later of the Sirius Mods will have a sentence such as “This parameter is only available in version 7.7 and later of Sirius Mods” in its documentation. If a feature, $function, command, or parameter is not indicated as requiring any specific version of the Sirius Mods, it can be assumed that it is available, as documented, in all versions of Janus TCP/IP Base; that is, all versions since version 6.7 of the Sirius Mods and version 6.2 of UL/SPF. As an exception to this, Sirius documentation does not necessarily indicate the version with which a specific feature was introduced, if that feature applies only to a particular product and was introduced with the initial version of that product. For example, the LINEND parameter of the JANUS DEFINE command only applies to Janus Sockets ports. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 3 —————————————————————————————————————————— Overview —————————————————————————————————————————— 1.3 Related manuals As mentioned in “Janus, the Sirius Mods, and UL/SPF” on page 2, Janus TCP/IP Base requires the installation of both the Sirius Mods and UL/SPF. As such, the person responsible for the installation of Janus TCP/IP Base should refer to the Sirius Mods Installation Guide and the UL/SPF Installation and Maintenance Guide. Also, the Sirius Messages Manual contains documentation on Sirius Mods error messages, so it might be useful to application programmers. 1.4 Related products If security is a concern, whether it be internet or intranet security, SSL (Secure Socket Layer) is the de-facto standard for providing encryption and validation security for webbased applications. The Janus Network Security product provides SSL support for Janus TCP/IP Base (as well as other products in the Janus family). One of the convenient debugging features available with Janus TCP/IP Base is a TRACE facility which logs Janus request/response information to the Model 204 journal. In addition, most application debugging in a Model 204 environment is done on a 3270 or 3270 emulator — but since Janus TCP/IP Base IFDIAL applications are not associated with a 3270, debugging techniques geared toward a 3270 will not work for them, so most of their debugging information goes to the Model 204 journal. If you don't have good tools to view the journal, using it for debugging is a tedious process. AUDIT204 and ISPF provide some capabilities for viewing the journal, but they have many inherent shortcomings and inefficiencies. Because of this, it is strongly recommended that any site that installs Janus TCP/IP Base also install SirScan. SirScan is a product in the UL/SPF family that facilitates the interactive extraction of journal information within the Model 204 region. It does so via a user-friendly web browser or full-screen 3270 interface and low-level routines to provide efficient access to in-memory and on-disk journal buffers. SirScan can provide an order of magnitude improvement in debugging efficiency for non-terminal-related Model 204 processes such as Janus TCP/IP Base, Horizon, BATCH2 and other Janus server applications. Note: If Limited Janus Web Server is available, SirScan is automatically authorized for viewing audit trail entries on WEBSERV threads. 1.5 System requirements The current release of Janus TCP/IP Base requires the following components to run: ● Mainframe operating systems: ▪ Any supported version of z/OS —————————————————————————————————————————— 4 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— System requirements —————————————————————————————————————————— ▪ ▪ z/VSE Version 4 or later or CMS (releases currently supported by IBM) running under any supported version of z/VM ● Model 204 Version 6 Release 1 or later ● One of the following mainframe TCP/IP implementations: ▪ ▪ ▪ IBM TCP/IP for z/VM or z/OS InterLink TCP/IP for MVS - Version 1.1 or later TCP/IP for VSE (Connectivity Systems, Inc., Columbus, OH) - Version 1 Release 4.0 or later —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 5 —————————————————————————————————————————— Overview —————————————————————————————————————————— —————————————————————————————————————————— 6 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Janus / Connectivity Concepts —————————————————————————————————————————— —————— CHAPTER 2 Janus / Connectivity Concepts 2.1 Server Ports In order for a client application to communicate with a server application, it must have a way to identify the server application on the network. Under the TCP/IP protocols, the identity of a server has two parts. The first part identifies the machine on which the server runs. This part is called the machine's (or host's) IP address. The second part distinguishes the server application from other applications on the host. This part is called the port number. A host's IP address is a 32-bit unsigned binary number that is displayed in “dotted” format, for example, 198.242.244.33. To avoid having to refer to these types of addresses, most networks have nameservers or names files that map names to IP addresses. That way, a client application can connect to a host by a name (such as IBM3090) rather than by an address. A port number is a number from 1 to 65535 that is assigned to every server application that is available on a host. In the case of Janus IFDIAL, the Janus server products (Janus Specialty Data Store, Janus Open Server, and Janus Web Server), and Janus server sockets, this port number is specified by the second parameter on the JANUS DEFINE command. Since this port number must be unique for the host, it is impossible to start (JANUS START) a port with a port number that matches a port number for any other application running on the same host. This includes any Janus port on the same or a different Online that uses the same IP address. This also includes any other nonJanus server application. For example, port number 23 is almost always used by the telnet server. An attempt to start a Janus server for port number 23 will undoubtedly encounter a port in use situation and be unable to start. On a system with several local server applications, or with more than one Online (maybe test and production) with several Janus ports, a simple strategy to keep port numbers from conflicting is to assign a range of ports to each Online. For example, port numbers 300-399 might be reserved for the test Online, and port numbers 400-499 might be reserved for the production Online. The BINDADDR parameter of the JANUS DEFINE command also allows you to specify which IP address to use for a Janus server, if your operating system is configured to bind a port to one of multiple IP server addresses. Sybase provides a way of mapping an application name to a host name (or address) and port number. This makes it possible to access a specific application by specifying only a single application name. This mapping is done through a mapping file called the “interfaces file” on Unix workstations, and through entries in WIN.INI or SQL.INI under Microsoft Windows. For more information on this mapping, refer to the Sybase DB/Library manuals. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 7 —————————————————————————————————————————— Janus / Connectivity Concepts —————————————————————————————————————————— 2.2 JANUS DEFINE and JANUS DEFINEREMOTE Subcommands A JANUS DEFINE command can do any one of the following: ● Assign a port number for Janus IFDIAL processing. ● Assign a port number to a Janus Open Server application. ● Assign a port number to a Janus Specialty Data Store server. ● Assign a port number to a Janus Web Server server. In addition to the second option above, assigning a port number to a Janus Open Server application, a JANUS DEFINE command can also: ● Assign a (MASTER) port number for use by non-Janus Open Server users to access Janus Open Client applications. A JANUS DEFINEREMOTE command can do any combination of the following: ● Assign a remote host address and port number for Janus Open Client processing, and assign which local port numbers can call the remote host/port (non-INONLY). ● Specify the address of a remote host and the Janus Open Server applications it may access (non-OUTONLY). —————————————————————————————————————————— 8 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Translate tables —————————————————————————————————————————— —————— CHAPTER 3 Translate tables Janus Connectivity products typically communicate with applications on remote computers. In many cases, these remote computers use different encodings for symbols, numerals, and letters or “characters.” A character usually occupies a single byte of memory on any computer, but the character displayed for a particular bit value may vary. For example, in an ASCII encoding, the numeral “1” is represented by the hexadecimal value X'31'. On a computer that uses an EBCDIC encoding (IBM mainframes), the representation is X'F1'. Therefore a numeral “1” transmitted from an ASCII-based computer to an EBCDIC-based computer, or vice versa, will be misinterpreted. To avoid such misinterpretation, a method of converting a byte from one encoding to another is needed. Janus translate tables were implemented to solve this problem. In Janus release 5.6 and earlier, a fixed translate table provided the most common type of translation: that is, it converted ASCII to EBCDIC when receiving, and it converted EBCDIC to ASCII when sending. In most cases, this is adequate for any of the Janus products. There are, however, many different types of EBCDIC and ASCII character sets, designed to display foreign language characters, currency, and other special symbols. To ensure these characters are transmitted and received correctly, a more flexible approach is required. In Janus 6.0, the translate table facility was expanded to allow simultaneous use of many different translate tables, and further, to allow user-written or customized translate tables. To use Janus translate tables, you must do one of the following if you do not want to use the standard tables: ● Code your own translate table source. ● Use an external translate table. ● Use or modify a Sirius-provided translate table. The LOADXT command (“JANUS LOADXT” on page 139) then validates the new table, converts it to an internal format, and adds or replaces any existing table with the same name. To use the most up-to-date Sirius-provided translation file, specify the following to load and name the Unicode table that handles Janus SOAP XML document translations (you must be running Sirius Mods version 7.6 or higher): JANUS LOADXT xtabname UNICODE —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 9 —————————————————————————————————————————— Translate tables —————————————————————————————————————————— To view the translations in effect after issuing this command: 1. Determine the codepage in use at your site for translations between Unicode and EBCDIC: UNICODE Display Table Standard The result of this UNICODE command (described further in the Janus SOAP Reference Manual) will begin with something like: * The following commands produce the current Unicode translation tables: UNICODE Table Standard Base Codepage pppp where pppp is the codepage in use. 2. Using that codepage, issue: UNICODE Display Codepage pppp The result will be many lines of single-character translations, one line for each character translated between EBCDIC and Unicode. This format differs entirely from that described below in “Defining translate tables”. To provide backward compatibility with earlier releases, two additional translate tables are loaded during Model 204 initialization. The standard table, named “STANDARD,” is an exact copy of the translate table used with earlier Janus releases. This is the default translate table for all Janus ports, unless you define Web ports with DBCS support. In this case, the “JAPANIBM” translate table is used. Both these tables are built-in to the Sirius Mods code. As described in the next section, “Defining translate tables”, the JANUS DISPXT and JANUS LOADXT commands let you view (or copy for modification purposes) and reload these translate tables. 3.1 Defining translate tables You can define your own translate tables and load them with the JANUS LOADXT command (“JANUS LOADXT” on page 139). These tables can be defined in a Model 204 procedure file or group, or in a sequential file or MVS Partitioned Data Set (PDS). A translate table must define a 256-byte EBCDIC-to-ASCII table, followed by a 256-byte ASCII-to-EBCDIC table. Comment lines are allowed and can begin with a semicolon (;) or an asterisk (*). —————————————————————————————————————————— 10 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Defining translate tables —————————————————————————————————————————— Comments are allowed on the same line as definition lines, provided they are preceded by either of the two comment characters. You can define any number of bytes of the translate table on a single line, but it is easier to read and maintain if you define 16 bytes per line. Certain characters must be translated to their equivalent values in EBCDIC and ASCII for basic Janus functions to work correctly. Therefore, these characters are reserved for use by Janus, and they may not be translated to any other characters. These reserved characters are the following: 0-9 a-z A-Z . < ( + & ! * ) ; / , % > ? : # ' = " period less than left parenthesis plus ampersand exclamation asterisk right parenthesis semicolon forward slash comma percent greater than question mark colon pound sign single quote equal sign double quote JANUS LOADXT will validate any table it attempts to load, and if these characters are not preserved when translating to ASCII and back, the table will not be loaded. Each character in the translate table is coded in hexadecimal format and must be two bytes long. Each two-byte hexadecimal string must be separated by one or more blanks. Following is an abbreviated example of translate table source code. Each of the rows of hexadecimal characters define the EBCDIC encoding for an ASCII character at that offset in the table. So for example, to find out how this table would translate an ASCII 2 (hexadecimal X'32'), you locate offset X'32' in the table, which is in the fourth row, third pair of characters. Note that the top and right-side comments help to locate offsets quickly. At offset X'32' in this table, you find the value X'F2', which is the EBCDIC encoding for the numeral 2. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 11 —————————————————————————————————————————— Translate tables —————————————————————————————————————————— Of course, to send characters, you would want to translate EBCDIC encoding back into ASCII. Therefore, an EBCDIC to ASCII section must also be coded. This is not shown in the example. ; ; ASCII-to-EBCDIC table for English (US) ; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C ; 00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 40 5A 7F 7B 5B 6C 50 7D 4D 5D 5C 4E 6B F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 BA E0 79 81 82 83 84 85 86 87 88 89 91 92 93 97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 4F 68 DC 51 42 43 44 47 48 52 53 54 57 56 71 9C 9E CB CC CD DB DD DF EC FC 70 B1 45 55 CE DE 49 69 9A 9B AB AF 5F B8 B7 2B 2C 09 21 28 65 62 64 B4 38 31 34 33 22 17 29 06 20 2A 46 66 1A 35 08 39 36 8C AC 72 73 74 0A 75 76 77 23 15 14 04 EE 59 EB ED CF EF A0 8E AE FE FB FD 8D CA 8F 1B B9 B6 B5 E1 9D 90 BD B3 DA FA CECP Code Page 037 0D 0E 0F 0D 1D 60 7E D4 BB 94 D0 58 80 AA 4A 30 6A AD EA 0E 1E 4B 6E D5 B0 95 A1 63 BF 8A B2 3A 78 BC 3E 0F 1F 61 6F D6 6D 96 07 67 FF 8B 24 9F 3B BE 41 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; You can specify existing external translate table source when loading translate tables. For example, IBM supplies many translate tables with its TCP/IP product under MVS. You can use these tables directly with JANUS LOADXT. To use these tables, you must first allocate the dataset and member you want to load. Use the Model 204 ALLOCATE command to do this: ALLOCATE IBMXTAB WITH SCOPE=SYSTEM DSN=TCPIP.AEZAXLT1 MEMBER=US OLD SEQUENTIAL VOLUME=OS260R Then use the JANUS LOADXT command to load the translate table: JANUS LOADXT name DDNAME IBMXTAB You can obtain source copies of any previously loaded translate table (including internal tables) by using the JANUS DISPXT command and the Model 204 USE command. For example, to obtain a copy of the current translate table “STANDARD,” issue the following commands: USE ddname JANUS DISPXT STANDARD You can then modify the source and reload the table using the JANUS LOADXT command. Note: Because the STANDARD table in the example above may already be a modified version of the STANDARD table distributed with Janus TCP/IP Base, if you definitely —————————————————————————————————————————— 12 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Defining translate tables —————————————————————————————————————————— want to copy the distributed STANDARD table, issue the USE and JANUS DISPXT commands in a “private” Online where you are confident the table has not been modified. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 13 —————————————————————————————————————————— Translate tables —————————————————————————————————————————— —————————————————————————————————————————— 14 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Environment Definition —————————————————————————————————————————— —————— CHAPTER 4 Environment Definition Once the Janus object modules are linked into Model 204, the system manager must modify the CCAIN stream to allow the online to act as a TCP/IP-Janus server1. User 0 parameters that affect Janus functionality are listed below and described thereafter. Set the parameters that apply to Janus components installed at your site, and ignore parameters for components not installed at your site. CSIPID NCMPBUF SDAEMDEV SRSDEFTO SRSMAX SRSMAXTO SRSMAXUS TCPSERV TCPTYPE CSIPID Identifier of the CSI TCP/IP server under VSE. This is a two-character identifier that must match the ID= parameter on the VSE // EXEC statement for the TCP/IP partition with which Janus will communicate. If not specified, this parameter defaults to 00, which is also the CSI TCP/IP default. NCMPBUF Defines the number of buffers available for compressed data. NCMPBUF must be set to a positive value before the data compression $functions ($DEFLATE or $INFLATE) can be used by Janus products and before the compression feature can be used by Janus Web Server ports. NCMPBUF should be set to the maximum number of users expected to concurrently use compression. The default value is 0, that is, compression is not available. About 309K bytes are required for each NCMPBUF buffer. These are allocated in 31-bit storage. ———————————————————————— 1 When discussing Janus Open Server applications, this manual uses the term server to refer to the Model 204 address space in general. Server program or server application is used when refering to User Language code that responds to a client request. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 15 —————————————————————————————————————————— Environment Definition —————————————————————————————————————————— Although NCMPBUF is available only in Sirius Mods 6.4 and later, the compression facility is available for sending data from Janus Web Server ports in Sirius Mods version 6.3. In version 6.3, compression buffers were 64K bytes and were allocated to every thread on a port if the COMPRESS parameter was specified on the JANUS DEFINE command. For more information about the compression feature, see the $DEFLATE and $INFLATE descriptions in the Sirius Functions Reference Manual, and see “COMPRESS level” on page 51. SDAEMDEV Specifies the IODEV number to be used for sdaemon (pronounced essdemon) threads. These are special background threads (analogous to IODEV=3 threads) that operate without terminals and offload processing from the online user's thread. Any Janus session that treats the Model 204 address space as a server — that is, IFDIAL2, Janus SDS, Web Server, or Open Server sessions — requires the same resources as any user session, including a Model 204 server and a thread on which to run. The sdaemon facility makes these resources available. Sdaemon threads are activated when Model 204 establishes a Janus Web Server, Janus Sockets (for server ports), Janus Specialty Data Store, Janus Open Server, or IFDIAL connection. Many UL/SPF products also use sdaemon threads for brief units of work. It is recommended that a site have an sdaemon thread for each concurrent connection to be maintained by a Janus product, and have at least four sdaemon threads if using any UL/SPF products. The SDAEMDEV parameter can be any odd number from 1 to 53. Note: Any IODEV number selected for SDAEMDEV will be unavailable for its normal function. Thus the recommended setting for SDAEMDEV is 15 (unless a site is using BTAM TTY terminals). For more information about setting up sdaemon threads, see the Sirius Mods Installation Guide SRSDEFTO The default timeout value (in seconds) to be used for saved record sets if none is specified on the $WEB_SAVE_RECSET function. If SRSDEFTO exceeds SRSMAXTO, SRSMAXTO will effectively act as the default timeout value. The default for SRSDEFTO is 900, which means 15 minutes. Setting SRSDEFTO to 0 means no record sets will be saved unless an explicit timeout is specified in the ———————————————————————— 2 The terms BATCH2 and IFDIAL are used somewhat interchangeably, because IFDIAL is used to refer to the low level routines that are used to provide BATCH2 access to Model 204. —————————————————————————————————————————— 16 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Environment Definition —————————————————————————————————————————— $WEB_SAVE_RECSET function. SRSDEFTO can be reset. The saved record set facility and the SRSDEFTO parameter are only available in version 5.1 and later of Sirius Mods. SRSMAX Maximum number of total saved record sets in the system. This parameter defaults to 0, and it must be set to a positive value to allow use of the saved record set feature of Janus Web Server. If this parameter is 0, $WEB_SAVE_RECSET will never save a record set. The number of record sets that can actually be saved at a given time might be somewhat less than this value if many of the saved record sets are associated with groups with large numbers of members. The saved record set feature will use approximately 64*SRSMAX bytes of virtual storage. The saved record set facility and the SRSMAX parameter are only available in version 5.1 and later of Sirius Mods. SRSMAXTO Maximum length of time (in seconds) that a saved record set can be saved without being referenced. The actual maximum length of time a record set will be saved can be set in the $WEB_SAVE_RECSET function, but it will be set to SRSMAXTO if that value exceeds SRSMAXTO. Similarly if a timeout is not specified on the $WEB_SAVE_RECSET, so the timeout value is derived from SRSDEFTO, but if SRSDEFTO is greater than SRSMAXTO, SRSMAXTO will be used as the timeout. The default for SRSMAXTO is 3600, which means a maximum timeout of one hour. SRSMAXTO can be reset. By resetting SRSMAXTO to 0, the saved record set facility is temporarily disabled, and all enqueues associated with saved record sets are freed. This can be useful in clearing up an enqueuing problem caused by a saved record set. Resetting SRSMAXTO will dynamically adjust the timeout for any record sets saved with a higher timeout value. So if there is a saved record set with a timeout of 1800 seconds when SRSMAXTO is reset to 300, that record set's timeout is updated to 300. If that record set had been saved more than 300 seconds before the reset, it would be immediately freed. The saved record set facility and the SRSMAXTO parameter are only available in version 5.1 and later of Sirius Mods. SRSMAXUS Maximum number of saved record sets per user. This limit is a peruserid limit, and it applies even if the userid is being used from multiple web browsers. The default for SRSMAXUS is 0, which means that there is no per-user limit for saved record sets. SRSMAXUS can be used to ensure that a single user, either as the result of a programming error or simply through running frequent queries, does not monopolize the saved record set facility. SRSMAXUS can be reset. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 17 —————————————————————————————————————————— Environment Definition —————————————————————————————————————————— The saved record set facility and the SRSMAXUS parameter are only available in version 5.1 and later of Sirius Mods. TCPSERV Name of the TCP/IP server address space (MVS) or virtual machine (CMS). If not specified, this parameter defaults to TCPIP. TCPTYPE Specifies the type of TCP/IP network to which Model 204 is connected. If you are using Janus Version 5.3 or later, you may omit this parameter and allow Janus to automatically detect the type of TCP/IP you have on your machine. If you are using Janus Version 5.5 or later, and you specify type IBM, Janus will detect and set the type of IBM interface it will use: ● ● ● Under CMS, this is always IUCV. Under MVS, Janus will select the IBM interface in the following order: BPX (Unix System Services), HPNS, then IUCV. If multiple types are installed, Janus will select the interface in the following order for MVS: BPX, HPNS, IUCV, Interlink, then KNET. For CMS the order is IUCV, then KNET. You can always override auto-detection by explicitly supplying a TCPTYPE parameter. The valid TCPTYPE values are: IBM to specify IBM TCP/IP. In Janus Version 5.5 and later, this means auto-detect the best IBM TCP/IP interface. For CMS, this is always IUCV. For MVS, Janus will look for BPX, HPNS, then IUCV. For Janus Version 5.4 and earlier, this setting always implies IUCV for both CMS and MVS. BPX Specifies IBM BPX (Unix System Services) (MVS only). HPNS Specifies IBM HPNS (High Performance Native Sockets) (MVS only). INTERLNK Specifies InterLink TCP/IP (MVS only). CSI Specifies Connectivity Systems TCP/IP (VSE only). TCP/IP notes: ● If you are using the IBM BPX TCP/IP interface, check the following APARs for PTFs that may apply to your system: OW42346, PQ24583, and OW37717. These APARs relate to SIGPIPE handling in the BPX API and can cause abends which result in immediate termination of Model 204. Also, customers have reported occasional hung threads that may be fixed by APAR PQ33040. —————————————————————————————————————————— 18 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Environment Definition —————————————————————————————————————————— ● Most of the communication with the TCP/IP address space is accomplished via a PST. Because of this, NSUBTKS may need to be increased by 1 before using Janus. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 19 —————————————————————————————————————————— Environment Definition —————————————————————————————————————————— —————————————————————————————————————————— 20 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— —————— CHAPTER 5 Janus Commands The Janus command set (simply referred to as "Janus commands") consists of commands and subcommands that begin with the string JAN. The two Janus commands currently supported as of Sirius Mods version 6.3 are JANUS and JANUSDEBUG. You use Janus commands to: ● Define Model 204 as a server on the TCP/IP network. Janus commands set port numbers for your Janus server applications and start, stop, and monitor Janus activity in the Model 204 address space. ● Define remote servers to the Model 204 client for access by Janus Open Client applications and Janus Sockets client applications, and define which remote hosts can establish connections with Janus Specialty Data Store, Janus Open Server, and Janus Sockets. ● Add security to Janus ports using Secure Sockets Layer (SSL) or Transport Layer Security (TLS) to provide encrypted communications. ● Define server rules (like redirection or security filtering for specific data types, users, or TCP/IP addresses) for Janus Web Server and Janus Sockets applications. ● Perform interactive, terminal-based debugging of Janus Web Server applications (using the JANUSDEBUG command). Janus commands require the executing user to have System Manager privileges. Exceptions are the JANUSDEBUG command, which can be issued by any logged-in user, and commands that are executed through the JANMAN subsystem. JANMAN is an optional application subsystem that ships with Janus and is described later. As of Sirius Mods version 6.2, Janus commands can also be issued as operator commands (on the Online virtual console under VM) or as replies to the HALT message under OS/390. Janus commands make use of the following wildcard characters: * ? " An asterisk represents any string of characters. A question mark represents any character. A double quote escapes wildcard translation of the special character that follows it. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 21 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— For example, the following command starts all Janus ports whose names begin with the string BA (like BART, BARNEY, BALES, BAY): JANUS START BA* The following command drains all Janus ports whose names are three characters long, beginning with BA (BAY, BAD, BAX, etc.): JANUS DRAIN BA? The following command starts all Janus ports whose names end in ? (WHODONEIT?, WHERES_THE_BEEF?, WHAT?_ME_WORRY?, WHO_YA_GONNA_CALL?, etc.): JANUS START *"? 5.1 The JANUSDEBUG command The JANUSDEBUG command (which can be entered as JANDEB, JANUSDEB, or JANDEBUG), allows a Janus Web Server request to be run on the 3270 thread that issued the command. JANUSDEBUG requires no special user privileges and is available in Sirius Mods version 6.0 and later. JANUSDEBUG works in conjunction with JANUS WEB DEBUG rules (“JANUS WEB DEBUG” on page 168) — if a JANUS WEB DEBUG rule matches a request, the request is suspended until a user issues a JANUSDEBUG command for that request. When the JANUSDEBUG command is issued for the request, these actions follow: ● ● ● The request is transferred to the user that issued the JANUSDEBUG command. The commands specified in the JANUS WEB ON rules are issued and run. The request completes, and a response is sent back to the browser. While the request is running on the 3270 thread, any debugging tools that are available for 3270 applications such as SoftSpy, TEST DEBUG, or SSTEST can be used for the web request, though the means by which these tools are invoked might be different in a JANUSDEBUG context. Informational messages describing the initial request and web status code for the response are sent to the 3270 terminal. Other Model 204 messages and even the text being sent to the browser can also be sent to the 3270 screen (under control of the JANDEBM user parameter described in “Janus User Parameters” on page 201). If a browser should cancel a request that is waiting for a user to issue a JANUSDEBUG command, the request is immediately cleaned up and the thread is made available to process other requests. Until then, however, a request will tie up a Janus Web Server thread and an sdaemon thread. Since most browsers will wait indefinitely for a response, heavy use of JANUS WEB DEBUG rules could increase an Online's Janus —————————————————————————————————————————— 22 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— The JANUSDEBUG command —————————————————————————————————————————— Web Server and sdaemon thread requirements. The fact that most browsers will wait indefinitely for a response while the request is being debugged becomes convenient indeed, however, as the debugging process for a request can take arbitrarily long. If the browser request is cancelled while the request is being debugged, the request will be cancelled because of the lost connection. JANUSDEBUG can only debug these requests: ● ● Those run under the userid that issued the command Those run against a public URL (that is, running under the WEBUSER user when the JANUS WEB DEBUG rule has the PUBLIC keyword) While it might seem useful to be able to debug PUBLIC requests, it can be quite confusing and difficult to manage in an environment where there are many programmers running against the URLs to be debugged. In such a case, unless programmers qualify their JANUSDEBUG commands with IP addresses, URLs, or PORTs, they find themselves debugging someone else's requests. For this reason, it is highly recommended that all URLs to be debugged also have ALLOW rules that force a user login, even if the URL would ultimately run as a public URL. By using this approach, a programmer can run their browser requests under the same userid that they'll be using for debugging. Then, as long as he or she doesn't request multiple URLs at the same time from a browser, they can easily debug the current request with an unqualified JANUSDEBUG (abbreviated JANDEB) command. While it is possible to temporarily turn on debugging for a URL that is ordinarily not debugged, this can be problematic in a multiple programmer, multiple tester, or production environment because: ● If debugging is turned on for a URL, it is turned on for all requests for the URL, unless JANUS WEB DEBUG rules are issued for the specific userids for which debugging is required. ● Dynamically changing the debugging attributes of a URL requires access to the JANUS command, which ordinarily requires system manager privileges (as it should). Consequently, it is recommended that when users of the Janus Web Server debug facility are setting up the standard JANUS WEB ON rules, they set up parallel JANUS WEB ON rules for all application URLs that might be debugged. This can be done by specifying the path /debug before the application URLs. A JANUS WEB ON rule for the URL /history/* could have a parallel JANUS WEB ON rule for URL /debug/history/*, for example. Another approach is to define a separate port to have all the same JANUS WEB ON rules as the primary port. In any case, once the parallel JANUS WEB ON rules are set up, debugging could simply be enabled for those URLs. If the parallel ON rules use the /debug path prefix, a debug rule like the following could be issued: JANUS WEB WEBPORT DEBUG /DEBUG/* —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 23 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Or, if a debugging port is set up, the rule could simply be this: JANUS WEB DEBUGPORT DEBUG * With this in place, a programmer could debug an application simply by changing the URL being debugged to include the debugging prefix, or by pointing the URL at the debugging port. In no cases can one debug a JANUS WEB ON rule that indicates SEND or RECV instead of CMD. Also, a NEWSESCMD command cannot be debugged via JANUSDEBUG. A port command, that is the CMD on the JANUS DEFINE for a port, can be debugged via JANUSDEBUG if DEBPORTCMD is specified in the port definition or if PORTCMD is specified in the JANUS WEB DEBUG rule in effect. The files or groups that are specified in the OPEN clause of the JANUS WEB ON rule for a request being debugged are opened just as if the request were running on an sdaemon. At request completion the files and groups are automatically closed. However, if any of the files or groups specified in the OPEN clause is already open on the debugging user's thread, it is left open with the file/group privileges unchanged. This means that it is possible for a request to fail because the file or group privileges indicated in the JANUS WEB ON rule OPEN clause are different from the ones with which the debugging user has them open. Any APSY subsystem invocation during JANUSDEBUG processing will, as with all subsystem processing, open the subsystem's required files and groups with their required privileges and close them upon exit from the subsystem. By default, files and groups specified in the OPEN clause of the JANUS DEFINE command for a port are not opened as part of JANUSDEBUG command processing. If these files or groups are required for an application, the DEBPORTOPEN command should be specified in the port definition, or PORTOPEN should be specified in the JANUS WEB DEBUG rule. Processing for files or groups opened in this way is identical to that for files or groups opened as a result of JANUS WEB ON rule processing. 5.1.1 JANUSDEBUG command format JAN[US]DEB[UG] [IPADDR ipaddr] [PORT port] [URL url] JANUSDEBUG command syntax Where: ipaddr The IP address from which the request to be debugged must have come. The IP address could be a single IP address like 198.242.244.99, or it could be a subnet such as 198.242.244.96-27 or 198.242.244.96/255.255.255.224. The utility of subsetting by IP address is —————————————————————————————————————————— 24 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— The JANUSDEBUG command —————————————————————————————————————————— greatly reduced if all users access the application through a few proxy servers, though often it is a simple matter to tell a browser to not go through a proxy. port The Janus port name of the port to which the request to be debugged must have gone. The port name can be a literal port name, or it can contain wildcards like DEBUG* or TEST?. url The URL of the request to be debugged. The URL can be a literal URL, or it can contain wildcards like /DEBUG/HR/* or */HR/PAY/** If logins are required for URLs to be debugged, an unqualified JANUSDEBUG command is usually sufficient for a programmer to be sure that the request being debugged is the one she initiated on her browser. 5.2 JANUS command overview The principal command of the Janus command set is the JANUS command, which consists of a set of mutually exclusive subcommands. To execute a subcommand, you specify it with the prefix JANUS: for example, JANUS DEFINE ..., JANUS STATUS ..., etc. The following list shows the JANUS subcommands with a brief description of what they do. Subcommand execution requires System Manager privileges, unless the command is executed through the JANMAN subsystem. ADDCA Adds a trusted certifying authority's certificate to a port. CHARSET Specifies the default character set. CLSOCK Specifies rules to allow a User Language program to access a CLSOCK port. CONFIGURATION Displays global configuration values. DEFINE Defines a Janus port. DEFINEIPGROUP Defines a grouping of IP addresses for web access control. DEFINEREMOTE Defines a remote server for Janus Open Client, and associates it with a Janus OPENSERV or SDS port. DEFINEUSGROUP Defines a grouping of user IDs for web access control. DELCA Deletes a trusted certifying authority's certificate from a port. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 25 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— DELETE Deletes a port definition. DELETEIPGROUP Deletes a grouping of IP addresses. DELETEREMOTE Deletes an association between a remote server and a Janus OPENSERV or SDS port. DELETEUSGROUP Deletes a grouping of user IDs. DISPLAY Displays Janus port definitions. DISPLAYCA Displays the contents of a trusted certifying authority's certificate. DISPLAYREMOTE Displays remoter server definitions. DISPLAYSOCK Displays CLSOCK and SRVSOCK port rules. DISPLAYWEB Displays WEBSERV port rules. DISPLAYXT Displays translate table definitions. DOMAIN Specifies the domain; used with IBM TCP/IP to resolve unqualified host names. DRAIN Prevents new connections to port and stops port when last connection is closed. FORCE Breaks all connections to port and stops port when last connection is closed. FTP Specifies Janus FTP Server processing rules. LANGUAGE Specifies default Janus Open Server language. LIMITS Displays the Janus connection limits for an Online. LOADXT Loads or reloads a translate table and, optionally, an entity translate table. NAMESERVER Specifies IP address and port number of the domain name server used with Janus Sockets CLSOCK applications and Janus Open Client applications; only used with the IBM TCP/IP interfaces. RELOAD Reloads the Model 204-to-SQL mappings from the JANCAT file for a Janus Specialty Data Store port. —————————————————————————————————————————— 26 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS command overview —————————————————————————————————————————— SRVSOCK Specifies rules that determine which SRVSOCK connections to allow. SSLSTATUS Displays SSL (Secure Sockets Layer) statistics for SSL ports. START Makes a port available for connections. STATUS Displays port status. STATUSCA Displays the status of a trusted certifying authority's certificate. STATUSREMOTE Displays status of remote servers. TCPLOG Stores all input and output streams to and from a port. TRACE Changes trace settings for a port or for specific IP addresses connected to a port. TSTATUS Displays thread utilization statistics. WEB Specifies Janus Web Server processing rules. 5.3 JANUS ADDCA For ports supporting encrypted communications, this command adds a “trusted” certifying authority's certificate (encrypted public key) to the port. “Added” certificates are used for authentication (decryption) of incoming certificates, that is, to verify that a certificate presented to the port bears the authentic signature of the certifying authority. Such an incoming certificate may be a server certificate sent in reply to a CLSOCK port, or it may be a client certificate sent in reply to a SRVSOCK, WEBSERV, SDS, or OPENSERV port. Janus Network Security accepts only incoming certificates that are “signed” by a trusted certifying authority (often abbreviated as CA). Applications can place further restrictions on acceptable certificates but cannot relax this restriction. The User Language ADDCA utility, available as of version 7.7 of the Sirius Mods, lets you add multiple certificates from the UL/SPF SIRIUS file, as described in “Adding SIRIUSfile certificates” on page 29. JANUS ADDCA portname filename procname JANUS ADDCA command syntax —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 27 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Where each parameter is positional and required: portname The defined JANUS port to which the certificate is to be added. Can include wildcards. Non-SSL ports will not have trusted CA certificates added to them, since it is meaningless to have trusted CAs on a non-SSL port. filename The name of the file that contains the CA certificate. procname The name of the procedure that contains the base64 encoded CA certificate. This certificate may have been generated by the Janus Network Security certificate management application or by some other certificate management application, extracted from a browser's CA database, or downloaded from a certifying authority's web site. An example ADDCA command and system response follows: JANUS ADDCA J2WEBS JANSSL MYSSL2.CERT *** MSIR.0642: Added CA 'www.sirius-software.com' from file JANSSL, proc MYSSL2.CERT to port J2WEBS A typical CA certificate would look something like: -----BEGIN CERTIFICATE----MIIDLjCCApegAwIBAgIRANJ2Lo0UDD19sqglXa/uDXUwDQYJKoZIhvcNAQECBQAw XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQL Ey5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 MB4XDTk4MDUxMjAwMDAwMFoXDTA4MDUxMjIzNTk1OVowgcwxFzAVBgNVBAoTDlZl cmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMUYw RAYDVQQLEz13d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvUlBBIEluY29ycC4g QnkgUmVmLixMSUFCLkxURChjKTk4MUgwRgYDVQQDEz9WZXJpU2lnbiBDbGFzcyAx IENBIEluZGl2aWR1YWwgU3Vic2NyaWJlci1QZXJzb25hIE5vdCBWYWxpZGF0ZWQw gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALtaRIoEFrtV/QN6ii2UTxV4NrgN SrJvnFS/vOh3Kp258Gi7ldkxQXB6gUu5SBNWLccI4YRCq8CikqtEXKpC8IIOAukv +8I7u77JJwpdtrA2QjO1blSIT4dKvxna+RXoD4e2HOPMxpqOf2okkuP84GW6p7F+ 78nbN2rISsgJBuSZAgMBAAGjfDB6MBEGCWCGSAGG+EIBAQQEAwIBBjBHBgNVHSAE QDA+MDwGC2CGSAGG+EUBBwEBMC0wKwYIKwYBBQUHAgEWH3d3dy52ZXJpc2lnbi5j b20vcmVwb3NpdG9yeS9SUEEwDwYDVR0TBAgwBgEB/wIBADALBgNVHQ8EBAMCAQYw DQYJKoZIhvcNAQECBQADgYEAiLg3O93alDcAraqf4YEBcR6Sam0v9vGd08pkONwb mAwHhluFFWoPuUmFpJXxF31ntH8tLN2aQp7DPrSOquULBt7yVir6M8e+GddTTMO9 yOMXtaRJQmPswqYXD11YGkk8kFxVo2UgAP0YIOVfgqaxqJLFWGrBjQM868PNBaKQ rm4= -----END CERTIFICATE----- The procedure and file containing the certificate are only enqueued during JANUS ADDCA processing. Thereafter, the certificate is stored in virtual storage, and the procedure is available to be modified or freed from the Online. JANUS ADDCA will not add a trusted CA certificate to a port if there is already a trusted CA certificate from the same file name and procedure name added to the port. If a CA —————————————————————————————————————————— 28 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS ADDCA —————————————————————————————————————————— certificate in a procedure has been changed, the certificate must be deleted from the port using DELCA (“JANUS DELCA” on page 116) and then added again using ADDCA for the change to affect the port. To view the list of trusted certificates and their contents, use the JANUS DISPLAYCA command (“JANUS DISPLAYCA” on page 120). To view the number of received certificates signed by each trusted CA, use the JANUS STATUSCA command (“JANUS STATCA or STATUSCA” on page 152). For more information about certificates and certifying authorities, see the Janus Network Security Reference Manual. Adding SIRIUS-file certificates Although a server port is not likely to need to use the JANUS ADDCA command more than once, a client port may want to use it to add multiple certificates. As a convenience especially for a CLSOCK port connecting to an SSL server, Sirius pre-loads a set of standard certifying authorities' certificates to the SIRIUS procedure file (as of UL/SPF 7.3). Janus Sockets SSL client ports need to add the certificate(s) of the CA that signed the certificate of the server or servers to which the client will connect. (Janus does not allow a port to specify exceptions, that is, signed certificates that a port accepts without having the signing CA's certificate.) The SIRIUS file certificates can be added to a port by the JANUS ADDCA command or by the ADDCA utility, described below. Adding this set of certificates equips the client port in much the same way that internet browsers are equipped with multiple CA certificates. The certificates are procedures whose names have the prefix “CA_” so they are easy to scan using a DISPLAY PROCEDURE command or by browsing the procedures in SirPro. Sirius will periodically review the certificates loaded to SIRIUS, eliminate any that have expired, and load new ones when they are made available by various wellaccepted CAs. The User Language ADDCA utility lets you add some or all of these certificates at once to an SSL port. The utility is invoked at the command level via INCLUDE: IN SIRIUS INCLUDE ADDCA portname certificate User Language ADDCA utility syntax Where each parameter is positional and required: portname The defined JANUS SSL port to which the certificate is to be added. The name can include wildcards. Non-SSL ports may not have trusted CA certificates added to them. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 29 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— certificate The name of the procedure that contains the base64 encoded CA certificate. This parameter may contain wildcards. To load all certificates in the SIRIUS file whose names begin with “CA_AOL”, you can use: CA_AOL* This ADDCA utility invocation loads (at least) the CA_ThawtePremiumServerCA certificate, for example: IN FILE SIRIUS INCLUDE ADDCA WEBBY CA_T* The utility internally runs a series of ADDCA commands like the following to load to WEBBY each certificate in file SIRIUS that matches the specified pattern: JANUS JANUS JANUS JANUS ADDCA ADDCA ADDCA ADDCA WEBBY WEBBY WEBBY WEBBY SIRIUS SIRIUS SIRIUS SIRIUS CA_ThawtePremiumServerCA CA_ThawteServerCA CA_ThawteTimestampingCA CA_ThawteSGCCA Note: The CA certificates are stored as procedures with mixed-case names, which makes them much easier to scan visually, but a little more difficult to manipulate. For instance, if the above INCLUDE command is used, all the intended certificates are loaded, because the “CA_T” in uppercase matches the case of the corresponding characters in the certificate names. But if you want a more precise search and the name to be matched by the pattern includes mixed-case characters, the INCLUDE command must be bracketed with a set of *LOWER/*UPPER commands, as in: JANUS DEFINE WEBBY * CLSOCK 10 OPEN FILE SIRIUS *LOWER IN SIRIUS INCLUDE ADDCA MYSSLPORT *America* *UPPER The above sequence of statements would load the certificate named “CA_AmericaOnlineRootCertificationAuthority1” from file SIRIUS. 5.4 JANUS CHARSET This subcommand sets a default character set for all Janus ports in the Model 204 region. JANUS CHARSET character_set JANUS CHARSET command syntax —————————————————————————————————————————— 30 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS CHARSET —————————————————————————————————————————— Where the single parameter is optional: character_set A 1 - 30 name for the character set to be used. The default value is iso_1. CHARSET has no effect on the operation of any application in Model 204. The name of the specified character set is simply forwarded to the target server for a Janus Open Client application. Because almost all SQL Server character set names are lower case, the character set specified after CHARSET will generally be translated to lower case. For example, specifying 'CHARSET CP850' will actually request character set 'cp850' from a target server. If an upper or mixed case character set name is required, simply place a plus sign (+) in front of the character set name. For example to specify character set 'BIG' simply enter 'CHARSET +BIG'. The character set specified on a JANUS DEFINEREMOTE command overrides the character set specified on a JANUS DEFINE command which overrides the character set specified on a JANUS CHARSET command. If the character set name is left blank, the JANUS CHARSET command will display the current character set name. 5.5 JANUS CLSOCK The JANUS CLSOCK command defines the rules for a Janus Sockets client (CLSOCK) or DEBUGGERCLIENT port. These rules control access to the port. System administrators always have access to a client port, so no CLSOCK rules are required to provide socket access to these users. JANUS CLSOCK portname rule_type [optional parameters] JANUS CLSOCK command syntax The JANUS CLSOCK command is slightly different from most Janus commands in that it usually takes a set of commands to fully specify the rules for a port. For instance, it may take a number of commands to specify the various users and applications that may use a port on the socket-connection $function ($SOCK_CONN) or object method (New). The order in which JANUS CLSOCK commands are specified also affects how they are processed. The first two parameters are positional and are required: portname A 1 - 30 character name of the port, or a pattern specifying a set of ports, for which the rule is being defined. Wildcards are allowed. rule_type The type of rule being specified for the port or ports. Valid rule_types are: DISALLOW Removes access permission. ALLOW Assigns access permission. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 31 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— The ALLOW and DISALLOW rules are processed together, from most recent to oldest. The optional parameters allowed for the JANUS CLSOCK command depend on the rule_type value. The rule types are shown in the following sections, followed by a section giving examples and showing the interaction of JANUS CLSOCK commands (“Rule matching order and examples” on page 39). Note that the JANUS CLSOCK and JANUS SRVSOCK commands differ from the corresponding rules available with the JANUS WEB command in the following ways: ● JANUS WEB does not allow any optional parameters (for example, USGROUP) on the DISALLOW rule. ● The default access for WEBSERV non-SSL ports and SRVSOCK ports is ALLOW. The default access for WEBSERV SSL ports and CLSOCK ports is DISALLOW. ● ALLOW and DISALLOW are the only rule types for JANUS CLSOCK and JANUS SRVSOCK. There are a number of other rule types for JANUS WEB. 5.5.1 JANUS CLSOCK ALLOW JANUS CLSOCK portname ALLOW [NONE] | [USER userID | USGROUP usgroup] [FILE procfile] [PROC procname] [SUBSYS subsysname] [REMOTE rmt_host rmt_portnum] JANUS CLSOCK ALLOW command syntax The JANUS CLSOCK ALLOW command indicates a combination of conditions which, if all specified, allow a socket-connection $function ($SOCK_CONN) or object method invocation to access a CLSOCK port that matches pattern portname. The default access for all CLSOCK and DEBUGGERCLIENT ports is to disallow all access — except system administrators can access any CLSOCK port, regardless of rules (since a system administrator can always issue JANUS CLSOCK to grant access to herself). For a non-system administrator, access to a CLSOCK port on a $SOCK_CONN or New method invocation depends on the most recent rule for that port that matches the conditions of the $SOCK_CONN or New method call: ● If the conditions match all clauses on a JANUS CLSOCK ALLOW rule, access to the port is allowed. ● If the conditions match all clauses on a JANUS CLSOCK DISALLOW rule, access to the port is disallowed. —————————————————————————————————————————— 32 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS CLSOCK —————————————————————————————————————————— ● If the conditions match neither an ALLOW nor DISALLOW rule, access to the port is disallowed. If the JANUS CLSOCK ALLOW command is specified with no optional parameters, any $SOCK_CONN or New method invocation can access the CLSOCK ports that match the pattern in portname. The optional parameters for the JANUS CLSOCK ALLOW command are: NONE Indicates that no $SOCK_CONN or New method invocation is allowed to access portname. If NONE is specified, no other optional parameters may be specified. USER userid Indicates that the Model 204 user ID userid may issue $SOCK_CONN or a New method call for portname. For example, if userid is HOMER, a user that logs in as HOMER will be allowed access to portname. If userid is SIMP*, a user that logs in as any user ID that begins with the string SIMP is allowed access to portname. The USER parameter cannot be specified if the USGROUP parameter is specified. USER '' (that is, USER with the null string) is not allowed, since there is always a (non-null) user ID when a request is issued. USER * is allowed, but it is meaningless: it does not change which conditions a rule matches. USGROUP usgroup Indicates that a Model 204 user is allowed access to portname if his or her user ID matches an entry in the user group identified by usgroup. User groups are defined with the JANUS DEFINEUSGROUP command (“JANUS DEFINEUSGROUP” on page 116). The USGROUP parameter cannot be specified if the USER parameter is specified. FILE procfile Indicates that $SOCK_CONN or a New method call is allowed to access portname if invoked by executing an outer procedure stored in a Model 204 file whose name matches the pattern procfile. FILE * indicates that access is allowed by any procedure except a temporary request or an instream procedure. FILE '' indicates that access is allowed only by a temporary request or an in-stream procedure. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 33 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— PROC procname Indicates that $SOCK_CONN or a New method call is allowed to access portname if invoked by executing an outer procedure whose name matches the pattern procname. PROC * indicates that access is allowed by any procedure except a temporary request or an in-stream procedure. PROC '' indicates that access is allowed only by a temporary request or an in-stream procedure. SUBSYS subsysname Indicates that a $SOCK_CONN or New method invocation is allowed to access portname if issued from an APSY subsystem with a name that matches the pattern subsysname. SUBSYS * indicates that access is allowed by any subsystem. SUBSYS '' indicates that access is allowed only by a non-subsystem procedure or temporary request, or by an in-stream procedure. REMOTE rmt_host rmt_portnum Indicates that a $SOCK_CONN or New method invocation is allowed to access portname if the remote host and port number ($SOCK_CONN or New method arguments, with their defaults from the REMOTE clause of the JANUS DEFINE command for the CLSOCK port) match rmt_host and rmt_portnum, respectively. Rmt_host can be any of the following: [NAME] hostname Indicates that access is allowed if the name of the remote host matches the pattern hostname. The null string ('') is not allowed for hostname, since there is always a (non-null) host for the $SOCK_CONN or New method operation. When the NAME keyword is explicitly specified, or when hostname is a form that cannot be an IP address, the clause only matches if the connection to the remote host is made using a name rather than an IP address. This leads to some subtle differences in the meaning of an asterisk in the REMOTE clause. For example, the following rule restricts the connection to any remote host at port 1234, whether the connection is specified by name or by IP address: JANUS CLSOCK FOO ALLOW REMOTE * 1234 The following clause restricts the connection to any remote host at port 1234, as long as the connection is specified by host name: —————————————————————————————————————————— 34 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS CLSOCK —————————————————————————————————————————— JANUS CLSOCK FOO ALLOW REMOTE NAME * 1234 REMOTE * * is allowed, but it is meaningless; that is, it does not change which conditions a rule matches. REMOTE NAME * *, however, does restrict a rule to match only if the host name is specified on the connection, but it matches any remote host. IPGROUP ipgroup Indicates that access is allowed if the remot host's IP address matches one of the entries in ipgroup. IP groups are defined with the JANUS IPGROUP command (“JANUS DEFINEIPGROUP” on page 110). ipaddr Indicates that access is allowed if the remote host has an IP address that matches ipaddr. ipaddr can be a simple IP address or it can be a subnet. Subnets are indicated by an IP address followed by either of these: ● ● A slash ( / ) followed by a netmask (with no intervening blanks) A hyphen ( - ) followed by a number of bits in the subnet mask (with no intervening blanks) For example, 198.244.244.97 is a simple address that must be matched exactly. 198.242.244.0/255.255.255.0, which is equivalent to 198.242.244.0-24, indicates that any machine on subnet 198.242.244.0 is to be allowed access to portname. Note that when the IPGROUP ipgroup or the ipaddr form is used, the rule can match whether a connection is specified by host name or IP address. If the connection is by host name, it is first translated to an IP address, which is then used to match the rule. Rmt_portnum can be either of these: ● An asterisk (*), indicating access is allowed for any port number at the specified remote host. ● An integer in the range 1-65535, indicating that access is allowed only for the specified port number at the specified remote host. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 35 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.5.2 JANUS CLSOCK DISALLOW JANUS CLSOCK portname DISALLOW [USER userID | USGROUP usgroup] [FILE procfile] [PROC procname] [SUBSYS subsysname] [REMOTE rmt_host rmt_portnum] JANUS CLSOCK DISALLOW command syntax The JANUS CLSOCK DISALLOW command indicates a combination of conditions which, if all specified, prevent a socket-connection $function ($SOCK_CONN) or object method invocation from accessing the CLSOCK ports that match pattern portname. The default access for all CLSOCK and DEBUGGERCLIENT ports is to disallow all access — except system administrators can access any CLSOCK port, regardless of rules (since a system administrator can always issue JANUS CLSOCK to grant access to herself). For a non-system administrator, access to a CLSOCK port on a $SOCK_CONN or New method invocation depends on the most recent rule for that port that matches the conditions of the $SOCK_CONN or New method call: ● If the conditions match all clauses on a JANUS CLSOCK DISALLOW rule, access to the port is not allowed. ● If the conditions match all clauses on a JANUS CLSOCK ALLOW rule, access to the port is allowed. ● If the conditions match neither an ALLOW nor DISALLOW rule, access to the port is disallowed. If the JANUS CLSOCK DISALLOW command is specified with no optional parameters, no $SOCK_CONN invocation can access the CLSOCK ports that match the pattern in portname. The optional parameters for the JANUS CLSOCK DISALLOW command are: USER userid Indicates that the Model 204 user ID userid may not issue $SOCK_CONN or the New method for portname. For example, if userid is HOMER, a user that logs in as HOMER is not allowed access to portname. If userid is SIMP*, a user that logs in as any user ID that begins with the string SIMP is not allowed access to portname. The USER parameter cannot be specified if the USGROUP parameter is specified. —————————————————————————————————————————— 36 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS CLSOCK —————————————————————————————————————————— USER '' (that is, USER with the null string) is not allowed, since there is always a (non-null) user ID when a request is issued. USER * is allowed, but it is meaningless; it does not change which conditions a rule matches. USGROUP usgroup Indicates that a Model 204 user is not allowed access to portname if his or her userid matches an entry in the user group identified by usgroup. User groups are defined with the JANUS DEFINEUSGROUP command (“JANUS DEFINEUSGROUP” on page 116). The USGROUP parameter cannot be specified if the USER parameter is specified. FILE procfile Indicates that $SOCK_CONN or the New method is not allowed to access portname if invoked by executing an outer procedure stored in a Model 204 file whose name matches the pattern procfile. FILE * indicates that access is allowed only by a temporary request or an in-stream procedure. FILE '' indicates that access is allowed by any procedure except a temporary request or an in-stream procedure. PROC procname Indicates that $SOCK_CONN or the New method is not allowed to access portname if invoked by executing an outer procedure whose name matches the pattern procname. PROC * indicates that access is allowed only by a temporary request or an in-stream procedure. PROC '' indicates that access is allowed by any procedure except a temporary request or an instream procedure. SUBSYS subsysname Indicates that a $SOCK_CONN or New method invocation is not allowed to access portname if issued from an APSY subsystem with a name that matches the pattern subsysname. SUBSYS * indicates that access is allowed only by a non-subsystem procedure or temporary request, or by an in-stream procedure. SUBSYS '' indicates that access is allowed by any subsystem. REMOTE rmt_host rmt_portnum Indicates that a $SOCK_CONN or New method invocation is not allowed to access portname if the remote host and port number ($SOCK_CONN or New method arguments, with their defaults from the REMOTE clause of the JANUS DEFINE command for the CLSOCK port) match rmt_host and rmt_portnum, respectively. Rmt_host can be any of the following: —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 37 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— [NAME] hostname Indicates that access is not allowed if the name of the remote host matches the pattern hostname. The null string ('') is not allowed for hostname, since there is always a (non-null) host for the $SOCK_CONN or New method operation. When the NAME keyword is explicitly specified, or when hostname is a form that cannot be an IP address, the clause only matches if the connection to the remote host is made using a name rather than an IP address. This leads to some subtle differences in the meaning of an asterisk in the REMOTE clause. For example, the following rule restricts the connection to any remote host, as long as a port other than 1234 is used, whether the connection is specified by name or by IP address: JANUS CLSOCK FOO DISALLOW REMOTE * 1234 The following rule disallows a connection to any remote host at port 1234, if the connection is specified by host name. JANUS CLSOCK FOO DISALLOW REMOTE NAME * 1234 (Admittedly, these DISALLOW examples, especially the latter one, seem far-fetched and probably are not useful in practice.) REMOTE * * is allowed, but it is meaningless: it does not change which conditions a rule matches. REMOTE NAME * *, however, does restrict a rule to match only if the host name is specified on the connection, but it matches any remote host. IPGROUP ipgroup Indicates that access is not allowed if the remote host's IP address matches one of the entries in ipgroup. IP groups are defined with the JANUS IPGROUP command (“JANUS DEFINEIPGROUP” on page 110). ipaddr Indicates that access is not allowed if the remote host has an IP address that matches ipaddr. ipaddr can be a simple IP address or it can be a subnet. Subnets are indicated by an IP address followed by either of these: ● ● A slash ( / ) followed by a netmask (with no intervening blanks) A hyphen ( - ) followed by a number of bits in the subnet mask (with no intervening blanks) —————————————————————————————————————————— 38 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS CLSOCK —————————————————————————————————————————— For example, 198.244.244.97 is a simple address that must be matched exactly. 198.242.244.0/255.255.255.0, which is equivalent to 198.242.244.0-24, indicates that any machine on subnet 198.242.244.0 is to be allowed access to portname. Note that when the IPGROUP ipgroup or the ipaddr form is used, the rule can match whether a connection is specified by host name or IP address. If the connection is by host name, it is first translated to an IP address, which is then used to match the rule. Rmt_portnum can be either of these: 5.5.3 ● An asterisk (*), indicating access is allowed for any port number at the specified remote host. ● An integer in the range 1-65535, indicating that access is allowed only for the specified port number at the specified remote host. Rule matching order and examples Each execution of a JANUS CLSOCK subcommand adds to the set of rules for the specified port. Individual rules cannot be deleted nor modified. All rules can be deleted only by stopping and deleting the port definition. Deleting a port definition, however, should not be necessary, as long as you follow the two golden rules: 1. 2. Specify the most general rules first and the most specific last. Specify an initial rule that “clears” all related rules. The following example illustrates these principles: JANUS CLSOCK TEST21 DISALLOW * JANUS CLSOCK TEST21 ALLOW SUBSYS ECOMMER* JANUS CLSOCK TEST21 ALLOW PROC FILETRANS REMOTE IPADDR 169.84.111.0-24 9333 JANUS CLSOCK TEST21 ALLOW PROC FILETRANS REMOTE IPADDR 169.84.112.0-24 9333 JANUS CLSOCK TEST21 ALLOW USER SIMP* In this example, any previously specified ALLOW rules on port TEST21 are made obsolete by the first DISALLOW rule. Once the TEST21 access rules are cleared, the rules allow invocation of $SOCK_CONN or the New method for port TEST21, if any of the following conditions are met: ● It is invoked from a subsystem whose name begins with the string ECOMMER. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 39 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— ● It is invoked for port number 9333 at a remote host that is on either the subnet 169.84.111.0 or the subnet 169.84.112.0. ● It is invoked by a Model 204 user whose ID begins with the string SIMP. 5.6 JANUS CONFIGURATION This subcommand displays all global Janus configuration values. Values that are displayed are those that can be set with the JANUS NAMESERVER, DOMAIN, CHARSET, and LANGUAGE subcommands. JANUS CONFIGURATION JANUS CONFIG command syntax The CONFIGURATION command may be abbreviated CONFIG. 5.7 JANUS DEFINE The JANUS DEFINE command is used to specify the characteristics of a Janus port. It defines the usage of the named port as one of the following: ● ● ● ● ● ● ● ● Access by IFDIAL clients Open Server or Open Client connections Specialty Data Store access Web access FTP server connections Telnet server connections Generic Sockets usage — with the Model 204 online either requesting (CLSOCK) or accepting (SRVSOCK) the connection Connection between the Janus Debugger or Sirius Debugger workstation GUI and programs being debugged in Model 204 For any except a CLSOCK or DEBUGGERCLIENT port, this subcommand associates a service with a TCP/IP port number. Among the characteristics specified by JANUS DEFINE is whether the port will use Secure Sockets Layer (SSL) for encrypted communications. See “JANUS DEFINE and JANUS DEFINEREMOTE Subcommands” on page 8 for a discussion of when you need to issue the JANUS DEFINE command. —————————————————————————————————————————— 40 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— The JANUS DEFINE command syntax is described below. For command examples with commentary, see “Janus port processing and examples” on page 107. JANUS DEFINE portname portnum type maxcon other_parms... JANUS DEFINE command syntax Where each of the first four parameters is positional and required: portname A 1- to 30-character name by which the port is identified. It is used on other JANUS subcommands, such as JANUS START and JANUS DISPLAY. It is used on the $SOCK_CONN function or the Socket object New constructor to name the CLSOCK port defining a connection. portnum The TCP/IP port number at which the service is available. For any except CLSOCK ports, portnum is the server port number, and it must be between 1 and 65535, inclusive. This number is used by client applications on the network when they require access to the Model 204 server. The server port number must be unique on the host. Several “well-known” port numbers for various TCP/IP services (for example, 53 for nameserver) should be avoided, unless you are implementing that service using Janus Sockets. See “Server Ports” on page 7. For CLSOCK and DEBUGGERCLIENT ports, an asterisk (*) is used as the port number, since they are used to create, rather than accept, connections, and these port numbers are not determined until the time of the connection. For WEBSERV ports, 80 is customary for non-secure HTTP and 443 for secure HTTP (SSL); you can, however, use other numbers for WEBSERV ports if required. For FTPSERVER ports, 21 is customary; you can, however, use other numbers for FTPSERVER ports if required. type Port type. Valid types are: CLSOCK DEBUGGERCLIENT A Janus Sockets client socket port. If nonsystem administrator users are to use a CLSOCK port, rules must be provided to allow them to initiate outgoing connections on the port. For more information, see “JANUS CLSOCK” on page 31. A Sirius Debugger client socket port. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 41 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— DEBUGGERSERVER FTPSERVER IFDIAL OAS OMNI OPENSERV SRVSOCK SDS TNSERV WEBSERV maxcon A Janus Debugger or Sirius Debugger server socket port. A Janus FTP Server application. Janus IFDIAL Library applications. Synonym for type SDS. Synonym for type SDS. Open Server applications; Open Client connections are outward-bound connections on an OPENSERV port. A Janus Sockets server socket port. A Specialty Data Store port. A Janus Telnet Server port. Only available in Sirius Mods version 6.9 and later. A World Wide Web Server port. Maximum number of simultaneous active connections to be allowed on the port. This number must be less than or equal to the number of TCP/IP connections for which the site is licensed. Before Sirius Mods version 6.8, the maxcon value had to be less than or equal to the number of sdaemons defined to the online, except for nonCLSOCK ports. If you are defining multiple ports for your site, however, the sum of the maxcon connections you define is allowed to be greater than the number for which the site is licensed. In this case, Janus Web Server will automatically prevent any connection that would exceed the site license limit. For Janus Open Client, Janus Open Server, and Janus Specialty Data Store, note that a server-to-server connection requires an extra connection for the site handler. Thus, a single connection to a remote server would use two connections, while 10 connections to a remote server would use 11. Under Sirius Mods version and later, restrictions on the allowed values for maxcon are no longer present, but licensed thread limits are still enforced at the time a connection is made. You can use the JANUS TSTATUS command (“JANUS TSTAT or TSTATUS” on page 158) to view the thread usage and connection limits for your port, and you can use the JANUS LIMITS command (“JANUS LIMITS” on page 138) to view similar information for your Online. other_parms A set of blank-delimited parameters that describe the characteristics of and processing to be performed on the port. These parameters are keywords, sometimes followed by values, and they are described individually in the subsections that follow. They are all optional, except: ● for OPENSERV ports, CMD is required —————————————————————————————————————————— 42 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— ● ● ● 5.7.1 For CLSOCK ports, REMOTE is required For SRVSOCK ports, CMD is required For FTPSERVER ports, OPEN, CMD, NEWSESOPEN, and NEWSESCMD are not allowed ALLOCC This parameter indicates that input, output and request buffers are to be allocated when a connection is established and are to be freed when the connection is closed. If ALLOCC is not specified, all necessary buffers are allocated when the JANUS START command is executed and are kept until the port is stopped, after a JANUS DRAIN or JANUS FORCE command. All buffers are allocated above the line using space reserved by SPCORE. See “Storage requirements” on page 219 for details on allocation requirements. Valid for all port types. 5.7.2 ANONYMOUS [maxanon | *] This parameter indicates that anonymous access is permitted to the FTP server being defined. Anonymous access is FTP access that does not require a valid Model 204 user ID. If the ANONYMOUS parameter is not specified, no anonymous access is permitted. The ANONYMOUS parameter must be followed by a number (maxanon) or an asterisk (*): ● maxanon is an integer in the range from 1 to maxcon that indicates how many of the FTP server's sessions may be used for anonymous sessions. maxcon is the maximum number of simultaneous FTP sessions supported by this server. ● An asterisk indicates that all maxcon sessions are available for anonymous FTP use. If anonymous access is permitted, the default name of the anonymous user is ANONYMOUS. This name can be overridden with the ANONUSER parameter (“ANONUSER user” on page 44). For more information about the Janus FTP Server, see the Janus Sockets Reference Manual. This parameter is valid only for FTPSERVER port types. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 43 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.7.3 ANONUSER user This parameter lets you change the name of the anonymous user, that is, of the user name that is granted access without Model 204 user validation to the Janus FTP Server being defined. ANONUSER may be specified only if ANONYMOUS (“ANONYMOUS” on page 43) is also specified. user must be ten characters or less. For more information about the Janus FTP Server, see the Janus Sockets Reference Manual. This parameter is valid only for FTPSERVER port types. 5.7.4 AUDTERM This parameter is used to control whether the server thread sends “non-compiler terminal output” to the audit trail. Compiler terminal output is always sent to the audit trail. Any terminal output sent to the audit trail is sent as RK lines. AUDTERM specifies that terminal output is sent to the audit trail; NOAUDTERM (“NOAUDTERM” on page 73), which is the default port setting, specifies that (noncompiler) terminal output is not sent to the audit trail. Note that some “print output” can be “captured” on a Sirius $list, a Janus Socket, or a USE output stream, and thus it would not be sent as terminal output -- to the audit trail or anywhere else. For further description of terminal output, see the Janus Web Server Reference Manual or Janus Sockets Reference Manual. On a WEB port: ● Even with AUDTERM set on a WEB port, terminal output is not sent to the audit trail if $WEB_ON is explicitly or implicitly set. ● The setting of AUDTERM (or NOAUDTERM) applies to all URLs on a WEB port unless explicitly overridden by a NOAUDTERM (or AUDTERM) parameter on a JANUS WEB ON rule. On a SRVSOCK port: ● The setting of AUDTERM (or NOAUDTERM) for a socket can be changed using the $SOCK_SET function or the Socket object method Set. Starting with version 6.0, this parameter applies to all Janus “server” port types, and the default setting is NOAUDTERM. Prior to this, the parameter only applied to WEB ports, and the default setting was AUDTERM. —————————————————————————————————————————— 44 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— This introduces a small incompatibility. Starting with version 6.0, compared to earlier versions, any WEB port connection without an explicit AUDTERM or NOAUDTERM will probably generate fewer audit trail lines, as will any SDS or OPENSERV port. This should be a benefit, since most of this output is either uninteresting or already logged to the audit trail as ER, AD or MS lines. Logging these messages as RK lines as well is just a waste of journal space and I/O and makes application diagnosis and debugging from the audit trail more difficult because of the extra noise data. For WEB, OPENSERV, or SRVSOCK applications that wish to explicitly audit information, the User Language AUDIT statement should be used, not the PRINT statement. Valid for WEBSERV, SDS, OPENSERV, or SRVSOCK port types. 5.7.5 AUTODONE This parameter requests Janus Web Server to treat a return to command mode after all port and ON rules CMDs have been processed as an implicit $WEB_DONE. Since AUTODONE is the default setting for Janus Web Server ports, there is no real reason to explicitly specify it other than for internal documentation. To suppress the default AUTODONE processing, specify the NOAUTODONE parameter (“NOAUTODONE” on page 74) on the port definition. The setting of AUTODONE (or NOAUTODONE) applies to all URLs on the port unless explicitly overridden by a NOAUTODONE (or AUTODONE) parameter on a JANUS WEB ON rule. The recommended setting for this parameter is NOAUTODONE with AUTODONE added to any JANUS WEB ON rule where the implicit $WEB_DONE is really required. Valid only for WEBSERV ports. 5.7.6 AUTOLOAD This parameter, indicates that the incore copy of Janus tables are to be reloaded at the first request subsequent to a table redefinition. This eliminates the need to issue JANUS RELOAD commands to reload table definitions after changes have been made. AUTOLOAD does have a few disadvantages, however. First, if several table definitions are being changed while SQL requests are being processed on a port, Janus might end up performing the reload process several times where issuing a JANUS RELOAD command at the end of all the changes would result in a single reload. Doing multiple reloads could be a significant expense if the number of JANCAT table definitions is large. The other disadvantage of AUTOLOAD is that the reload doesn't happen until a request arrives on the port. This means that the user issuing the request could encounter a significant delay as the Janus port is reloaded. A JANUS RELOAD command before the request comes in would ensure that the table definitions would already be loaded so no extra delay would be encountered. Note that it is perfectly valid to issue a JANUS RELOAD command on an AUTOLOAD port. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 45 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Valid only for SDS (also known as OMNI or OAS) ports. 5.7.7 AUTOON This parameter requests Janus Web Server to issue an implicit $WEB_ON before executing the commands specified in a JANUS WEB ON rule. Since AUTOON is the default setting for Janus Web Server ports, there is no real reason to explicitly specify it other than for internal documentation. To suppress the default AUTOON processing, specify the NOAUTOON parameter (“NOAUTOON” on page 75) on the port definition. The setting of AUTOON (or NOAUTOON) applies to all URLs on the port unless explicitly overridden by a NOAUTOON (or AUTOON) parameter on a JANUS WEB ON rule. The recommended setting for this parameter is NOAUTOON with AUTOON added to any JANUS WEB ON rule where the implicit $WEB_DONE is really required. Valid only for WEBSERV ports. 5.7.8 AUTOSYS subsys This parameter sets the Model 204 AUTOSYS parameter to the indicated (subsys) value when a connection is received on a TNSERV port. The AUTOSYS parameter is useful for providing functionality comparable to the equivalent user parameter for traditional Model 204 full-screen threads. Since TNSERV connections run on daemon threads, and since it would not be common for AUTOSYS to be set for daemon threads, this parameter makes it possible to provide AUTOSYS functionality specifically for Janus Telnet Server connections. For more information about the Janus Telnet Server, see the Janus Sockets Reference Manual. The AUTOSYS parameter set via JANUS DEFINE remains intact over the lifetime of a telnet connection, even after a logoff and logon. The AUTOSYS parameter must be followed by the name of a subsystem to be invoked after a login on the Telnet Server. This parameter, like the Janus Telnet Server, is only available in Sirius Mods version 6.9 and later. Valid only for TNSERV ports. —————————————————————————————————————————— 46 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.9 BINARY This parameter requests Janus Sockets to send and receive strings with $SOCK_ functions or Socket methods using no translation. This can be useful if the Janus Sockets User Language application is doing its own translation, or if no translation is required. Input and output translation can be enabled for a socket by either of the following: ● ● Setting a socket to CHAR using $SOCK_SET or the Set function of the Socket class Using the CHAR option on an individual receive or send $function or Socket method Character translation is automatic for the socket if you are using the HTTP Helper. Individual strings can be translated using $SOCK_TRAN_IN or $SOCK_TRAN_OUT or their Socket method counterparts, TranIn or TranOut. Translation is determined by the tables defined by the socket's XTAB setting. The CHAR parameter is the opposite of BINARY. CHAR is the default. Valid only for CLSOCK and SRVSOCK ports. 5.7.10 BINDADDR xxx This parameter specifies the IP address to which the port will be bound, if the host (machine) on which Model 204 is running supports multiple IP addresses. The IP address must be an IP address of the host. If BINDADDR is not specified, the port binds the port number for all IP addresses associated with the host; that is, it can be accessed via any IP address associated with the host. This parameter only really makes sense on a host with more than one IP address. For example, if a host on which an Online is running has IP addresses 198.242.244.47 and 198.242.244.130, a BINDADDR 198.242.244.47 specification indicates that the port can only be reached through IP address 198.242.244.47. This parameter is especially useful for allowing a single mainframe host or even an Online to act as more than one web server without the inconvenience of having port numbers on URLs. This can be done because there can be multiple port 80's (the default web port number) on the host, each accessed by its indicated BINDADDR. The separate IP addresses could, in turn, be associated with different DNS host names even though these separate names refer to the same underlying machine. Note that there is not likely to be much, if any, performance benefit to having multiple Janus ports with the same port number but different BINDADDRs in the same Online. There might certainly be, however, some organizational advantages to running such a configuration. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 47 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Valid for all port types. 5.7.11 BSIZE xxx This parameter specifies the size of the TCP/IP input and output buffers. The default is 4096 for IBSIZE and 8192 for OBSIZE. BSIZE is a shorthand way of specifying both IBSIZE and OBSIZE when their sizes are the same. Valid for all port types. 5.7.12 CHAR This parameter requests Janus Sockets to translate strings (sent and received with Janus Sockets functions or methods) between the internal representation within Model 204 (EBCDIC) and the character representation used by the remote end of the connection. This translation can be disabled by one of the following: ● ● ● Setting a socket to BINARY using $SOCK_SET or the Set function of the Socket class Using the BINARY option on an individual receive or send $function or Socket class method Using an option of the AddField method or the Content method of the HTTP Helper Individual strings can always be translated using $SOCK_TRAN_IN or $SOCK_TRAN_OUT, or their Socket method counterparts, TranIn or TranOut. If the CHAR setting is in effect, translation is determined by the tables defined by the socket's XTAB setting. The BINARY parameter is the opposite of CHAR. CHAR is the default. Valid only for CLSOCK and SRVSOCK ports. 5.7.13 CHARSET xxx This parameter indicates, to the remote host, the character set being used by Janus. This allows a port-specific override of either the default character set or the character set specified on the JANUS CHARSET subcommand. The default character set is iso_1. CHARSET has no effect on the operation of any application in Model 204. The name of the specified character set is simply forwarded to the remote host. For further discussion, see “JANUS CHARSET” on page 30. Valid only for OPENSERV ports. —————————————————————————————————————————— 48 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.14 CLIENTSOCKET socketname This parameter names the client socket port to use to open connections back to the FTP client, if the client requests active file transfers. On active transfers the FTP server is required by the protocol to open a client connection back to a server port opened by the FTP client. If this parameter is not specified, active file transfers are not permitted on this FTP server port. The socket name is not validated when the DEFINE command is issued, but when an active transfer is attempted. For more information about the Janus FTP Server, see the Janus Sockets Reference Manual. This parameter is valid only for FTPSERVER port types. 5.7.15 CLOSEIMMED This parameter indicates that if a lost connection is noticed by the Janus PST, the PST should BUMP the Model 204 thread associated with the connection immediately. If CLOSEIMMED is not specified a lost connection will only cause request termination when the web thread invokes a $WEB function. Typically, the Janus PST will not notice that a connection has been lost until the user issues a $WEB_DONE because until then there will be no TCP/IP calls that can discover that the connection has been lost. Without the CLOSEREAD parameter (“CLOSEREAD”) the CLOSEIMMED parameter will probably have no effect. CLOSEREAD and CLOSEIMMED are useful for ensuring that CPU and I/O intensive web requests will be terminated immediately should the user become impatient and cancel the request. Valid only for WEBSERV ports. 5.7.16 CLOSEREAD CLOSEREAD indicates that web threads should “put up” a TCP/IP read after receiving the entire request but before processing it. This read can then detect if a connection has been lost. If CLOSEREAD is not specified a lost connection will probably only be detected when the web thread actually tries to write data to the connection. CLOSEIMMED (“CLOSEIMMED”) indicates that if a lost connection is noticed by the Janus PST, the PST should BUMP the Model 204 thread associated with the connection immediately. If CLOSEIMMED is not specified a lost connection will only cause request termination when the web thread tries to send data to the connection or invokes a $WEB function. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 49 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— CLOSEREAD and CLOSEIMMED are useful for ensuring that CPU and I/O intensive web requests will be terminated immediately should the user become impatient and cancel the request. Valid only for WEBSERV ports. 5.7.17 CMD 'xxx' This parameter specifies the Model 204 commands to be executed after the files and groups specified in the OPEN parameter (“OPEN list” on page 78) are opened. Multiple commands must be separated by the word “AND”, and any command that contains blanks must be enclosed in quotes. Multiple commands in the CMD clause are only supported in version 6.0 and later of Sirius Mods. CMD may span more than one line — continued with a hyphen (-) — but the total length of commands plus one overhead byte per command cannot exceed 255 bytes. For an OPENSERV, SRVSOCK, or TNSERV port, the commands specified by CMD specify the processing performed for each connection to the port. TNSERV connections run on daemon threads, but they will usually run full-screen 3270-applications. As such, they might have somewhat different parameter or table size requirements from other applications that run on daemon threads. The CMD parameter, possibly along with the OPEN command, make it possible to set certain parameters or table sizes that might be specific to all 3270 threads and so are not set in the subsystems run by these threads. The commands specified by CMD for TNSERV connections are not executed unless a trusted login is performed via NEWSESCMD (“NEWSESCMD 'xxx'” on page 70). You can invoke a specific subsystem on a telnet server connection either with the CMD parameter or with the AUTOSYS parameter (“AUTOSYS subsys” on page 46). AUTOSYS parameter of JANUS DEFINE. If the user logs off and logs on again during the same connection, the CMD command(s) are not executed. Because of this, using AUTOSYS is probably preferable to using CMD parameters for most TNSERV applications. For SDS ports, the commands are executed before the port begins acting as a Specialty Data Store. It is strongly recommended that this command be used mainly to set user table sizes and user parameters for SDS ports. This might be necessary because Janus Specialty Data Store might have very different table size requirements than other applications running on an sdaemon. For WEB ports the commands specified by CMD are executed after all rules are executed except the ON rules. The specified commands can be used to invoke an APSY subsystem when using the Janus Web UL API or to reset UTABLEs and other parameters. —————————————————————————————————————————— 50 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— Examples of some valid CMD clauses: JANUS DEFINE MYWEB 80 WEBSERV 10 CMD WEBAPSY JANUS DEFINE SDS204 1777 SDS 20 CMD 'R MCPU 5000' AND 'UTABLE LQTBL 1000' AND 'R PROMPT 16' JANUS DEFINE OPENXXX 1234 OPENSERV 15 OPEN FILE OPENPROC CMD 'R PROMPT 16' AND OPENAPSY Valid for SRVSOCK or WEBSERV, TNSERV, SDS, or OPENSERV port types, this parameter is required for SRVSOCK and OPENSERV port types. This parameter is not valid on an FTPSERVER port definition. 5.7.18 COMPRESS level Indicates the type of compression to be performed on outgoing Janus Web Server data. Data compression reduces network bandwidth requirements for the compressed data but requires additional CPU resources to perform the compression. Janus provides deflate compression (RFC 1951), which is implemented on all modern web browsers and which works especially well for data that has frequently repeated, relatively long strings of bytes (for example, structured text data like HTML or XML). Note: No compression is ever performed on data with a mime-type that starts with image (for example image/gif or image/jpeg). Since most image formats are already compressed, trying to further compress them results in considerable CPU overhead and an actual increase in the size of the data sent (due to compression infrastructure overhead), but no real compression. Valid values for COMPRESS are: 0 Perform no compression. This is the default. 1 Perform deflate compression with fixed Huffman codes. This type of deflate compression uses a set of Huffman codes defined by the deflate specification. This can save space for some types of data, since the tables required for decoding are not sent with the data. The fixed code tables work well for text data. The fixed codes are rarely optimal, though, because they must include encodings for each possible character, even when those characters are not present in the data. 2 Perform deflate compression with dynamic Huffman encoding. This type of deflate compression dynamically creates a set of Huffman codes that vary with the input data. This method creates an optimal set of codes for the data, but introduces a slight overhead because the decoding information must be sent with the data. This overhead is usually very small because the decoding tables themselves are also compressed with a special Huffman code. There is also a very slight CPU overhead in generating dynamic tables. Still, in most cases, dynamic codes yield better results than fixed codes. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 51 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Since most text or character data consists of a relatively small number of characters, text data is usually a good candidate for, and gets fairly good compression with, dynamic Huffman encoding. Usage notes: ● The COMPRESS setting on a port can be overridden on a URL basis with a JANUS WEB ON rule and on an application basis with $WEB_SET('COMPRESS'). However, under Sirius Mods version 6.3, unless the COMPRESS parameter appears in the JANUS DEFINE command for a port, no compression will be performed no matter what the JANUS WEB ON rule or $WEB_SET COMPRESS setting specifies. Under Sirius Mods version 6.4 and later, no compression is performed unless the NCMPBUF system parameter is set to a non-zero value (see “Janus User Parameters” on page 201). If NCMPBUF is set to a non-zero value, the type of compression performed for a URL is determined by the JANUS DEFINE command, which can be overridden by a JANUS WEB ON rule, which can be overridden with $WEB_SET. ● If you want no compression to be the default but want to apply compression selectively for some URLs or applications, you must explicitly specify COMPRESS 0 in the JANUS DEFINE command, and, if Sirius Mods version 6.4 or later, you must specify a non-zero NCMPBUF value for User 0. ● Under Sirius Mods 6.3, a JANUS DEFINE COMPRESS setting allocates an extra compression buffer for each of the port's threads. This buffer is allocated at port START time, unless the ALLOCC parameter is specified on the port definition. If ALLOCC is specified, the compression buffer is allocated at the time a thread receives a connection. In either case, the compression buffer is large (almost 64K bytes), so if a port has 30 threads defined, compression requires an extra 30 * 64K, or 1,920K of virtual storage. Under Sirius Mods 6.4 and later, a JANUS DEFINE COMPRESS setting allocates only as many extra buffers as the value of NCMPBUF, but these buffers are nearly five times as large as the 6.3 compression buffers. ● It is recommended that any site interested in using compression experiment with the COMPRESS parameter to determine compression efficiency and CPU overhead. Janus Web Server issues message MSIR.0690 after compressing any data to indicate the success of the compression. A typical message might look like this: MSIR.0690: Janus Web content compressed by 65.2 percent from 8744 to 3048 bytes ● The COMPRESS parameter is available in Sirius Mods version 6.3 and later. COMPRESS is valid only for WEBSERV ports. —————————————————————————————————————————— 52 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.19 CR This parameter indicates that lines of text data sent to a browser should be separated by the ASCII carriage return character (X'0D'). The CR parameter is mutually exclusive with the LF and CRLF parameters. While most browsers will correctly display text data whether the line separator is CR, LF, or CR/LF, other non-browser applications might not process one or the other correctly. If text data is being saved from the browser and is not being correctly processed by another application (either appearing as one big line or with non-displayable characters at the end of each line) then experimenting with the CR, LF, and CRLF parameters might prove helpful. The default setting for CR, LF, and CRLF is CR. The JANUS DEFINE setting for CR, LF or CRLF can be over-ridden by the corresponding parameter setting on a JANUS WEB ON rule or a $WEB_PROCSEND parameter. Valid only for WEBSERV ports. 5.7.20 CRLF This parameter indicates that lines of text data sent to a browser should be separated by the ASCII carriage return and line feed characters (X'0D0A'). The CRLF parameter is mutually exclusive with the CR and LF parameters. While most browsers will correctly display text data whether the line separator is CR, LF, or CR/LF, other non-browser applications might not process one or the other correctly. If text data is being saved from the browser and is not being correctly processed by another application (either appearing as one big line or with non-displayable characters at the end of each line), then experimenting with the CR, LF, and CRLF parameters might prove helpful. The default setting for CR, LF, and CRLF is CR. The JANUS DEFINE setting for CR, LF, or CRLF can be over-ridden by the corresponding parameter setting on a JANUS WEB ON rule or a $WEB_PROCSEND parameter. Valid only for WEBSERV ports. 5.7.21 CSSINSP, NOCSSINSP, and AUTOCSSINSP Indicates whether or not Janus Web Legacy support is to insert a space to represent the attribute byte on a 3270 screen. An attribute byte appears before any input field and —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 53 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— appears as a protect-space character on a 3270 screen. Netscape Navigator inserts a space before every input field anyway, so if Janus Web Legacy support inserted its own space, there would be one more space than on the 3270 screen, throwing off alignment. All other browsers don't insert a space before input fields, so if Janus Web Legacy support didn't insert its own space, there would be one fewer space than on the 3270 screen, and alignment would be thrown off. CSSINSP forces insertion of a space before input fields (the correct behavior for browsers other than Netscape Navigator). NOCSSINSP prevents insertion of a space before input fields (the correct behavior for Netscape Navigator). AUTOCSSINSP, the default, determines whether the browser is Netscape Navigator or not and does the empirically determined correct thing on that basis. The default of AUTOCSSINSP is probably alright for most purposes, but it can be overridden if evidence comes to light that contradicts the behavior described here. This parameter was not available before Sirius Mods version 6.2. The CSSINSP, NOCSSINSP, and AUTOCSSINSP parameters on the JANUS DEFINE can be overridden on a URL basis by the like-named parameters on JANUS WEB SCREEN rules, or, on an application level, by the like-named parameters in $WEB_SCREEN calls. Valid only for WEBSERV ports. 5.7.22 CSSTITLEDIV and CSSTITLESPAN Indicates whether or not Janus Web Legacy support is to use a <div> (CSSTITLEDIV) or <span> (CSSTITLESPAN) tag for the title line of a screen when using an external style sheet. <div> and <span> tags are rendered differently on different browsers, though on most browsers a <div> causes extra space to be placed around the element. The default of CSSTITLESPAN is probably alright for most purposes, but CSSTITLEDIV can be used to make the title line stand out more. These parameters have no effect if an external style sheet is not used (CSS parameter in JANUS WEB SCREEN rules). Before Sirius Mods version 6.2, Janus Web Legacy support did not generate any CSS, so these parameters were not necessary or available. The CSSTITLEDIV and CSSTITLESPAN parameters on the JANUS DEFINE can be overridden on a URL basis by the like-named parameters on JANUS WEB SCREEN rules, or they can be overridden on an application level by the like-named parameters in $WEB_SCREEN calls. Valid only for WEBSERV ports. —————————————————————————————————————————— 54 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.23 DBCS and NODBCS This parameter indicates whether or not the Model 204 DBCS parameter is to be automatically set to 1 on requests to a WEBSERV port. The default of NODBCS leaves the DBCS parameter unaffected on requests to a WEBSERV port. Setting the Janus Web Server DBCS parameter so web requests to a particular port can use DBCS is necessary if an Online running with double-byte character support (DBCSENV is non-zero) does not have DBCS set on for sdaemon threads. The most likely use of the DBCS parameter is in an environment that serves both DBCS and non-DBCS terminals and browsers. For information about specifying DBCS support at the application level, see the $WEB_DBCS parameter in the Janus Web Server Reference Manual. DBCS and NODBCS are valid only for WEBSERV ports. 5.7.24 DEBPORTCMD and NODEBPORTCMD Indicates whether the commands specified in the CMD clause of the JANUS DEFINE command are to be run on threads debugging requests to the port with the JANUSDEBUG command. The default of NODEBPORTCMD means that these commands will not be run. If the commands in the CMD clause are essential to the correct operation of web requests or the commands in the CMD clause are themselves to be debugged, specify the DEBPORTCMD parameter in the port definition. The DEBPORTCMD and NODEBPORTCMD parameters, like the JANUSDEBUG command, are only available in Sirius Mods version 6.0 and later. Valid only for WEBSERV ports. 5.7.25 DEBPORTOPEN and NODEBPORTOPEN Indicates whether the files and groups specified in the OPEN clause of the JANUS DEFINE command are to be opened on threads debugging requests to the port with the JANUSDEBUG command. The default of NODEBPORTOPEN means that these files and groups will not be opened. If the files or groups in the OPEN clause are essential to the correct operation of web requests, or if the commands in the CMD clause are themselves to be debugged because of the DEBPORTCMD parameter (“DEBPORTCMD and NODEBPORTCMD”) in the port definition and that requires the files or groups in the OPEN clause, specify the DEBPORTOPEN parameter. The DEBPORTOPEN and NODEBPORTOPEN parameters, like the JANUSDEBUG command, are only available in Sirius Mods version 6.0 and later. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 55 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Files and groups opened as a result of the DEBPORTOPEN parameter are always closed before the debugging thread returns from the JANUSDEBUG command. If DEBPORTOPEN is specified but one or more files or groups in the OPEN clause are already open on a debugging thread, those files and groups will not be opened and closed by JANUSDEBUG processing, even if the privileges with which they are open do not match the explicit or implicit file/group privileges in the OPEN clause. Valid only for WEBSERV ports. 5.7.26 EXEC2RPC This parameter indicates that language requests should be converted to RPCs. The types of language requests that can be translated into an RPC is described in the Janus Open Server Reference Manual. EXEC2RPC implies RPCONLY. That is, it is not possible to set up a port so that Janus attempts to convert language requests into RPCs but if the attempt fails the language request is then made available to the User Language via $SRV_LANGGET. If a language request is converted to an RPC, $SRV_WAIT returns a 1 indicating that an RPC has been received. Thus, it is impossible for a User Language application on an EXEC2RPC port to tell if the current request was a “true” RPC or one that was generated via EXEC2RPC. Valid only for OPENSERV ports. 5.7.27 FDWOL This parameter specifies that all FINDs done by the Janus Specialty Data Store are to be done as FIND WITHOUT LOCKS. This can minimize the impact of Janus Specialty Data Store applications on 3270 applications and reduce record locking conflicts caused by large Janus Specialty Data Store request. On the other hand, FDWOL could cause severe Model 204 errors especially in reuse record number files. The default for SDS ports is no FDWOL. Valid only for SDS (also known as OMNI and OAS) ports. 5.7.28 FORMPOSTWAIT seconds Indicates the default number of seconds to wait for the POST'ing of a form while using $WEB_FORM_DONE. This effectively sets a session timeout for persistent Janus Web Server applications using $WEB_FORM_DONE. The default value for FORMPOSTWAIT is 900. The value for FORMPOSTWAIT must be between 1 and 32767, inclusive, and it can be overridden by a FORMPOSTWAIT parameter in a JANUS WEB ON rule or an explicit POST wait time on a $WEB_FORM_DONE call. —————————————————————————————————————————— 56 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— This parameter (and $WEB_FORM_DONE) are only available in version 6.0 and later of the Sirius Mods. Valid only for WEBSERV ports. 5.7.29 FORMREDIRWAIT seconds Indicates the default number of seconds to wait for the client on a WEBSERV port (presumably a browser) to do the GET associated with a redirect generated by a $WEB_FORM_DONE call. Since browsers typically respond immediately to a redirect by doing a GET for the target URL without any user interaction, the time between a redirect and the GET should typically be very small. The default value for FORMPOSTWAIT is 50, which should be more than enough to handle the slowest browser running on the slowest machine with the slowest network connection: if the GET isn't received within 60 seconds of a redirect, it is not likely to appear at all. The value for FORMREDIRWAIT must be between 1 and 32767, inclusive, and it can be overridden by a FORMREDIRWAIT parameter in a JANUS WEB ON rule or by an explicit redirect wait time on a $WEB_FORM_DONE call. Valid only for WEBSERV ports. 5.7.30 FINCLOSE | NOFINCLOSE This parameter affects how Janus Sockets applications respond to a closed connection. If the remote host closes the connection, even if it does so “cleanly” (that is with FIN rather than RESET), Janus Sockets closes the connection immediately. This is useful in situations where FIN is as good as RESET for rendering a connection unusable, and where it's important to know that a FIN has been sent to avoid wasted processing or even a hung connection. If FINCLOSE is not specified, or if NOFINCLOSE is specified, a Janus Sockets thread remains in-use and does not recognize a FIN indicator sent by a remote partner until the Janus Sockets application tries to receive data on the connection. A situation where FINCLOSE processing is useful is a Janus Sockets application communicating with a web server that is using a keep-alive facility (multiple requests over the same TCP/IP connection). The web server could close the connection between any pair of requests with a FIN. Without FINCLOSE processing, a Janus thread that connected to the web server and received such a FIN would remain in use until the Janus Sockets application tried to receive data on the connection and then noticed the closed connection. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 57 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— If not set on the port definition, you can make FINCLOSE or NOFINCLOSE specific to a $SOCK_CONN call or to a Socket object New constructor. FINCLOSE and NOFINCLOSE are available as of Sirius Mods version 6.4 (originally in a 6.3 ZAP). The FINCLOSE and NOFINCLOSE parameters are valid only for CLSOCK and SRVSOCK ports. 5.7.31 HIGHPRIORITY This parameter adjusts the Model 204-scheduling priority of Janus Web Server threads by starting them at the upper end of their priority range rather than at their default priority. Model 204 has three basic priority classes: HIGH STANDARD LOW Ranges from 80 to 127 Ranges from 32 to 79 Ranges from 0 to 47 By default, when a user logs in, they get a privilege 16 greater than the bottom of its class. This can be a problem for web threads, because the priorities of 3270 threads often “drift” to the top of their range. As a result, the web threads ultimately have lower priorities than 3270 threads. If you set HIGHPRIORITY, web threads start out at the top of their range, so they will tend to get as good or better service than 3270 threads. HIGHPRIORITY is available as of Sirius Mods version 6.5 (originally in a 6.4 ZAP). The HIGHPRIORITY parameter is valid only for a Janus Web Server port. 5.7.32 HTTPVERSION xxx This parameter sets the HTTP version returned to the browser by Janus Web Server. The default value is 1.0, which is what Janus Web Server always returned before Sirius Mods version 6.6. The only other permissible value for HTTPVERSION is 1.1. While Janus Web Server is not a fully HTTP 1.1 compliant web server, things will generally work alright when it indicates HTTP 1.1 (since many of the HTTP 1.1 features need to be handled on an application level, anyway). Still, it is probably not a good idea to set HTTPVERSION to 1.1 unless you have good reason to (typically to get a browser to use HTTP 1.1 features that can be handled by the Janus Web Server applications). —————————————————————————————————————————— 58 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— HTTPVERSION is available as of Sirius Mods version 6.6. The HTTPVERSION parameter is valid only for a Janus Web Server port. 5.7.33 IBSIZE xxx This parameter specifies the size of the TCP/IP input buffer. The default is 4096, the minimum is 512, and the maximum is 65534 (prior to version 5.2 the maximum was 32767). There is one input buffer used for each connection. A larger input buffer size provides better CPU performance in both Model 204 and the TCP/IP address space at the expense of more virtual (and real) storage. Generally, the size of the input buffer has an impact only on a port being used for Janus Open Client or Janus Sockets connections or on a Janus Web Server port used for file uploads. Valid for all port types. 5.7.34 INPUTTIMEOUT xxx This parameter, new as of Sirius Mods version 6.8, tells Janus Web Server to use a different timeout value for input (receiving the web request) than for output. Once a complete HTTP request is received, Janus Web Server switches the port's connection timeout limit from INPUTTIMEOUT to the TIMEOUT value, which governs the output. Prior to version 6.8, the TIMEOUT port parameter applied both to input and to output. One reason that different timeout values are useful is that some browsers occasionally delay receiving web output until some user interaction is completed, yet ordinarily there is no delay between connection establishment and the sending of the HTTP request. It is therefore safe to set a very aggressive input timeout while maintaining a less aggressive output timeout. You set the INPUTTIMEOUT parameter in the port definition by following it by the number of seconds to be used as the timeout limit for receiving an HTTP request. This is the maximum length of time Janus Web Server will wait while no data is received from the client, not the time for the entire request to be received. This distinction is important in big uploads being performed via HTTP. A low INPUTTIMEOUT should not cause these requests to time out, as long as the upload moves along at a fairly steady rate, even if the time required for the upload is significantly longer than the INPUTTIMEOUT value. A relatively low INPUTTIMEOUT setting, such as 5 (seconds), ought to be sufficient for all connections, including the unusual cases like the following: ● Anecdotal evidence suggests that some web crawlers, and occasionally browsers, establish connections only to “lose their way,” and then either don't send a request on the connection at all, or don't send one for a long time. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 59 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— ● Unsophisticated denial of service attacks often do nothing more than establish large numbers of connections to a web server, attempting to tie up resources on the web server. ● A mistaken connection to a web server port using the wrong protocol (like telnet or HTTP) will often hang the connection until it times out. The INPUTTIMEOUT parameter is valid only for a Janus Web Server port. 5.7.35 JANCAT xxx This parameter specifies the name of the file that contains the Model 204 to SQL mappings. These mappings are generated using the JANCAT subsystem. The default JANCAT file is JANCAT. Valid only for SDS (also known as OMNI and OAS) ports. 5.7.36 KEEPALIVE xxxx The KEEPALIVE parameter indicates the number of seconds a TCP/IP connection is to be held open after an HTTP request on that connection. KEEPALIVE must be followed by a single number between 0 and 32767, which indicates the maximum number of seconds to held the connection open. A setting of 0 means no keep-alive. For WEBSERV ports, this parameter tells Janus Web Server to keep HTTP connections from a client (often a browser) open for the indicated period of time. For CLSOCK ports, KEEPALIVE tells Janus Sockets to keep an HTTP connection to a web server open for the indicated period of time, and to reuse that connection for other requests to the same server. Keep-alive connections, more often referred to as persistent connections, can reduce network traffic and, more significantly, HTTP request latency. Both of these benefits are magnified for SSL connections, where each HTTP request requires a TCP/IP and SSL connection-establishment handshake. For a Janus Web Server connection to be held open, the client/browser must indicate that it supports HTTP keep-alives. For a Janus Sockets connection to be held open, the web server must indicate that it supports HTTP keep-alives. Most modern browsers and web servers support and take advantage of keep-alives. For more information about using keep-alives with Janus Web Server, see the Janus Web Server Reference Manual. For more information about using keep-alives with Janus Sockets HTTP client requests, see the Janus Sockets Reference Manual. The KEEPALIVE parameter is valid only for Janus Web Server and for Janus Sockets CLSOCK ports used for HTTP traffic (that is, not for SMTP connections). —————————————————————————————————————————— 60 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— KEEPALIVE is new as of Sirius Mods version 6.8. 5.7.37 LANGUAGE xxx This parameter indicates, to the remote host, the language being used by Janus. This allows a port-specific override of either the default language or the language specified on the JANUS LANGUAGE subcommand. The default language is us_english. LANGUAGE has no effect on the operation of any application in Model 204. The name of the specified language is simply forwarded to the remote host. For further discussion, see “JANUS LANGUAGE” on page 137. Valid only for OPENSERV ports. 5.7.38 LEGBL, LEGREV, LEGUS, NOLEGBL, NOLEGREV and NOLEGUS Indicates whether or not Janus Web Legacy support is to indicate the blinking (LEGBL, NOLEGBL), reverse (LEGREV, NOLEGREV) and underscore (LEGUS, NOLEGUS) attributes in the classes it generates for input and output fields. The default (NOLEGBL, NOLEGREV, and NOLEGUS) means that Janus Web Legacy Support will not indicate these attributes in the classes for fields. This parameter has no effect if an external style sheet is not used (CSS parameter in JANUS WEB SCREEN rules). If LEGBL, LEGREV, or LEGUS is set, the external style sheet would have to define styles for every color with the indicated attribute, so the style sheet becomes considerably more complicated. On the other hand, unless these are set, there is no way to display blinking, reversed, or underscored text as different from other text in a Janus Web Legacy support page. Before Sirius Mods version 6.2, Janus Web Legacy Support did not generate any CSS, so these parameters were not necessary or available. The LEGBL, LEGREV, LEGUS, NOLEGBL, LEGREV, and NOLEGREV parameters on the JANUS DEFINE can be overridden on a URL basis by the like-named parameters on JANUS WEB SCREEN rules or on an application level by the like-named parameters in $WEB_SCREEN calls. Valid only for WEBSERV ports. 5.7.39 LEGCSS and NOLEGCSS Indicates whether or not Janus Web Legacy Support is to use Cascading Style Sheets in the HTML it sends to browsers. The default (LEGCSS) means that Janus Web Legacy Support will use Cascading Style Sheets (CSS) in its generated HTML. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 61 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Almost all browsers correctly support the CSS used by Janus Web Legacy Support, and this CSS makes the pages generated by Janus Web Legacy Support considerably more “pretty,” as well as a more accurate representation of the underlying 3270 screens. The NOLEGCSS parameter can be specified if a site has rules against the use of CSS, the CSS causes problems with some browsers, or the old non-CSS look is deemed preferable. Before Sirius Mods version 6.2, Janus Web Legacy Support did not generate any CSS, so the LEGCSS and NOLEGCSS parameters were not necessary or available. The LEGCSS and NOLEGCSS parameters on the JANUS DEFINE can be overridden on a URL basis by the like-named parameters on JANUS WEB SCREEN rules, or on an application level by the like-named parameters in $WEB_SCREEN calls. Valid only for WEBSERV ports. 5.7.40 LEGJS and NOLEGJS Indicates whether or not Janus Web Legacy support is to use JavaScript in the HTML it sends to browsers. The default of LEGJS means that Janus Web Legacy support will use JavaScript in its generated HTML. While almost all browsers correctly support the simple JavaScript used by Janus Web Legacy support, and this JavaScript makes the pages generated by Janus Web Legacy support considerably more “friendly”, the NOLEGJS parameter can be specified if a site has rules against the use of JavaScript or if the JavaScript causes problems with some browsers. Before Sirius Mods version 6.0, Janus Web Legacy support did not generate any JavaScript, so the LEGJS and NOLEGJS parameters were not necessary or available. The LEGJS and NOLEGJS parameter on the JANUS DEFINE can be overridden on a URL basis by the like-named parameters on JANUS WEB SCREEN rules, and they can be overridden on an application level by the like-named parameters in $WEB_SCREEN calls. Valid only for WEBSERV ports. 5.7.41 LF This parameter indicates that lines of text data sent to a browser should be separated by the ASCII line feed character (X'0A'). The LF parameter is mutually exclusive with the CR and CRLF parameters. —————————————————————————————————————————— 62 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— While most browsers will correctly display text data whether the line separator is CR, LF or CR/LF, other non-browser applications might not process one or the other correctly. If text data is being saved from the browser and is not being correctly processed by another application (either appearing as one big line or with non-displayable characters at the end of each line), then experimenting with the CR, LF, and CRLF parameters might prove helpful. The default setting for CR, LF, or CRLF is CR. The JANUS DEFINE setting for CR, LF, or CRLF can be overridden by the corresponding parameter setting on a JANUS WEB ON rule or by a $WEB_PROCSEND parameter. Valid only for WEBSERV ports. 5.7.42 LINEND [hexstr | NONE] This parameter specifies the hex value of a string to be sent by Janus Sockets at the end of each “line;” that is, appended to the string sent by the $SOCK_SENDLN functions or after each output line captured on the socket. The default is LINEND 0D; 0D is the hexadecimal representation of the carriage return, both in EBCDIC and in ASCII. You can specify LINEND NONE, which means that a LINEND value must be set with $SOCK_SET before the $SOCK_SENDLN function is called. Note that the specified string is sent untranslated, regardless of the CHAR or BINARY setting of the socket. For example, the following specifies that the byte pair which is ASCII carriage return and linefeed should be appended to each $SOCK_SENDLN call or User Language print line: LINEND 0D0A The LINEND value for a socket can be changed using $SOCK_SET. Valid only for CLSOCK and SRVSOCK ports. 5.7.43 LOG REQ | OPT [FORMAT COMMON | COMBINED] xxxx This parameter specifies that all Janus Web Server requests for the port are to be logged to a sequential dataset whose DDNAME is specified by xxxx. The LOG parameter must be followed by either the REQ or OPT keyword. The REQ keyword indicates that web request logging is required and if it is not possible because of an error opening the log file, an I/O error on the log file or the log file filling up, the port is automatically FORCE'd or not started if the error occurs at start time. The OPT keyword indicates that the port is to continue running even if there is a problem logging to the log dataset. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 63 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— By default the log is in “COMBINED” format which is understood by almost all web log analysis tools. It is possible for the log to be kept in “COMMON” format. Either format can be explicitly requested with the FORMAT keyword after the OPT or REQ keyword. The FORMAT keyword must be followed by either “COMBINED” or “COMMON”. The only difference between the COMBINED and COMMON formats are that the COMBINED format logs the browser type (Netscape, Internet Explorer, a bot) and the “referer,” namely the URL of the page from which the URL being requested was linked. Since the COMBINED format logs more information and almost all web log analysis tools support it, there is little reason to use COMMON format. The FORMAT keyword can also be written as FMT. The log file DD must be defined to the Online with a DD card under MVS, a FILEDEF statement under CMS, or an ALLOCATE command under either MVS or CMS. The log file DD could be specified with DISP=MOD (APPEND on the ALLOCATE command) so that the log file could contain data that spans multiple starts and stops of the web port or even multiple runs of the Online. In fact, it might be reasonable to keep a log file that contains data over a long span of time such as a month or even a year. Under MVS the LOGAPPEND parameter (“LOGAPPEND”) can also be specified to get the same effect as DISP=MOD without the exclusive enqueue placed on the sequential dataset. The log dataset must have RECFM=VB. The same log dataset can be shared among multiple ports, though there is nothing in the log entries that indicates which port a request was associated with. Valid only for WEBSERV ports. 5.7.44 LOGAPPEND This parameter indicates that the Janus Web Server log dataset for the port is to be opened in APPEND mode. This parameter is only available under MVS. Its chief advantage over using DISP=MOD on a DD card (or APPEND on the ALLOCATE command) is that MVS places an exclusive enqueue on a dataset opened with DISP=MOD. This means that a DISP=MOD dataset cannot be opened while the port is started for log analysis or downloading to a system where log analysis can be run. A log dataset with a DISP=SHR DD and specified as LOGAPPEND can be examined while the port is started. While there is no harm in specifying both DISP=MOD and LOGAPPEND, it defeats the purpose of the LOGAPPEND parameter. Valid only for WEBSERV ports. —————————————————————————————————————————— 64 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.45 LOGCLOSET minutes This parameter indicates how often the Janus Web Server log dataset is to be “closed”, that is how often the DSCB is to be updated for the log dataset. LOGCLOSET is followed by the number of minutes between TYPE=T closes (DSCB updates) performed for the web log dataset. There are two main reasons to set LOGCLOSET: 1. If TYPE=T closes are not done for the log dataset, the log data for the current run cannot be seen by most MVS utilities (and some CMS utilities) until the port is stopped. 2. If the Online should come down with a hard crash (say from a power outage or job cancellation) all the web log data from that run will be lost. If LOGCLOSET is set and a hard crash occurs, only the data logged after the last TYPE=T close would be lost. If LOGCLOSET is not set for a port, no TYPE=T closes will be performed for the port. Setting LOGCLOSET too low will cause lots of small blocks to be written to the log dataset, and it can cause a lot of DSCB activity, which is not very desirable (though no TYPE=T close will be performed if there were no requests since the last TYPE=T close). Setting LOGCLOSET too high could allow the loss of a lot of web log data. A reasonable setting for LOGCLOSET might be 60, which would risk the loss of up to an hour of web log data in the odd case of a hard Online crash, but it would ensure that no more than one DSCB update will be performed per hour for the log dataset. Valid only for WEBSERV ports. 5.7.46 LOGGMT This parameter indicates that the time stamps in the Janus Web Server log dataset for the port are to be represented as GMT instead of local time. By default, log dataset entries are stamped with the local time. Valid only for WEBSERV ports. 5.7.47 LOGMSGI This parameter prevents Janus Web Server from saving Model 204 messages issued during logon for a web user. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 65 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Model 204 messages issued during logon for a Janus Web Server thread are saved to the request buffer for subsequent retrieval via $WEB_NUM_LOGMSG and $WEB_LOGMSG unless the LOGMSGI parameter is specified in the port definition. Valid only for WEBSERV ports. 5.7.48 MASTER This parameter specifies that this is the default port for outgoing connections to remote servers. A single MASTER port will serve as the access route to multiple external server address spaces. ● The servers may be other Model 204 servers or may be Sybase/Microsoft servers that are to receive Janus Open Client function calls. Users accessing the Model 204 address space over an OPENSERVER port will use the same port they came in on for any outgoing Janus Open Client connections. Users accessing the Model 204 address space with other threads (for example, 3270 or web based applications) must have a MASTER port defined in order for the Janus Open Client functions to establish connections to other address spaces. Note that the port number is irrelevant for outgoing purposes, though it must still be specified. ● The servers may host server sockets for version 6.6 and later Janus Sockets client (CLSOCK) calls. A single MASTER port will serve as the access route to multiple external servers. A port defined as MASTER can be accessed on a Janus Sockets connection request without specifying its port name on the $function or object method that establishes the connection to a remote server socket. The socket port name parameter on $SOCK_CONN, on the Socket object New constructor, and on the HTTP Helper Get and Post methods default to the MASTER port, if any. Multiple ports may be DEFINEd and STARTed with the MASTER parameter specified, but the one used in any particular instance will not be predictable. MASTER is valid only for Janus Sockets client (CLSOCK), OPENSERV, or SDS ports. 5.7.49 MAXCURS xxx This parameter specifies the maximum number of cursors that can be opened for a single Janus Specialty Data Store connection. The default for MAXCURS is 5. A Sybase Adaptive Server or Omni SQL Server will open multiple cursors on a connection to an SDS thread. Typically, even for fairly complex requests the number of —————————————————————————————————————————— 66 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— simultaneously open cursors will not exceed 3 so that the default of 5 should be fine. If a Sybase Adaptive Server attempts to open more cursors than is allowed by MAXCURS, the request will fail. The cost of having a high MAXCURS is the storage for each possible cursor is allocated either at port start time for each thread or at connection time for ALLOCC ports. The storage required for each cursor is about 64 bytes so that on a 40 thread port with MAXCURS set to 5, the virtual storage used for cursor blocks would be 64*5*40 or 12,800 bytes. Valid only for SDS (also known as OMNI and OAS) ports. 5.7.50 MAXIPSES xxx This parameter specifies the maximum number of Janus Web Legacy Support sessions maintained per IP address. The default for MAXIPSES is 1. For browser requests, an IP address typically represents a single end-user workstation. If browser requests are coming from a multi-user system or from a proxy server, the use of MAXIPSES can make it possible for one user to terminate another's session since both users appear to be coming from the same IP address. Increasing MAXIPSES can be a temporary workaround to this problem; it is likely to be unsatisfactory since MAXIPSES must be at least as big as the maximum number of users expected to use Janus Web Legacy Support through a single proxy server. This may nearly eliminate any user terminating another user's session, but such a large MAXIPSES would undoubtedly result in many “orphan” sessions that must be controlled via the STIMEOUT parameter. Another option when encountering this problem is to simply tell Janus Web Legacy Support end-users to not use proxy servers. This might not be possible or desirable, however. In that case, contact Sirius Software technical support. Valid only for WEBSERV ports. 5.7.51 MAXREC xxx This parameter specifies the maximum record length for input records on a Janus IFDIAL port. Valid only for IFDIAL ports. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 67 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.7.52 MAXSAVE xxx This parameter specifies the maximum number of compiled SQL requests to save in CCATEMP. When the Specialty Data Store receives an SQL request from the Sybase Adaptive Server it parses the request, translates it into User Language, compiles the User Language into quads and finally evaluates the compiled User Language. When MAXSAVE is greater than 0, compiled requests are saved and future identical requests (except for constants) can simply load the compiled requests from CCATEMP (much like an APSY load), bypassing the translation and compilation steps. The default for MAXSAVE of 16 should be adequate for most situations, ensuring that frequently run requests will perform well without wasting CCATEMP and I/O bandwidth for infrequently run requests. Valid only for SDS (also known as OMNI and OAS) ports. 5.7.53 MAXTEMP nnnn This parameter specifies the maximum number of CCATEMP pages allowed to be used by a web request for holding input (file upload) and output (dynamically generated HTML) data. A huge file upload request from a browser or a bug in a web server application can result in a web request exhausting CCATEMP in an Online. The MAXTEMP parameter ensures that no web application will use more than a specified number of CCATEMP pages. The default for MAXTEMP is 100, which allows uploads of files up to 614,400 bytes long or generation of 614,400 bytes of dynamic HTML. Static pages and binaries are not moved through CCATEMP so are not affected by this parameter. If there is a need to upload large files from a web browser or an application has a need to generate extremely large dynamic pages, specify a large MAXTEMP in the web port definition. MAXTEMP is valid only for WEBSERV ports. 5.7.54 MSGSEND and NOMSGSEND Indicates whether or not Model 204 messages (as opposed to the output from PRINT or HTML statements) are to be sent to the browser. These parameters are only available in Sirius Mods version 6.0 and later. For backward compatibility, the default for this parameter is MSGSEND, though NOMSGSEND is probably more useful for most applications. Model 204 messages include informatory messages such as those issued when a file is opened or closed, error messages, and messages and warnings from other users sent by MSG or WARN commands. MSGSEND or NOMSGSEND can be overridden by a —————————————————————————————————————————— 68 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— MSGSEND or NOMSGSEND parameter in a JANUS WEB ON rule or in a $WEB_SET call. It is probably a good idea to set NOMSGSEND in the JANUS DEFINE command, then specify MSGSEND in the ON rules for the few URLs (in $WEB_SET calls for the few applications) where it is desirable to have Model 204 messages sent to the browser. Valid only for WEBSERV ports. 5.7.55 MSG204 xxx This parameter specifies the Sybase message number to be used to return terminal output to the client. If this parameter is not specified, all terminal output for the open server will be sent to the Model 204 audit trail. Because the Sybase client server communications protocol is a half duplex protocol, only terminal output that occurs while the client is in the “receive” state will be sent to the client. Terminal output that occurs while the client is in the “send” state will be sent to the audit trail regardless of the setting of the MSG204 parameter. A client is in the “receive” state after it has sent an RPC to the server and before it has received the DONE message for the request. The error state and error class for terminal output messages are both always set to 0. Valid only for OPENSERV ports. 5.7.56 MSG204L xxx This parameter specifies the Sybase message number to be used to return terminal output to the client. This parameter is identical to the MSG204 parameter except that it indicates that the Model 204 messages during logon will also be sent to the client. If MSG204 is specified instead of MSG204L, only the messages that occur after logon will be sent to the client. Valid only for OPENSERV ports. 5.7.57 NEWPASSWORDC This parameter prevents Janus Web Server from immediately sending an “Unauthorized” response to a browser after a password change. Janus Web Server sends an “Unauthorized” response to a browser whenever the user changes his or her password either by specifying oldpassword:newpassword for the password in a logon pop-up window or with a NEWPASSF/NEWPASSF2 form. This causes a logon pop-up window to appear on the user's workstation, allowing the use to tell the browser what the new password is (there is no way for a server to tell a browser that the user has just changed his or her password). —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 69 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— While having a logon pop-up window appear immediately after a password change might be confusing to end-users, it is probably less confusing than the same window appearing some time later. In certain cases, such as a page with multiple embedded password protected images, the end-user might even receive multiple logon pop-up windows because of a password change, if an immediate “Unauthorized” is not sent after a password change. If, in spite of all these advantages, an immediate “Unauthorized” after a password change is not desirable, the NEWPASSWORDC (NEW PASSWORD Continue) can be specified on the port definition. The presence or absence of the NEWPASSWORDC parameter is irrelevant if there is a JANUS WEB ON NEWPASSWORD rule for the port. Valid only for WEBSERV ports. 5.7.58 NEWSESCMD 'xxx' This parameter specifies the Model 204 commands to be executed when a new login session is initiated. For SRVSOCK ports every connection starts a new login session. For WEBSERV ports, a new login session is only started when the user requests a “login required” URL (based on JANUS WEB ALLOW rules) and the user is not continuing a login session via SSLSES or SESCOOKIE. Multiple commands must be separated by AND, and any command that contains blanks must be enclosed in quotes. NEWSESCMD may span more than one line (if a hyphen (-) continues the line), but the total length of commands plus one overhead byte per command cannot exceed 255 bytes. The NEWSESCMD commands are executed before any commands specified in the CMD clause or JANUS WEB ON rules for WEBSERV ports. User authentication is the primary function of NEWSESCMD commands. Any $WEB function can be issued in NEWSESCMD commands on WEBSERV ports, and any $SOCK function can be issued in NEWSESCMD commands on SRVSOCK ports. In addition, a NEWSESCMD command can issue the $SIR_LOGIN function as well as the $WEB_PASS function on WEBSERV threads. If NEWSESCMD specifies an INCLUDE command, the included procedure is assumed to come from the first file or group specified in a NEWSESOPEN clause (see “NEWSESOPEN list” on page 72). —————————————————————————————————————————— 70 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— Examples of some valid NEWSESCMD clauses: JANUS DEFINE MYWEB 80 WEBSERV 10 NEWSESCMD WEBLOGIN JANUS DEFINE TELNETSRV 23 SRVSOCK 10 NEWSESOPEN TELNETP NEWSESCMD 'UTABLE LQTBL 3000' AND 'INCLUDE TELNETLOGIN' Because of the role of NEWSESCMD in enforcing user access security, most resources used during NEWSESCMD processing are automatically cleaned up after the NEWSESCMD processing is completed. This includes all files being closed and all user tables being cleared (though not resized). The one exception to this is that GTBL can be left intact after NEWSESCMD processing, if the NEWSESNOCLEARG (“NEWSESNOCLEARG” on page 72) parameter is specified on the port definition. If a NEWSESCMD command logs a user in using $SIR_LOGIN, the rest of the request runs under that userid. For web requests, it is possible that a NEWSESCMD will log a user on, but that user will not be authorized to run the request URL based on JANUS WEB ALLOW rules. In such a case, Janus Web Server will either send a “404 Unauthorized” status to the browser (which will result in a login pop-up window being presented to the end-user), or it will run the UNAUTHORIZED exception handler, if one is present. If the NEWSESCMD does not perform a $SIR_LOGIN, processing continues as it would without a NEWSESCMD. That is, on a SRVSOCK port, the request will run under the SOCKUSER userid, and on a WEBSERV port, Janus Web Server will attempt to log the user in based on the userid and password passed in the HTTP authorization header, if one is present. NEWSESCMD command processing can also close the connection with the client, either with a $SOCK_CLOSE on a SRVSOCK port or with a $WEB_DONE on a WEBSERV port. In such a case, no further processing occurs on the thread after the NEWSESCMD commands complete. NEWSESCMD is only supported in version 6.0 and later of Sirius Mods. This parameter is valid for SRVSOCK, WEBSERV, and TNSERV port types. This parameter is not valid on an FTPSERVER port definition. For TNSERV ports, the NEWSESCMD is only run for the initial connection. If a user logs off and logs back on in the same connection, the NEWSESCMD will not be executed. Because of this, if a NEWSESCMD does a $sir_login, it might make sense for it to specify the “TRUST” parameter on the $sir_login to allow subsequent logins in the same connection to be trusted logins. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 71 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.7.59 NEWGUESTOK This parameter indicates that “guest” logins are to be allowed for $SIR_LOGIN calls in programs run as part of NEWSESCMD processing (“NEWSESCMD 'xxx'” on page 70). Guest logins are logins for userids that are defined neither in CCASTAT nor to the external authorizer (RACF, ACF2 or Top Secret). Guest logins are useful for running requests on behalf of a user on a trusted system, such as a proxy server or another Model 204 Online, without having to keep the userids between systems in synch. Users running as a result of guest logins on a SRVSOCK or WEBSERV port always run with minimal user privileges. NEWSESGUESTOK is only supported in version 6.0 and later of Sirius Mods. Valid for SRVSOCK and WEBSERV port types. 5.7.60 NEWSESNOCLEARG This parameter indicates that GTBL is not to be cleared at the end of NEWSESCMD command processing. It is useful if there is a need to pass data via GTBL between programs run as part of NEWSESCMD processing and programs run as part of request processing after the NEWSESCMD commands. If NEWSESNOCLEARG is specified, special care should be taken that passwords or other secure pieces of information are not stored in GTBL, as it raises the slight possibility that they will be accidentally exposed by application processing. NEWSESNOCLEARG has no meaning unless a NEWSESCMD clause (“NEWSESCMD 'xxx'” on page 70) is also specified on the port definition. NEWSESNOCLEARG is only supported in version 6.0 and later of Sirius Mods. Valid for SRVSOCK and WEBSERV port types. 5.7.61 NEWSESOPEN list This parameter specifies the names of one or more Model 204 files or groups to be opened before any NEWSESCMD commands (“NEWSESCMD 'xxx'” on page 70) are executed. To list multiple files or groups, you must separate them by the AND keyword. You can specify individual file open privileges, or allow them to default to X'0221'. The syntax of each file or group specification is [FILE | GROUP] name [ [WITH] privs] —————————————————————————————————————————— 72 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— If neither the keyword FILE nor GROUP is specified, the NEWSESOPEN looks first for a permanent group to open, then for a file. It does not look for a temporary group, since one cannot yet exist at open time. The first file or group listed in an OPEN clause is set as the default file or group context for the thread during NEWSESCMD command processing. Additional NEWSESOPEN processing notes: ● If the NEWSESCMD parameter specifies an INCLUDE command, the included procedure is assumed to come from the first file or group specified in the NEWSESOPEN clause. ● NEWSESOPEN lets you have data files automatically opened for NEWSESCMD processing, which can be especially useful if the NEWSESCMD processing does not run as an APSY subsystem. ● All files and groups are closed at the end of NEWSESCMD processing, whether or not they were opened as a result of a NEWSESOPEN clause. ● If there is no NEWSESCMD clause in a port definition, the files and groups specified by the NEWSESOPEN clause are not opened. Thus, the NEWSESOPEN parameter is essentially useless except in conjunction with the NEWSESCMD parameter. Examples of some valid NEWSESOPEN clauses: JANUS DEFINE WEBXXX 80 WEBSERV 20 NEWSESOPEN CERTPROC AND FILE CERTDATA WITH X'BFFF' NEWSESCMD WEBLOGIN JANUS DEFINE TELNETSRV 23 SRVSOCK 10 NEWSESOPEN TELNETP NEWSESCMD 'INCLUDE TELNETLOGIN' NEWSESOPEN is only supported in version 6.0 and later of Sirius Mods. This parameter is valid for SRVSOCK, WEBSERV, and TNSERV port types. This parameter is not valid on an FTPSERVER port definition. 5.7.62 NOAUDTERM This parameter is used to control whether the server thread sends “non-compiler terminal output” to the audit trail. Compiler terminal output is always sent to the audit trail. Any terminal output sent to the audit trail is sent as RK lines. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 73 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— NOAUDTERM, which is the default port setting, specifies that (non-compiler) terminal output is not sent to the audit trail; AUDTERM specifies that terminal output is sent to the audit trail. Note that some “print output” can be “captured” on a Sirius $list, a Janus Socket, or a USE output stream, and thus it would not be sent as terminal output -- to the audit trail or anywhere else. For further description of terminal output, see the Janus Web Server Reference Manual or Janus Sockets Reference Manual. On a WEB port: ● Even with AUDTERM set on a WEB port, terminal output is not sent to the audit trail if $WEB_ON is explicitly or implicitly set. ● The setting of AUDTERM (or NOAUDTERM) applies to all URLs on a WEB port unless explicitly overridden by a NOAUDTERM (or AUDTERM) parameter on a JANUS WEB ON rule. On a SRVSOCK port: ● The setting of AUDTERM (or NOAUDTERM) for a socket can be changed using the $SOCK_SET function. Starting with version 6.0, this parameter applies to all Janus “server” port types, and the default setting is NOAUDTERM. Prior to this, the parameter only applied to WEB ports, and the default setting was AUDTERM. This introduces a small incompatibility. Starting with version 6.0, compared to earlier versions, any WEB port that does not specify either AUDTERM or NOAUDTERM will probably generate fewer audit trail lines, as will any SDS or OPENSERV port. This should be a benefit, since most of this terminal output is either uninteresting or already logged to the audit trail as ER, AD or MS lines. Logging these messages as RK lines as well is just a waste of journal space and I/O and makes application diagnosis and debugging from the audit trail more difficult because of the extra noise data. For WEB, OPENSERV, or SRVSOCK applications that wish to explicitly audit information, the User Language AUDIT statement should be used, not the PRINT statement. Valid for WEBSERV, SDS, OPENSERV, or SRVSOCK port types. 5.7.63 NOAUTODONE This parameter prevents Janus Web Server from treating a return to command mode after all port and ON rules CMDs have been processed as an implicit $WEB_DONE. While for simple demo applications such as one that simply returns the results of a Model 204 VIEW command, it is convenient to treat the return to command mode as an implicit $WEB_DONE, it makes error detection for more complex applications difficult. —————————————————————————————————————————— 74 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— Many application problems from subsystems not being started to coding errors that cause premature exit from a procedure to invalid included procedure name to a user not being authorized to run a subsystem would cause raw Model 204 error messages or, in certain cases, partial HTML pages to be returned to an end-user. By specifying NOAUTODONE on the port definition, these errors can be caught and a “neater” error page can be sent to the user. This “neater” error page could be either the standard “No $WEB_DONE” page sent by Janus Web Server or it could be one produced by a JANUS WEB ON NODONE rule. The default setting for AUTODONE/NOAUTODONE is AUTODONE. The setting of NOAUTODONE (or AUTODONE) applies to all URLs on the port unless explicitly overridden by an AUTODONE (or NOAUTODONE) parameter on a JANUS WEB ON rule. The recommended setting for this parameter is NOAUTODONE with AUTODONE added to any JANUS WEB ON rule where the implicit $WEB_DONE is really required. Valid only for WEBSERV ports. 5.7.64 NOAUTOON This parameter prevents Janus Web Server from preceding the execution of the command specified in a JANUS WEB ON rule with an implicit $WEB_ON. While for simple demo applications such as one that simply returns the results of a Model 204 VIEW command, it is convenient to have Janus Web Server perform an implicit $WEB_ON before issuing the command, it can be very inconvenient for other applications that perform processing such as file opens that cause Model 204 informatory or error messages to be issued. Since generally these messages are not to be sent to the browser they must either be suppressed with an explicit $WEB_OFF before they are issued or discarded after they are issued with a $WEB_FLUSH. The former approach requires the extra evaluation of a User Language program and the latter pointlessly saves messages to CCATEMP only to have them discarded. Setting NOAUTOON eliminates the need to run a stub program to issue a $WEB_OFF or the overhead associated with saving messages to CCATEMP only to be flushed with a $WEB_FLUSH. If NOAUTOON is specified for a port, it might also be useful to specify NOAUDTERM (or, starting with version 6.0, allow it as the default) to prevent “terminal” messages from going to the audit trail (see “NOAUDTERM” on page 73). The default setting for AUTOON/NOAUTOON is AUTOON. The setting of NOAUTOON (or AUTOON) applies to all URLs on the port unless explicitly overridden by an AUTOON (or NOAUTOON) parameter on a JANUS WEB ON rule. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 75 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Valid only for WEBSERV ports. 5.7.65 NOSCREENREDIR Indicates that Janus Web Server legacy support (automatic mapping of 3270 applications to HTML) is not to use the redirect's to map all screens for a legacy session to the same URL. This means that all legacy screens will be maintained as a separate browser cache entry that is a result of a POST to a generated URL. This parameter is only available in Sirius Mods 6.0 and later and its use is discouraged but is provided if for some reason full backward compatibility with earlier versions of Janus Web Server legacy support is desired. The NOSCREENREDIR can be overridden or set on a URL basis with the SCREENREDIR or NOSCREENREDIR parameter in JANUS WEB SCREEN rules. From Sirius Mods 6.0 to 6.2, NOSCREENREDIR would also cause Janus Web Server to switch to an internally generated URL on the first Janus Web Legacy page. In Sirius Mods 6.3 and later, NOSCREENREDIR prevents a redirect from being used for each page but does not cause an internally generated URL to be used for Janus Web Legacy pages. Use of these internally generated URLs under Sirius Mods 6.3 and later is controlled by the SCREENURL (“SCREENURL” on page 84) parameter. This parameter can be overridden on a URL basis by the SCREENREDIR and NOSCREENREDIR parameters on JANUS WEB SCREEN rules. Valid only for WEBSERV ports. 5.7.66 NOTRACEFIELD Indicates the form field or fields whose values are not to be traced when the X'04' bit (causes tracing of form field values for web requests) of JANUS TRACE is in effect. This is useful for preventing passwords in form fields from being logged to the audit trail. Multiple form fields names can be specified after NOTRACEFIELD by separating them with an “AND” as in JANUS DEFINE MYWEB 80 WEBSERV 28 NOTRACEFIELD PASSWORD AND NEWPASSWORD When form field values are being traced because of the X'04' TRACE bit, the values for fields specified in the NOTRACEFIELD clause always appear as asterisk in the trace. NOTRACEFIELD can be used to suppress password fields in forms used by NEWSESCMD processing or other fields that might contain secure information. Note: The NOTRACEFIELD parameter will not prevent the logging of secure fields to the audit trail as part of a TCP trace resulting from the setting of the X'08' bit of JANUS TRACE. —————————————————————————————————————————— 76 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— For a description of the individual bit options and for more information about the TRACE setting, see “JANUS TRACE” on page 155. Valid only for WEBSERV ports. 5.7.67 NOUPCASE This parameter indicates that no client data is to be converted to upper case. By setting NOUPCASE the userid and password must be specified by the client in the correct case (probably upper case). Note that it is possible to have lower case userids and passwords in Model 204. For example, the userids HOMER, homer and Homer would be treated as three separate userids by Model 204. The NOUPCASE parameter simplifies the interaction between clients where names tend to be in lower case or caseinsensitive and Model 204 where they tend to be in upper case. The NOUPCASE parameter is the opposite of UPCASE. The default is for all ports to have UPCASE set. Valid for WEBSERV, SDS, or OPENSERV port types. 5.7.68 OBSIZE xxx This parameter specifies the size of the TCP/IP output buffer. The default is 8192, the minimum is 512, and the maximum is 65534 (prior to version 5.2 the maxiumum was 32767). There is one output buffer used for each connection. A larger output buffer size provides better CPU performance in both Model 204 and the TCP/IP address space at the expense of more virtual (and real) storage. Valid for all port types. 5.7.69 OMNIACCT xxx This parameter specifies the Model 204 ACCOUNT for the SDS catalog sdaemon for the port. If no OMNIACCT is specified the ACCOUNT for the user executing the JANUS DEFINE command is used. This is a synonym for SDSACCT. Valid only for SDS (also known as OMNI or OAS) ports. 5.7.70 OMNIUSER xxx This parameter specifies the Model 204 user ID for the SDS catalog sdaemon for the port. If no OMNIUSER is specified the ID of the user executing the JANUS DEFINE command is used. This is a synonym for SDSUSER. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 77 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Valid only for SDS (also known as OMNI or OAS) ports. 5.7.71 OPEN list This parameter specifies the name of one or more Model 204 files or groups to be opened when a server session is initiated. If you specify multiple files or groups in an OPEN clause, they must be separated by an AND keyword. You can also specify individual file open privileges; if not, they default to X'0221'. Multiple files or groups and explicitly specified privileges in the OPEN clause are supported only in version 6.0 and later of Sirius Mods. The syntax of each file or group specification is: [FILE | GROUP] name [ [WITH] privs] The first file or group listed in an OPEN clause is set as the default file or group context for the thread. If neither the keyword FILE nor the keyword GROUP is specified, OPEN looks first for a permanent group, then for a file, to open. It does not look for a temporary group, since one cannot yet exist at open time. You can use the CMD parameter to specify a command to execute just after a file or group opens. If the CMD parameter specifies an INCLUDE command, the included procedure is assumed to come from the first file or group specified in the OPEN clause. Examples of valid OPEN clauses follow: JANUS DEFINE WEBXXX 80 WEBSERV 20 OPEN WEBPROC AND FILE DATAPROC WITH X'0761' JANUS DEFINE OPENDOOR 1234 OPENSERV 40 OPEN GROUP DOORPROC AND FILE DOORDATA X'BFFF' CMD 'I DRIVER' This parameter is valid for SRVSOCK, WEBSERV, TNSERV, SDS, or OPENSERV port types. This parameter is not valid on an FTPSERVER port definition. 5.7.72 PASVPORT startportnum This parameter identifies the first FTP server port number to use for “passive” file transfers. For such transfers, an FTP server opens an additional server socket, to which the client is requested to connect for data transfers. —————————————————————————————————————————— 78 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— For each Janus FTP Server, a block of maxcon port numbers starting at startportnum is used for passive file transfers. maxcon is the maximum number of simultaneous FTP sessions supported by this server. If PASVPORT is not specified, its default is 5000. If it is specified, the value must be at least 1000 and no greater than 32K. For more information about the Janus FTP Server, see the Janus Sockets Reference Manual. This parameter is valid only for FTPSERVER port types. 5.7.73 PRELOGINUSER userid This parameter indicates the userid under which pre-login processing runs. Pre-login processing is that which occurs before a user login. This parameter is only available in version 6.0 and later of the Sirius Mods. Before this version, these were all true about processing that occurred before user login: ● ● ● It ran under “NO USERID”. It was not visible with SirMon, the MONITOR command, or LOGWHO. It was not BUMP'able. After version 6.0 of the Sirius Mods, pre-login processing runs under the default userid of “NO USERID” or under the userid specified by the PRELOGINUSER parameter; it is visible to SirMon, the MONITOR command, and the LOGWHO command; and it is BUMP'able. On many port types, much processing can take place before a thread is actually logged on to a user. The PRELOGINUSER parameter can be useful in helping distinguish users in pre-login processing on different ports. Valid for SRVSOCK, WEBSERV, OPENSERV, FTPSERVER, TNSERV, SDS and IFDIAL port types. 5.7.74 PRSTOK [AMBIG|]hexstr1|hexstr2|... | NONE This parameter specifies the hex values of strings that are used to separate input strings using the $SOCK_RECVPRS function. The default is PRSTOK NONE, which means that a PRSTOK value must be set with $SOCK_SET before the $SOCK_RECVPRS function is called. See the description of $SOCK_RECVPRS for a description of its parsing algorithm. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 79 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Note that the specified string is used untranslated, regardless of the CHAR or BINARY setting of the socket. For example, the following specifies that input strings are delimited by the byte pair which is ASCII carriage return and linefeed: PRSTOK 0D0A Specify “AMBIG|” at the start of the PRSTOK string if you are using any separator string which is the prefix of another. If you specify “AMBIG|”, at least one of your separator strings must be the prefix of another. For example, the following setting is rejected because the string “0D” (ASCII carriage return) is a prefix of “0D0A” (carriage return and linefeed): PRSTOK 0D0A|0D|0A Also, the following setting is rejected because neither of the strings “0D0A” (ASCII carriage return and linefeed) nor “0D09” (carriage return and horizontal tab) is a prefix of the other: PRSTOK AMBIG|0D0A|0D09 See the description of the $SOCK_RECVPRS function in the Janus Sockets Reference Manual for a discussion of using ambiguous PRSTOK separator strings. The PRSTOK value for a socket can be changed using $SOCK_SET. Valid only for CLSOCK and SRVSOCK ports. 5.7.75 PUBLOG This parameter indicates that a “real” login should be done for the SOCKUSER userid for SRVSOCK logons. The “real” login will be a trusted login so passwords will not be required from end-users but the SOCKUSER userid must be defined in CCASTAT or to the external authorizer (RACF, ACF2 or Top Secret) if PUBLOG is specified for a port. If PUBLOG is not specified, the SOCKUSER userid will be logged on for SRVSOCK logons whether or not it is defined in CCASTAT or to an external authorizer, and it will be given UPRIV = 0 (default user privileges). PUBLOG can be used if even public logins should be logged by an external authorizer (as a matter of policy) or if non-standard privileges are to be assigned to the public user. Use caution if assigning any privileges to the SOCKUSER userid since this can be a potential security exposure. Valid only for SRVSOCK ports. —————————————————————————————————————————— 80 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.76 RAWINPUT This parameter tells Janus Web Server to save the raw input stream for an HTTP POST, regardless of the mime type set by the client in the content-type header. This has two basic advantages: 1. The raw input content for an HTTP POST is always available to Janus Web Server applications (via $web_input_content) regardless of the content-type. This could be useful for debugging, or perhaps for logging, input content. 2. It is possible for Janus Web Server to interact correctly with clients that don't set the mime type, regardless of what content they send. Prior to the availability of RAWINPUT, if a client sent, say, XML data, but it did not set the content-type, Janus Web Server would assume that the content was application/x-www-formurlencoded (form POST) encoded. If after it read some of the content, Janus Web Server discovered that it was not HTML form data, it was too late: the request had to be rejected for having an invalid format. With the RAWINPUT parameter set, however, Janus Web Server proceeds as follows: a. It loads the input content into CCATEMP. b. If the mime type is set to application/x-www-form-urlencoded, or if it is not set at all, Janus Web Server determines if the input has the application/x-www-form-urlencoded format. c. If the format is not application/x-www-form-urlencoded, the request is not rejected, and the Janus Web Server application can still access the data. This parameter is only available in version 6.7 and later of Sirius Mods. Valid only for WEBSERV ports. 5.7.77 RAWINPUTONLY RAWINPUTONLY indicates that, regardless of the POST data content-type set by the client, Janus Web Server should do both of the following: ● ● Save the raw input stream of an HTTP POST. Refrain from parsing the input content into form fields. RAWINPUTONLY is very similar to the RAWINPUT port definition parameter (“RAWINPUT”), except that: ● RAWINPUTONLY can be an ON rule parameter, so it can be set for specific URLs. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 81 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— ● RAWINPUT does not prevent Janus Web Server from trying to parse the form parameters, if the content-type for the POST is set to application/x-wwwform-urlencoded or multipart/form-data. RAWINPUTONLY prevents this parsing, so it protects Janus Web Server applications from errors in this parsing. These errors include invalid-form-data errors and request-buffer-full errors. For more information about RAWINPUTONLY processing, see “RAWINPUTONLY | NOTRAWINPUTONLY” on page 179. This parameter is only available in version 6.8 and later of Sirius Mods. Valid only for WEBSERV ports. 5.7.78 RBSIZE xxxx This parameter specifies the Janus RPC or Request buffer size. On a Web port, the Janus request buffer holds browser request information such as header data, cookies and form data. On other port types, it holds RPC input and output parameters. If a Janus server thread is started, and the data sent by the client program requires more space for its parameters than is allocated by RBSIZE, the connection to the client is broken and message MSIR.0154 is issued. If a Janus Open Client program sends or receives parameters too long for RBSIZE, the connection to the client is broken and message MSIR.0186 is issued. The Janus RPC buffer is also used by Open Server programs to contain column descriptions set by the $SRV_BIND function; if the buffer is too small, $SRV_BIND returns an error code indicating so. The default for RBSIZE is 4096. The maximum is 65534. RBSIZE is valid for WEBSERV, SDS, or OPENSERV port types. 5.7.79 REMOTE hostID portnum | * This parameter identifies the remote server and the remote port number to be used with a set of Janus Sockets CLSOCK connections. hostID can be any one of the following: ● ● ● An IP address. A host name. Pattern matching characters that identify the host name. In this case, the $function or object method that establishes the remote host — $SOCK_CONN, the Socket object New constructor, or the HTTP Helper Url or Host methods — must specify the actual host ID, which must satisfy the pattern. —————————————————————————————————————————— 82 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— ● An asterisk (*), which means whatever host is specified on the $function or object method that establishes the remote host. This is the default. portnum can be either of the following: ● ● A TCP/IP port number in the range 1 through 65535. An asterisk (*), which means whatever port number is specified on the $function or object method that establishes the remote host. This is the default. If you use a pattern or asterisk for hostId, or an asterisk for portnum, the identity of the remote server is not fully determined until the invocation of the $function or object method that establishes the remote host. Any host ID and port number specified as arguments on that invocation must be a match for the hostID and portnum combination. If you specify REMOTE * *, any hostID and portnum on that invocation are a match. If the default setting, REMOTE * *, is in effect for a CLSOCK port, REMOTE * * is not included in JANUS DISPLAY output. The JANUS CLSOCK command (see “JANUS CLSOCK” on page 31) is required to allow a User Language application to access the CLSOCK port, and it can be used to further restrict both the hostID and portnum specified on the port definition. (System administrators are not subject to CLSOCK access restrictions.) See the description of $SOCK_CONN or of the Socket class New method in the Janus Sockets Reference Manual for a discussion of the arguments provided to $SOCK_CONN or to New and their interaction with JANUS DEFINE REMOTE. REMOTE is valid only for CLSOCK ports, for which it is a required parameter. 5.7.80 RPCONLY This parameter indicates that only RPC requests are allowed on the port. All non-RPC (language) requests are rejected. If the port is also defined as EXEC2RPC, an attempt is made to convert the language request to an RPC. If this is successful, the request is treated as a valid RPC request. If a port is defined as RPCONLY, the only valid return code from $SRV_WAIT (on that port) is 1 meaning an RPC was received. Valid only for OPENSERV ports. 5.7.81 SCREEN and NOSCREEN Indicates whether or not Janus Web Legacy screens will be allowed to appear on requests to the port. SCREEN, the default, specifies that Janus Web Legacy support automatically renders any 3270 screen presented by an application as part of a Janus Web Legacy session. While this is convenient, it might be viewed as a security risk — 3270 screens not intended for web user consumption might accidentally appear on a —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 83 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— browser because of an application error. To avoid this risk, specifying NOSCREEN on the port definition ensures that an attempt to display a 3270 screen on a web request will result in a user restart. The SCREEN and NOSCREEN parameters are available in Sirius Mods version 6.3 and later. You can override the SCREEN and NOSCREEN parameters on the JANUS DEFINE command on a URL basis using the like-named parameters in JANUS WEB ON rules. Valid only for WEBSERV ports. 5.7.82 SCREENURL Indicates that Janus Web Server legacy support (automatic mapping of 3270 applications to HTML) is to switch web applications that present a 3270 screen to a special internally generated URL. There is no really good reason to specify SCREENURL but the option is provided on the off chance it's required somewhere for backward compatibility. This parameter is available in Sirius Mods 6.3 and later. This parameter can be overridden on a URL basis with the SCREENURL or NOSCREENURL parameters on JANUS WEB SCREEN rules. Valid only for WEBSERV ports. 5.7.83 SDSACCT xxx This parameter specifies the Model 204 ACCOUNT for the SDS catalog sdaemon for the port. If no SDSACCT is specified the ACCOUNT for the user executing the JANUS DEFINE command is used. This is a synonym for OMNIACCT. Valid only for SDS (also known as OMNI or OAS) ports. 5.7.84 SDSUSER xxx This parameter specifies the Model 204 user ID for the SDS catalog sdaemon for the port. If no SDSUSER is specified the ID of the user executing the JANUS DEFINE command is used. This is a synonym for OMNIUSER. Valid only for SDS (also known as OMNI or OAS) ports. —————————————————————————————————————————— 84 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.85 SESCOOKIE cookie Indicates the name of a cookie that will be used to maintain logical sessions that will be used to perform trusted logins for Janus port users who have just logged in through typical HTTP challenge-response mechanisms or through a $SIR_LOGIN issued during NEWSESCMD processing. This feature reduces the overhead of NEWSESCMD processing by limiting it to logical session establishment time, and it eliminates some of the idiosyncrasies of HTTP challenge-response authentication associated with password changes, whether end-user or system initiated. Available in Sirius Mods version 6.0 and later, SESCOOKIEs are cryptographically designed to be virtually impossible to “fake”. If both SESCOOKIE and SSLSES (“SSLSES” on page 97) are specified, the session associated with the SESCOOKIE will be used in preference to the session associated with the SSL session, though these should almost always be the same. SESCOOKIE is valid only for WEBSERV ports. 5.7.86 SESCOOKIENOSEC Indicates that the cookie specified by SESCOOKIE will not be sent to the browser as a “secure” cookie. This makes it possible with some browsers in certain situations to use the SESCOOKIE (“SESCOOKIE cookie”) cookie to have a logical session operate over multiple Janus Web Server ports. Note: It is probably a bad idea to transmit a session cookie on a non-SSL connection, because someone who spies the session cookie can use it to perform trusted logins on the Janus Web Server port (though such a person cannot determine any password associated with the session cookie). The SESCOOKIENOSEC parameter is only available in Sirius Mods version 6.0 and later. SESCOOKIENOSEC is valid only for WEBSERV ports. 5.7.87 SESFASTLOGIN This parameter reduces the login security overhead for Janus Web Server threads by causing a login performed for a continued session to be a “fast” login. A fast login does no CCASTAT lookup or external authorizer (RACF, ACF2, Top Secret) lookup for the userid. The benefits of this parameter are: —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 85 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— ● It avoids the overhead of heavy external-authorizer login traffic for web threads, which do a login for every protected page requested. The overhead of CCASTAT lookup is also avoided for users in CCASTAT, but this overhead is usually relatively small. ● It avoids the external authorizer's logging of “last logged in” times for every page a user accesses. This presents an inaccurate picture of the time of last login, and it produces large amounts of useless external authorizer logging. The disadvantage of setting this parameter is that access to an external-authorizer protected resource or to command privileges will only be available to the first URL request in a session. Note: This parameter has no effect unless login sessions are being maintained by SESCOOKIE or SSLSES. The WEBLOGHOLD parameter accomplishes many of the same things as SESFASTLOGIN, but it has the drawback that an sdaemon thread is tied up for each held login. It has the advantage that there is no difference privilege-wise between an initial user URL request and a later one. SESFASTLOGIN is available as of Sirius Mods version 6.5 (originally in a 6.4 ZAP). The SESFASTLOGIN parameter is valid only for a Janus Web Server port. 5.7.88 SESTIMEOUT xxx Indicates the number of minutes of inactivity that will cause a logical login session being held either via SESCOOKIE or SSLSES to be terminated. When such a session is terminated, Janus Web Server will go through normal login validation which might or might not force the end-user to re-enter a password depending on the validation technique and possibly the browser. The session timeout value set by SESTIMEOUT only sets the timeout for trusted user logins and does not affect the timeout for requests using $WEB_FORM_DONE and for found sets and lists saved with $WEB_SAVE_RECSET and $WEB_REST_RECSET. The SESTIMEOUT parameter is only available in Sirius Mods version 6.0 and later. Valid only for WEBSERV ports. 5.7.89 SLOWCLOSE mask The SLOWCLOSE parameter is followed by a bitmask that indicates the conditions under which Janus Web Server is to perform a “slow” close of a connection with a browser. —————————————————————————————————————————— 86 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— This parameter is useful for dealing with a bug in some browsers that sends an extra, junk, carriage-return and line-feed character after the contents of an HTTP POST. If these two extra characters are sent by the browser, and Janus Web Server does not read them from TCP/IP (most of the time it will), then under certain conditions TCP/IP will discard outgoing data from Janus Web Server when a normal close is done on the socket. To prevent losing this data in this case, Janus Web Server must perform a more complex and so “slower” and, not incidentally, more expensive close for the connection. This parameter defaults to X'01': Janus Web Server will only perform “slow” close processing for a POST, and only when it has not already received an extra carriagereturn and line-feed. While the default setting covers the known browser bug which only seems to occur on POSTs, SLOWCLOSE can be set to other values for other request types. These settings should only be necessary if browsers that send junk characters under other conditions are discovered: X'02' X'04' X'10' X'20' X'40' Slow close for a GET that is followed by extra carriage-return and line-feed characters that are not read by the Web Server Slow close for a PUT that is followed by extra carriage-return and line-feed characters that are not read Slow close for a POST that is followed by extra carriage-return and line-feed characters, whether the characters are read by the Server or not Slow close for a GET that is followed by extra carriage-return and line-feed characters, whether the characters are read or not Slow close for a PUT that is followed by extra carriage-return and line-feed characters, whether the characters are read or not The SLOWCLOSE parameter is only available in Sirius Mods version 6.0 and later. Valid only for WEBSERV ports. 5.7.90 SOCKACCT xxxx This parameter specifies the default Model 204 account ID used for SRVSOCK logons. SOCKACCT SOCKUSER is the default. Valid only for SRVSOCK ports. 5.7.91 SOCKPMAX This parameter specifies the maximum number of sockets a user may have connected at any time using the particular Janus Sockets client port. The default, which is also the minimum value, is one, and the maximum value is 32767. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 87 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Note the distinction between this parameter on the JANUS DEFINE command and the SOCKMAX Model 204 system parameter: ● The SOCKPMAX port parameter specifies the number of connected sockets a user may have at any time for the particular CLSOCK port. A terminated connection is not included in this total, even if the application has not issued the $SOCK_CLOSE function for it. ● The SOCKMAX system parameter specifies the number of in-use sockets a user may have at any time. One of these is reserved for the server socket number 1, whether the user is a server socket program or not, so there are SOCKMAX - 1 sockets available to each user to make connections on CLSOCK ports. A terminated connection is included in this total if the application has not issued the $SOCK_CLOSE function for it. Valid only for CLSOCK ports. 5.7.92 SOCKUSER xxxx This parameter specifies the default Model 204 user ID used for SRVSOCK logons. SOCKUSER SOCKUSER is the default. See “PUBLOG” on page 80 for a discussion about looking up this user ID (in CCASTAT or the external authorization facility). Valid only for SRVSOCK ports. 5.7.93 SQUAREB opsys The SQUAREB parameter can be used to override the default EBCDIC characters for square brackets in the Janus Web Server log file. This can be useful if the Janus Web Server defaults (X'AD'/X'BD' under CMS and X'BA'/X'BB' under MVS) are not appropriate for the file transfer program that transfers the log to an ASCII based system. SQUAREB must be followed by either of the following: CMS Indicates that X'AD' and X'BD' are to be used for left and right square brackets. MVS Indicates that X'BA' and X'BB' are to be used. The SQUAREB parameter has no affect on the translation of square brackets in text that is sent to the browser. SQUAREB is valid only for WEBSERV ports. —————————————————————————————————————————— 88 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.94 SSL The SSL parameter indicates that communications on this port should be encrypted using Janus Network Security SSL (Secure Sockets Layer) or TLS (Transport Layer Security) support. The parameter has the following mutually exclusive options: SSL procfile procname Identifies the file (typically JANSSL) and procedure that contain the certificate to be presented to clients on server ports and to the server on CLSOCK ports. SSL * Presents to the client or server the “self-signed certificate” provided for your site by Sirius Software. SSL 0 Indicates for CLSOCK ports that, although the connection is encrypted, the client is not to provide a certificate to the server if requested. Server certificates are required to establish an encrypted connection, but client certificates are optional and are not used at all by many secured servers. Certificates and authentication are described further in the Janus Network Security Reference Manual. Other optional DEFINE command parameters used in conjunction with the SSL parameter include: ● For server sockets: SSLBSIZE, SSLCIPH, SSLCLCERT/SSLCLCERTR, SSLIBSIZE, SSLOBSIZE, SSLPROT, SSLSES ● For client sockets: SSLOPT ● For both types of sockets: SSLCACHE, SSLMAXAGE, SSLMAXCERTL, SSLUNENC Other JANUS commands useful for SSL ports include: ● For ports that authenticate incoming certificates: ADDCA, DELCA, DISPLAYCA, STATCA ● For monitoring a port's SSL activity: SSLSTAT Janus Web Server $functions useful for SSL applications and described in the Janus Web Server Reference Manual include: —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 89 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— $WEB_CERT_INFO, $WEB_CERT_LEVELS, $WEB_CIPHER, $WEB_PROTOCOL, $WEB_SECURE The SSL parameter is valid for SRVSOCK, CLSOCK, WEBSERV, TNSERV, SDS, or OPENSERV port types. 5.7.95 SSLBSIZE xxxx This tuning parameter specifies the size of the input buffer used for reading encrypted data for an SSL port. An SSL port is a Janus port whose definition includes an SSL parameter (“SSL” on page 89) setting, which indicates that communications on this port may be encrypted using Janus Network Security SSL (Secure Sockets Layer) or TLS (Transport Layer Security) support. Under version 6.0 and later of the Sirius Mods, the SSLBSIZE parameter also specifies the size of the SSL output buffer. To set the input and output buffer sizes independently, you use the SSLIBSIZE and SSLOBSIZE parameters. The default for SSLBSIZE is 4096 bytes; the minimum and maximum values are 1024 and 32767, respectively. If you set SSLBSIZE greater than the SSL specification maximum buffer size of 16000, the port's input buffer size is set to the SSLBSIZE value, but the output buffer size is set to 16000 bytes. Setting the input buffer greater than 16000 bytes might be necessary if the port will have connections with SSL implementations that don't fully conform to the SSL specification. For more information about buffer sizing and about Janus handling of oversized packets, see (“SSLIBSIZE xxxx” on page 93) and (“SSLOBSIZE xxxx” on page 95). SSLBSIZE is valid for SRVSOCK, WEBSERV, TNSERV, SDS, or OPENSERV port types. 5.7.96 SSLCACHE xxxx This parameter specifies the number of entries in virtual storage to be allocated for caching information related to this port's SSL sessions. A Janus port whose definition includes an SSL parameter (“SSL” on page 89) setting supports Janus Network Security SSL (Secure Sockets Layer) or TLS (Transport Layer Security) encrypted sessions. The SSL cache helps limit the CPU overhead of establishing an SSL session. It does not reduce the effectiveness of security, but it does reduce the overhead at the cost of a relatively small amount of virtual storage. SSL sessions can persist for a length of time determined by either the client or server. Janus Network Security limits the life-span of SSL V2 connection sessions to the lesser of 2 minutes or the value of SSLMAXAGE (“SSLMAXAGE xxx” on page 94), and it limits —————————————————————————————————————————— 90 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— SSL V3 and TLS connections to 1440 minutes (24 hours). For most sites, the default SSLCACHE should be sufficient. Each session requires approximately 512 bytes per entry to cache session related information. A further SSLMAXCERTL (“SSLMAXCERTL xxx” on page 94) bytes are required to hold server certificates for CLSOCK ports, or to hold client certificates for Janus server ports that request them by including SSLCLCERT or SSLCLCERTR (“SSLCLCERT and SSLCLCERTR” on page 92). If the SSLCACHE value is too small, and a larger than anticipated number of users attempt to access an SSL-secured port, entries in the cache are removed on a leastrecently-used basis. This may lead to greater overhead for re-execution of the CPU intensive initial public-key/private-key encryption/decryption operations. The indicator that the SSLCACHE value is not large enough to hold all the contemporaneous SSL sessions is a non-zero value in the “SesNF” column of the JANUS SSLSTAT command result. This is not necessarily problematic as long as the SesNF value is relatively small, because it is not unreasonable to suffer an occasional lost session in order to reduce virtual storage. Note: SSLCACHE is specified in entries, and the default SSLCACHE allocation is the number of storage entries required for 16 times the number of threads defined on the port. So by default, 10 threads would result in 160 entries; at 512 bytes per entry, this would require 81,920 bytes of virtual storage. 100 threads would require 819,200 bytes. The default SSLCACHE value is likely to be excessively large for CLSOCK ports that only connect to a single or to a few servers. All CLSOCK connections to a particular server use the same SSL session regardless of how many different threads initiate connections. SSLCACHE is valid for SRVSOCK, CLSOCK, WEBSERV, TNSERV, SDS, or OPENSERV port types. 5.7.97 SSLCIPH xxx This parameter lets you limit the stream ciphers (encryption algorithms) that this port offers for SSL connections. A Janus port whose definition includes an SSL parameter (“SSL” on page 89) setting supports Janus Network Security SSL (Secure Sockets Layer) or TLS (Transport Layer Security) encrypted connections. Typically, SSLCIPH is allowed to default to 0: all the Janus-supported ciphers are available, and the cipher that is ultimately used depends on the outcome of the handshake negotiation with the client that seeks the service at this port. The negotiation selects the strongest available cipher that the client can support. However, to make only a subset of the server ciphers available, you can specify SSLCIPH followed by the (bitmask) value that selects the subset. For example, SSLCIPH 2 indicates that only strong RC4 encryption is available. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 91 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Currently, these ciphers are supported: 1 RC4 bulk cipher with MD5 digest algorithm with 40 bits of the 128 bit RC4 key transmitted encrypted, the rest transmitted "in the clear" (unencrypted). This is considered a moderately strong encryption algorithm and is available on virtually every client implementation of SSL. 2 RC4 bulk cipher with MD5 digest algorithm with all 128 bits of the RC4 key transmitted encrypted. This is considered a very strong encryption algorithm but is only available on clients that have been specially configured to support this cipher. This encryption level is not available for export from the United States. SSLCIPH is valid for SRVSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.98 SSLCLCERT and SSLCLCERTR These parameters specify that an SSL server port will request an SSL certificate from the client. An SSL port is a Janus port whose definition includes an SSL parameter (“SSL” on page 89) setting, which indicates that communications on this port may be encrypted using Janus Network Security SSL (Secure Sockets Layer) or TLS (Transport Layer Security) support. If the client does not present a certificate when requested: ● SSLCLCERT specifies that normal processing should continue. ● SSLCLCERTR specifies either of the following: ▪ The connection should be closed with no further processing (and “MSIR.0646: Error requesting client certificate - client did not have required certificate” is journaled). ▪ Processing continues to run the SSLNOCERTERR exception handler, if this is a WEBSERV port and an ON SSLNOCERTERR clause is part of the port definition. For information about this exception handler, see the Janus Web Server Reference Manual, and also see the example below. To verify a certificate that is passed by a client, you must first have added to the port one or more CA-signed certificates by using the JANUS ADDCA command (“JANUS ADDCA” on page 27). When a client presents a certificate, that certificate is available to User Language code via $WEB_CERT_LEVELS and $WEB_CERT_INFO on WEBSERV ports, and it is available via $SOCK_CERT_LEVELS and $SOCK_CERT_INFO on SRVSOCK ports. Client certificate information can be used to perform trusted logins in NEWSESCMD programs (“NEWSESCMD 'xxx'” on page 70). —————————————————————————————————————————— 92 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— The following example shows a web server SSL port definition that specifies the SSLCLCERTR parameter, JANUS ADDCA commands that are needed to store CAsigned certificates to authenticate the client certificate, and a rule that specifies the ONSSLCERTERR exception handler for cases where the client does not present a certificate: JANUS DEFINE CLCERTWEB 9733 WEBSERV 10 HTTPVERSION 1.1 SSL JANSSL TM2008.PKEY SSLCLCERTR - JANUS ADDCA CLCERTWEB MYPROC SECURESE.CERT JANUS ADDCA CLCERTWEB MYPROC THAWTE.CERT JANUS ADDCA CLCERTWEB MYPROC VERIJUNK.CERT JANUS WEB CLCERTWEB ON SSLNOCERTERR OPEN FILE MYPROC CMD 'INCLUDE MISSING_CERTIFICATE_ERROR' - The SSLCLCERT and SSLCLCERTR parameters are only available in version 6.0 and later of Sirius Mods. SSLCLCERT and SSLCLCERTR are valid for SRVSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.99 SSLIBSIZE xxxx This parameter specifies the size of the SSL input buffer to be used on SSL ports. An SSL port is a Janus port whose definition includes an SSL parameter (“SSL” on page 89) setting, which indicates that communications on this port may be encrypted using Janus Network Security SSL (Secure Sockets Layer) or TLS (Transport Layer Security) support. Before version 6.0 of the Sirius Mods, the size of the SSL input buffer was specified with the SSLBSIZE parameter (“SSLBSIZE xxxx” on page 90) because the SSLIBSIZE parameter was not available. Technically, the maximum “legal” SSL buffer size is 16000, but it may be necessary to use a larger input buffer if there will be connections with SSL implementations that don't fully conform to the SSL specification. If an application tries to send an SSL packet larger than SSLIBSIZE to a Janus SSL port, the connection will be broken and an error written to the audit trail (MSIR.0386 SSL INPUT MESSAGE TOO LONG - INCREASE SSLBSIZE). The other side of the SSL connection will not receive this error message or any other indication of why the connection was broken. There will be no effect on other users on the same port. The default for SSLIBSIZE is 4096, and the minimum and maximum allowable values are 1024 and 32767, respectively. For WEBSERV ports that are used for file uploads (HTTP PUT or form-based uploads), it will probably be necessary to set SSLIBSIZE to at least 16000, because most —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 93 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— browsers will send SSL packets that are as large as possible. For most other applications, the SSLIBSIZE default is probably sufficient, though web applications that POST very large forms might require a slight increase of SSLIBSIZE. SSLIBSIZE is valid for SRVSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.100 SSLMAXAGE xxx This parameter specifies the maximum number of minutes that an SSL session is to be maintained. A Janus port whose definition includes an SSL parameter (“SSL” on page 89) setting supports SSL (Secure Sockets Layer) or TLS (Transport Layer Security) encrypted sessions. The discussion of this SSLMAXAGE parameter uses "SSL" to refer to SSL or TLS. An SSL session is a series of SSL connections that are made using a single “master secret” shared by the SSL client and server. To set up an SSL session, the master secret must be exchanged using computationally expensive public-key/private-key encryption/decryption. SSL sessions are a way of reducing the overhead of SSL by reducing the number of public-key/private-key encryption/decryption operations. The SSLMAXAGE default is 1440 (24 hours), which is the specified maximum life-span of an SSL V3 or a TLS session. The maximum life-span of an SSL V2 session is 2 minutes, so larger values of SSLMAXAGE are ignored for SSL V2 sessions. Before version 6.0 of the Sirius Mods, only SSL V2 was supported and the SSLMAXAGE parameter was not available, so an implicit SSLMAXAGE value of 2 was always used. The 24-hour life-span of SSL V3 and TLS sessions is generally considered “safe”, but if even greater security is required, a smaller SSLMAXAGE can be specified. Setting SSLMAXAGE to 0 forces a new session for every request, which forces a publickey/private-key encryption/decryption operation for every connection. This might be useful for benchmarking the overhead associated with the public-key/private-key operations. The JANUS SSLSTAT command can provide useful information in monitoring the efficacy of SSL session caching. SSLMAXAGE is valid for SRVSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.101 SSLMAXCERTL xxx For a Janus port defined (by the SSL parameter) to support encrypted connections, this parameter indicates the number of bytes of virtual storage to be allocated to hold incoming certificates presented for authentication. Authentication verifies (or not) the certifying authority signature on the incoming certificate. Such a certificate may be: ● ● A server certificate sent in reply to a CLSOCK port. A client certificate sent in reply to a WEBSERV, SRVSOCK, OPENSERV, or SDS port that has the SSLCLCERT or SSLCLCERTR parameter in its definition. —————————————————————————————————————————— 94 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— Since incoming certificates are cached, SSLMAXCERTL bytes are allocated for each SSL session in the cache, the size of which is determined by the explicit or implicit setting of the SSLCACHE parameter (“SSLCACHE xxxx” on page 90). The default SSLMAXCERTL size is 1024, which should be large enough to hold most certificates received from clients or servers. The minimum and maximum SSLMAXCERTL values are 256 and 32767, respectively. It is unlikely that any incoming certificate will be smaller than 512 bytes, and it is extremely unlikely that an incoming certificate will be larger than 2048 bytes. If an incoming certificate is larger than SSLMAXCERTL, an error message is logged to the audit trail and the connection is closed. The SSLMAXCERTL parameter is only available in version 6.0 and later of the Sirius Mods. SSLMAXCERTL is valid for SRVSOCK, CLSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.102 SSLOBSIZE xxxx This parameter specifies the size of the SSL output buffer to be used on SSL ports. An SSL port is a Janus port whose definition includes an SSL parameter (“SSL” on page 89) setting, which indicates that communications on this port may be encrypted using Janus Network Security SSL (Secure Sockets Layer) or TLS (Transport Layer Security) support. Before version 6.0 of the Sirius Mods, the size of the SSL output buffer was always 256 bytes and the SSLOBSIZE parameter was not available. There is little or no performance benefit to using large SSL output buffers, because the amount of work associated with creating an SSL output packet is almost directly proportional to the size of the packet. Typically, it is sensible to use the default SSLOBSIZE of 4096, or even to make it smaller to save on memory. The default for SSLOBSIZE is 4096, and the minimum and maximum allowable values are 1024 and 16000, respectively. For Model 204 to Model 204 applications, the SSLOBSIZE on each side must be less than or equal to the SSLIBSIZE (“SSLIBSIZE xxxx” on page 93) on the other side. SSLOBSIZE is valid for SRVSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.103 SSLOPT Valid only for CLSOCK SSL (Secure Sockets Layer) ports, this parameter specifies that the use of SSL-like encryption is optional for applications using the port. An SSL port is one that includes the SSL parameter in its definition. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 95 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— If SSLOPT is set for an SSL port, the SSL or NOSSL parameter (or their equivalents) on $SOCK_CONN and the applicable Janus Sockets object method calls determines whether or not the connection will be encrypted. If the connection is encrypted, the SSLPROT setting (see “SSLPROT xxx”) influences the type of encryption protocol that will be used. If SSLOPT is set for an SSL port, but no SSL or NOSSL parameter (or their equivalents) is specified on $SOCK_CONN and the applicable Janus Sockets object method calls, the connection is not encrypted by default. If SSLOPT is not set for an SSL port, SSL is used for all client connections from the port, and specifying the NOSSL parameter on a $SOCK_CONN call is treated as an error. This parameter (and CLSOCK ports) are only available in version 6.0 and later of the Sirius Mods SSLOPT is valid only for CLSOCK ports. 5.7.104 SSLPROT xxx This parameter lets you specify the degree of SSL-like encryption available at this port. Janus Network Security currently supports two Secure Socket Layer (SSL) protocols (SSL V2 and SSL V3) and the Transport Layer Security (TLS) protocol, an extension to SSL V3 but developed by the IETF Internet standards group. During the negotiation for a connection to or from this port, Janus will offer the most secure protocol available, then, if necessary, will fall back to the next lower one available, and so on. The SSLPROT parameter lets you explicitly disallow one or more protocols from the negotiation. SSLPROT is a bitmask parameter whose main values are: X'01' SSL, V2 support. This is less secure than SSL V3 or TLS. X'02' SSL, V3 support. This is less secure than TLS. X'04' TLS, V1 support. X'07' The default. SSL V2, SSL V3, and TLS are available. Janus will try for them in the order: TLS, SSL V3, SSL V2. A typical reason for explicitly specifying an SSLPROT value is to require a more secure connection for a port. If a client attempts to connect to a Janus server port using a protocol explicitly disallowed by SSLPROT, the connection is immediately broken, except for WEBSERV ports where the SSLPROTOCOLERR exception handler will be run if available. —————————————————————————————————————————— 96 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— Janus CLSOCK ports will attempt to connect under the most secure protocol available, and will fall back to the next-most secure protocol available; if less-secure protocols are disallowed by SSLPROT, the connection attempt will fail. Before version 6.0 of the Sirius Mods, only SSL V2 was supported and the SSLPROT parameter was not available. SSLPROT is valid for SRVSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.105 SSLSES Indicates that SSL (Secure Socket Layer) logical sessions will be used to perform trusted logins for Janus port users once they have performed a standard login through typical HTTP challenge-response mechanisms or through a $SIR_LOGIN issued during NEWSESCMD processing. This feature reduces the overhead of NEWSESCMD processing by limiting it to logical session establishment time. The feature also eliminates some of the idiosyncrasies of HTTP challenge-response authentication associated with password changes, whether end-user or system initiated. Available in Sirius Mods version 6.0 and later, the SSLSES parameter is designed for SSL server ports. If both SESCOOKIE (“SESCOOKIE cookie” on page 85) and SSLSES are specified, the session associated with the SESCOOKIE will be used in preference to the session associated with the SSL session, though these should almost always be the same. SSLSES is valid only for WEBSERV ports. 5.7.106 SSLUNENC This parameter indicates that an unencrypted private key is being used in the certificate specified by the SSL parameter (“SSL” on page 89) on this Janus server port definition. As of Sirius Mods version 6.2, this parameter is obsolete — as of this verson, Janus Network Security automatically determines whether or not the private key is encrypted, and if not, prompts for a password. A corrupted private key procedure could lead Janus Network Security to believe that the private key must be encrypted, and so result in a password prompt. Regardless of the Sirius Mods version, the use of unencrypted private keys is discouraged. Before Sirius Mods version 6.2, SSLUNENC must have been specified on a port definition if an unencrypted private key was used. Otherwise, the JANUS START —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 97 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— command for an SSL-secured port would prompt for a password (technically, a seed for the encryption algorithm) to use to decrypt the private key. Any data, or even a null value, entered for the password will incorrectly be used in an attempt to decrypt the private key (rendering the key unusable), and the START will fail. Similarly, if an encrypted private key is used in the certificate specified on the SSL parameter, the SSLUNENC parameter must not be specified. Specifying SSLUNENC will prevent password prompting for that key, thus bypassing decryption of the private key (rendering it unusable), and causing the START to fail. The certificate and private key generation process is described further in the Janus Network Security Reference Manual. SSLUNENC is valid for SRVSOCK, WEBSERV, SDS, or OPENSERV port types. 5.7.107 STIMEOUT seconds This parameter sets the number of seconds of inactivity after which a Janus Web Legacy session is terminated. Since it is quite easy for an end-user to start a 3270 session in a browser and forget about it, a session timeout is essential to prevent all available sdaemon threads from being eaten up by forgotten 3270 sessions. The default STIMEOUT setting for a port is 900 (seconds) or 15 minutes. The STIMEOUT parameter can be overridden by an STIMEOUT parameter specified on a JANUS WEB SCREEN command or by a $WEB_SCREEN function call, both described in the Janus Web Server Reference Manual. Valid only for WEBSERV ports. 5.7.108 TCPLOG A new Janus Web Server port definition parameter, TCPLOG, tells Janus Web Server to log in a sequential dataset all inbound and outbound TCP data transmitted for this port. The dataset name is specified as the value that follows the TCPLOG keyword. The log file is opened and cleared when the associated Janus port is started, and it is closed when the port is stopped or if an error occurs writing data to the dataset. The log data is written in variable length blocks. The first four bytes of a block contain the length of the block. Each block contains at least one record. No character translation or formatting is done for the actual TCP data. —————————————————————————————————————————— 98 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— The layout of a block and record is described in detail below: Offset -----0-3 Length -----4 4-5 2 6-7 8-15 16-23 24-27 28-31 32-33 34-35 36-36 37-37 38-39 39-n 2 8 8 4 4 2 2 1 1 2 v Type --------------Unsigned binary Description ----------------------------------BDW (Block descriptor word): the length of the block Unsigned binary RDW (Record descriptor word): the length of the current record Unused Unsigned binary Unique TCP connection number Unsigned binary Time of day in clock units Unsigned binary Remote IP address Unsigned binary Local IP address Unsigned binary Remote port number Unsigned binary Local port number EBCDIC character Direction: S (Sent) or R (Received) Unused Unsigned binary Length of TCP data Any TCP data The TCPLOG dataset cannot be shared by multiple Janus ports. The TCPLOG parameter is valid only for WEBSERV ports. This parameter was introduced in Sirius Mods version 7.2. 5.7.109 TCPKEEPALIVE This parameter specifies that connections on the port should use TCP keepalives. TCP keepalives request that the TCP stack send periodic “keepalive” packets to the communications partner to see if it is still there. The time interval between these packets, which cannot be set by Janus, is set in the TCP/IP stack configuration. For example, with the IBM stacks, the keepalive interval is set in the TCPCONFIG INTERVAL parameter for BPX (IBM Communications Server) and in the KEEPALIVEOPTIONS INTERVAL parameter for VM TCP/IP. In some sense, the term “keepalive” is a misnomer — keepalive packets that are not responded to cause a connection to be closed, so keepalives actually cause connections to be closed faster than they might be otherwise. TCPKEEPALIVE probably only makes sense for ports where connections are held open for long periods of time. TNSERV ports are the most likely candidate. For these ports, TCPKEEPALIVE might be useful for two reasons: 1. It can detect connections lost due to a client failure (say, a turned-off workstation), reducing threads wasted for connections to lost clients. 2. It can reassure certain routers, especially those doing network address translation (NAT) that the connection is still active. Some routers will stop routing packets for —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 99 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— connections on which no activity is seen for some period of time. Keepalives ensure that there is periodic activity on a connection, even if there is no user interaction. Of course, for this to be successful, the TCP/IP stack's keepalive interval must be less than any applicable router's inactivity timeout. For this particular application, keepalives live up to their name. Since the TCP/IP stack does the keepalives, the overhead in Model 204 for setting this parameter is virtually zero. This parameter is only available in Sirius Mods version 6.9 and later. TCPKEEPALIVE is valid for all port types. 5.7.110 TIMEOUT xxxx This parameter specifies the number of seconds of inactivity after which clients connected to this port will be disconnected. The default for TIMEOUT is 0, which means that connections never time out. For WEBSERV ports Browser requests never involve waits on user input so the TIMEOUT parameter for WEBSERV ports involves terminating connections when network response is extremely slow or cases where the client workstation has been turned off before a response is received from Janus Web Server. Because of this, TIMEOUT can be set fairly aggressively for WEBSERV ports. A value of 60 (seconds) would be reasonable. For all other port types The TIMEOUT value should reflect the fact that a connection might require user input waits. TIMEOUT is valid for all port types. 5.7.111 TRACE xxx This parameter specifies the initial TRACE setting for the port. The TRACE setting controls what Janus-related trace information is logged to the audit trail. The port TRACE setting can be overridden by the JANUS TRACE command. Like the JANUS TRACE command, the TRACE parameter value is a bit mask integer that sums the values of the options that will be logged. The default value is 3 for SDS and OPENSERV ports, and it is 0 for WEBSERV and all other ports. For a description of the individual bit options and for more information about the TRACE setting, see “JANUS TRACE” on page 155. The TRACE parameter is valid for all port types. —————————————————————————————————————————— 100 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— Note: The TRACE keyword was introduced in version 6.0 of the Sirius Mods. Before that, trace operations were controlled by the DEBUG keyword, which is no longer available as of version 6.5. 5.7.112 UPCASE This parameter indicates that all client “names” are to be converted to upper case. “Names” includes userids and passwords, variable names for OPENSERV ports, column names for SDS ports and header parameters, header values, cookie names, and form field names for WEBSERV ports. By setting UPCASE as a port parameter, the userid and password can be specified by the client in case insensitive form, that is, it can be specified in lower case. Note that it is possible to have lower case userids and passwords in Model 204. For example, the userids HOMER, homer, and Homer would be treated as three separate userids by Model 204. The UPCASE parameter simplifies the interaction between clients (where names tend to be in lower case) and Model 204 (where they tend to be in upper case). Note: The UPCASE parameter never results in data being converted to upper case. That is, if a client sends variable “@customer” with a value of “Dolly Dinkle”, and UPCASE is active for the connection, the User Language application would see a variable called “@CUSTOMER” with a value of “Dolly Dinkle”. For SDS ports, the UPCASE parameter means that all table and column names passed from the Adaptive Server will be converted to upper case. This means that when defining the columns and tables (using JANCAT), the names must all be upper case. It also means that if an SDS port has the UPCASE parameter set but has mixed case table and column names, those tables and columns will be inaccessible. The UPCASE parameter is the opposite of NOUPCASE. The default is for all ports to have UPCASE set. Valid for WEBSERV, SDS, or OPENSERV port types. 5.7.113 VARIPADDR Indicates that a single browser might access Janus Web Server using different IP addresses (probably because it's accessing Janus Web Server through a “proxy farm”) so that Janus Web Server should not use IP address to decide whether a set of requests all came from the same browser or not. A proxy farm is a collection of proxy servers that act more or less as one proxy server from a browser's perspective and in which a browser might be moved around between different proxies most likely for load-balancing purposes. Setting VARIPADDR reduces Janus Web Server's ability to distinguish requests from multiple browsers potentially causing problems with legacy sessions, persistent sessions (especially on public URLs) or slightly reducing the efficacy of —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 101 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— session cookies. Nevertheless, VARIPADDR is more or less unavoidable if users are accessing Janus Web Server through “proxy farms”. The VARIPADDR parameter is only available in Sirius Mods version 6.0 and later. Valid only for WEBSERV ports. 5.7.114 WEBACCT xxxx This parameter specifies the default Model 204 account ID used for web logons for URLs where no userid is required. WEBACCT WEBUSER is the default. Valid only for WEBSERV ports. 5.7.115 WEBCOOKID This parameter indicates that an identifying “cookie” should be sent to a browser to distinguish multiple browsers coming through the same proxy server or running on the same machine. Many web features including logon caching and legacy support limit the number of connections available to a single user. The distinction between users is made based on userid and IP address. If many users are expected to use the same userid and to come from the same IP address (probably because they are using the same proxy server) WEBCOOKID can be used to distinguish these users via the web “cookies” feature. Note that some browsers do not support cookies (though most do) and end-users can turn off support of the cookies feature. An end-user using a browser that does not support cookies or has their support turned off will have difficulty using the legacy support feature and logon caching on a WEBCOOKID port. Valid only for WEBSERV ports. 5.7.116 WEBLH This parameter is a synonym for WEBLOGHOLD; see “WEBLOGHOLD xxxx” on page 103. 5.7.117 WEBLM This parameter is a synonym for WEBLOGMAX; see “WEBLOGMAX xxxx” on page 104. —————————————————————————————————————————— 102 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.118 WEBLOGCOOKIE cookie-name This parameter indicates that, for public URLs, Janus Web should log the user in with the userid specified by cookie-name. Normally, all public URL logins use the default public userid (usually WEBUSER). This parameter simply allows applications to set their own public userids. One way to do this is with the Janus Web API function $WEB_SET_COOKIE. If you specify the WEBLOGCOOKIE parameter, use caution if you also use the WEBPUBLOG parameter. WEBPUBLOG logins use CCASTAT or an external authorizer for public logins, therefore if a login cookie specifies a userid which has system privileges, a security breach is possible. For this reason, use of WEBLOGCOOKIE with WEBPUBLOG is not recommended, but it is not explicitly prohibited. Note that some browsers do not support cookies (though most do) and end-users can turn off support of the cookies feature. An end-user using a browser that does not support cookies or has their support turned off will be logged in using the default public userid (usually WEBUSER). Public logins which use a WEBLOGCOOKIE cookie will participate in web logging. Valid only for WEBSERV ports. 5.7.119 WEBLOGHOLD xxxx This parameter indicates that number of seconds that a “real” login should be saved for re-use on a web connection. A “real” login is either a login to a userid other than the WEBUSER userid or a login to the WEBUSER userid when the WEBPUBLOG parameter is set for a port. With ordinary web processing, every request for a page or image on a page is a separate connection. This means that if a set of URLs is logon protected, each protected image requires a logon. WEBLOGHOLD provides a way of reducing the number of logons and hence the overhead associated with these logons. In addition, by keeping web users logged on for some period after a request, monitoring and auditing is facilitated for these users. For more discussion of the logon caching feature, see the Janus Web Server Reference Manual. The default for WEBLOGHOLD is 0, which means that logon caching is not used for the port. WEBLH is a synonym for WEBLOGHOLD. Valid only for WEBSERV ports. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 103 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.7.120 WEBLOGMAX xxxx This parameter indicates the maximum number of cached login sessions to be held for a single user. This parameter has no effect unless the WEBLOGHOLD parameter is set to something other than 0. Since a single web page can contain many images, and since browsers often request images on a page in parallel, a single request for such a logon protected page can result in multiple simultaneous logons for the userid. Logon caching would then hold these logons, tying up several sdaemons in the process. WEBLOGMAX would prevent more than the indicated number of sdaemons to be used for a single user's requests. All login protected requests for a user are then threaded trough WEBLOGMAX users. This is generally not a problem since the typical bottleneck for most requests is network bandwidth, and multi-threading requests for a single user does not alleviate network bandwidth problems. For more discussion of the logon caching feature, see the Janus Web Server Reference Manual. WEBLM is a synonym for WEBLOGMAX. Valid only for WEBSERV ports. 5.7.121 WEBPL This parameter is a synonym for WEBPUBLOG; see “WEBPUBLOG”. 5.7.122 WEBPUBLOG This parameter indicates that a “real” login should be done for the WEBUSER userid for public URLs. The “real” login will be a trusted login so passwords will not be required from end-users, but the WEBUSER userid must be defined in CCASTAT or to the external authorizer (RACF, ACF2 or Top Secret) if WEBPUBLOG is specified for a port. If WEBPUBLOG is not specified, the WEBUSER userid will be logged on for public URLs whether or not it is defined in CCASTAT or to an external authorizer, and it will be given UPRIV = 0 (default user privileges). WEBPUBLOG can be used if even public logins should be logged by an external authorizer (as a matter of policy), or if non-standard privileges are to be assigned to the public user. Use caution if assigning any privileges to the WEBUSER userid, since this can be a potential security exposure. WEBPUBLOG might also be used to take advantage of the improved monitoring and auditing capabilities made possible by the WEBLOGHOLD parameter. WEBPL is a synonym for WEBPUBLOG. Valid only for WEBSERV ports. —————————————————————————————————————————— 104 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— 5.7.123 WEBREALM xxxx This parameter indicates the security “realm” of userids and passwords. If a browser encounters a login required response (401 Unauthorized) from a server, it will attempt to use a userid and password that it already has for the realm specified in this response even if the userid and password were for a different server. If the browser has no saved userid and password for the realm, it will put up a login pop-up window to prompt the end-user for a userid and password. On all known browsers this pop-up window will contain the name of the security realm. The default security realm for Janus Web ports is “Model 204” followed by (in parentheses) the jobname under MVS or the VM name under CMS. If the name of the realm specified with WEBREALM contains spaces or other Model 204 word separator characters, the realm must be specified inside of single-quotes. If the realm is to contain single-quotes, each single-quote must be doubled, as in JANUS DEFINE DATEWEB 80 WEBSERV 20 WEBREALM 'General Pepper''s Lonely Hearts Club' Most browsers will save userids and passwords for a security realm for an indefinite period of time during a browser session. Most browsers will also save the userid for a realm between browser sessions so that a user can simply enter the password without re-entering the userid for subsequent browser sessions, if appropriate. Some browsers, including old releases of Microsoft's Internet Explorer™, will save passwords (optionally under newer releases) between browser sessions. This is a major security hole at public workstations. This may be best handled by refusing to do any secure processing on the behalf of releases of web browsers that have this security flaw. Valid only for WEBSERV ports. 5.7.124 WEBSDMAX xxxx This parameter indicates the maximum number of sdaemons to be used for cached web logins. This parameter has no effect unless the WEBLOGHOLD parameter is set to something other than 0. Since there is no upper limit to the number of login requests that can come into a web port at a given instant, it is quite possible for a flurry of login requests to tie up every sdaemon, causing a variety of problems including making it impossible to connect to any Janus port. WEBSDMAX limits the number of sdaemons that will be used by a port for cached logins. If a new cached login is required, and WEBSDMAX will be exceeded, the oldest cached login session will be discarded even if it hasn't been around WEBLOGHOLD seconds. The default for WEBSDMAX is half the number of sdaemons defined to the Online. If sdaemons are used heavily for other purposes in the Online or there are multiple ports using the logon caching facility, WEBSDMAX should be adjusted down. For more discussion of the logon caching feature, see the Janus Web Server Reference Manual. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 105 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— WEBSM is a synonym for WEBSDMAX. This parameter is valid only for WEBSERV ports. 5.7.125 WEBSM This parameter is a synonym for WEBSDMAX; see “WEBSDMAX xxxx” on page 105. 5.7.126 WEBUSER xxxx This parameter specifies the default Model 204 user ID used for web logons for URLs where no userid is required. WEBUSER WEBUSER is the default. A client request for a non-protected URL, which does not require a logon, will run under the user ID specified in the WEBUSER parameter. See “WEBPUBLOG” on page 104 for a discussion about looking up this user ID (in CCASTAT or the external authorization facility). WEBUSER is valid for WEBSERV ports only. 5.7.127 WSFQUERY This parameter indicates that Janus is to issue a “Write Structured Field Query” request to any telnet client that connects to it. This is useful if a connecting client is not using one of the standard screen geometries — Model 2 (24 by 80), Model 3 (32 by 80), Model 4 (43 by 80), or Model 5 (27 by 132). Model 204 and many clients support more or less arbitrary geometries, but Model 204 cannot detect a non-standard geometry on a telnet client without the WSFQUERY option. If all connecting clients will be using the standard geometries, the tn3270 protocol correctly sends the model number, telling Model 204 the screen geometry. However, even if there are no non-standard screen sizes connecting to a Janus TNSERV port, there is little harm in specifying the WSFQUERY parameter, other than the slight delay in the WSF query being sent, and the response received. If the 3270 clients at a site support arbtrary geometries, it might be well worth experimenting with them, as there is no particular reason that any of the standard geometries are ideally suited to a particular workstation. The Model 204 command line and editor, and many UL/SPF applications, take advantage of all the space available on non-standard geometry 3270 emulators. To enable support for arbitray 3270 geometries, the SIRTERM system parameter's X'01' bit must be set. This parameter, like the Janus Telnet Server (described in the Janus Sockets Reference Manual), is available as of Sirius Mods version 6.9 and later. —————————————————————————————————————————— 106 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— Valid only for TNSERV ports. 5.7.128 XTAB table This parameter indicates the EBCDIC-to-ASCII, ASCII-to-EBCDIC, and character entity translation tables to be used for the port. You can specify a translation table that has not yet been loaded with the JANUS LOADXT command, but the table must be loaded before the port can be started. The default translation table is STANDARD, which is a fairly generic pair of EBCDIC-toASCII and ASCII-to-EBCDIC translate tables that was the only available option before Sirius Mods version 6.0. You can replace a translate table with the JANUS LOADXT command at any time, even if the port has active connections. For more information about translation, see “CHAR” on page 48. Valid for all port types, the XTAB parameter is available in Sirius Mods version 6.0 and later. 5.7.129 Janus port processing and examples The port number specified in JANUS DEFINE is the number to which TPC/IP applications refer. The portname specified in the command is the handle used by other JANUS commands to START, DRAIN and perform all other internal services against TCP/IP threads. For example JANUS DEFINE TRENDS 517 OPENSERV 10 ALLOCC CMD 'TRENDS 3.4' In this example a port named TRENDS is associated with TCP/IP port number 517. A maximum of 10 simultaneous connections are allowed. Because ALLOCC is specified, buffers are allocated for a thread only when a client connects to it. The subsystem “TRENDS” is automatically invoked with its command line variable set to 3.4. Each portname must be unique, but any number of different portnames may be associated with the same port number. However, at any point in time only one portname defined to a port may be STARTed. A specific port number can only be STARTed on a single online on any host. The ability to have multiple portnames associated with a port number is useful if you want to be able to invoke different versions of a program (say a 'test' and a 'production' version) on the same port at different times of the day. For example: —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 107 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— JANUS DEFINE ACCTPROD 1001 OPENSERV OPEN FILE PRODPROC CMD JANUS DEFINE ACCTTEST 1001 OPENSERV OPEN FILE TESTPROC CMD 20 'I 20 'I AA1' AA1' The number of DEFINE'd and START'ed ports may exceed the number of available sdaemons. For example, a site may have 100 users and a license to run 100 Janus connections. If each user was allowed to connect to any of 4 different systems, a System Administrator might run the following set of port definitions: JANUS JANUS JANUS JANUS DEFINE DEFINE DEFINE DEFINE RECVBL PAYABL CHCKBK GENLDG 517 518 519 520 OPENSERV OPENSERV OPENSERV OPENSERV 100 100 100 100 CMD CMD CMD CMD RECEIVBL PAYABLES CHCKBOOK GENRLDGR 400 connections are defined, but as long as no more than 100 simultaneous connections occur, no client will be refused a connection. In shops where users access more than one application this will be a common situation. Shops with windowed front-end software should remember that a single user may be able to initiate a number of simultaneous connections to Janus ports. System Administrators should plan for the number of Janus connections required, not the number of users on the network. JANUS DEFINE STORES 3000 OPENSERV 3 OPEN FILE STOREDAT CMD 'INCLUDE STORES.1' MASTER TIMEOUT 300 In the above example, a port called STORES is defined to TCP/IP port number 3000. A maximum of 3 simultaneous connections is allowed. File STOREDAT is automatically opened when a client connection is established, and procedure STORES.1 is INCLUDE'd. Users are timed out from this port after 5 minutes of inactivity. The MASTER parameter is specified on the previous port definition, making it the one that will be used for all Open Client connections that originate from within the Model 204 address space. JANUS DEFINE CONNECT_EXTERNAL 3001 OPENSERV 50 MASTER CMD 'DISCONNECT' The previous DEFINE command defines a port called CONNECT_EXTERNAL that allows 50 simultaneous connections. MASTER specifies that it is the port which will be used for Janus Open Client calls. CMD is set to DISCONNECT so that any client that attempts to connect to this port from another client will automatically be disconnected. A TCP/IP port definition created by JANUS DEFINE persists until the online is brought down or a JANUS DELETE is executed against it. To automate port definitions, the JANUS DEFINE and START commands may be stored in a Model 204 procedure file as a procedure, which may be executed by user zero. They can also be stored in the JANMAN database and executed via JANMAN commands (described in a later section —————————————————————————————————————————— 108 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINE —————————————————————————————————————————— of this document). Alternatively, the commands may be inserted directly in the user zero CCAIN stream, similar to dynamic allocation commands for files or printers. JANUS DEFINE DIRECT 810 IFDIAL 20 TIMEOUT 600 This example defines IFDIAL service on port 810. The service is called DIRECT, and 20 simultaneous connections are allowed, with an inactivity timeout of 10 minutes. JANUS DEFINE SQLIN 90210 SDS 150 AUTOLOAD This example defines SDS service at port 90210. The service is called SQLINT, 150 simultaneous connections are allowed, and the table definitions are automatically reloaded at the first user connection subsequent to any changes to the Janus Specialty Data Store catalog. The following DEFINE command specifies a web server at port 666 called WWW: JANUS DEFINE WWW 666 WEBSERV 300 WEBUSER WWWUSER CMD 'UTABLE LSTBL 12000' The command allows up to 300 simultaneous connections, and connections requesting URLs that do not require logons will appear in Model 204 with user ID WWWUSER. The CMD phrase sets LSTBL to 12000 for WWW users. URL processing is handled by rules specified on JANUS WEB subcommands — this is the default processing when CMD does not reroute processing to either an APSY or to a User Language procedure. The DEFINE command below specifies a web server at port 3278 called INTRANET: JANUS DEFINE INTRANET 3278 WEBSERV 50 TRACE 9 As many as 50 simultaneous connections are allowed, and the TRACE 1 and 8 bits are turned on, sending the header parameters and a TCP/IP packet trace to the audit trail. The following example defines a web server port called BENEFITS at port 3279 allowing up to 250 simultaneous connections: JANUS DEFINE BENEFITS 3279 WEBSERV 250 WEBUSER WWW OPEN FILE BENPROC CMD 'INCLUDE BENEFITS_SECURITY' The default logon ID for connections that do not require logons is WWW. Connecting users open file BENEFITS and execute the command specified by CMD; in this case, the Model 204 procedure BENEFITS_SECURITY is executed. Any command specified by CMD is processed before any JANUS WEB rules, but there must be an “ON” rule matching each incoming URL. If a URL is not matched by some active JANUS WEB ON rule, it will be rejected and the command specified by CMD in the JANUS DEFINE statement will not be executed. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 109 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Note: You can review the contents of any of your port definitions by issuing JANUS DISPLAY (“JANUS DISPLAY” on page 119) followed by the name of the port. 5.8 JANUS DEFINEIPGROUP This command creates a named group which contains any number of IP addresses. The IPGROUP can then be used to control Janus Web Server or Janus Sockets access based on IP address. JANUS DEFINEIPGROUP groupname ipaddress(es) JANUS DEFINEIPGROUP command syntax Where each parameter is positional and required: groupname A 1 - 30 character name of the group with which IP addresses are being associated for ALLOW and DISALLOW rules in JANUS WEB, JANUS CLSOCK, or JANUS SRVSOCK commands. ipaddress(es) A list of IP addresses or subnet masks in “dotted” format. IP addresses are formatted nnn.nnn.nnn.nnn. For example, 198.242.244.47 is a valid IP address. Subnet masks are formatted in one of two ways: With a slash separating the subnet identifier from the subnet mask, as in “198.242.244.0/255.255.255.0” ● With a dash (“-”) separating the subnet identifier from the number of subnet mask bits, as in “198.242.244.0-24”. All formats may be used in any combination, separated by spaces or commas, on the same command. ● Note: Translation of a name to an IP address is not supported on this command. The DEFINEIPGROUP command may be abbreviated DEFIPGROUP, DEFIPG, and DEFINEIPG. The following example builds an IP group called PRIVILEGED made of all IP addresses in the 198.242.0.0 subdomain (using 16 mask bits), all addresses in the 169.231.11.0 subdomain (using 24 mask bits) and the single IP address 184.194.222.7. JANUS DEFIPG PRIVILEGED 198.242.0.0-16 169.231.11.0-24 184.194.222.7 —————————————————————————————————————————— 110 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINEREMOTE —————————————————————————————————————————— 5.9 JANUS DEFINEREMOTE This command associates a remote server with a Janus OPENSERV port and specifies characteristics of connections with that remote server. See “JANUS DEFINE and JANUS DEFINEREMOTE Subcommands” on page 8 for a discussion of when you need to issue the JANUS DEFINE command. JANUS DEFINEREMOTE portname remotename host portnum [optional parms...] JANUS DEFINEREMOTE command syntax Where each of the first four parameters is positional and required: portname The name of the Janus port(s) with which a remote server is being associated. Wildcard characters may be used in portname, indicating that the remote server is associated with all previously defined SDS or OPENSERV ports matching the pattern. There must be at least one previously defined SDS or OPENSERV port matching portname. Any ports which match portname but have not yet been defined will not be associated with remotename, even if they are subsequently defined. remotename A 1 - 30 character name for the remote server to which this Janus port will connect and/or from which connections will be accepted. The remote server may be a Sybase SQL server, a Sybase or Janus Open Server, or another vendor's Open Server. Wildcard characters may not be used in the remotename specification. host The IP address or hostname for the device on which the server specified in remotename is running. portnum The port number on which the server specified in remotename is running. Janus Open Server, Sybase Open Server, and SQL Server names are case sensitive. If you are using server names that contain lower case characters, execute a *LOWER before running the JANUS DEFINEREMOTE. Valid abbreviations for DEFINEREMOTE are DEFREM, DEFREMOTE and DEFINEREM. The optional parameters are shown in the following sections. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 111 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.9.1 CHARSET xxx This parameter specifies the character set to use for this remote port, allowing override of either the default character set or the character set specified on the JANUS CHARSET subcommand. The default character set is iso_1. CHARSET has no effect on the operation of any application in Model 204. The name of the specified character set is simply forwarded to the target server for a Janus Open Client application. For further discussion, see “JANUS CHARSET” on page 30. 5.9.2 INONLY This parameter specifies that only incoming calls are allowed from this remote server, that is, Janus Open Client applications which are running on portname are not allowed to use $DB_xxx functions to connect with remotename. The default is to allow connections both to and from the remote server. If a site does not have Janus Open Client, INONLY is the default since outgoing connections cannot be established without Janus Open Client 5.9.3 LANGUAGE xxx This parameter specifies the language to use for this remote port, allowing override of either the default language or the language specified on the JANUS LANGUAGE subcommand. The default language is us_english. LANGUAGE has no effect on the operation of any application in Model 204. For further discussion, see “JANUS LANGUAGE” on page 137. 5.9.4 NOSITE This parameter specifies that an outgoing (Janus Open Client) connection is not to use a site handler, that is, it is to appear as a client to server rather than a server to server connection to the target server. Use of NOSITE makes it possible to connect to a remote server without the Janus port being defined to the that server; this is required for Microsoft SQL Server. When using Sybase or Omni SQL Server or Sybase Adaptive Server, the sp_addremotelogin procedure, which normally can translate M204 user IDs to Sybase user IDs, cannot be used on a client to server connection. 5.9.5 OPTSITE This parameter specifies that an outgoing (Janus Open Client) connection can choose to not use a site handler by using the NOSITE parameter on the $DB_OPEN call. That is, it can appear as a client to server rather than a server to server connection to the target server. —————————————————————————————————————————— 112 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINEREMOTE —————————————————————————————————————————— 5.9.6 OUTONLY This parameter specifies that only outgoing calls to this remote server are allowed. The default is to allow connections both to and from the remote server. If a site does not have Janus Open Server, OUTONLY is the default since incoming connections cannot be handled without Janus Open Server. 5.9.7 SITEACCT xxx This parameter specifies the Model 204 ACCOUNT for the site handler for the remote server. If no SITEACCT is specified the ACCOUNT for the user executing the DEFINEREMOTE command is used. 5.9.8 SITEUSER xxx This parameter specifies the Model 204 user ID for the site handler for the remote server. If no SITEUSER is specified the user ID for the user executing the DEFINEREMOTE command is used. 5.9.9 TIMEOUT xxx This parameter specifies the number of seconds without a logical connection after which the site handlers will log off and the connection to the remote server will be broken. The default TIMEOUT is 60 seconds. 5.9.10 TRUST, JANUS DEFINEREMOTE This parameter permits the port to initiate a user session for an incoming user ID by performing a trusted login and ignoring the password. To minimize the security hole introduced by this parameter, the VERIP parameter should also be specified when TRUST is specified. 5.9.11 VERIP This parameter specifies validation of the IP address of the connecting remote server. This indicates that Janus should reject a connection attempt by the remote server if the IP address does not match either the IP address specified on the JANUS DEFINEREMOTE command or the IP address found by doing a DNS name lookup on the host name specified on the JANUS DEFINEREMOTE command. VERIP does not provide bullet-proof security because it is not a difficult task to spoof (fake) an IP address. Nevertheless, it is better than nothing and should certainly be used whenever the TRUST parameter is specified. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 113 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.9.12 Janus remote server processing and examples Note that several of the optional parameters of JANUS DEFINEREMOTE use the term site handler. As mentioned in “JANUS DEFINE and JANUS DEFINEREMOTE Subcommands” on page 8, one reason a remote port must be defined is to allow a Janus Open Server port to accept requests from remote server host. A site handler is used for this purpose, and for Janus Open Client communications to remote servers without the NOSITE parameter. A site handler is an sdaemon that performs the task of multiplexing logical user connections across a physical connection to a remote server. The site handler appears as a Model 204 user the first time a logical connection is established with the remote server. The site handler remains logged on for as long as any logical connection exists. Then, after TIMEOUT seconds have elapsed the site handler also logs off. The site handler occupies an sdaemon thread and counts as a Janus connection. If a site handler is bumped, it is disconnected immediately irrespective of TIMEOUT, and all logical user connections to the remote server are lost. It is recommended that site handlers not be bumped. The rest of this section contains several examples of JANUS DEFINEREMOTE. JANUS DEFINE AGENTS OPENSERV 4021 CMD 'MAILLIST' JANUS DEFREM AGENTS AGENTS_SQL_SERVER RS6000 3010 INONLY SITEUSER 'GHOST' In the previous example the remote server AGENTS_SQL_SERVER is associated with port AGENTS. AGENTS_SQL_SERVER is running on a host name RS6000 at port number 3010. INONLY specifies that the port cannot be used by Janus Open Client functions. The site handler will appear as user ID ‘GHOST’ and will timeout 60 seconds after the last user connection terminates (using the default TIMEOUT). Each user connecting from the remote server is thrown directly into subsystem MAILLIST by the JANUS DEFINE command. *LOWER JANUS DEFINE PRODUCERS OPENSERV 4022 CMD 'CONTACTS' JANUS DEFREM PRODUCERS big_shots RS6000 3030 SITEUSER 'CASPER' JANUS START PRODUCERS *UPPER In this example we first set the session to mixed case with *LOWER to allow us to define a lower-case remote server name. Next we define the Janus Open Server port PRODUCERS and associate it with port number 4022 and the subsystem “CONTACTS”. We designate the remote server (for incoming and outgoing connections) as a server named big_shots running on host RS6000 at port 3030 with the site handler having Model 204 user id CASPER. Then we start port PRODUCERS, making it available for connections. —————————————————————————————————————————— 114 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DEFINEREMOTE —————————————————————————————————————————— *LOWER JANUS DEFINE DIRECTORS OPENSERV 4027 CMD 'WANNABE' MASTER UPCASE JANUS DEFINEREMOTE DIR* lights_cameras_action RS6000 3037 SITEUSER 'ICHABOD' OUTONLY JANUS START DIRECTORS *UPPER In this example we set the session to mixed case with *LOWER to allow us to define a lower-case remote server name. Next we define the Janus Open Server port DIRECTORS and associate it with a port and subsystem. The port also acts as the MASTER port for Janus Open Client connections and forces upper case translation of parameter names. We designate the remote server as a server named lights_cameras_action running on host RS6000 at port 3037 with the site handler having 204 user ID ICHABOD. The port allows only outgoing connections. Then we start port DIRECTORS, making it available for connections, and reset *UPPER status. JANUS DEFINE WRITERS_CONTRACT OPENSERV 4012 CMD 'UTILITIES' UPCASE JANUS DEFINE WRITERS_INHOUSE OPENSERV 4013 CMD 'LOGOFF' UPCASE MASTER JANUS DEFINEREMOTE WRITERS* SCRIBBLERS SPARC2 3013 JANUS START WRI* In the above example port WRITERS_CONTRACT is defined at port 4012 and WRITERS_INHOUSE defined at port 4013, and a remote server SCRIBBLERS is associated with both of them. SCRIBBLERS runs on host SPARC2 at port 3013. Note that we don't specify OUTONLY on port 4013 but if any client attempts to connect, a 'LOGOFF' command will execute, making this effectively a port for the exclusive use of Janus Open Client applications front-ended within the Model 204 online. Port WRITERS_CONTRACT however will put externally front-ended clients into subsystem UTILITIES, and the DEFINEREMOTE definition will allow the UTILITIES application to access the same remote server as users going out on WRITERS_INHOUSE. A configuration such as the one above shows how a similar Open Client access is made available to two versions of an application, a 3270 version running in the Model 204 online, and a workstation version accessing Model 204 over Janus Open Server connections. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 115 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.10 JANUS DEFINEUSGROUP This command creates a named group which contains any number of user IDs. The USGROUP can then be used to control web access or CLSOCK access based on user ID. JANUS DEFINEUSGROUP groupname userid(s) JANUS DEFINEUSGROUP command syntax Where each parameter is positional and required: groupname A 1 - 30 character name of the group with which user IDs are being associated for ALLOW and DISALLOW rules in JANUS WEB or JANUS CLSOCK commands. user id(s) A list of Model 204 user IDs. User IDs may be wildcarded using the wildcard characters described at the beginning of the chapter. The DEFINEUSGROUP command may be abbreviated DEFUSGROUP, DEFUSG, or DEFINEUSG. The following command associates the user group name CLOWNS with the user ID MILKY and with all user IDs starting with BOZO: JANUS DEFUSG CLOWNS MILKY BOZO* 5.11 JANUS DELCA This command removes a “trusted” certifying authority's (often abbreviated as CA) certificate from a port. The JANUS DELCA command removes certifying authority certificates added with the JANUS ADDCA command (“JANUS ADDCA” on page 27). JANUS DELCA portname filename procname JANUS DELCA command syntax Where each parameter is positional and required: portname The defined JANUS port to from which the certificates are to be removed. Can include wildcards. filename The name of the file that contains the CA certificate. —————————————————————————————————————————— 116 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DELCA —————————————————————————————————————————— procname The name of the procedure that contains the base64 encoded CA certificates to be removed. Because the certificates are copied into memory at the time of the JANUS ADDCA command, neither the file nor the procedure containing the certificate in the JANUS DELCA are opened during JANUS DELCA processing and, in fact, neither the file nor the procedure actually need to be accessible or to even exist any more at the time of the JANUS DELCA command. The JANUS DELCA command is only available in Sirius Mods version 6.0 and later. 5.12 JANUS DELETE This deletes the definition of the named port. The port must not be in the START state when DELETE is issued. JANUS DELETE portname JANUS DELETE command syntax Where 'portname' is the name of the port definition to delete. Once a port definition is deleted it must be redefined, using JANUS DEFINE, before it can be started again. JANUS DELETE SIMPS* In the above example all definitions for port names beginning with “SIMPS” are deleted from the Online. 5.13 JANUS DELETEIPGROUP This command deletes a previously defined IP group. JANUS DELETEIPGROUP groupname JANUS DELETEIPGROUP command syntax Where the single parameter is required: groupname A 1 - 30 character name of the IP group being deleted. The DELETEIPGROUP command may be abbreviated DELIPGROUP, DELIPG, and DELETEIPG, so JANUS DELETEIPGROUP ACCOUNTING_DEPT —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 117 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Deletes the IP group definition for ACCOUNTING_DEPT. The DELETEIPGROUP command will fail if there are active JANUS WEB rules that reference the IP group. See “Rule matching order and examples” on page 196 for a discussion of removing rules. 5.14 JANUS DELETEREMOTE This deletes the association between a port and its remote server. There must be no logical connections with the remote server when the association is broken. JANUS DELETEREMOTE portname remotename JANUS DELETEREMOTE command syntax Where 'portname' identifies the ports whose remote server definitions are to be deleted, and 'remotename' identifies the remote server names to be deleted. The portname and remotename criteria jointly constrain the deletion. JANUS DELETEREMOTE ONE* TEN* The above example would delete the remote server definitions for remote servers beginning with “TEN” (TENDER, TENNESSEE, TEN_COMMANDMENTS, etc.) which were associated with ports beginning with “ONE” (ONEROUS, ONE_MORE_FOR_THE_ROAD, ONEDGE, etc.). Valid abbreviations for DELETEREMOTE are DELREM, DELREMOTE and DELETEREM. 5.15 JANUS DELETEUSGROUP This command deletes a previously created User Id grouping. JANUS DELETEUSGROUP groupname JANUS DELETEUSGROUP command. Where the single parameter is required: groupname A 1 - 30 character name of the User Id group being deleted. The DELETEUSGROUP command may be abbreviated DELUSGROUP, DELUSG, and DELETEUSG, so —————————————————————————————————————————— 118 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DELETEUSGROUP —————————————————————————————————————————— JANUS DELETEUSGROUP LEGAL* deletes all user ID groups that begin with the characters “LEGAL”. The DELETEUSGROUP command will fail if there are active JANUS WEB rules that reference the User ID group. See “Rule matching order and examples” on page 196 for a discussion about removing rules. 5.16 JANUS DISPLAY This command displays the definition of the named port. JANUS DISPLAY [ portname ] JANUS DISPLAY command syntax Where portname identifies the port(s) to be displayed. JANUS DISPLAY output is in the form of a series of JANUS DEFINE commands, and it may be captured for re-execution with a Model 204 USE command or with a $COMMxxx function, as described in the Sirius Functions Reference Manual. If portname is omitted, it defaults to an asterisk (*), which displays all port definitions. The command that follows displays all definitions for ports whose name contains the string TIM. This includes port names like STIMPY, TIMBER, and TIM. JANUS DISPLAY *TIM* This command displays all JANUS port definitions: JANUS DISPLAY —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 119 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.17 JANUS DISPLAYCA This command displays information about the contents of “trusted” certifying authority certificates that have been added to a port with the JANUS ADDCA command (“JANUS ADDCA” on page 27). Sample DISPLAYCA output that shows the kind of information displayed follows the parameter descriptions, below. Certifying authority is often abbreviated as CA. DISCA is a valid synonym for DISPLAYCA. JANUS DISPLAYCA [portname] [filename] [procname] JANUS DISPLAYCA command syntax Where each parameter is positional, can be specified with pattern wildcards, and can be replaced with an asterisk (*), which returns all values for that category. You may omit a parameter (which is equivalent to specifying an asterisk value for it) if the parameters to its right are omitted. portname The defined JANUS port whose trusted certificate information is to be displayed. filename The name of the file that contains trusted CA certificates whose information you want to display. procname The name of the procedure that contains the CA certificate whose information you want to display. Because the certificates are copied into memory at the time of the JANUS ADDCA command, neither the file nor the procedure containing the certificate is opened during JANUS DISPLAYCA processing. In fact, neither the file nor the procedure need to be accessible or even to exist at the time of the JANUS DISPLAYCA. The following example shows the format of DISPLAYCA output for a Sirius-certified certificate. Note that it includes the ADDCA command that loaded the certificate. JANUS ADDCA SSLCLIENT TESTPROC TEST.CERT * Subject: sirius|sirius-software.com|www.sirius-software.com * Software Development * Sirius Software Inc. * Cambridge, MA, US * Issuer: sirius|sirius-software.com|www.sirius-software.com * Software Development * Sirius Software Inc. * Cambridge, MA, US * Version: 1 * Serial no.: xxxx:yyyy * Valid from: Wed, 26 Mar 2003 15:05:50 GMT * Valid to: Mon, 13 Jun 2011 15:05:50 GMT * Key length: 512 bits * MD5 hash: abcd:efgh:ijkl:mnop:qrst:uvwx:yz12:3456 * SHA hash: aabb:ccdd:eeff:gghh:iijj:kkll:mmnn:oopp:qqrr:sstt —————————————————————————————————————————— 120 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DISPLAYCA —————————————————————————————————————————— The JANUS DISPLAYCA command is available only in Sirius Mods version 6.0 and later. 5.18 JANUS DISPLAYREMOTE This displays the definitions of remote servers for the specified ports and/or remote servers. JANUS DISPLAYREMOTE portname remotename JANUS DISPLAYREMOTE command syntax Where 'portname' identifies the ports whose remote server definitions are to be displayed, and 'remotename' identifies the remote server names to be displayed. The portname and remotename criteria jointly constrain the display. JANUS DISPLAYREMOTE WIZ* TIN* The above example would display the remote server definitions for remote servers beginning with “TIN” (TINMAN, TINSOLDIER, TINA, etc.) which were associated with ports beginning with “WIZ” (WIZARD, WIZBANG, etc.). JANUS DISPLAYREMOTE output is in the form of a series of JANUS DEFINEREMOTE commands, and may be captured for re-execution with a Model 204 USE command or with a $COMMxxx function, as described in Sirius Functions Reference Manual. Valid abbreviations for DISPLAYREMOTE are DISREM, DISREMOTE and DISPLAYREM. JANUS DISREM * HO??? In the above example, remote server definitions are displayed for those with names that are 5 characters long beginning with “HO” (HOMER, HOLLY, etc.). on any port (specified by the “*”). 5.19 JANUS DISPLAYSOCK This displays the rules in effect (the active rules) for one or more more specified CLSOCK, DEBUGGERCLIENT, SRVSOCK, or FTPSERVER ports. JANUS DISPLAYSOCK portname JANUS DISPLAYSOCK command syntax —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 121 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Where portname identifies the ports whose rules are to be displayed. JANUS DISPLAYSOCK output is in the form of a series of JANUS CLSOCK and JANUS SRVSOCK commands, and it may be captured for re-execution with a Model 204 USE command or with a $COMMxxx function, as described in Sirius Functions Reference Manual. If JANUS DISPLAYSOCK is specified for an FTP port, it displays the FTP entities defined for the port, in addition to the command's usual output. The FTP entities include folders created, rules defined, and permissions granted. DISSOCK is a valid abbreviation for DISPLAYSOCK. The following command will display the rules in effect for all CLSOCK, DEBUGGERCLIENT, SRVSOCK, and FTPSERVER ports whose names begin with “OZ”: JANUS DISSOCK OZ* JANUS rules are not shown if they were made obsolete by subsequent rules; the JANUS DISPLAYSOCK command only shows rules that are active. 5.20 JANUS DISPLAYTRACE This displays the trace settings for the named port(s). JANUS DISPLAYTRACE [portname] JANUS DISPLAYTRACE command syntax Where portname The name of the port(s) for which to display trace settings. If portname is not specified, the trace settings for all Janus ports are displayed. DISTRACE can be used as a synonym for DISPLAYTRACE. The output from the DISPLAYTRACE command includes one line that begins with an asterisk (*) and shows the TRACE setting from the port definition, followed by a line showing each JANUS TRACE command currently in effect for the port. For more information on the meaning of the values in the JANUS TRACE command, see “JANUS TRACE” on page 155. —————————————————————————————————————————— 122 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DISPLAYTRACE —————————————————————————————————————————— The DISPLAYTRACE command was introduced in version 6.0 of the Sirius Mods. Before that, the JANUS DISPLAYDEBUG command performed the operations described for the JANUS DISPLAYTRACE command. As of version 6.5, the JANUS DISPLAYDEBUG command is no longer available. 5.21 JANUS DISPLAYWEB This command displays the rules in effect (the active rules) for a specified WEBSERV port. JANUS DISPLAYWEB [portname] [ruletype [url] ] JANUS DISPLAYWEB command syntax Where portname identifies the WEBSERV port whose rules are to be displayed. It can contain wildcards so that rules for multiple ports can be displayed with a single command. Portname is optional; if omitted, all rules for all WEBSERV ports are displayed. ruletype is the type of web rules to be displayed. Valid types are ALLOW, ON, REDIRECT, SCREEN (in version 5.0 and later of Sirius Mods), and TYPE. Ruletype is optional; if omitted, all rules for portname are displayed. Note that ALLOW will also display DISALLOW rules, and REDIRECT will also display NOREDIRECT rules. JANUS DISPLAYWEB output is in the form of a series of JANUS WEB commands, and may be captured for re-execution with a Model 204 USE command or with a $COMMxxx function, as described in Sirius Functions Reference Manual. JANUS WEB commands are not shown if they were made obsolete by subsequent commands. The JANUS DISPLAYWEB command only shows rules that are active. DISWEB is a valid abbreviation for DISPLAYWEB. For example, JANUS DISWEB OZ* shows the rules in effect for all WEBSERV ports whose names begin with “OZ”, would dislay web rules for all ports with names beginning with ‘WEB’ while JANUS DISWEB —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 123 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— would display web rules for all web ports. To see all rules that control access to URL's on port OZSEC, simply type JANUS DISWEB OZSEC ALLOW In Sirius Mods version 6.2 and later it is possible to specify a URL in the JANUS DISWEB command as in JANUS DISWEB MAGIC ON /HOUSECUP/STANDINGS If the URL, as in this example, contains no wildcards, all rules that might apply to the URL are displayed but it is the last one displayed that would actually be applied to the URL should the URL be requested. If the URL specified in the JANUS DISWEB command contains one or more wildcards such as JANUS DISWEB MAGIC ON /HOUSECUP/* all rules that might apply to any URL that matches the wildcard URL are displayed, that is an rule that is a subset or superset of or has an overlap with the indicated rule. In the above example, rules that would be displayed could include JANUS WEB MAGIC ON * CMD 'GENERIC' JANUS WEB MAGIC ON /HOUSE* CMD 'HOUSE *' JANUS WEB MAGIC ON *.GIF OPEN FILE IMAGES SEND *.GIF JANUS WEB MAGIC ON /HOUSECUP/STANDINGS CMD 'CUP STANDINGS' Specifying a specific URL in a JANUS DISWEB command can help determine which rules would apply to that URL. Specifying a wildcard URL in a JANUS DISWEB command can help determine which set of commands might apply to a set of URLs though the results might be confusing if JANUS WEB rules of a particular type (ON, REDIRECT, TYPE, ALLOW, DEBUG) contain a mix of rules that contain fixed prefixes (like /FOO/*) and suffixes (like *.HTML). Mixing prefix and suffix rules is, in any case, a good formula for confusion so is best avoided if possible. 5.22 JANUS DISPXT This command displays either a list of all loaded translate tables or the contents of the single translate table that you specify. Translate tables are used to convert received input or transmitted output on Janus connections. They are described further in “Translate tables” on page 9. JANUS DISPXT [xtable] JANUS DISPXT command syntax —————————————————————————————————————————— 124 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS DISPXT —————————————————————————————————————————— Where: xtable Identifies a translate table to be displayed. If no table name is specified, all currently loaded translate tables are displayed. Each translate table consists of a pair of tables of hexadecimal values, one table for ASCII to EBCDIC translation and one for EBCDIC to ASCII. The default translation table is named STANDARD. You can see the mappings in that table with: JANUS DISPXT STANDARD For ease of viewing and editing the default table, you might want to create a procedure like the following: DELETE PROC -2 USE PROC -2 JANUS DISPXT STANDARD E -2 ... For information about loading translate tables, see “JANUS LOADXT” on page 139. 5.23 JANUS DOMAIN This specifies the domain to the Model 204 online. JANUS DOMAIN domainname JANUS DOMAIN command syntax Where domainname is the Internet domain name. The JANUS DOMAIN command only has an effect when running in an IBM (TCPTYPE=IBM) TCP/IP environment. If domainname is left blank, the JANUS DOMAIN command displays the current domain name. JANUS DOMAIN sirius-software.com In the above example the domain name is set to “sirius-software.com”. The JANUS DOMAIN command need only be executed if your site uses IBM TCP/IP and you wish to refer to host names without the domain name qualifiers. Host names are referenced in the JANUS DEFINEREMOTE command, the JANUS DEFINE command for a CLSOCK port, and the “connect” $functions in Janus Sockets. These include, the $sock_conn function and the New method for the Socket class. Host names are also used in the Page and Host methods of the HTTPRequest class. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 125 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— For example, to retrieve a page on host hockey.sirius-software.com one could write: %req is object httpRequest ... %req = new %req:host ='hockey.sirius-software.com' ... However, if the domain name is set to “sirius-software.com” in the Online in which this request is running, the above request could also be written as: %req is object httpRequest ... %req = new %req:host ='hockey' ... The correct value to use in the JANUS DOMAIN command is usually the value to which DOMAINORIGIN is set in file TCPIP DATA (under VM) or xxxxxx.TCPIP.DATA (under MVS). 5.24 JANUS DRAIN This prevents new connections from being initiated on the named port(s), and has no effect on active connections. JANUS DRAIN portname JANUS DRAIN command syntax Where portname is the name of the port(s) to drain. Once a DRAIN is executed against a port, no users may access it until it is started again via the JANUS START command. Current connections are not affected by the DRAIN subcommand. The DRAIN subcommand returns immediately, but activity on the port does not end until all current connections are closed. JANUS DRAIN HOMER?? In the above example, all ports with 7-character names beginning with HOMER are placed in a drain state. —————————————————————————————————————————— 126 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS FTP —————————————————————————————————————————— 5.25 JANUS FTP The JANUS FTP command defines the rules for a Janus FTP Server running on a Janus Sockets FTP (FTPSERVER) port. These rules primarily control access to the files exposed by the FTP server. JANUS FTP portname rule_type other_parameters JANUS FTP command syntax The first two parameters are positional and are required: portname The name (thirty characters or fewer) of the FTP port, or a pattern specifying a set of ports, for which the rule is being defined. Wildcards are allowed. The Janus definition of the port or ports must include the FTPSERVER parameter. rule_type The rule_type specifies the sort of rule being specified for the port(s). Valid rule_types are: other_ parameters ASSIGN Creates FTP folders and maps them to Model 204 files. DEASSIGN Removes FTP folders. ALLOW Grants read or write access to a folder created with FTP ASSIGN. DISALLOW Revokes read or write access to a folder. HOME Specifies a home folder (initial location at login) for a user. ON Sets up overrides, by specifying files to be opened and commands to be executed when a specific FTP operation is performed. SUFFIX Allows specification of the transfer mode (text or binary) of procedures/files by suffix (for example, .html, .xml). The additional parameters allowed for the JANUS FTP command depend on the rule_type that is specified. The various rule_types and their parameters are described in the following alphabetically ordered sections. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 127 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— You must specify at least three JANUS FTP commands — one each of FTP ASSIGN, FTP ALLOW, and FTP HOME — and it typically takes a set of JANUS FTP commands to fully specify the rules for an FTP server port. For instance, it may take a number of commands to specify the folders that are available for access, the users that may connect, and the privileges and home folders of the users. In practice, the first of the JANUS FTP commands to issue is FTP ASSIGN. For more examples and more information about Janus FTP support, see the Janus Sockets Reference Manual. 5.25.1 JANUS FTP ALLOW This command is used to grant user access to a folder in addition to any access granted via a DEFAULTPRIVS parameter on the FTP ASSIGN (“JANUS FTP ASSIGN” on page 129) for the server port. JANUS FTP portname ALLOW foldername READ | WRITE TO [USER user] | [USGROUP usgroup] | ANONYMOUS | ALL JANUS FTP ALLOW comand syntax Where: portname Must be a previously defined Janus FTP Server port. foldername A folder previously created with JANUS FTP ASSIGN. READ or WRITE The folder access privileges being granted. One of these must be specified: TO READ FTP get (RETR command) and directory listings (LIST) are permitted. Also, the FTP client or user can cd (change directory, CWD) into this directory. WRITE READ privileges plus permission for FTP put, delete, and rename (STOR, DEL, RNFR, and RNTO). To whom access is being granted to foldername. One of these options must be specified, and only one of these per folder may be issued. To modify an earlier ALLOW rule, first use FTP DISALLOW (“JANUS FTP DISALLOW” on page 132). USER user A Model 204 user ID. The user is not checked for existence when this command is issued. —————————————————————————————————————————— 128 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS FTP —————————————————————————————————————————— USRGROUP usrgroup A user group created with the JANUS DEFINEUSGROUP command (“JANUS DEFINEUSGROUP” on page 116). The group is not checked for existence when this command is issued. ANONYMOUS Anonymous users. ALL All Model 204 users (except the ANONYMOUS user). Examples of valid FTP ALLOW commands follow: JANUS FTP FTP01 ALLOW /ANON READ TO ANONYMOUS JANUS FTP FTP01 ALLOW /GLWHOME WRITE TO USER GLW JANUS FTP FTP01 ALLOW /ALL READ TO ALL JANUS FTP FTP01 ALLOW /GLWHOME READ TO USGROUP FTP 5.25.2 JANUS FTP ASSIGN This command creates an FTP folder for a previously defined FTP port. JANUS FTP portname ASSIGN foldername [ TO FILE filename ] [ DEFAULTPRIVS READ | WRITE ] [ PREFIX [. | /] ] JANUS FTP ASSIGN comand syntax Where: portname Must be a previously defined Janus FTP Server port. foldername The name of the FTP folder being created. TO FILE filename The Model 204 procedure file being associated with foldername. DEFAULTPRIVS The privileges a user gets unless a JANUS FTP ALLOW rule gives them greater access. If DEFAULTPRIVS is not specified, no access is permitted except that granted by FTP ALLOW rules. Default privileges do not apply to ANONYMOUS access. Any ANONYMOUS access must be granted with an FTP ALLOW rule. The privileges allowed are READ and WRITE, one of which must be specified, as discussed in “JANUS FTP ALLOW” on page 128. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 129 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— PREFIX Invokes prefixing for this folder. Files uploaded to this folder by FTP clients are stored with the name of the folder prefixed to the filename. File MYFILE uploaded to folder ANNUAL becomes procedure /ANNUAL/MYFILE. PREFIX may be be followed by a “prefix character” — forward slash ( / ) or period (.) — which is used as the separator in folder names. The default is a forward slash. Note: The characters in the prefix string are added to and do increase the length of the procedure name, whose Model 204 limit is 255. You can dynamically assign folders once a port is started, but you may not issue multiple ASSIGNs for the same folder. To reassign a folder, you must first remove the assignment using JANUS FTP DEASSIGN (“JANUS FTP DEASSIGN” on page 131). You may not deassign a folder once a port is started, however; in this case, you must first drain the folder using the JANUS DRAIN command (“JANUS DRAIN” on page 126). If you use a single JANUS FTP ASSIGN to create a folder such as /A/B/C, the following FTP change directory command works as expected: cd /A/B/C However, you cannot use cd to move to the intermediate folder levels /A and /A/B, unless each of these levels is also defined with an individual JANUS FTP ASSIGN command. In addition to defining /A, /A/B, and /A/B/C as three separate folders with three ASSIGNs, allowing navigation to all three levels also requires granting at least READ access at each level. The following statements create this three-level folder structure: JANUS FTP FTPJ1 ASSIGN /A TO FILE JPROC DEFAULTPRIVS READ JANUS FTP FTPJ1 ASSIGN /A/B TO FILE JPROC DEFAULTPRIVS READ JANUS FTP FTPJ1 ASSIGN /A/B/C TO FILE JPROC DEFAULTPRIVS READ The statements above create three folders that point to the same underlying procedure file. FTP clients will display and be able to navigate up and down this directory tree. In this case, however, clients will see the same procedures at any folder level they view. You can adjust this outcome by adding prefixing to the assignments: JANUS FTP FTPJ1 DEFAULTPRIVS JANUS FTP FTPJ1 DEFAULTPRIVS JANUS FTP FTPJ1 DEFAULTPRIVS ASSIGN /A TO FILE JPROC READ PREFIX ASSIGN /A/B TO FILE JPROC READ PREFIX ASSIGN /A/B/C TO FILE JPROC READ PREFIX - —————————————————————————————————————————— 130 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS FTP —————————————————————————————————————————— As a result: ● ● The names of all files uploaded to these FTP server folders are prefixed with the name of the folder to which they are uploaded. The INFO file uploaded to folder /A/B/C is stored as /A/B/C/INFO. To clients, a display of the list of the files in any folder contains only the files that are prefixed with that folder name. Note: Such a display may also include files that belong to a subfolder: for example, the /A/B/C/INFO file will be displayed in a list of the files in folder /A as /A/B/C/INFO, in a list of the files in folder B/ as /B/C/INFO, and in a list of the files in folder C/ as /C/INFO. An alternative to prefixing in this case is to assign each folder to its own procedure file, as shown below. Then a display to a client of the list of the files in any folder contains all the files that are stored in that procedure file, without regard for prefixes, if any, or for how the files got there: JANUS FTP FTPJ1 ASSIGN /A TO FILE JPROC1 DEFAULTPRIVS READ JANUS FTP FTPJ1 ASSIGN /A/B TO FILE JPROC2 DEFAULTPRIVS READ JANUS FTP FTPJ1 ASSIGN /A/B/C TO FILE JPROC3 DEFAULTPRIVS READ Of course, in all the examples above, you can use FTP ALLOW commands (along with or in place of the DEFAULTPRIVS parameter of FTP ASSIGN) to diversify user access. For example: JANUS FTP FTPJ1 ASSIGN /A TO FILE JPROC1 DEFAULTPRIVS WRITE JANUS FTP FTPJ1 ASSIGN /A/B TO FILE JPROC2 DEFAULTPRIVS READ JANUS FTP FTPJ1 ASSIGN /A/B/C TO FILE JPROC3 DEFAULTPRIVS READ JANUS FTP FTPJ1 ALLOW /A/B WRITE TO USGROUP DEV JANUS FTP FTPJ1 ALLOW /A/B/C WRITE TO USER SUPER A benefit of predefining a folder tree like /A, /A/B, and /A/B/C is that, by making the folder names match the names of the directories on your workstation, you can then upload entire directories and subdirectories in one request, if your FTP client permits. The Janus FTP Server does not currently support client requests to create (or delete or rename) a folder, so the required directry/subdirectory structure must preexist on the server before a client can upload files arranged in such a structure. 5.25.3 JANUS FTP DEASSIGN This command removes an existing FTP folder from a Janus FTP port. JANUS FTP portname DEASSIGN foldername JANUS FTP ASSIGN comand syntax —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 131 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Where: portname Must be a previously defined Janus FTP Server port. foldername A folder previously created with JANUS FTP ASSIGN. Once an FTP Server port is started, no FTP DEASSIGN commands may be issued for it; the port must first be drained (using JANUS DRAIN, described in “JANUS DRAIN” on page 126. A folder may not be removed with DEASSIGN if it is referred to by FTP ALLOW, HOME, or ON rules. Example FTP DEASSIGN commands follow: JANUS FTP FTP04 DEASSIGN /TEMPAREA JANUS FTP FTPANON DEASSIGN /JUNK 5.25.4 JANUS FTP DISALLOW This command revokes folder access rights that were previously granted using JANUS FTP ALLOW. JANUS FTP portname DISALLOW foldername TO [USER user] | [USGROUP usgroup] | ANONYMOUS | ALL JANUS FTP DISALLOW comand syntax Where: portname Must be a previously defined Janus FTP Server port. foldername A folder previously created with JANUS FTP ASSIGN. TO Specifies whose access to foldername is to be taken away. Users not previously specified by FTP ALLOW are ignored. One of these options must be specified: USER user A Model 204 user ID. The user is not checked for existence when this command is issued. USRGROUP usrgroup A user group created with the JANUS DEFINEUSGROUP command (“JANUS DEFINEUSGROUP” on page 116). The group is not checked for existence when this command is issued. —————————————————————————————————————————— 132 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS FTP —————————————————————————————————————————— ANONYMOUS Anonymous users. ALL All Model 204 users (except the ANONYMOUS user). An example DISALLOW command follows: JANUS FTP FTP01 DISALLOW /PUB0 TO USER XXXX 5.25.5 JANUS FTP HOME This command identifies the folder where an FTP user is placed when they log in. JANUS FTP portname HOME foldername TO [USER user] | [USGROUP usgroup] | ANONYMOUS | ALL JANUS FTP HOME comand syntax Where: portname Must be a previously defined Janus FTP Server port. foldername A folder previously created with JANUS FTP ASSIGN. TO The TO clause identifies for whom a home folder is to be set up. One of these options must be specified: USER user A Model 204 user ID. The user is not checked for existence when this command is issued. USRGROUP usrgroup A user group created with the JANUS DEFUSG command. The group is not checked for existence when this command is issued. ANONYMOUS Anonymous users. ALL All Model 204 users (except the ANONYMOUS user). Note: All Janus FTP server users must have a home folder assigned. When a user logs in, the JANUS FTP HOME commands for the port are used as a rule set to select a home folder. The following steps are then applied to the home rule set to determine a home folder: 1. If the user is ANONYMOUS and there is an ANONYMOUS entry, use it; but if there is no ANONYMOUS entry, reject the login. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 133 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 2. If the user is not ANONYMOUS, do the following: a. If an FTP HOME rule specifies the user on a USER clause, use that folder. b. If no USER clause matches, but the user is in a group specified in an FTP HOME rule USGROUP, use that folder. c. If no USGROUP group contains the user, but an ALL rule is present, use that folder. d. If no FTP HOME rule matches, the login is rejected. Example FTP HOME commands follow: JANUS FTP FTP01 HOME /GLW2HOME TO USER GLW2 JANUS FTP FTP01 HOME /ALL TO ALL JANUS FTP FTP01 HOME /GLWHOME TO USGROUP FTP 5.25.6 JANUS FTP ON This command lets you override the default processing of an FTP operation (service command) with your own version. JANUS FTP portname ON foldername | * STOR | RETR | LIST | RNTO | DELE [OPEN fg [[AND fg] ...]] CMD cmd [[AND cmd] ...] | DEFAULT JANUS FTP ON comand syntax Where: portname Must be a previously defined FTP Server port. foldername A folder previously created with JANUS FTP ASSIGN. If an asterisk (*) is specified instead of a folder name, the override is used for all folders on the port. STOR | RETR | LIST | RNTO | DELE Names the operation being overriden (one of the following must be selected). For a list of all the FTP commands supported by Janus FTP, including those not available for override, see the Janus Sockets Reference Manual. —————————————————————————————————————————— 134 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS FTP —————————————————————————————————————————— This option STOR RETR LIST RNTO DELE Overrides this operation FTP put (upload files) FTP get (download files) FTP ls or dir (list files in wide or narrow format) FTP rename FTP delete OPEN fg Lists one or more files or groups to open before the commands specified on the CMD clause are run. If you specify multiple files or groups, they must be separated by AND keywords. Each fg term has the following format, where you can specify individual open privileges (which default to X'0221'): [FILE | GROUP] fgname [[WITH] privs] CMD cmd Lists one or more Model 204 commands to execute to perform the override. If more than one is specified, they must be separated by AND keywords. Any command that contains blanks must be enclosed in quotes. The total length of commands plus one overhead byte per command may not exceed 255 bytes. DEFAULT Resets any previous FTP ON for the folder, restoring the default handling of the operation specified in that ON rule. In short, to reverse an ON, use DEFAULT. Note: For a given operation and folder, any previous ON rule must be be turned off with DEFAULT before a new FTP ON is issued. Example FTP ON commands follow: JANUS FTP FTP05 ON /SPLAT STOR OPEN FTPTEST WITH X'BFFF' CMD 'I POV.STOR' JANUS FTP FTP05 ON /SPLAT LIST OPEN FILE FTPTEST CMD 'I POV.LIST' JANUS FTP FTP05 ON * LIST CMD 'SUB1' —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 135 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.25.7 JANUS FTP SUFFIX This command lets you specify any file types that a Janus FTP Server should treat as text data for storage and translation purposes (even if received under BINARY transfer mode). This permits Janus FTP to work with those FTP clients that incorrectly send all files in BINARY mode, even those that are text data. JANUS FTP portname SUFFIX suffix [TEXT | DEFAULT] JANUS FTP SUFFIX comand syntax Where: portname Must be a previously defined Janus FTP Server port. suffix A file-type suffix that ends a procedure name (preceded by a period in the procedure name). For example, you use HTML to match procedures whose names are of form WHATEVER.HTML. TEXT Procedures with names ending in suffix will be handled as text data (not binary), even if the FTP transfer mode is BINARY. DEFAULT Restores the default behaviour (no special handling); can be used to turn off a previously issued FTP SUFFIX command. The FTP protocol is based on the assumption that the FTP client will toggle between ASCII and BINARY mode as needed based on the type of the file. It is the client's responsibility to select the proper file transfer mode. Some (poorly behaved) FTP clients, however, send all files in BINARY mode. Janus FTP Server uses base64 encoded format to store files that are uploaded (FTP put or stor) in BINARY FTP mode (type I). The FTP SUFFIX command is used to prevent text file types from being stored in base64. Janus file storage formats are described further in the Janus Web Server documentation. Example FTP SUFFIX commands follow: JANUS FTP FTP01 SUFFIX HTML TEXT JANUS FTP FTP01 SUFFIX XML TEXT JANUS FTP FTP01 SUFFIX FOO DEFAULT —————————————————————————————————————————— 136 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS FORCE —————————————————————————————————————————— 5.26 JANUS FORCE This immediately terminates all client connections to the named port(s) and prevents further connections from being established. JANUS FORCE portname JANUS FORCE command syntax Where portname is the name of the port(s) from which client connections are to be disconnected. Once a port is FORCE'd, no clients may connect to it again until it is restarted via the JANUS START command. The FORCE subcommand returns after a very brief delay; the actual termination of connections may take some additional time, but once the FORCE subcommand returns, no other application-level communication will take place over the FORCEd port(s). JANUS FORCE SMITHERS In the above example, all client connections to port SMITHERS are immediately broken, and further connections to SMITHERS are prevented. 5.27 JANUS LANGUAGE This subcommand sets the default language for all Janus ports in the Model 204 region. JANUS LANGUAGE language JANUS LANGUAGE command syntax Where the single parameter is optional: language A name (no more than 30 characters) for the language to be used. The default value is us_english. LANGUAGE has no effect on the operation of any application in Model 204. The name of the specified language is simply forwarded to the target server for a Janus Open Client application. Because almost all SQL Server language names are lowercase, the language specified after LANGUAGE will generally be translated to lowercase. For example, specifying 'LANGUAGE CELTIC' will actually request language “celtic” from a target server. If an uppercase or mixed-case language name is required, simply place a plus sign (+) in front of the language name. For example, to specify language “RUSSIAN”, simply enter LANGUAGE +RUSSIAN. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 137 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— The language specified on a JANUS DEFINEREMOTE command overrides the language specified on a JANUS DEFINE command which overrides the language specified on a JANUS LANGUAGE command. If the language name is left blank, the JANUS LANGUAGE command will display the name of the current language. 5.28 JANUS LIMITS This provides information about overall Janus thread usage activity in an Online, which can be useful in isolating problems with thread availability and in doing capacity planning. The JANUS TSTATUS command (“JANUS TSTAT or TSTATUS” on page 158) provides information about port-specific thread usage and availability. The JANUS LIMITS command is only available in Sirius Mods 6.0 and later. JANUS LIMITS JANUS LIMITS command syntax JANUS LIMITS provides the following information: ● The maximum number of licensed simultaneous connections. ● The number of sdaemon threads in the Online. The minimum of this value and the maximum licensed connection value is the absolute limit on simultaneous Janus connections in the Online. Since sdaemon threads can be used for things other than Janus (such as $COMMBG processing), the actual number of sdaemons available for Janus processing in an Online will often be less than the value displayed here. ● The current number of Janus “connections” in the Online. These are connections that count against the site's maximum connection limit and include active network connections and persistent WEBSERV sessions (Janus Web Legacy or $WEB_FORM_DONE). ● The high water mark of number of Janus “connections” in the Online. These are connections that count against the site's maximum connection limit and include active network connections and persistent WEBSERV sessions (Janus Web Legacy or $WEB_FORM_DONE). ● The number of refused connections. Connections can be refused either because the licensed connection limit has been exceeded, all the threads for a port are in use, no sdaemons are available, or Janus could not get the virtual storage for the required buffers on an ALLOCC port. Ideally, this number should be zero. If it is non-zero, the root cause can only determined by scanning the journal for messages, MSIR.0019, MSIR.0020, MSIR.0023 or MSIR.0026. —————————————————————————————————————————— 138 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS LIMITS —————————————————————————————————————————— To make this process simpler, it might make sense to MSGCTL these messages to OPR. Of course, in many cases it might be possible to infer the cause of refused connections or at least to eliminate some possibilities. For example, if the connection highwater mark is less than the maximum licensed connections, it's clear that no connections could be rejected for exceeding the site's connection limit. SirMon also provides some TCP and sdaemon usage statistics that might be helpful in isolating the cause of refused connections. 5.29 JANUS LOADXT This command specifies the name and, if necessary, the location of translate table source code. LOADXT tname [[FILE | GROUP] fgname pname] | [DDNAME dname] | [UNICODE | DEFAULT] JANUS LOADXT command syntax JANUS LOADXT specifies a name and location of a new or replacement Janus translate table. As described in “Translate tables” on page 9, translate tables are used to convert received input or transmitted output on Janus connections. You can define as many different translate tables as you need for your environment. tname The internal name given to the translate table. This name is used on the XTAB parameter of the JANUS DEFINE command to specify a translate table for a port. It is also used on Janus Web ON rules to specify a special translate table for web URLs. The translate table name does not have to match the external name. The name may be as many as 15 bytes. An application may change translate tables using the $WEB_SET function. fgname The name of the Model 204 file or group, if preceded by the keyword FILE or GROUP. pname The name of the procedure or member that contains the source. dname Refers to a previously allocated ddname, if preceded by the keyword DDNAME. This parameter is only valid under MVS systems. UNICODE Loads as Janus translation table tname a table that is identical (except as described below) to the current Janus SOAP Unicode table (which is used for parsing an XML document and for non-EBCDIC serialization of an XmlDoc). The difference between the table to be loaded and the Janus SOAP Unicode table is that, since there is no concept of “untranslatable” in the use of the Janus translation tables, the following translations are included: —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 139 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— ASCII to EBCDIC Untranslatable ASCII code points are translated to EBCDIC X'FF'. EBCDIC to ASCII Untranslatable EBCDIC code points are translated to ASCII X'3A', the ASCII colon character (:). The Janus SOAP Unicode table translations are also used for the AsciiToEBCDIC and EBCDICToAscii Janus SOAP system intrinsic methods. To view the specific translations in effect after loading the Unicode table, you can use the UNICODE Display command to determine the codepage and view the character mappings used at your site. “Translate tables” on page 9 contains an example of these UNICODE commands. The UNICODE parameter is available as of version 7.6 of the Sirius Mods. DEFAULT Loads as Janus translation table tname the initial default Janus translation table (named STANDARD) installed with the Sirius Mods. This parameter can be used as an “undo” command: for example, if you had loaded the Unicode table and named it STANDARD: JANUS LOADXT STANDARD UNICODE Then the following command reverts the STANDARD translate table to its default: JANUS LOADXT STANDARD DEFAULT The DEFAULT parameter is available as of version 7.6 of the Sirius Mods. You can specify existing external translate table source if you use the DDNAME keyword. For example, IBM supplies many translate tables with its TCP/IP product under MVS. You can use these tables directly with JANUS LOADXT. To use these tables, you must first allocate the dataset and member you want to load. Use the Model 204 ALLOCATE command to do this: ALLOCATE IBMXTAB WITH SCOPE=SYSTEM DSN=TCPIP.AEZAXLT1 MEMBER=US OLD SEQUENTIAL VOLUME=OS260R Then use the JANUS LOADXT command to load the translate table: JANUS LOADXT newtable DDNAME IBMXTAB The LOADXT command reads the translate table and converts it into an internal format. If the source contains no errors, the translate table replaces any old translate table with —————————————————————————————————————————— 140 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS LOADXT —————————————————————————————————————————— the same name. Any active Janus connections using the named translate table will not be affected by the LOADXT command. The old translate table stays in memory until the last user releases it. Any new Janus connections, however, will immediately begin using the new translate table. Therefore, it is never necessary to DRAIN or FORCE a Janus port when replacing translate tables. If LOADXT detects any errors with the new translate table source, the translate table will not be loaded, and any existing table with the same name will remain unchanged. For information about coding your own translate tables, see “Translate tables” on page 9. For information about displaying your translate table(s), see “JANUS DISPXT” on page 124. 5.30 JANUS NAMESERVER This specifies the IP address and port of the TCP/IP name server. Under Sirius Mods version 6.8 and later, additional name servers and local name caching parameters can also be specified. JANUS NAMESERVER ip_address port_number [AND ip_address port_number [AND ip_address port_number ... ]] [TIMEOUT numsec] [CACHE numcache] [MAXTTL maxsec] JANUS NAMESERVER command syntax Where ip_address is the IP address of the host on which the name server resides, and port_number is the port on that host that is used to access the name server. The JANUS NAMESERVER command only has an effect when running in an IBM (TCPTYPE=IBM) TCP/IP environment. If JANUS NAMESERVER is executed without parameters, it displays the current setting for NAMESERVER. In the following example, the name server location is specified as port 53 on the host at IP address 198.242.244.33: JANUS NAMESERVER 198.242.244.33 53 If port_number is not specified, it defaults to 53, the standard port for name servers. Under Sirius Mods version 6.8 and later, the AND clause allows specification of alternative backup name servers. This can be useful to provide redundancy in the unlikely case that there is a failure or shutdown of the primary name server. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 141 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Typically, all DNS requests go to the primary (first) name server. If a request times out, it is assumed that that name server is having problems, and the second name server is sent the request. If the second name server sends a response, it becomes the primary name server. That is, all subsequent DNS requests are sent to it. If the second name server fails to respond, the third name server is tried; if it responds, it becomes the primary name server. And so on. The following command tells Janus Sockets to use the nameserver at IP address 198.242.244.9 as the primary name server, and to use the one at 198.242.244.47 as a backup. No port numbers are specified because the name servers use the default port of 53 (as do almost all name servers): JANUS NAMESERVER 198.242.244.9 AND 198.242.244.47 Since name servers rarely go down, it is probably quite unnecessary to have more than two name servers, but as many as eight name servers are supported by Janus. Note: A negative response from a name server, that is, a response that indicates that the name server does not know the requested host name, does not cause a subsequent name server to be tried. If name servers are properly configured, changing name servers should not affect the success of a hostname lookup. The other JANUS NAMESERVER command parameters available in Sirius Mods version 6.8 and later are: TIMEOUT numsec This sets the maximum number of seconds to wait for a name server response. The internet standard for this value, and the value used by Janus Sockets before Sirius Mods version 6.8, was 10. While this might be a reasonable value if lookups are going against busy name servers on the other side of the world, and the internet is extremely busy, this value is absurdly high for business applications where the name server is local and all host names being sought are local. Even for internet-wide lookups, a tensecond timeout is probably overkill these days. In any case, the cost of a high timeout value is that if there should be a problem with a name server, it would take the timeout number of seconds to notice the problem and correct for it. 10 seconds is a fairly long time for this to happen, so one might want to set this timeout to a lower value. CACHE numcache This parameter indicates that Janus Sockets is to save hostnameto-IP address mappings in the Online address space. This means that subsequent name server lookups would be extremely fast inmemory lookups, rather than calls to an external name server. This would both save CPU and reduce name lookup latency. Numcache is the maximum number of hostnames to cache in the Online. Names are cached in virtual storage, and the amount of virtual storage required for the cache is about 100*numcache. If —————————————————————————————————————————— 142 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS NAMESERVER —————————————————————————————————————————— the number of hostnames ever looked up is relatively small, it would make sense to set numcache to a little more than this number of hostnames. Otherwise, the setting of numcache is a trade-off between CPU savings and latency and virtual storage — cache entries are saved according to a most-recently-used algorithm so that frequently requested hostnames tend to remain in cache. There are several system statistics the can be viewed via SirMon that make it possible to determine how well the name caching is working. These statistics are described below. MAXTTL maxsec This parameter indicates the maximum amount of time Janus Sockets is to save a hostname to IP address mapping in its local cache before checking it again with the name server. The name MAXTTL stands for MAXimum Time To Live. This parameter might be useful in highly dynamic environments where host addresses might change somewhat frequently. When a name server sends a hostname to IP address mapping response, it also sends a “Time To Live” with that response. This indicates that the requestor should revalidate the name after the indicated time-to-live. Janus Sockets uses the minimum of the time-to-live sent by the name server and the value of MAXTTL for the effective time-to-live of a name server response. Janus Sockets does not cache negative responses. That is, if the name server did not know a particular hostname, and that hostname is requested again, Janus Sockets will again query the name server for that hostname. The JANUS NAMESERVER command can be issued at any time, so the name server lookup behavior of Janus Sockets can be dynamically changed for extraordinary situations such as name server crashes, name server reconfigurations, wholesale IP address changes on the local network, and so on. Resets of CACHE and MAXTTL should “do the right thing.” That is, a change of CACHE value should preserve as many as the new CACHE value's number of entries. For example, if CACHE went from 300 to 50, the fifty most recently used entries would be preserved. If it went from 100 to 200, all entries would be preserved, of course. So if one wants to clear the cache, numcache should be set down to 0, then back up to the desired cache size. The following system statistics can be viewed in SirMon to determine how name server lookups are faring in an Online: DNSCACHE The number of entries in the name server cache (the CACHE value on the JANUS NAMESERVER command). —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 143 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— DNSMAXTL The value of the MAXTTL parameter on the JANUS NAMESERVER command. DNSCURNS The current “go to” name server, in dotted IP address format with the port number in parentheses. For example: 198.242.244.9(53). DNSRTOT Total number of name lookup requests. DNSRFAIL Number of name lookup requests that did not succeed, that is, did not get an IP address. DNSRSUCC Number of name lookup requests that succeeded. DNSRCACH Number of name lookup requests that found the requested name in the local cache. DNSRTIMO Number of requests to name servers that timed out before they got a response. With multiple name servers, a single request can try several servers and so get several timeouts. But, of course, this is probably rare in practice. DNSWTIME Total time spent waiting for responses from name servers. 5.31 JANUS RELOAD This reloads the Model 204 to SQL mappings from the JANCAT file into virtual storage and CCATEMP. JANUS RELOAD portname JANUS RELOAD command syntax Where portname is the name of the port(s) to reload. JANUS DEFINE must have been used to define the port and JANUS START must have been used to start the port before reloading it via JANUS RELOAD. JANUS RELOAD SDS* In the above example all ports whose names begin with SDS have their Model 204 to SQL mappings reloaded from the appropriate JANCAT file. The reload can only happen when there are no in flight transactions (updating or retrieval) on the port. A long running Specialty Data Store request can cause a significant delay in the processing of the JANUS RELOAD command. After a JANUS RELOAD command is issued, all new Specialty Data Store requests will have to wait for the reload to complete before being processed. —————————————————————————————————————————— 144 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS RELOAD —————————————————————————————————————————— If the AUTOLOAD switch is turned on for a port definition, the JANUS RELOAD need not be executed. AUTOLOAD (see “AUTOLOAD” on page 45) causes table mappings to be loaded to the port automatically at the first user connection subsequent to any change to the Janus Specialty Data Store catalog file. 5.32 JANUS SRVSOCK The JANUS SRVSOCK command defines the rules for a Janus Sockets server running on a SRVSOCK port. These rules control access to the port. JANUS SRVSOCK portname rule_type [optional parameters] JANUS SRVSOCK command syntax The JANUS SRVSOCK command is slightly different from most Janus commands in that it usually takes a set of commands to fully specify the rules for a port. For instance, it may take a number of commands to specify the various host names and ranges of IP addresses that may connect. The order in which JANUS SRVSOCK commands are specified also affects how they are processed. The first two parameters are positional and are required: portname A 1 - 30 character name of the port, or a pattern specifying a set of ports, for which the rule is being defined. Wildcards are allowed. rule_type The rule_type specifies what sort of rule is being specified for the port or ports. Valid rule_types are: ALLOW Assigns access permission. DISALLOW Removes access permission. The ALLOW and DISALLOW rules are processed together, from most recent to oldest. The optional parameters allowed for the JANUS SRVSOCK command depend on the rule_type that is specified. The various rule_types are shown in the following sections, followed by a section giving examples and showing the interaction of JANUS SRVSOCK commands (“Rule matching order and examples” on page 148). Note that the JANUS CLSOCK and JANUS SRVSOCK commands differ from the corresponding rules available with the JANUS WEB command in the following ways: ● JANUS WEB does not allow any optional parameters (for example, USGROUP) on the DISALLOW rule. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 145 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— ● The default access for WEBSERV non-SSL ports and SRVSOCK ports is ALLOW; the default access for WEBSERV SSL ports and CLSOCK ports is DISALLOW. ● ALLOW and DISALLOW are the only rule types for JANUS CLSOCK and JANUS SRVSOCK; there are a number of other rule types for JANUS WEB. 5.32.1 JANUS SRVSOCK ALLOW JANUS SRVSOCK portname ALLOW [NONE] | [IPADDR ipaddr | IPGROUP ipgroup] JANUS SRVSOCK ALLOW command syntax The JANUS SRVSOCK ALLOW command indicates that a particular remote host or set of hosts have access to the SRVSOCK ports that match pattern portname. The default access for SRVSOCK ports is to allow all remote hosts. For an incoming request, access to a SRVSOCK port depends on the most recent rule for that port that matches the conditions of the request: ● If the conditions match all clauses on a JANUS SRVSOCK ALLOW rule, access to the port is allowed. ● If the conditions match all clauses on a JANUS SRVSOCK DISALLOW rule, access to the port is not allowed. ● If the conditions match neither an ALLOW nor a DISALLOW rule, access to the port is allowed. If a JANUS SRVSOCK ALLOW command is specified with no optional parameters, all hosts can access the SRVSOCK ports that match the pattern in portname. The optional parameters for the JANUS SRVSOCK ALLOW command are: NONE Indicates that no remote hosts are allowed access to portname. If NONE is specified, no other optional parameters may be specified. IPADDR ipaddr Indicates that a request from a machine with an IP address that matches ipaddr is allowed access to portname. ipaddr can be a simple IP address or it can be a subnet. Subnets are indicated by an IP address followed by a slash (/) followed by a netmask (with no intervening blanks), or by a hyphen (-) followed by a number of bits in the subnet mask (with no intervening blanks). —————————————————————————————————————————— 146 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS SRVSOCK —————————————————————————————————————————— For example, 198.244.244.97 is a simple IP address that must be matched exactly. 198.242.244.0/255.255.255.0, which is equivalent to 198.242.244.0-24, indicates that any machine on subnet 198.242.244.0 is to be allowed access to portname. The IPADDR parameter cannot be specified if the IPGROUP parameter is specified. IPGROUP ipgroup Indicates that a user on a machine with an IP address that matches one of the entries in ipgroup is allowed access to portname. IP groups are defined with the JANUS DEFINEIPGROUP command (“JANUS DEFINEIPGROUP” on page 110). The IPGROUP parameter cannot be specified if the IPADDR parameter is specified. 5.32.2 JANUS SRVSOCK DISALLOW JANUS SRVSOCK portname DISALLOW [IPADDR ipaddr | IPGROUP ipgroup] JANUS SRVSOCK DISALLOW command syntax The JANUS SRVSOCK DISALLOW command indicates that a particular remote host or set of hosts does not have access to the SRVSOCK ports that match pattern portname. The default access for all SRVSOCK ports is to allow all remote hosts. For an incoming request, access to a SRVSOCK port depends on the most recent rule for that port that matches the conditions of the request: ● If the conditions match all clauses on a JANUS SRVSOCK DISALLOW rule, access to the port is not allowed. ● If the conditions match all clauses on a JANUS SRVSOCK ALLOW rule, access to the port is allowed. ● If the conditions match neither an ALLOW nor a DISALLOW rule, access to the port is allowed. If a JANUS SRVSOCK DISALLOW command is specified with no optional parameters, no hosts can access the SRVSOCK ports that match the pattern in portname. The optional parameters for the JANUS SRVSOCK DISALLOW command are: —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 147 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— IPADDR ipaddr Indicates that a request from a machine with an IP address that matches ipaddr is not allowed access to portname. ipaddr can be a simple IP address or it can be a subnet. Subnets are indicated by an IP address followed by a slash (/) followed by a netmask (with no intervening blanks), or by a hyphen (-) followed by a number of bits in the subnet mask (with no intervening blanks). For example, 198.244.244.97 is a simple IP address that must be matched exactly. 198.242.244.0/255.255.255.0, which is equivalent to 198.242.244.0-24, indicates that any machine on subnet 198.242.244.0 is to be allowed access to portname. The IPADDR parameter cannot be specified if the IPGROUP parameter is specified. IPGROUP ipgroup Indicates that a user on a machine with an IP address that matches one of the entries in ipgroup is not allowed access to portname. IP groups are defined with the JANUS DEFINEIPGROUP command (“JANUS DEFINEIPGROUP” on page 110). The IPGROUP parameter cannot be specified if the IPADDR parameter is specified. 5.32.3 Rule matching order and examples Each execution of a JANUS SRVSOCK subcommand adds to the set of rules for the specified SRVSOCK port. Individual rules cannot be deleted nor modified. All rules can be deleted only by stopping and deleting the port definition. Deleting a port definition, however, should not be necessary, as long as you follow the two golden rules: 1. 2. Specify the most general rules first and the most specific last. Specify an initial rule that “clears” all related rules. The following example illustrates these principles: JANUS JANUS JANUS JANUS SRVSOCK SRVSOCK SRVSOCK SRVSOCK TEST21 TEST21 TEST21 TEST21 DISALLOW * ALLOW IPADDR 198.242.244.0-24 ALLOW IPADDR 169.84.128.0-3 DISALLOW IPADDR 169.84.128.17 In this example, any previously specified ALLOW rules on port TEST21 are made obsolete by the first DISALLOW rule. Once the TEST21 access rules are cleared, two subnets are given access permission, and then a single specific IP address within one of those subnets has its access revoked. —————————————————————————————————————————— 148 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS SSLSTAT or SSLSTATUS —————————————————————————————————————————— 5.33 JANUS SSLSTAT or SSLSTATUS JANUS SSLSTAT and JANUS SSLSTATUS are simply two ways of issuing the same command. Available only in Sirius Mods 6.0 and later, the JANUS SSLSTAT or SSLSTATUS command provides a detailed display of the SSL activity for each combination of Janus port and network security protocol. “SSL activity” refers to Janus Network Security encrypted communications on a Janus port whose definition includes an SSL parameter specification. Janus Network Security supports the SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols. JANUS SSLSTATUS portname JANUS SSLSTATUS command syntax Where portname is the name of the port(s) to display. portname defaults to an asterisk (*) to display the SSL activity on all ports. JANUS SSLSTATUS * In the above example, the command would display the encrypted connection activity on all defined ports. JANUS SSLSTATUS provides the following information: Name Name defined to the TCP/IP port. Port TCP/IP port number. Type IFDIAL, SDS, OAS, OMNI, OPENSERV, WEBSERV, CLSOCK, or SRVSOCK. Stat Status of the connection (started, stopped, forcing, or draining). Prot The security protocol to which the line applies. One line is displayed for each port for each protocol. Currently, the supported protocols are SSL version 2 (V2), SSL V3, and TLS V1. Connects Number of TCP/IP connections made to the port. For a WEBSERV port, this corresponds to the number of “hits” or pages requested from the server. SesNew Number of new SSL/TLS sessions created for the port. SesNew is always less than Connects, because the worst case is that each new connection requires a new session. A new session requires the exchange of a “master-secret” using computationally expensive publickey/private-key encryption/decryption. Because of the cost of this exchange, most SSL/TLS implementations try to re-use a master-secret —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 149 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— from a previous connection. All connections that use the same mastersecret are part of an SSL/TLS session. Ideally, SesNew would be significantly less than Connects. SesNF The number of times a browser tried to continue an SSL/TLS session but Janus was unable to locate the session information in its session cache. This not-found situation is only likely to happen if the session information was displaced from the session cache by other sessions. If SesNF is a large value, it might be worth increasing the size of the SSL session cache with the SSLCACHE parameter (“SSLCACHE xxxx” on page 90) on the JANUS DEFINE command. While from a client's perspective, a session-not-found situation can also occur if the port (or possibly the Online) serving the connection was cycled since the last connection by the client, this is not counted as part of SesNF. SesTO The number of times a browser tried to continue an SSL/TLS session but Janus decided that the session information in its session cache had expired. These timeouts are only likely to happen if the default SSL session lifespans are overridden with the SSLMAXAGE parameter (“SSLMAXAGE xxx” on page 94) on the JANUS DEFINE command. If SSLMAXAGE is not defined, both Janus and the other side of an encrypted connection are likely to be using the same default life-spans for secure sessions: 2 minutes for SSL V2, and 24 hours for SSL V3 and TLS. If both client and server have identical values for the maximum SSL/TLS session life-span, there is a slight chance that a client will decide that a secure session is still valid (by say one millisecond), but the delay between this and the time the server receives the request is long enough for the server to decide the session is expired. Even so, an expired session simply forces the client and server to start a new session by exchanging a new “master-secret” using public-key/private-key encryption/decryption. Otherwise, processing continues as usual over the connection. Errs The number of security protocol errors. By far, the most common cause of these protocol errors is an attempt to connect to a secured port using something other than SSL or TLS: either unencrypted data or an unsupported protocol. —————————————————————————————————————————— 150 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS START —————————————————————————————————————————— 5.34 JANUS START This makes a port available for connections; it is put into the START state. JANUS START portname JANUS START command syntax Where 'portname' is the name of the port(s) to start. Note: The JANUS DEFINE command must be used to define the port before it is started with JANUS START. Also, if the port is defined to use Secure Sockets Layer (SSL) or Transport Layer Security (TLS) for secured communications, you are prompted for the password that decrypts the private key for the certificate specified on the SSL parameter of this port's DEFINE command. In the following example, all ports whose names begin with ACCTS are made available for incoming connections, and any remote servers associated with those ports are made available for outgoing connections. For any of these ports whose DEFINE commands did not include an ALLOCC, the control blocks are built in SPCORE. JANUS START ACCTS* 5.35 JANUS STAT or STATUS This provides a detailed display of the current status of specified ports. The JANUS STAT form of this command is only available in Sirius Mods 6.0 ands later. JANUS STATUS portname JANUS STATUS command syntax Where the portname value indicates the port(s) to monitor. Specify the name of an individual port to monitor, or as shown below, specify an asterisk (*), the portname default, to display the status of all ports: JANUS STATUS * JANUS STATUS provides the following information: Name Name defined to the TCP/IP port. Port TCP/IP port number. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 151 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Type IFDIAL, SDS, OAS, OMNI, OPENSERV, WEBSERV, CLSOCK. or SRVSOCK. Stat Status of the connection (started, stopped, forcing, or draining, as indicated by the string values Start, Stop, Force, and Drain. Active Number of connections active. Free Number of connections available. Writes Number of writes to the TCP/IP network. Byt/Wr Average bytes transferred per write. Reads Number of reads from the TCP/IP network. Byt/Rd Average bytes transferred per read. 5.36 JANUS STATCA or STATUSCA This command displays the status of “trusted” certifying authority certificates that have been added to a port with the JANUS ADDCA command (“JANUS ADDCA” on page 27). Certifying authority is often abbreviated CA. STATCA is a valid synonym for STATUSCA. JANUS STATUSCA [portname] [filename] [procname] JANUS STATUSCA command syntax Each parameter is positional, can be specified with pattern wildcards, and can be replaced with an asterisk (*), which returns all values for that category. You may omit a parameter (which is equivalent to specifying an asterisk value for it) if the parameters to its right are omitted. portname The defined JANUS port for which the certificate status is to be displayed. filename The name of the file(s) for which the certificate status is to be displayed. procname The name of the procedure for which certificate status is to be displayed. If not specified, status is displayed for all certificates for the indicated port(s) and file(s). JANUS STATUSCA provides the following information: Portname Name defined for the TCP/IP port. —————————————————————————————————————————— 152 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS STATCA or STATUSCA —————————————————————————————————————————— Filename File from which the certificate was loaded. Procname Procedure from which the certificate was loaded. Internal-name The "common name" of the certifying authority as specified in the certificate. NumSigned The number of certificates received that were signed by the certifying authority associated with the indicated certificate. The following example shows the format of STATUSCA output, in this case for a single Sirius-certified certificate: JANUS STATCA SSLCLI Portname Filename Procname SSLCLI GLWPROC GTEST.CERT Internal-name www.sirius-software.com NumSigned 1 The JANUS STATUSCA command is only available in Sirius Mods version 6.0 and later. 5.37 JANUS STATUSREMOTE This provides a detailed display of the current status of remote servers for specified portnames and/or remote server names. JANUS STATUSREMOTE portname remotename JANUS STATUSREMOTE command syntax Where portname The name of the port whose remote server is to be monitored. portname defaults to asterisk (*) to display the status of remote servers for all ports. remotename The name of the remote server to monitor. A blank or an asterisk displays the status for all remote servers. JANUS STATUSREMOTE * * In the above example, the statuses of all remote servers for all defined ports are shown. JANUS STATUSREMOTE provides the following information: PORTNAME Name defined to the TCP/IP port. SERVERNAME Remote server associated with the port. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 153 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— SITEUI User number of the incoming site handler — always the same as SITEUO. SITEUO User number of the outgoing site handler — always the same as SITEUI. NCONNI Number of active logical connections on the port initiated by the remote server. NCONNO Number of active logical connections on the port initiated from within the current Model 204 address space. TCONNI Total number of connections over the port that have been initiated at the remote server. TCONNO Total number of connections over the port that have been initiated from within the current Model 204 address space. Valid abbreviations for STATUSREMOTE are STATREM, STATREMOTE, and STATUSREM. 5.38 JANUS TCPLOG The JANUS TCPLOG subcommand lets you capture all input and output streams for a particular Janus port. The captured streams are written to a sequential file. JANUS TCPLOG ddname JANUS TCPLOG command syntax Where: ddname is the DDname of the sequential dataset to contain the log. One suggested use for a file of captured streams is to provide “playback” for customerwritten applications that simulate real workloads during testing of new system or application code. The format of the log file is shown below. All values are in binary format except where indicated. Bytes 0-1 2-3 4-11 12-15 16-23 Description Record length Unused TCP unique connection number Record number TOD value (in STCK units) —————————————————————————————————————————— 154 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS TCPLOG —————————————————————————————————————————— 24-27 28-31 32-33 34-35 36-36 37-37 38-39 40-n Remote IP address Local IP address Remote port number Local port number Direction (EBCDIC character): ● R (received) ● S (sent) Unused Length of binary data Binary data (ASCII characters) The TCPLOG subcommand is available as of Sirius Mods version 7.2. 5.39 JANUS TRACE This command sets or overrides the trace settings for the named Janus port(s). You specify a bit mask integer setting that sums the values of the tracing options you want to invoke. The trace setting for a port is initially set to the value specified for the TRACE parameter on the JANUS DEFINE command for the port. The JANUS TRACE command will override this. JANUS TRACE portname [ ipaddr | ipsubnet ] value | OFF JANUS TRACE command syntax Where portname The name of the port(s) to modify. ipaddr The remote IP address for which to set trace options. The IP address should be specified in standard “dotted” form: for example, 198.242.244.97. A host name cannot be specified on the JANUS TRACE command. If neither ipaddr nor ipsubnet is specified, the JANUS TRACE command is assumed to apply to all connections on the port. ipsubnet The IP subnet for which to set trace options. The IP subnet can be specified either in the standard “dotted” subnet and mask form, for example, 198.242.244.0/255.255.255.0, or a “dotted” IP address followed by the number of subnet bits, as in 198.242.244.0-24. All bits that are not part of the subnet must be 0. If neither ipaddr nor ipsubnet is specified, the JANUS TRACE command is assumed to apply to all connections on the port. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 155 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— value The bit-mask integer value to use for tracing the indicated connections. See the following page. OFF Indicates that no TRACE override is to be used for the specified IP address or addresses. Usage notes: ● JANUS TRACE does not affect the TRACE setting on the port definition, although it may override it. If a JANUS TRACE override is subsequently turned off, any JANUS DEFINE TRACE setting for the port becomes in effect again. ● JANUS TRACE may be issued while an online is running, and the order in which JANUS TRACE commands are specified is irrelevant. The JANUS TRACE command to be associated with a particular connection is the one that matches the IP address and has the most subnet bits. If a JANUS TRACE command exactly matches the IP address, it will always be used. If no IP address-specific rule is found, the subnet command with the most matching bits will be used. For example, a JANUS TRACE command for 198.242.244.96-27 will be used ahead of 198.242.244.0-24 for address 198.242.244.99, because the former subnet has 27 bits versus 24 for the second. If two subnet-based JANUS TRACE commands with exactly the same number of subnet bits match an IP address, it is unpredictable which command will apply. Fortunately, this can only happen if at least one of the subnet masks has “holes” (interspersed 0 and 1 bits) in it. This type of subnet is non-standard and highly unusual. If no JANUS TRACE commands match the IP address for a connection, the trace setting for the port will be the setting of the TRACE parameter on the port definition. ● In the following example, all connections for all ports starting with the character string WEB have tracing turned off, unless they match an IP address or subnetspecific JANUS TRACE command for the port to which they are connected: JANUS TRACE WEB* 0 In the following example, connections from IP address 193.147.133.167 to port WEB204 will use a trace value of 7: JANUS TRACE WEB204 193.147.133.167 7 In the following example, the special TRACE value for IP address 193.147.133.167 on port WEB204 is eliminated. Subsequent connections from this IP address will use the trace settings on the next most exactly matching JANUS TRACE command or, if there are none, the trace setting on the port definition. JANUS TRACE WEB204 193.147.133.167 OFF —————————————————————————————————————————— 156 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS TRACE —————————————————————————————————————————— In the following example, the general override of the trace setting for port WEB204 is eliminated. The trace settings used for a connection that doesn't match any IP address or subnet-specific JANUS TRACE command will be the settings from the port definition. JANUS TRACE WEB204 OFF ● The TRACE setting controls the quantity of trace information logged to the audit trail. You specify an integer that sums the values of the options you want to have logged: 1 Log the SQL request on SDS or URL rules processing on WEBSERV ports. This bit is useful on WEBSERV ports if there is confusion about which JANUS WEB rules apply to a particular URL. 2 Log RPC requests on OPENSERV ports. Show request headers on WEBSERV ports. 4 Log generated User Language (SDS ports only). Show form data on WEBSERV ports. This bit has no effect on OPENSERV ports. Using this bit on SDS ports can generate huge quantities of data so use it sparingly. 8 Log in hex and char all activity on port (this allows TCP/IP level tracing). 16 Log Persistent Client State (cookies) on WEBSERV ports. 32 Trace web response headers. 64 Trace web response text. 128 Trace data between TCP and SSL. The default for TRACE is 3 for SDS and OPENSERV ports, and it is 0 for WEBSERV ports and all others. Setting the 8 bit may result in huge quantities of data going to the audit trail; this trace option logs RK lines of the form: AP?: offxxx : xdxdxdxd ... | ccc...ccc | where: ? is I for input trace data, O for output, and U for urgent input data. For tracing Janus Sockets client connections (CLSOCK ports), after the I/O/U indicator will be the user's socket number in parentheses. For example, if an application has used the $SOCK_CONN function once and that port is being traced, it is socket number two, so the trace of $SOCK_SEND values will start with “APO(2)”. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 157 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— offxxx is the hex offset in the current stream. xdxdxdxd is the hex representation of the data separated into 4 byte (8 digit) pieces. cccc is the character representation of the data with non-printable characters changed to periods. Both input and output are traced when the JANUS DEFINE for the port has TRACE 8 specified. ● The current JANUS TRACE command settings for any or all ports can be determined with the JANUS DISPLAYTRACE command (“JANUS DISPLAYTRACE” on page 122). Note: The TRACE keyword was introduced in version 6.0 of the Sirius Mods. Before that, trace operations were controlled by the DEBUG keyword, which is no longer supported as of version 6.5. 5.40 JANUS TSTAT or TSTATUS This provides information about thread usage activity on Janus ports that can prove useful in isolating problems with thread availability and in doing capacity planning. The JANUS LIMITS command (“JANUS LIMITS” on page 138) provides information about system-wide thread availability. JANUS TSTATUS portname JANUS TSTATUS command syntax Where portname is the name of the port(s) to display. portname defaults to * (asterisk) to display the thread activity on all ports. JANUS TSTATUS * In the above example, the thread activity on all defined ports is shown. JANUS TSTATUS provides the following information: Name Name defined to the TCP/IP port. Port TCP/IP port number. Type IFDIAL, SDS, OAS, OMNI, OPENSERV, WEBSERV, CLSOCK, or SRVSOCK. —————————————————————————————————————————— 158 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS TSTAT or TSTATUS —————————————————————————————————————————— Stat Status of the connection (started, stopped, forcing, or draining). Activ The current number of active connections for the port. An active connection is one that is “open” from TCP/IP's perspective and reduces by one the available open threads on the port and is counted against the site's licensed connection limit. Free The current number of available connections for the port. This is simply the port's connection limit (as specified on the JANUS DEFINE command) minus the number of active connections (Activ). The value of Free is an absolute limit of the number of additional connections on a port. Other limits such as the system-wide connection limit or the number of available sdaemon threads might prevent this limit from being attained. Perst The number of “persistent” sessions currently active for the port. Persistent sessions include Janus Web Legacy sessions (3270 screens automatically converted to HTML by Janus Web Server) and those using $WEB_FORM_DONE. Persistent sessions do not count against a port's maximum connection limit but do count against the site's overall maximum connection limit and they do occupy sdaemon threads. InUse The sum of Activ and Perst. This indicates the number of connections for the port that are counted against the site's overall connection limit. TConn The total number of separate connections made to the port. For WEBSERV ports this value is sometimes referred to as “hits.” 5.41 The JANUS WEB command The JANUS WEB command defines the rules for a Janus Web Server running on a WEBSERV port. Web rules control access and routing of URL requests, and they can cause a request for a URL to initiate a complex database process. JANUS WEB portname rule_type [method] url [optional parameters] JANUS WEB command syntax The JANUS WEB command differs from most Janus commands in that it usually takes a set of commands to fully specify the rules that give a web server its characteristics. For instance, it may take a number of commands to specify user ID access, to restrict the range of IP addresses that may connect, and then to specify the server's routing and behavior based on different types of requested URLs. The order in which JANUS WEB commands are specified also affects how they are processed. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 159 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— The first four parameters are positional, and all parameters are required but the method: portname The 1- to 30-character name of the port for which the access and URL processing rules are being defined. rule_type The type of web rule that is being specified for the port. Valid values are: NOREDIRECT indicates no redirection REDIRECT indicates redirection DISALLOW removes access permission ALLOW assigns access permission TYPE defines content type NODEBUG prevents JANUSDEBUG debugging DEBUG enables JANUSDEBUG debugging ON defines processing SCREEN defines mapping of 3270 screen to HTML The order in which the JANUS WEB rule types are shown above is the order in which they are processed. Within each rule_type, rules are processed from most recent to oldest: 1. REDIRECT and NOREDIRECT rules are processed; if a redirection is specified, it is executed. Otherwise: 2. Privileges are processed (ALLOW and DISALLOW rules). If access to the URL is allowed: 3. A TYPE specification is obtained. 4. If a DEBUG is indicated, the request waits for a user to debug the request via the JANUSDEBUG command. 5. ON processing is invoked. 6. A SCREEN mapping is established. —————————————————————————————————————————— 160 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— The JANUS WEB command —————————————————————————————————————————— method The HTTP method(s) that applies to the rule. The method value can be any of the following: GET A simple request for a URL based on the URL name (includes HTTP GET and HTTP HEAD). POST A request for a URL that is accompanied by data from an HTML form. PUT A request to replace the contents of a URL, that is, a file upload. Note that while other methods have default ALLOW rules, which depend on the port type, PUT never has default ALLOW rules. That is, PUT is never permitted except by an explicit JANUS WEB ALLOW rule. GET+POST The GET or POST method; the JANUS WEB default. HEAD This method is based on GET rules and is not used frequently (if at all) by most browsers. OTHER All methods other than PUT, GET, POST, and HEAD (subject to the restriction that the length of the method name must not exceed 16 characters). This option is available as of Sirius Mods version 7.2. ANY Any HTTP method (subject to the restriction that the length of the method name must not exceed 16 characters). Note: The ANY option includes the OTHER option. Prior to Sirius Mods version 7.2, the ANY option referred only to PUT, GET, POST, or HEAD. By specifying a method on a JANUS WEB command, you indicate the rule is only to apply to that method. If no method is specified, GET+POST is assumed. url Universal Resource Locator (URL). Every web request contains a URL, which can be considered to specify the "name" or "identity" of the "object" being requested. For example, the URL may specify the name of a file or the name (and some parameters) of an application. The url specified in the JANUS WEB command is a case-sensitive pattern, which is compared to the requested URL; the last rule that matches the URL is the rule that applies. The pattern can include an asterisk (*) as a "wildcard" indicator (*.jpg thus specifies any URL with a .jpg suffix). —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 161 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Note: Janus port definitions include the UPCASE specification by default. If you define a web rule using a lowercase URL, the rule may fail in the default case where the incoming URL is converted to uppercase. For example, a TYPE rule that uses the pattern *.pdf may not recognize a request for a file of type PDF. The url value can also be the name of an exception condition (see “Exception rules” on page 198). The optional parameters allowed for the JANUS WEB command depend on the rule_type that was specified. The various rule types are shown in the following sections, followed by a section giving examples and showing the interaction of JANUS WEB commands (“Rule matching order and examples” on page 196), and a section explaining exception URLs (“Exception rules” on page 198). Note that the JANUS WEB command differs from the corresponding rules available with the JANUS CLSOCK and JANUS SRVSOCK commands in the following ways: ● JANUS WEB does not allow any optional parameters (for example, USGROUP) on the DISALLOW rule. ● The default access for WEBSERV non-SSL ports and SRVSOCK ports is ALLOW. The default access for WEBSERV SSL ports and CLSOCK ports is DISALLOW. ● ALLOW and DISALLOW are the only rule types for JANUS CLSOCK and JANUS SRVSOCK; there are a number of other rule types for JANUS WEB. 5.42 JANUS WEB NOREDIRECT The JANUS WEB NOREDIRECT subcommand indicates that any request for a URL that matches the specified pattern (the url value) is not to be directed to another URL. JANUS WEB portname NOREDIRECT [method] url JANUS WEB NOREDIRECT command syntax Portname, method, and url are all explained in “The JANUS WEB command” on page 159. —————————————————————————————————————————— 162 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB REDIRECT —————————————————————————————————————————— 5.43 JANUS WEB REDIRECT The JANUS WEB REDIRECT subcommand identifies the URL to which incoming URL requests that match a specified pattern are redirected. JANUS WEB portname REDIRECT [method] url redir_url JANUS WEB REDIRECT command syntax Portname, method, and url are explained in “The JANUS WEB command” on page 159. redir_url is the URL to which requests that match the pattern in url are redirected. Just as url can contain wildcard characters, redir_url can also contain wildcard characters. The wildcard characters in redir_url are replaced with the characters that matched the corresponding wildcard characters in url at the time of the request. For example, given the following rule, a request for URL /JUNK/MAIN.HTML is redirected to HTTP://LOCAL.NTBOX.COM/JUNK/MAIN.HTML: JANUS WEB WEBPORT REDIRECT /JUNK/* HTTP://LOCAL.NTBOX.COM/JUNK/* The redirection URL can be an absolute URL (that is, http: and the host name along with a path), or it can be a relative URL (containing only the path). Thus a redirect can redirect to another machine, another port on the same machine, or simply another path on the same port on the same machine. All of these types of redirection can be useful at times. 5.44 JANUS WEB DISALLOW The JANUS WEB DISALLOW subcommand indicates that any request for a URL that matches a specified pattern (the url value) is not allowed access; that is, it is forbidden. JANUS WEB portname DISALLOW [method] url JANUS WEB DISALLOW command syntax Portname, method, and url are described in “The JANUS WEB command” on page 159. Typically, a JANUS WEB DISALLOW rule is followed by one or more JANUS WEB ALLOW rules for the same url (or for subsets of url) that grant access to specific users or sets of users to some or all of the URLs indicated in the DISALLOW rule. Users not matching the criteria for subsequent ALLOW rules are blocked from the indicated set of URLs by the DISALLOW rule. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 163 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.45 JANUS WEB ALLOW The JANUS WEB ALLOW command indicates that a request from a particular user or set of users can have access to any URL that matches a specified pattern (the url value). JANUS WEB portname ALLOW [method] url [USER user | USGROUP usgroup] [IPADDR ipaddr | IPGROUP ipgroup] [[NEWPASSF | NEWPASSF2] fieldname] JANUS WEB ALLOW command syntax Portname, method, and url are explained in “The JANUS WEB command” on page 159. The remaining parameters for JANUS WEB ALLOW are described below. If the JANUS WEB ALLOW command is specified with no optional parameters, it indicates that all users can have access to URLs that match the pattern in url, and that requests for such public URLs are to be run under the explicit or default WEBUSER value from the port definition. For non-SSL ports, the default ALLOW/DISALLOW rule, which means that all URLs are public, is: JANUS WEB portname ALLOW * For SSL ports, the default ALLOW/DISALLOW rules are: JANUS WEB portname DISALLOW * JANUS WEB portname ALLOW * USER user where user is the userid of the user that defined the port. Note: In no case is there a default rule for the PUT method value, which means that a PUT is not allowed unless explicitly permitted with a JANUS WEB ALLOW rule. USER user Indicates that a user is allowed access to url if he or she provides a userid and corresponding password for a userid that matches the pattern in user. For example, if user is HOMER, a user that logs in as HOMER will be allowed access to url. If user is SIMP*, a user that logs in as any userid that begins with the string “SIMP” will be allowed access to url. A user value of asterisk (*) indicates that any valid Model 204 login will allow access to url. This is particularly useful if url is processed by an APSY subsystem, in which case USER * forces a Model 204 login, but it leaves access decisions to APSY. —————————————————————————————————————————— 164 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB ALLOW —————————————————————————————————————————— The USER parameter cannot be specified if the USGROUP parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, and a user is allowed access to url on the basis of the rest of the ALLOW rule, the request runs under the WEBUSER userid taken from the port definition (see “WEBUSER xxxx” on page 106). USGROUP usgroup Indicates that a user will be allowed access to url if he or she provides a userid and corresponding password for a user in the user group identified by usgroup. User groups are defined with the JANUS DEFINEUSGROUP command (“JANUS DEFINEUSGROUP” on page 116). The USGROUP parameter cannot be specified if the USER parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, and a user is allowed access to url on the basis of the rest of the ALLOW rule, the request runs under the WEBUSER userid taken from the port definition (see “WEBUSER xxxx” on page 106). IPADDR ipaddr Indicates that a user on a machine with an IP address that matches ipaddr is allowed access to url. Ipaddr can be a simple IP address, or it can be a subnet. Subnets are indicated by an IP address followed by either of these: ● A forward slash (/) followed by a netmask (with no intervening blanks) ● A hyphen (-) followed by a number of bits in the subnet mask (with no intervening blanks) For example, 198.244.244.97 is a simple IP address that must be matched exactly. 198.242.244.0/255.255.255.0, which is equivalent to 198.242.244.0-24, indicates that any machine on subnet 198.242.244.0 is to be allowed access to url. The IPADDR parameter cannot be specified if the IPGROUP parameter is specified. It is valid to specify neither IPADDR nor IPGROUP. If neither is specified, the rule makes no restrictions on the basis of IP address. If IPADDR and USER or USGROUP is specified, a user must satisfy both the IPADDR criterion and the USER or USGROUP criterion to be allowed access to url. IPGROUP ipgroup Indicates that a user on a machine with an IP address that is in ipgroup is allowed access to url. IP address groups are defined with the JANUS DEFINEIPGROUP command (“JANUS DEFINEIPGROUP” on page 110). The IPGROUP parameter cannot be specified if the IPADDR parameter is specified. It is valid to specify neither IPGROUP nor IPADDR. If neither is specified, the rule makes no restrictions on the basis of IP address. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 165 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— If IPGROUP and USER or USGROUP is specified, a user must satisfy both the IPGROUP criterion and the USER or USGROUP criterion to be allowed access to url. NEWPASSF fieldname | NEWPASSF2 fieldname Indicates that a POST for the specified URL will have its posted form fields scanned for a form field called fieldname: ● If the field is not present, it is considered a logon error, and Janus Web Server returns a standard error page to the browser, or it runs the LOGONERR JANUS WEB rule (described in “Exception rules” on page 198). ● If the field is present, it is used as a new password for the user. If the new password is accepted, Janus Web Server attempts to run the NEWPASSWORD JANUS WEB rule. If no such rule is present, it returns an “Unauthorized”, unless the port is defined with a NEWPASSWORDC parameter (“NEWPASSWORDC” on page 69), in which case, processing simply continues for the posted URL. NEWPASSF and NEWPASSF2 are useful for providing a password change form to end-users, rather than depending on end-users entering oldpassword :newpassword in a logon pop-up window. The difference between NEWPASSF and NEWPASSF2 is that NEWPASSF2 requires two occurrences of fieldname in the POST data with identical values. If both values are not provided or they are not identical, it is considered a logon error. NEWPASSF2 is useful if the users are to be required to enter a new password twice to ensure that a typo doesn't cause the end-user to change his or her password to something unintended (and unknown). If normal JANUS WEB ON rule processing continues for a URL with a NEWPASSF or NEWPASSF2 on the associated JANUS WEB ALLOW rule, the contents of fieldname are not available to the Janus Web Server application. 5.46 JANUS WEB TYPE The JANUS WEB TYPE command indicates the mime type of the output produced by the specified URL (url value). JANUS WEB portname TYPE [method] url mime_type JANUS WEB TYPE command syntax —————————————————————————————————————————— 166 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB TYPE —————————————————————————————————————————— Portname, method, and url are all explained in “The JANUS WEB command” on page 159. mime_type is the mime type sent to the requesting browser. It should consist of two parts: the primary type and the subtype. The primary type and subtype should be separated by a forward slash (/). No checking is made for a valid mime type as there is no exhaustive list of all valid mime types. In fact, new mime types can be invented for applications as deemed necessary. A browser can even be made to launch local applications by specifying your own mime type, in the form application/myapp where myapp is a locally specified token that will have to be manually associated with the application on each client machine. Other than being sent verbatim to the browser, the primary mime type (the part before the slash) is used by Janus Web Server to determine whether EBCDIC-to-ASCII translation is to take place. If the primary mime type is text, output data will be translated from EBCDIC to ASCII, unless explicitly overridden by a BINARY, TEXT, or BASE64 format parameter on a JANUS WEB ON rule or in a $WEB_PROCSEND function. Data that is sent to the browser via the “terminal” — for example, PRINT statements or error messages — is always translated from EBCDIC to ASCII, regardless of the output mime type. The following are some of the standard and more common mime types used in web applications : text/plain Text that is displayed at the browser in a monospace typeface, like Courier. Display of text/plain data on a browser also retains line breaks and blanks used for alignment. As such, text/plain is a useful mime type for representing output from Model 204 commands and legacy applications that use PRINT statements. By default, any URL that does not end in one of the standard suffixes (HTM, HTML, GIF, JPG, JPEG) is assumed to be text/plain. text/html Text that contains HTML markup tags. Most formatted text in web applications is sent as text/html. By default, any URL ending in '.HTM’ or ‘.HTML’ is assumed to produce output with a mime type of text/html. text/xml Readable text with markup which parses as an XML document. image/gif Binary data conforming to the Compuserve GIF image format. This is one of the most popular formats for storing graphical images. By default, any URL ending in ‘.GIF’ is assumed to produce output with a mime type of image/gif. image/jpeg Binary data conforming to the JPEG image standard. This is one of the most popular formats for storing graphical images. By default, any URL ending in ‘.JPG’ or ‘.JPEG’ is assumed to produce output with a mime type of image/jpeg. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 167 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— application/pdf Binary data that is intended to be read by the Adobe Acrobat Reader™. application/x-java Binary data that contains Java object code that is to be executed in the browser's Java virtual machine. 5.47 JANUS WEB DEBUG Available as of Sirius Mods 6.0, the JANUS WEB DEBUG command indicates that requests for a specified URL (the url value) are to be debugged, that is, the server is to wait for another user to issue a JANUSDEBUG command (“The JANUSDEBUG command” on page 22) before running the request on the issuing user's thread. JANUS WEB portname DEBUG [method] url [IPADDR ipaddr | IPGROUP ipgroup] [USER user | USGROUP usgroup] [PORTOPEN | NOPORTOPEN] [PORTCMD | NOPORTCMD] [PUBLIC] JANUS WEB DEBUG command syntax Portname, method, and url are described in “The JANUS WEB command” on page 159. The remaining parameters for JANUS WEB DEBUG are described below: IPADDR ipaddr Indicates that requests from an IP address that matches ipaddr will be debugged. Ipaddr can be a simple IP address, or it can be a subnet. Subnets are indicated by an IP address followed by either of these: ● A forward slash (/) followed by a netmask (with no intervening blanks) ● A hyphen (-) followed by a number of bits in the subnet mask (with no intervening blanks) For example, 198.244.244.97 is a simple IP address that must be matched exactly. 198.242.244.0/255.255.255.0, which is equivalent to 198.242.244.0-24, indicates that any machine on subnet 198.242.244.0 is to be allowed access to url. The IPADDR parameter cannot be specified if the IPGROUP parameter is specified. It is valid to specify neither IPADDR nor IPGROUP. If neither is specified, the rule applies to requests from all IP addresses. If IPADDR and USER or USGROUP are specified, a user must satisfy both the IPADDR criterion and the USER or USGROUP criterion for the request to be debugged. —————————————————————————————————————————— 168 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB DEBUG —————————————————————————————————————————— IPGROUP ipgroup Indicates that requests from an IP address that is in ipgroup will be debugged. IP address groups are defined with the JANUS DEFINEIPGROUP command (“JANUS DEFINEIPGROUP” on page 110). The IPGROUP parameter cannot be specified if the IPADDR parameter is specified. It is valid to specify neither IPGROUP nor IPADDR. If neither is specified, the rule applies to requests from all IP addresses. If IPGROUP and USER or USGROUP are specified, a user must satisfy both the IPGROUP criterion and the USER or USGROUP criterion for the request to be debugged. USER user Indicates that requests running under userid user will be debugged. user can be a specific userid, or it can contain wildcards. For example, if user is FLAN*, any request run under a userid that begins with the string FLAN will be debugged. The USER parameter cannot be specified if the USGROUP parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, the rule applies to requests running under any userid except public requests running under the WEBUSER ID. USGROUP usgroup Indicates that requests running under a userid in usgroup will be debugged. User groups are defined with the JANUS DEFINEUSGROUP command (“JANUS DEFINEUSGROUP” on page 116). The USGROUP parameter cannot be specified if the USER parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, the rule applies to requests running under any userid, except public requests running under the WEBUSER ID. PORTOPEN | NOPORTOPEN Indicates whether files or groups specified in the OPEN clause in the JANUS DEFINE command for the port are to be opened (PORTOPEN) or not (NOPORTOPEN). By default, these files or groups are not opened unless the port definition has the DEBPORTOPEN keyword. Files or groups in the JANUS DEFINE OPEN clause that are already open on the debugging users thread are not opened and do not have their file privileges adjusted to match the JANUS DEFINE OPEN clause requirements. Files or groups opened by JANUSDEBUG are closed when the request is completed. Use PORTOPEN if the files or groups in the port definition are required for proper application processing. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 169 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— PORTCMD | NOPORTCMD Indicates whether the commands specified in the CMD clause in the JANUS DEFINE command for the port are to be issued (PORTCMD) or not (NOPORTCMD) on the debuging user's thread. By default, these commands are not issued unless the port definition has the DEBPORTCMD keyword. Use PORTCMD if the commands in the port definition are required for proper application processing or the these commands are to be debugged. PUBLIC Indicates that requests for public URLs, that is those that don't require a user login are to be debugged. Since a public URL requires no user login, there is no way for Janus Web Server to associate such a request with a particular userid, so any userid can debug any public request. In an environment with multiple programmers and/or testers, this is a formula for confusion, though programmers conscientious enough to specify IPADDR, IPGROUP, and/or URL on JANUSDEBUG commands can mitigate some of this confusion. In general, it is recommended that a login be required for any URL to be debugged, even if the non-debugged URL would not require a user login. —————————————————————————————————————————— 170 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB ON —————————————————————————————————————————— 5.48 JANUS WEB ON The JANUS WEB ON command indicates the action to be taken when a request for a specified URL (the url value), which is not redirected, is determined to be allowed access. If an incoming request for a URL has no associated ON rule, the browser requesting the URL is sent a “Not Found” response. JANUS WEB portname ON [method] url CMD cmd [AND cmd [AND ...]] | SEND pname | RECV pname [AUDTERM | NOAUDTERM] [AUTOON | NOAUTOON] [AUTODONE | NOAUTODONE] [BINARY | BASE64 | TEXT] [CLOSEIMMED | NOCLOSEIMMED] [CLOSEREAD | NOCLOSEREAD] [COMPRESS level] [CR | LF | CRLF] [EXPIRE time] [FORMPOSTWAIT seconds] [FORMREDIRWAIT seconds] [MAXTEMP pages] [MSGSEND | NOMSGSEND] [OPEN [FILE | GROUP] fgname [[WITH] priv] [AND [FILE | GROUP] fgname ...]] [RAWINPUTONLY | NOTRAWINPUTONLY] [SSI] [WRAPJS] [XTAB xtabname] JANUS WEB ON command syntax Portname, method, and url are described in “The JANUS WEB command” on page 159. The remaining parameters for the JANUS WEB ON command are described on the following pages. Note: A JANUS WEB ON command must always include exactly one action parameter, either SEND, RECV, or CMD. The other parameters in the following sections are optional. 5.48.1 CMD cmd [AND cmd [AND...]] This parameter indicates that cmd is to be issued as a Model 204 command just as if it had been entered by a user. Multiple commands can be specified by separating the commands with the “AND” keyword. Each cmd can contain wildcards just as for url. The wildcard characters in cmd are replaced by the incoming request characters that match the corresponding wildcard characters in url. For example, if url is /SUBSYS/*, cmd is *, and a request for URL —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 171 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— /SUBSYS/SUBSYSMGMT is received, the command SUBSYSMGMT is executed — most likely resulting in the subsystem SUBSYSMGMT being invoked. If url is /INCLUDE/TEST/*, cmd is INCLUDE WEB.TEST.*, and a request for URL TEST/DISPLAY is received, the command INCLUDE WEB.TEST.DISPLAY is executed. If url is /INCLUDE/*/*, the CMD clause contains 'INCLUDE *' AND 'INCLUDE *', and a request for the URL TEST/DISPLAY is received, the commands INCLUDE TEST and INCLUDE DISPLAY are executed. Note that unless cmd consists of a single word, it must be enclosed in single quotes. Under Sirius Mods 6.3 and later, wildcard substitution is also performed on files or groups listed in the OPEN clause (“OPEN FILE | GROUP fgname [[WITH] priv]” on page 178). For example, given this rule: JANUS WEB WEBPORT ON /TEST?/* OPEN FILE QA* CMD 'I *' The URL /test5/queequeg would result in the file QA5 being opened and procedure QUEEQUEG inside QA5 being INCLUDEd. Also under Sirius Mods 6.3 and later, variable data from a URL can be substituted out of order by indicating the wildcard match position after a double-quote character. For example, given this rule: JANUS WEB WEBPORT ON /*/TEST?/* OPEN FILE TEST CMD 'I MOBY"2,*' - The URL /xyz/test5/tashtego would result in the file TEST being opened and the command “I MOBY5,TASHTEGO” being issued. As this example illustrates, an asterisk after a positional replacement string uses the replacent string after the positional string. It is possible with positional replacement strings to re-use replacement strings. For example, given this rule: JANUS WEB WEBPORT ON /TEST* OPEN FILE TEST CMD 'I A"1' AND 'I B"1' and 'I C"1' - The URL /test3 would result in the file TEST being opened and the commands I A3, I B3 and, I C3 being issued. The default procedure file or group at the time the first cmd is executed will be either that specified in the OPEN clause of the JANUS WEB ON command or, if that is not present, the default file or group resulting from the port definition. The default procedure file or group at the time of subsequent cmd executions is whatever happens to be the default after the execution of the preceding cmd. —————————————————————————————————————————— 172 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB ON —————————————————————————————————————————— CMD is valid for any method — the command executed can be used to send data back to the browser for the GET and POST methods, and used to receive data from the browser for the PUT method. cmd can be any Model 204 command, subject to standard authorization requirements. Commands that require additional terminal input, such as a response to a password prompt or a “DO YOU REALLY WANT TO” prompt, will not work correctly as an ON rule command. In addition to standard Model 204 commands, the WEBRUN command is also available in web ON rule commands. WEBRUN invokes an APSY subsystem, but it bypasses the APSY login procedure for a procedure specified on the WEBRUN command. The WEBRUN format is: WEBRUN subsys proc [parms] Where: subsys proc parms is an APSY subsystem is the APSY procedure to run instead of the login procedure are (optional) command line parameters for the subsystem The WEBRUN command makes it possible for a single subsystem to service many different URLs without going through a login procedure that routes to the appropriate procedure for each URL. This provides both performance and coding simplicity benefits. As an example of the latter, when a procedure is invoked via WEBRUN, the APSY communications global is set to the exit value before the procedure is invoked, so unless the procedure explicitly sets the communications global, termination of the procedure causes the subsystem to be exited. 5.48.2 SEND pname This parameter indicates that the procedure pname is to be sent to the browser when url is requested. pname can contain wildcards just like url can. The wildcard characters in pname are replaced by the incoming request characters that match the corresponding wildcard characters in url. For example, if url is /ALBAN/*, pname is *.HTML, and a request for URL /ALBAN/BERG is received, procedure BERG.HTML is sent. The procedure is always sent from the default procedure file or group, which is either that specified in the OPEN clause of the JANUS WEB ON command or, if that is not present, the default file or group resulting from the port definition. SEND is invalid for a JANUS WEB ON command that includes the PUT method. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 173 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.48.3 RECV pname This parameter indicates that the procedure pname is to be received from the browser when url is sent in a PUT request. pname can contain wildcards just like url can. The wildcard characters in pname are replaced by the incoming request characters that match the corresponding wildcard characters in url. For example, if url is /ANTON/*.HTML, pname is HTML_, and a PUT request for URL /ANTON/WEBERN is received, procedure HTML_WEBERN is updated from the data sent with the PUT request. The procedure is always received into the default procedure file or group, which will be either that specified in the OPEN clause of the JANUS WEB ON command or, if that is not present, the default file or group resulting from the port definition. RECV is invalid for a JANUS WEB ON command that includes the GET or POST method. RECEIVE is an acceptable synonym for RECV. 5.48.4 AUDTERM | NOAUDTERM AUDTERM indicates that messages that go to the Janus Web Server thread “terminal” when $WEB_OFF is in effect (either explicitly or implicitly) should be logged to the journal as RK lines; NOAUDTERM indicates that they should not be logged. This parameter can be used to override the default setting of AUDTERM or a NOAUDTERM setting on the JANUS DEFINE command for the port for a specific set of URLs (see “AUDTERM” on page 44). (Note: NOAUDTERM became the default JANUS DEFINE port setting starting with version 6.0 of the Sirius Mods.) The AUDTERM and NOAUDTERM parameters are mutually exclusive. 5.48.5 AUTODONE | NOAUTODONE AUTODONE indicates that a return to Model 204 command mode after execution of the last JANUS WEB ON cmd is to be treated as an implicit $WEB_DONE. NOAUTODONE indicates that a return to Model 204 command mode after execution of the last cmd is not to be treated as an implicit $WEB_DONE. This parameter can be used to override the default setting of AUTODONE or a NOAUTODONE setting on the JANUS DEFINE command for the port for a specific set of URLs (see “AUTODONE” on page 45). —————————————————————————————————————————— 174 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB ON —————————————————————————————————————————— 5.48.6 AUTOON | NOAUTOON AUTOON indicates that the execution of the first JANUS WEB ON cmd is to be treated as an implicit $WEB_ON; NOAUTOON indicates that it is not. This parameter can be used to override a AUTOON or NOAUTOON setting on the JANUS DEFINE command for the port for a specific set of URLs (see “AUTOON” on page 46). The AUTOON and NOAUTOON parameters are mutually exclusive. 5.48.7 BASE64 | BINARY | TEXT This parameter option indicates whether data received from a browser is to be encoded using base64, binary, or EBCDIC encoding before being saved to a Model 204 procedure, and whether data sent to the browser is in binary or text (EBCDIC) format. BASE64 only makes sense for data received in a request using the PUT method, so it is not valid in an ON rule that indicates SEND. Base64 encoding is a way of storing binary data using only standard displayable characters, thus simplifying certain operations on procedures containing such data. The cost of this simplification is that there is (barely measurable) overhead in translating the data to and from base64 encoding, and the size of the stored data is approximately 33% greater with base64 encoding than with binary encoding. Base64 encoding is the default for received non-text data, and it is probably the best option, except in cases where even the slightest extra application overhead is intolerable. BINARY indicates that: ● Data sent to a browser is to be sent as binary data, that is, not translated from EBCDIC to ASCII regardless of the mime type. ● Data received from a browser is to be encoded using binary encoding before being saved to a Model 204 procedure. Binary encoded data is stored in specially formatted procedures that contain a few extra overhead characters in addition to the binary data. Binary data often contains nondisplayable characters, so it can be difficult to work with. Nevertheless, binary encoding is the most efficient way of storing non-text data in Model 204 procedure files. TEXT indicates that: ● Data sent to a browser is to be sent as text data, that is, translated from EBCDIC to ASCII regardless of the mime type. ● Data received from a browser is to be translated from ASCII to EBCDIC before being saved to a Model 204 procedure. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 175 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Storing data as text facilitates editing of the text data in the Model 204 environment and hence is a good way of storing HTML or plain text data. The BASE64, BINARY, and TEXT parameters are mutually exclusive. 5.48.8 CLOSEIMMED | NOCLOSEIMMED This parameter option overrides the default or explicit JANUS DEFINE setting of the CLOSEIMMED/NOCLOSEIMMED parameter. For more information, see “CLOSEIMMED” on page 49. 5.48.9 CLOSEREAD | NOCLOSEREAD This parameter option overrides the default or explicit JANUS DEFINE setting of the CLOSEREAD/NOCLOSEREAD parameter. For more information, see “CLOSEREAD” on page 49. 5.48.10 COMPRESS level COMPRESS indicates the level of compression to be performed on outgoing content. This parameter can be used to override the default setting of COMPRESS on the JANUS DEFINE command for the port for a specific set of URLs (“COMPRESS level” on page 51). The COMPRESS parameter is available in Sirius Mods 6.3 and later, and it has these values: 0 1 2 Perform no compression. Perform deflate compression only. Perform deflate compression and Huffman encoding. The COMPRESS setting can be overridden on an application basis with $WEB_SET('COMPRESS'). 5.48.11 CR | CRLF | LF These parameter options indicate the ASCII character(s) that separate lines of text data. CR Indicates that lines of text data should be separated by the carriage return (X'0D') character. CRLF Indicates that lines of text data should be separated by the carriage return and line feed (X'0D0A') characters. —————————————————————————————————————————— 176 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB ON —————————————————————————————————————————— LF Indicates that lines of text data should be separated by the line feed (X'0D') character. These parameters are mutually exclusive, and they have no effect if the BINARY option is specified for a Janus Sockets (“BINARY” on page 47) port. 5.48.12 EXPIRE time This parameter indicates that the expiration time of the page should be set to the specified (relative or absolute) date and time. Relative expiration times are indicated with a plus (+) or minus (-) sign followed by a number of seconds, as in EXPIRE +7200 or EXPIRE -3600. Absolute expiration time must be specified in either YYMMDD or YYMMDDHHMISS format. An EXPIRE time specification in an ON rule is useful as an alternative to setting expire times via $WEB_EXPIRE. It is is probably most useful for relatively static content such as static text or images that are sent via SEND in the ON rule rather than as part of command processing. 5.48.13 FORMREDIRWAIT nnnn This parameter overrides the default or explicit JANUS DEFINE setting of the FORMREDIRWAIT parameter. For more information, see “FORMREDIRWAIT seconds” on page 57. 5.48.14 FORMPOSTWAIT nnnn This parameter overrides the default or explicit JANUS DEFINE setting of the FORMPOSTWAIT parameter. For more information, see “FORMPOSTWAIT seconds” on page 56. 5.48.15 MAXTEMP nnnn This parameter overrides the default or explicit JANUS DEFINE setting of the MAXTEMP parameter. For more information, see “MAXTEMP nnnn” on page 68. 5.48.16 MSGSEND | NOMSGSEND This parameter overrides the default or explicit JANUS DEFINE setting of the MSGSEND/NOMSGSEND parameter. For more information, see “MSGSEND and NOMSGSEND” on page 68. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 177 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.48.17 OPEN FILE | GROUP fgname [[WITH] priv] This parameter indicates that before any action is performed, the indicated file or group is to be opened. If neither the qualifier FILE nor GROUP is present, Janus Web Server tries to open a permanent group called fgname. If there is no group by that name, it attempts to open a file by that name. If priv is not specified, the file or group is opened with privileges of X'0221', unless the ON rule also specifies RECV (“RECV pname” on page 174), in which case it is opened with privileges of X'1239'. This allows displaying and including procedures in the indicated file or group in all cases, and it allows the updating of procedures in the RECV case. priv must be specified as a hexadecimal value that starts with X' and ends with ' (single quote). For example, X'BBBF', X'1234', and X'222F' are all valid privileges. The keyword WITH can be specified between the file or group name and the open privileges, but it is not required. The implicit or explicit open privileges are used regardless of the OPENCTL and PRIVDEF settings for the file or group. Note: It is possible to have one file or group opened as a result of the OPEN parameter on the port definition, and to have a second opened as a result of an OPEN in the JANUS WEB ON command. The port open always happens first, which means that file or group fgname always becomes the default file or group before the ON action (SEND, RECV, or CMD) is performed. To open more than one file or group with an OPEN clause, use the AND keyword to specify additional files or groups after the first file or group in the JANUS WEB ON. When the first command specified in a CMD clause or a SEND clause is executed, the first file or group specified in an OPEN clause will be the default and current file or group. There is no point in specifying more than one file or group in a JANUS WEB ON command that contains a SEND or RECEIVE, since only the first file or group will be searched for by the SEND or received by the RECEIVE. Some examples of valid OPEN clauses are : ... ... ... ... OPEN OPEN OPEN OPEN FILE MATISSE MONET WITH X'0569' RENOIR AND GROUP IMPRSNST WITH X'0221' FILE GAUGIN X'0221' AND FILE MANET X'BFFF' Under Sirius Mods 6.3 and later, wildcard substitution is performed on files or groups listed in the OPEN clause, as well as in the CMD clause (“CMD” on page 171). For example, with the following rule, the URL /test5/queequeg would cause the file QA5 to be opened and the procedure QUEEQUEG inside QA5 to be INCLUDEd: JANUS WEB WEBPORT ON /TEST?/* OPEN FILE QA* CMD 'I *' —————————————————————————————————————————— 178 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB ON —————————————————————————————————————————— 5.48.18 RAWINPUTONLY | NOTRAWINPUTONLY RAWINPUTONLY indicates that, regardless of the POST data content-type set by the client, Janus Web Server should save the raw input stream of an HTTP POST, and should refrain from parsing the input content into form fields. This is very similar to the port definition RAWINPUT parameter (“RAWINPUT” on page 81), except that: ● RAWINPUTONLY can be an ON rule parameter, so it can be set for specific URLs. ● RAWINPUT does not prevent Janus Web Server from trying to parse the form parameters if the content-type header for the POST is set to application/xwww-form-urlencoded or multipart/form-data. RAWINPUTONLY prevents this parsing, so it protects Janus Web Server applications from errors in this parsing. These errors include invalid-form-data errors and request-buffer-full errors. NOTRAWINPUTONLY can be used to override the default setting of RAWINPUTONLY on the JANUS DEFINE command for the port for a specific set of URLs (see “RAWINPUTONLY” on page 81). If RAWINPUTONLY is specified on a port definition, RAWINPUTONLY on a JANUS WEB ON rule for the port is redundant, but harmless. The RAWINPUTONLY parameter for JANUS WEB ON rules is, perhaps, most useful for allowing requests with a large number of parameters to be processed without having to allocate an extremely large request buffer to hold all the posted parameters. In fact, if there are enough form parameters, the maximum request buffer size (65535 bytes) may not be sufficient to hold all the form data in a post. In this case, the RAWINPUTONLY parameter is the only way to prevent the request from failing with this error: MSIR.0353 Insufficient Web request buffer space If the RAWINPUTONLY parameter is in effect for a URL, the form fields are no longer available with the $Web_form and $Web_parm functions (that is, the multiple functions whose names begin with these characters), though the $Web_parm, $Web_isindex, and $Web_url_parm functions can still be used to access URL parameters. When using RAWINPUTONLY, the only way to process the form parameters is by retrieving them into a longstring using the $Web_input_content method. To separate the various parameters, this longstring must then be parsed and (usually) URL decoded. If the POST used the default form data encoding of application/x-www-formurlencoded, each parameter/value pair is separated with an ampersand (&). Processing is considerably more complicated if the encoding is multipart/formdata. For Janus SOAP customers, the Stringlist class ParseLines method provides a simple, efficient way of parsing a form parameter list with application/x-www-formurlencoded encoding: %formParms is object stringList %formParms = new %formParms:parseLines($web_input_content('TEXT'), ' &') —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 179 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— This produces a Stringlist that contains items of the format fieldname=value. Assuming that none of the form field names have been URL encoded by the browser (a reasonable assumption for most Latin-character field names), this Stringlist is in a format that can be easily, though not simply, searched. For example, the following code locate's the field named OrderNumber: %itemNum = %formParms:locate('Order=', , 1, 6) There are some things worth noting here: ● The search is case sensitive, though the Locate method does have a caseinsensitive search flag. Fortunately, almost all browsers return form field names in the case that was specified in the <input> tags. Still, the case-insensitive search parameter could be set for Locate if needed. ● The equal sign is specified to prevent accidental matches on other fields that begin with “Order”, such as, “OrderDate”. While it can be left off if the programmer is confident there won't be such accidental matches, this is not recommended. ● The column range is also specified to prevent accidental matches. While an equal sign should be URL encoded by the browser — so an “Order=” in a value (encoded as “Order%”) should not cause an accidental match — one could still get an accidental match with, say, “PreviousOrder=”. Specifying the column range also makes the search more efficient by limiting it to the start of each Stringlist item. ● For form field names that are used more than once on a form, the values beyond the first would need to be retrieved by specifying a starting item number (second) parameter on the Locate method. Once the desired item number is located, the next step is to retrieve the value. In the case of a field name with a known length, this can be done easily with the Item method and the $LSTR_SUBSTR function: %itemNum = %formParms:locate('Order=', , 1, 6) %order = $lstr_substr(%formParms:item(%itemNum), 7) Unfortunately, the value in %order above will be URL encoded, that is, spaces will be replaced by plus signs, and any special characters (such as ampersands or equal signs) will be encoded with a percent sign followed by the hexadecimal value of the ASCII code. For example, the string 90% = 9/10 would be encoded as 90%25+%3D+9%2F10. Before Sirius Mods version 6.8, there was no URL decode function (although, there is a $Web_URL_encode to do URL encoding), so URL decoding must be done in User Language. —————————————————————————————————————————— 180 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB ON —————————————————————————————————————————— Such decoding could be easily packaged in a method or complex subroutine. For example, the following shared method in a class called URL performs this decoding: class URL public shared function decode(%value is longstring) is longstring end public shared function %pos decode(%value is longstring) is longstring is float %value = $lstr_translate(%value, ' ', '+') %pos = 1 repeat forever %pos = $lstr_index(%value, '%', %pos) if not %pos then loop end end if %value = $lstr_substr(%value, 1, %pos - 1) with $ebcdic($x2c( $lstr_substr(%value, %pos + 1, 2) )) with $lstr_substr(%value, %pos + 3) %pos = %pos + 1 end repeat return %value end function end class With this function available, the value in %order in the previous example can be easily URL-decoded: %itemNum = %formParms:locate('Order=', , 1, 6) %order = $lstr_substr(%formParms:item(%itemNum), 7) %order = %(url):decode(%order) For non-Janus SOAP customers, the processing performed by the Decode function could be placed inside a complex subroutine where %value is an Output parameter. In Sirius Mods version 6.8 and later, the $web_url_decode and $web_url_decode_lstr functions obviate the need for the User Language method to do URL decoding: %itemNum = %formParms:locate('Order=', , 1, 6) %order = $lstr_substr(%formParms:item(%itemNum), 7) %order = $web_url_decode_lstr(%order) Obvioulsy, because $web is writtent in assembler, it will be much more efficient than the comparable method written in User Language The RAWINPUTONLY parameter is available in Sirius Mods version 6.7 and later. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 181 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.48.19 SSI This parameter indicates that the sent document should be scanned for “Server Side Include” tags. 5.48.20 WRAPJS This parameter indicates that output text is to be embedded in JavaScript document.write methods where double quotes inside the document.write parameter are “escaped” with a backslash (\) character. This is useful for embedding HTML from one URL into another — there is no HTML tag to embed the contents of one URL inside an HTML page, but there is such a tag for JavaScript: the <script src="..."> tag. So by making HTML look like JavaScript, one can take advantage of this facility for HTML. The WRAPJS parameter is available in Sirius Mods version 6.2 and later. 5.48.21 XTAB xtabname This parameter associates a translate table with this URL set. The translate table must already have been defined with JANUS LOADXT, or the JANUS WEB command will fail. This parameter is optional. If it is omitted, the port default translate table is used. If you override the default translate table with a Janus ON rule, the new table is used to translate any form POST data and PUT entities. Any text data returned to the browser is also translated with the new translate table. The URL and any request headers, including ISINDEX data and cookies, are translated with the old translate table, since this data has already been received before the ON rule is executed. —————————————————————————————————————————— 182 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB SCREEN —————————————————————————————————————————— 5.49 JANUS WEB SCREEN The JANUS WEB SCREEN command sets parameters that control the mapping of 3270 screens to HTML, for Janus Web Legacy Support, for example. JANUS WEB portname SCREEN [method] url [AUTOPF ON | TEXT | LINK | OFF] [BGCOLOR color] [BRIGHT color] [BROWSER [NOT] type [PRE | POST ver.rel]] [OR ...] [CSS url] [CSSINSP | NOCSSINSP | AUTOCSSINSP] [CSSTITLECLASS class] [CSSTITLEDIV | CSSTITLESPAN] [EXITURL url] [HEADJS url] [HOVER color] [HOVERBG color] [KBGCOLOR color] [KEYLOC where] [KHOVER color] [KHOVERBG color] [KTEXT color] [LEGBL | NOLEGBL] [LEGCSS | NOLEGCSS] [LEGJS | NOLEGJS] [LEGREV | NOLEGREV] [LEGUS | NOLEGUS] [ONLOAD text] [PREJS url] [POSTJS url] [SCREEN | NOSCREEN] [SCREENREDIR | NOSCREENREDIR] [SCREENURL | NOSCREENURL] [STIMEOUT seconds] [STIMEOUTURL url] [TEXT color] [TITLE title] [UBGCOLOR color] [UBRIGHT color] [UTEXT color] [3270color HTMLcolor] [3270key label] JANUS WEB SCREEN command syntax The Portname, method, and url settings are described in “The JANUS WEB command” on page 159. In addition, a JANUS WEB SCREEN command must include at least one of the parameters described in the individual subsections that follow. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 183 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.49.1 AUTOPF setting This parameter indicates whether Janus Web Legacy Support should look for PF key labels at the bottom of 3270 screens to use for labels for the buttons that correspond to 3270 PF keys. Possible values for setting are: OFF If AUTOPF is set to OFF (the default setting), PF keys are simply labelled PF1, PF2, etc. TEXT The AUTOPF TEXT setting causes Janus to label the keys with the text at the bottom of 3270 screens using a heuristic algorithm. For example, a line at the bottom of a 3270 screen that contained the following text would cause keys corresponding to PF1, PF3, PF7, and PF8 to be labelled “Help”, “Quit”, “Forward,” and “backward”, respectively: 1/Help 3/Quit 7/Forward 8/Backward ON The AUTOPF ON setting is the same as AUTOPF TEXT, except the function key precedes the text label. For example, PF3 - Quit is displayed rather than Quit. This can eliminate the confusion caused by help text that refers to function keys by name. For example, the text Hit PF3 to quit could be confusing to an end-user if PF3 does not appear in the button label. LINK The AUTOPF LINK setting is the same as AUTOPF TEXT, except the function key labels are turned into hyper-text links, so the end-user can simply click on the text to get the required function key. The AUTOPF LINK setting is available in Sirius Mods version 6.2 and later. The algorithm for locating PF key labels is heuristic and might fail on occasion. In such cases, do either of these: ● ● Use explicit PF key mappings with either JANUS WEB SCREEN rules or using the $WEB_SCREEN function. Contact Sirius Software technical support to determine the feasibility of enhancing the label detection algorithm. No buttons are displayed for any PF keys for which no labels are found. AUTOPF ON or AUTOPF TEXT overrides any explicit function key labels set by JANUS WEB SCREEN PFxx commands. That is, these explicit settings are ignored when AUTOPF ON or AUTOPF TEXT is set. The explicit settings, however, become active if AUTOPF is set to OFF with a $WEB_SCREEN function. AUTOPF processing does not affect the label for the ENTER key button and the label, or presence, of the attention key button. —————————————————————————————————————————— 184 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB SCREEN —————————————————————————————————————————— 5.49.2 BGCOLOR color This parameter sets the background color for the HTML forms that contain the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. color is not checked for validity. The specified value is simply placed literally after a “<body bgcolor=” tag in generated HTML. The default background color is #300000, which is black with a very slight red-ish tint. 5.49.3 BRIGHT color This parameter sets the color for fields that are set to BRIGHT in the HTML forms containing the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. color is not checked for validity. The specified value is simply placed literally after a “<font color=” tag in generated HTML. If a BRIGHT color is not specified, bright fields are displayed the same as regular dim fields, the color of which is controlled by the TEXT parameter (“TEXT color” on page 193). The BRIGHT parameter is available in Sirius Mods version 6.2 and later. 5.49.4 BROWSER [NOT] type [PRE | POST ver.rel]] This parameter indicates that the JANUS WEB SCREEN rule only applies to browsers of a particular type. The three browser “brands” recognized by Janus Web Server are IE Microsoft's Internet Explorer™. NS Netscape Communication Corporation's Netscape Navigator™ which is a component of Netscape Communicator™. OPERA Opera Software ASA's Opera™ Rules can be made to apply to all browsers of a particular brand: JANUS WEB WEBPORT SCREEN /MUMBLE/* BROWSER IE ... Or, for all releases of a particular brand before a particular release: JANUS WEB WEBPORT SCREEN /MUMBLE/* BROWSER NS PRE 6 ... —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 185 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Or, for all releases of a particular brand at or after a particular release: JANUS WEB WEBPORT SCREEN /MUMBLE/* BROWSER OPERA POST 5.1 ... Or, for all browsers not of a particular brand: JANUS WEB WEBPORT SCREEN /MUMBLE/* BROWSER NOT NS ... Or, for all browsers not of specific releases of a brand: JANUS WEB WEBPORT SCREEN /MUMBLE/* BROWSER NOT NS POST 6 ... The PRE or POST version could simply be an integer like 4, 5, or 6, or it could a decimal value with a single decimal place like 5.1, 6.2, or 4.5. PRE is always exclusive, POST is always inclusive. A set of conditions, one for each browser brand supported, can be combined with the OR keyword: JANUS WEB WEBPORT SCREEN /MUMBLE/* BROWSER NS POST 6 OR NOT IE ... JANUS WEB WEBPORT SCREEN /MUMBLE/* BROWSER IE POST 4.5 OR NS POST 6 OR OPERA POST 5 ... The BROWSER parameter is useful for specifying screen settings that are specific to a particular browser or set of browsers. The BROWSER parameter is available in Sirius Mods version 6.2 and later. 5.49.5 CSS url This parameter indicates a URL that is to be used as an external stylesheet for Janus Web Server legacy pages. This URL can be relative or absolute, though it should be kept in mind that a relative URL is relative to the path for the URL that brought up the legacy page. If the external style sheet is to be served from the same port as the legacy URL, http:// and the host name need not be included. The style sheet can also be served by a completely different server. There is empirical evidence that at least some releases of Internet Explorer™ do not cache style sheets that are specified in mixed case. —————————————————————————————————————————— 186 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB SCREEN —————————————————————————————————————————— The CSS parameter causes Janus Web Server legacy support to produce very different HTML pages than it otherwise would, and all the JANUS WEB SCREEN parameters that set things like colors and hover effects are meaningless if CSS is specified. Using an external stylesheet has many benefits: ● It reduces the size of the HTML sent for each screen. ● It allows much more flexibility in what can be customized. ● It uses a standard grammar (CSS) for specifying legacy page layouts rather than a Janus Web Server specific set of rules. The CSS parameter is available in Sirius Mods version 6.2 and later. 5.49.6 CSSINSP | NOCSSINSP | AUTOCSSINSP This parameter overrides the default or explicit JANUS DEFINE setting of the CSSINSP/NOCSSINSP/AUTOCSSINSP parameter. For more information, see “CSSINSP, NOCSSINSP, and AUTOCSSINSP” on page 53. 5.49.7 CSSTITLECLASS class This parameter sets the class to be used for the title line when using an external style sheet. The default class for the title line is title. The main reason to use CSSTITLECLASS is to change the appearance of the title line between applications or within an application (via $WEB_SCREEN) as some sort of indicator to the end-user. This parameter has no effect if an external style sheet is not being used. The CSSTITLECLASS parameter is available in Sirius Mods version 6.2 and later. 5.49.8 CSSTITLEDIV | CSSTITLESPAN This parameter overrides the default or explicit JANUS DEFINE setting of the CSSTITLEDIV/CSSTITLESPAN parameter. For more information, see “CSSTITLEDIV and CSSTITLESPAN” on page 54. 5.49.9 EXITURL url This parameter sets the URL to which the browser is re-directed if the 3270 session requests a line-mode (non-full-screen) input from the user (and hence has presumably exited). —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 187 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Note: If no EXITURL is specified and the 3270 application exits to command mode, Janus Web Server simply returns an empty page, which can be quite confusing to the end-user. For additional discussion of this parameter, see the “Janus Web Legacy Support” section in the Janus Web Server Reference Manual. 5.49.10 HEADJS url, PREJS url, and POSTJS url This option indicates a URL that contains JavaScript that is to be embedded in a Janus Web legacy page via a <script src="..."> tag. The HEADJS JavaScript is embedded immediately before the <head> tag, the PREJS JavaScript is embedded immediately before the <pre> tag that starts the actual screen data, and the POSTJS JavaScript is embedded immediately after the </pre> tag that ends the screen data. url can be a relative or absolute URL, though note that a relative URL will be relative to the path for the URL that brought up the legacy page. If the JavaScript is to be served from the same port as the legacy URL, http:// and the host name need not be included. The JavaScript can also be served by a completely different server. The HEADJS, PREJS, and POSTJS parameters make it possible to add information to a legacy screen such as navigation bars, graphics, or explanatory text without using frames, though one could even combine frames and PREJS and/or POSTJS. Typically, the HEADJS parameter specifies a JavaScript method that is invoked by a <body> onload attribute as set from the ONLOAD parameter (“ONLOAD text” on page 192). Such a JavaScript method could even be used to modify the HTML generated by Janus Web Legacy support, though how this would be accomplished is beyond the scope of this reference. The PREJS and POSTJS parameters are available in Sirius Mods version 6.2 and later. The HEADJS parameter is available in Sirius Mods version 6.2 if ZAP6288 is applied, in Sirius Mods version 6.3 if ZAP6315 is applied, and in all Sirius Mods versions after that. 5.49.11 HOVER color This parameter sets the text color for input fields that displays either when the mouse moves over them or when they get focus via a tab key or some other means. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “color:” keyword for “input:hover” and “input:focus” elements in a “<style>” section. If HOVER is not specified, no hover color is set. —————————————————————————————————————————— 188 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB SCREEN —————————————————————————————————————————— HOVER can be useful in Janus Web Legacy pages, because by default (for Sirius Mods version 6.2 and later) borders are not displayed on input fields in the same way they are not displayed on a 3270 screen, so there is no end-user feedback indicating which areas are unprotected. HOVER provides such feedback. Support for the hover action varies widely from browser to browser. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set a hover color for an input area, so the HOVER parameter was not available in releases before 6.2. 5.49.12 HOVERBG color This parameter sets the background color for input fields that displays either when the mouse moves over them or when they get focus via a tab key or some other means. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “color:” keyword for “input:hover” and “input:focus” elements in a “<style>” section. If HOVERBG is not specified, no hover background color is set. HOVERBG can be useful in Janus Web Legacy pages, because by default (for Sirius Mods version 6.2 and later) borders are not displayed on input fields in the same way they are not displayed on a 3270 screen, so there is no end-user feedback indicating which areas are unprotected. HOVERBG provides such feedback. Support for the hover action varies widely from browser to browser. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set a hover background color for an input area, so the HOVERBG parameter was not available in releases before 6.2. 5.49.13 KBGCOLOR color This parameter sets the background color for submit buttons (keys) in the HTML forms containing the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “background:” keyword for “input.key” elements in a “<style>” section — submit buttons are <input> fields with class="key" in Janus Web legacy pages. If KBGCOLOR is not specified, “#D0D0D0”, a grey color, is used. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 189 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set the background color of an submit button, so the KBGCOLOR parameter was not available in releases before 6.2. 5.49.14 KEYLOC where This parameter specifies the position of the PF key submit buttons on a legacy screen. Valid values for KEYLOC are TOP, BOTTOM, LEFT, RIGHT, and NONE. If NONE is specified, no PF key submit buttons appear on legacy screens. Then, unless buttons are made available with a PREJS or POSTJS “wrapper” (“HEADJS url, PREJS url, and POSTJS url” on page 188), none will be available to end-users. The KEYLOC parameter is available in Sirius Mods version 6.2 and later. 5.49.15 KHOVER color This parameter sets the text color that submit buttons (keys) display when the mouse moves over them. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “color:” keyword for “input.key:hover” and “input.key:focus” elements in a “<style>” section — submit buttons are <input> fields with class="key" in Janus Web legacy pages. If KHOVER is not specified, no hover color is set. Support for the hover action varies widely from browser to browser. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set a hover color for a submit button, so the KHOVER parameter was not available in releases before 6.2. 5.49.16 KHOVERBG color This parameter sets the background color that submit buttons (keys) display when the mouse moves over them. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “background:” keyword for “input:hover” and “input:focus” elements in a “<style>” section — submit buttons are <input> fields with class="key" in Janus Web legacy pages. —————————————————————————————————————————— 190 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB SCREEN —————————————————————————————————————————— If KHOVERBG is not specified, no hover background color is set. Support for the hover action varies widely from browser to browser. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set a hover color for a submit button, so the KHOVERBG parameter was not available in releases before 6.2. 5.49.17 KTEXT color This parameter sets the text color for submit buttons (keys) in the HTML forms containing the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “color:” keyword for “input.key” elements in a “<style>” section — submit buttons are <input> fields with class="key" in Janus Web legacy pages. If KTEXT is not specified, “#000000”, black, is used. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set the text color of an submit button, so the KTEXT parameter was not available in releases before 6.2. 5.49.18 LEGBL | NOLEGBL This parameter overrides the default or explicit JANUS DEFINE setting of the LEGBL/NOLEGBL parameter. For more information, see “LEGBL, LEGREV, LEGUS, NOLEGBL, NOLEGREV and NOLEGUS” on page 61. 5.49.19 LEGCSS | NOLEGCSS This parameter overrides the default or explicit JANUS DEFINE setting of the LEGCSS/NOLEGCSS parameter. For more information, see “LEGCSS and NOLEGCSS” on page 61. 5.49.20 LEGJS | NOLEGJS This parameter overrides the default or explicit JANUS DEFINE setting of the LEGJS/NOLEGJS parameter. For more information, see “LEGJS and NOLEGJS” on page 62. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 191 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.49.21 LEGREV | NOLEGREV This parameter overrides the default or explicit JANUS DEFINE setting of the LEGREV/NOLEGREV parameter. For more information, see “LEGBL, LEGREV, LEGUS, NOLEGBL, NOLEGREV and NOLEGUS” on page 61. 5.49.22 LEGUS | NOLEGUS This parameter overrides the default or explicit JANUS DEFINE setting of the LEGUS/NOLEGUS parameter. For more information, see “LEGBL, LEGREV, LEGUS, NOLEGBL, NOLEGREV and NOLEGUS” on page 61. 5.49.23 ONLOAD text This parameter indicates text that should be included in the onload attribute of the <body> tag in the HTML generated by Janus Web Legacy support. Typically, Janus Web Server generates an onload attribute to invoke a method to position the cursor. In such a case, the text specified in the ONLOAD parameter is placed after the cursor positioning method invocation. On occasion, the cursor cannot be positioned, so no onload attribute is be placed in the <body> tag. In such a case, if an ONLOAD parameter is in effect, an onload attribute is added to the <body> tag containing just the text after the ONLOAD tag. Typically, the ONLOAD parameter is used to invoke a method defined in JavaScript and retrieved as a result of the HEADJS parameter (“HEADJS url, PREJS url, and POSTJS url” on page 188). The ONLOAD parameter is available in Sirius Mods version 6.2 if ZAP6288 is applied, in Sirius Mods version 6.3 if ZAP6315 is applied, and in all Sirius Mods versions after that. 5.49.24 SCREEN | NOSCREEN This parameter overrides the default or explicit JANUS DEFINE setting of the SCREEN/NOSCREEN parameter. For more information, see “SCREEN and NOSCREEN” on page 83. 5.49.25 SCREENREDIR | NOSCREENREDIR This parameter overrides the default or explicit JANUS DEFINE setting of the SCREENREDIR/NOSCREENREDIR parameter. For more information, see “NOSCREENREDIR” on page 76. —————————————————————————————————————————— 192 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB SCREEN —————————————————————————————————————————— 5.49.26 SCREENURL | NOSCREENURL This parameter overrides the default or explicit JANUS DEFINE setting of the SCREENURL parameter. For more information, see “SCREENURL” on page 84. 5.49.27 STIMEOUT seconds This parameter sets the number of seconds of inactivity after which a Janus Web Legacy session is terminated. Since it is quite easy for an end-user to start a 3270 session in a browser and forget about it, a session timeout is essential to prevent all available SDAEMON threads from being used by forgotten 3270 sessions. The default STIMEOUT for a URL is the port STIMEOUT setting, which is specified on the JANUS DEFINE command. The default STIMEOUT setting for a port is 900 (seconds), or 15 minutes. 5.49.28 STIMEOUTURL url This parameter sets the URL to which the browser is re-directed if the 3270 session times out, or if it is terminated for some other reason, such as a BUMP or the cycling of an Online. If no STIMEOUTURL is specified and the 3270 session is no longer available when the end-user submits the form associated with that session, Janus Web Server returns a standard HTML page that indicates that the session is no longer available and might have timed out. Unfortunately, because this is a generic page, this page contains no hypertext links that allow the user to restart the session or to get back to some standard home page. STIMEOUTURL allows a site to provide a customized timeout page that contains hypertext links to the appropriate pages. 5.49.29 TEXT color This parameter sets the text color for the HTML forms that contains the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after a “<body text=” tag in generated HTML. The default text color is “#ffffd8”, which is an off-white color. The text color is only used for line-mode data, that is, data produced from Model 204 error messages, PRINT statements, or WRITE TERMINAL statements. The color of text in screens produced with READ SCREEN statements is controlled by the color settings in the screen definition and by the default color mappings or by the mappings set in the JANUS WEB SCREEN command. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 193 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.49.30 TITLE title This parameter sets the title for the HTML form that contains the mapped 3270 screens. If this is not set, Janus Web Server uses the title specified in the TITLE statement of the screen definition. If that TITLE statement is not present, Janus Web Server uses a default title of “Janus Web Full Screen”. 5.49.31 UBGCOLOR color This parameter sets the background color for input fields in the HTML forms that contain the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “background:” keyword for “input” elements in a “<style>” section. If UBGCOLOR is not specified, the color specified for BGCOLOR is used. If the BGCOLOR color was not specified, #300000 (black with a very slight red-ish tint) is used for both. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set the background color of an input field, so the UBGCOLOR parameter was not available in releases before 6.2. 5.49.32 UBRIGHT color This parameter sets the text color for input fields (the U stands for Unprotected) in the HTML forms that contain the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. The color value is not checked for validity. The specified value is simply placed literally after the “color:” keyword in a “style” attribute for “<input>” tags. If UBRIGHT is not specified, the color specified for BRIGHT is used. If the BRIGHT color was not specified, the regular dim text color is used for both. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set the text color of an input field, so the UBRIGHT parameter was not available in releases before 6.2. 5.49.33 UTEXT color This parameter sets the text color for input fields (the U stands for Unprotected) in the HTML forms that contain the 3270 screens. color can be a color name such as red, or it can be an RGB code such as #FF0000. —————————————————————————————————————————— 194 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— JANUS WEB SCREEN —————————————————————————————————————————— The color value is not checked for validity. The specified value is simply placed literally after the “color:” keyword for “input” elements in a “<style>” section. If UTEXT is not specified, the color specified for TEXT is used. If the TEXT color was not specified, #FFFFD8 (slightly off white) is used for both. Before Sirius Mods version 6.2, CSS was not used by Janus Web Legacy support, without which it is impossible to set the text color of an input field, so the UTEXT parameter was not available in releases before 6.2. 5.49.34 3270color HTMLcolor This parameter sets the mapping of 3270 colors to HTML colors for the HTML forms that contain the 3270 screens. 3270color can be BLUE, RED, PINK, GREEN, TURQUOISE, TURQ (a synonym for TURQUOISE), YELLOW, or WHITE. HTMLcolor can be a color name such as red, or it can be an RGB code such as #FF0000. The HTMLcolor value is not checked for validity. The specified value is simply placed literally after a “<font color=” tag in generated HTML. The default color mappings are: 3270 color HTML color Blue #00FFFF Green #00C000 Pink #FF80FF Red #FF0000 Turquoise #00C0C0 White #FFFFFF Yellow #FFFF00 As of Sirius Mods version 6.2, the color mappings are also applied to the text in input fields. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 195 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.49.35 3270key label This parameter sets the label for the HTML buttons associated with 3270 keys. Valid 3270 keys are PF1 through PF24, ENTER, ATTENTION, and ATTN (a synonym for ATTENTION). Excepting the ENTER key and ATTENTION key settings, these labels are ignored if AUTOPF is set to ON or TEXT. If a label contains blanks, it must be enclosed in single-quotes. The default labels are PF1 through PF24 for the PF keys, and Enter for the ENTER key. No attention button is available on a mapped 3270 screen unless the ATTENTION or ATTN parameter is set. 5.50 Rule matching order and examples Each execution of a JANUS WEB command adds to the set of rules for the specified WEBSERV port. Individual rules cannot be deleted nor modified; all rules can be deleted only by stopping and deleting the port definition. However, this should not be necessary, as long as you follow the two golden rules: 1. Specify the most general rules first and the most specific last. 2. Specify a first rule that will “clear” all related rules. The following example illustrates these principles: JANUS JANUS JANUS JANUS JANUS WEB WEB WEB WEB WEB TEST21 TEST21 TEST21 TEST21 TEST21 DISALLOW * ALLOW IPADDR 198.242.244.0-24 ALLOW IPADDR 169.84.128.0-3 DISALLOW IPADDR 169.84.128.17 ALLOW USER * In this example, any previously specified ALLOW rules on port TEST21 are made obsolete by the first DISALLOW rule. Once the TEST21 access rules are cleared, two subnets are given access permission, and then a single specific IP address within one of those subnets has its access revoked. Finally, the ALLOW USER * forces logon processing for all users. Similar processing takes place for redirection commands. To redirect a specified URL to another URL, use the REDIRECT command: JANUS WEB SIRIUS REDIRECT *.jav http://sirius-software.com:8080/java/*.jav —————————————————————————————————————————— 196 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Rule matching order and examples —————————————————————————————————————————— In the example above, requests for Java executables are routed out of the Janus Web Server SIRIUS and onto a java directory at port 8080 at sirius-software.com. A block of redirection commands might look like this: JANUS WEB SIRIUS NOREDIRECT JANUS WEB SIRIUS REDIRECT *.jav http://sirius-software.com:8080/java/*.jav JANUS WEB SIRIUS REDIRECT *.jpg http://sirius-software.com:8001/images/*.jpg In this example, all previously defined redirection is removed, Java executables are routed out of the Janus Web Server SIRIUS and onto a java directory at port 8080 at sirius-software.com, and JPEG images are redirected to an IMAGES directory on port 8001 at sirius-software.com. TYPE rules are used to customize processing for certain patterns of incoming URLs. For example JANUS WEB SIRIUS TYPE *.HTML HTML_* The Janus Web Server default assumption is that the requested URL is stored in a Model 204 procedure. If the above TYPE rule is in effect and a request comes in for WELCOME.HTML, the server looks in the default procedure file for procedure HTML_WELCOME and returns its contents to the user. Virtually any character that is valid in a URL specification is valid as part of a Model 204 procedure name, so the Janus Web Server satisfies by default a request for http://www.x.com:80/staff/bobsmith/welcome.html by sending the contents of the procedure “staff/bobsmith/welcome.HTML” from the default Model 204 file to the client. To change this default behavior, you can use an ON rule to cause a request for a specific URL to initiate some other process, as in : JANUS WEB SIRIUS ON /pensions/* OPEN GROUP PENSIONS CMD 'I PENSIONS_DRIVER' In the above example, any request for access to the /pensions directory instead causes the Model 204 group PENSIONS to open and the routine PENSIONS_DRIVER to be invoked. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 197 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— 5.51 Exception rules JANUS WEB ON, TYPE, and REDIRECT rules can also be used to assign special URLs to handle exception conditions. Exception conditions are conditions that are outside the normal course of Janus Web Server application processing. To specify an exception handling rule, simply issue the appropriate JANUS WEB rule with the name of the exception condition specified for the URL, as in the following: JANUS WEB WEBPORT ON REQCANCEL OPEN FILE EXCPROC CMD 'I REQCANCEL' Exception rules must be specified with the complete exception condition name (with no wildcards) in the URL. A rule that contains a wildcard in the URL is not applied to an exception condition, even if the wildcard string matches the exception condition. For example, the following rule will not be applied to a REQCANCEL condition, even though technically REQCANCEL matches the * (asterisk) wildcard string. JANUS WEB WEBPORT ON * CMD WEBSYS Valid exception handlers are : EOD Invoked when EOD is ON. FORBIDDEN Invoked when a browser requests a URL that it is forbidden to view. This is different from UNAUTHORIZED (described below): a URL is “forbidden” if no matter what userid the user logs on to, they are not permitted to view the URL. Such a URL is likely one that is restricted to browsers or proxies with certain IP addresses. LOGONERR Invoked when a login for a user fails for whatever reason. NEWPASSWORD Invoked when a user successfully changes his or her password. This can be used to send an explanatory page explaining the somewhat odd behavior of browsers after a password change. NODONE Invoked when a web request requires terminal input at command level, and it has not issued a $WEB_DONE (or done a $WEB_PROC_SEND without MORE). This will only happen if the NOAUTODONE parameter was issued on the appropriate JANUS DEFINE or JANUS WEB ON command. This exception handler can be useful in catching conditions that would result in raw Model 204 error messages being sent back to the browser, such as “M204.1169: CAN'T INCLUDE procname” or “M204.1126: SUBSYSTEM subsys MUST BE STARTED.” —————————————————————————————————————————— 198 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Exception rules —————————————————————————————————————————— NOLOGCOOKIE Invoked when a port has the WEBLOGCOOKIE parameter set but a browser does not provide the login cookie for a public URL. NOTFOUND Invoked when a URL without an associated JANUS WEB ON RULE is requested. This handler can be useful to redirect requests for invalid URLs back to a common home page, or to return a “prettier” error page than the standard Janus Web Server “Not found” page. NOUSERID Invoked when a login is required for the requested URL but the browser has not sent a userid and password. The default action in this situation, the sending of a “401 Unauthorized” to the browser, is probably the correct action in almost all cases. However, you can use a NOUSERID exception handler to customize the “Unauthorized” message to something like “Userid and password required.” OPENERR Invoked when there is an error opening a file or group in the JANUS DEFINE command for the port or the JANUS WEB ON rule for the requested URL. REQCANCEL Invoked when a User Language procedure that is processing a JANUS WEB ON rule is cancelled. This handler can be useful to return a “prettier” error page than the standard Janus Web Server “Internal server error” page. It can also be used to log error diagnostics or send an error notification to appropriate people. RESTART Invoked when a Janus Web Server thread is restarted, RESTART is not allowed on any rules except REDIRECT. This handler can be useful to return a “prettier” error page than the standard Janus Web Server “Internal server error” page. It can also be used to send an error notification to appropriate people. The time and last error message at the time of the restart are added to the redirect URL as isindex data. SSLCIPHERERR Invoked when there are no common ciphers between the Janus Web Server SSL port and the browser. The most common cause of this is a browser that does not have high-grade (128-bit RC4) encryption, but the Janus Web Server port has been configured to accept only highgrade encryption connections. An SSLCIPHERERR rule can return a page to the browser that explains the problem, and it can even contain links to download a browser with high-grade security. SSLNOCERTERR Invoked when a user tries to connect to an SSL port defined with the SSLCERTR parameter but does not present a client certificate. This can be useful in presenting a user with the information that a client certificate is required and how such a certificate might be obtained. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 199 —————————————————————————————————————————— Janus Commands —————————————————————————————————————————— SSLPROTOCOLERR Invoked when a user tries to connect using an SSL protocol version that is not being allowed. Generally this would be used to respond to attempts to connect to Janus Web Server using SSL V2 when only SSL V3 is being allowed. UNAUTHORIZED Invoked when a login is required for the requested URL and the browser has sent a valid userid and password, but the userid is not authorized to retrieve the requested URL, that is, the URL is restricted to certain userids. The default action in this situation, the sending of a “401 Unauthorized” to the browser, results in a logon pop-up window being presented to the end-user by the browser, making it possible for the end-user to logon to a different userid. Unfortunately, there is no way for a user to distinguish the logon popup window presented as a result of “valid userid and password but userid not authorized” from that presented because of an invalid userid or password. In addition, allowing the user to change userids does not make sense in the case where an end-user only has a single userid. To deal with these problems, A JANUS WEB ON UNAUTHORIZED rule makes it possible to customize the response to this situation. A JANUS WEB ON UNAUTHORIZED rule runs only if the browser sends a valid userid and password, and in fact, such a rule will run after logging on the unauthorized userid. —————————————————————————————————————————— 200 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Janus User Parameters —————————————————————————————————————————— —————— CHAPTER 6 Janus User Parameters Some aspects of Janus behavior can be controlled by user parameters, that is, parameters that ● ● can be set using the Model 204 RESET command by any logged-in user affect only the thread on which they are issued At logout, all Janus user parameters are set back to the values they had when the thread was defined, that is, during Online initialization. 6.1 JANDEBM JANDEBM is a bitmask parameter that controls the display of messages and data that are destined for the browser while debugging a Janus Web Server request with the JANUSDEBUG command (which is described further in “The JANUSDEBUG command” on page 22). The JANDEBM parameter, like the JANUSDEBUG command, is available in Sirius Mods 6.0 and later. The JANDEBM bit values are: X'01' Display Model 204 messages (M204.xxx, MSIR.xxx and USER.xxx) on the debugging user's terminal. This is the default. X'02' Display application generated data, that is, data from PRINT, HTML, TEXT, or WRITE TERMINAL statements on the debugging user's terminal. Typically this data would be HTML, XML, or plain text. 6.2 SRSPARM The SRSPARM parameter is a bitmask parameter that controls the behavior of the Janus Web Server saved record set and $list functions ($WEB_SAVE_RECSET, $WEB_SAVE_LIST, $WEB_REST_RECSET and $WEB_REST_LIST). SRSPARM is available as a parameter argument on the indicated $functions that overrides the default or any previous SRSPARM settings. You can use the SRSPARM parameter to set the default behavior of these functions on a thread basis (and reset with $RESETN). —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 201 —————————————————————————————————————————— Janus User Parameters —————————————————————————————————————————— The SRSPARM parameter is available in Sirius Mods 6.3 and later. The SRSPARM bit values are: X'01' Make default for $WEB_SAVE_RECSET and $WEB_SAVE_LIST “ERROR” X'02' Make default for $WEB_SAVE_RECSET and $WEB_SAVE_LIST “CANCEL” X'04' Make default for $WEB_SAVE_RECSET and $WEB_SAVE_LIST “UERROR” X'08' Make default for $WEB_SAVE_RECSET and $WEB_SAVE_LIST “UCANCEL” X'10' Make default for $WEB_SAVE_RECSET and $WEB_SAVE_LIST “COPY” X'20' CANCEL request on a COPY style $WEB_SAVE_RECSET for an exclusively locked record set. If this bit is not set, this error would simply be reflected with an error code of 7. This operation is not allowed, because there cannot be two threads that have the same records locked in exclusive mode, which is what would be the case after a COPY type save of an exclusively locked record set. X'40' Make default for $WEB_REST_RECSET and $WEB_REST_LIST “COPY” X'80' CANCEL request on a COPY style $WEB_REST_RECSET for an exclusively locked record set. If this bit is not set, this error would simply be reflected with an error code of 7. This operation is not allowed, because there cannot be two threads that have the same records locked in exclusive mode, which is what would be the case after a COPY type restore of an exclusively locked record set. The default value for SRSPARM is 0, which preserves the current behavior of the listed functions. —————————————————————————————————————————— 202 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Janus IFDIAL Library —————————————————————————————————————————— —————— CHAPTER 7 Janus IFDIAL Library The Janus IFDIAL Library provides client/server streams support over TCP/IP. This support is similar to Model 204 BATCH2/IFDIAL support with the difference that the client programs run on workstations and the communication protocol is TCP/IP. This approach has several advantages: ● It makes it easy to access existing BATCH2 applications from a workstation. ● It makes it easy to write new Model 204 applications that communicate with a workstation since they can be written using well-understood technology (WRITE IMAGE and PRINT statements) rather than complex communications functions. ● It makes it possible to write “self-contained” workstation applications that include both client and server (user language code). ● It provides a mechanism for uploading and downloading Model 204 procedures from/to a workstation. 7.1 C Routines Workstation programs written in C have access to the Model 204 server through the functions described in this chapter. There are no limits to the number of ifdial connections an application can have at a given time or the number of different Model 204 servers an application can be connected to simultaneously other than the limits imposed by storage capacity on the client machine and the number of IFDIAL threads defined on the host Model 204 ONLINE's. Following are the C routines that comprise the Janus IFDIAL library: C routine description ifdial initiate a connection to a Model 204 server. iffinish terminate (hang up) connections to Model 204 servers. ifhangup terminate a connection to a Model 204 server. ifread* read data sent from Model 204 server. ifwrite* write data on a connection to a Model 204 server. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 203 —————————————————————————————————————————— Janus IFDIAL Library —————————————————————————————————————————— 7.1.1 ifdial NAME ifdial — initiate a connection to a Model 204 server SYNOPSIS #include <ifdial.h> cnum = ifdial(name, port, ibsize, obsize, maxin) int cnum; char *name; int port; int ibsize; int obsize; int maxin; DESCRIPTION The parameter name specifies either the TCP/IP address or the name of the host running the BATCH2 server. The parameter port specifies the TCP/IP port providing the BATCH2 service. If this parameter is 0, the default port of 204 is used. The parameter ibsize indicates the size of the buffer to be used to receive data from the Model 204 server and obsize indicates the size of the buffer to be used to send data to the Model 204 server. The default for ibsize is 1024 and the default for obsize is the same as the value of ibsize. Note that values for both ibsize and obsize must be between 512 and 8192 inclusive; values outside that range will be forced to the nearest proper value. The parameter maxin sets the maximum length record that the client will accept from the Model 204 server. The Model 204 server is informed of this limit and will not send any records longer than maxin bytes. The default for maxin is 256, and it will be forced into the range 80 to 8192 inclusive if outside this range. RETURN VALUES >= 0 If the connection succeeds, a value of 0 or greater is returned. This number indicates the connection number and is to be used in future ifread and ifwrite calls. There is no limit to the number of ifdial connections an application can have active at a time. If the connection fails a value less than 0 is returned indicating the nature of the error. -100 Passed name could not be resolved. -101 Insufficient storage. -102 Socket failure (TCP/IP service not available). -103 Connection failure (server not available). —————————————————————————————————————————— 204 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— C Routines —————————————————————————————————————————— -104 local failure (TCP/IP service probably lost). -105 Error in initial handshake (probably not a Model 204 ifdial server). -106 Connected to incompatible ifdial server. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 205 —————————————————————————————————————————— Janus IFDIAL Library —————————————————————————————————————————— 7.1.2 iffinish NAME iffinish — terminate (hang up) all connections to Model 204 server(s) SYNOPSIS #include <ifdial.h> rc = iffinish(); int rc; DESCRIPTION No further ifread or ifwrite are allowed on any connection after an iffinish RETURN VALUES 0 All connections terminated. —————————————————————————————————————————— 206 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— C Routines —————————————————————————————————————————— 7.1.3 ifhangup NAME ifhangup — terminate (hang up) a connection to a Model 204 server SYNOPSIS #include <ifdial.h> rc = ifhangup(cnum); int rc; DESCRIPTION The parameter cnum specifies the connection number returned by a previous ifdial. No further ifread or ifwrite calls are allowed on a connection after an ifhangup for that connection. RETURN VALUES 0 Connection terminated. 100 Invalid connection number. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 207 —————————————————————————————————————————— Janus IFDIAL Library —————————————————————————————————————————— 7.1.4 ifread NAME ifread, ifreadl — read data sent from a Model 204 server ifreadVB, ifreadlVB - Wrappers for using ifread, ifreadl from Visual Basic programs SYNOPSIS #include <ifdial.h> rc = ifread(cnum, data) int rc; int cnum; char **data; rc = ifreadl(cnum, data, len) int rc; int cnum; char **data; int *len; DESCRIPTION The parameter cnum specifies the number of a connection established with a previous ifdial call. data is a pointer to a string pointer to be set to point to a blank delimited character string that contains the next output line from the IFDIAL server. len (ifreadl and ifreadlVB only) is both an input and an output parameter. On input, it's the maximum length to be returned in data. (INCLUDING a terminating null-byte). On output, it is set to the full length of the record, and if the output value exceeds the input value, the record was truncated. In the case of a C-program calling ifreadl, no data are actually moved (the data parameter is set to point to the record in the internal buffer), so there is no worry about buffer overflow and the input value of len isn't very useful (this is not the case with the VB versions; see below). However, since it is possible that the returned data contains embedded nulls, the returned value in len is useful when strlen won't work. Visual Basic issues Except for ifread and ifreadl, all the ifdial functions can be called from Visual Basic programs, using the Windows build of ifdial.dll and the declarations provided in the ifdial.vb file (note carefully that ints in C must be Longs in VB and that strings for which a length is not provided (the name arg to ifdial and the data arg to ifwrite and ifwriteb) MUST BE null-terminated). However, because of the way VB passes string args, your VB program must use the alternate forms ifreadVB and ifreadlVB —————————————————————————————————————————— 208 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— C Routines —————————————————————————————————————————— Dim cnum As Long Dim data As String * 256 Dim rc As Long Dim length As Long rc = ifreadVB (cnum, data) length = 256 ' Length of the data buffer rc = ifreadlVB (cnum, data, length) You must include the declarations provided in the ifdial.vb file in the (General)(Declarations) section of your VB project. Since the returned string is actually moved into the data parameter, buffer overflow is possible with the ifreadVB function, but if the length argument is properly set on input, the ifreadlVB function is safe in this regard. RETURN VALUES 1 ifwrite required to provide data for Model 204. 2 ifread required to receive data from Model 204. 12 No data to receive. ifwrite required to provide data for Model 204. **data is set to 0 in this case. 100 Invalid connection number. 200 Connection lost. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 209 —————————————————————————————————————————— Janus IFDIAL Library —————————————————————————————————————————— 7.1.5 ifwrite Name ifwrite, ifwriteb, ifwritel, ifwritbl — write data on a connection to a Model 204 server SYNOPSIS #include <ifdial.h> rc = ifwrite(cnum, data) int rc; int cnum; char *data; rc = ifwritel(cnum, data, len) int rc; int cnum; char *data; int len; rc = ifwriteb(cnum, data) int rc; int cnum; char *data; rc = ifwritbl(cnum, data, len) int rc; int cnum; char *data; int len; DESCRIPTION ifwrite, ifwriteb, ifwriteb and ifwritbl are used to send data to a Model 204 server. ifwrite and ifwriteb must be passed a null terminated string pointer while ifwritel and ifwritbl must be passed a string pointer and the length of the string. ifwrite and ifwritel will force any data in the current ifwrite buffer to be sent immediately to the Model 204. server and then wait for either data from the Model 204 server or a response indicating that more ifwrite data is required. ifwriteb and ifwritbl will buffer the writes so that a single TCP/IP send can be used to send multiple lines to the Model 204 server and will not wait to determine whether an ifread or an ifwrite is required next. Use of ifwriteb or ifwritbl can result in a return code of 12 indicating that the data to be sent to the Model 204 server was not accepted. This return code is also possible with ifwrite or ifwritel if an ifwrite is issued without waiting for a return code of from ifread. —————————————————————————————————————————— 210 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— C Routines —————————————————————————————————————————— In either case some form of ifwrite must be called again with the original data after one or more ifread calls are made whenever a return code of 12 is received from an ifwrite function. For maximum throughput, issue ifwriteb or ifwritbl calls until a value of 12 is returned at which point issue an ifread and then retry the ifwrite. The parameter cnum specifies the number of a connection established with a previous ifdial call. Data is the data to be sent to the Model 204 server. Len is the length of the data to be sent. RETURN VALUES 1 ifwrite is required to provide data for Model 204. For buffered ifwrites (ifwriteb and ifwritbl) this return code might be followed by a return code 12 on an immediately following ifwrite.is required to provide data for Model 204. 2 ifread data is available from Model 204. This will never be returned by ifwriteb. 12 ifwrite not accepted, data must be received from Model 204 with ifread. 100 Invalid Connection number. 200 Connection lost. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 211 —————————————————————————————————————————— Janus IFDIAL Library —————————————————————————————————————————— 7.2 Workstation Utilities Several workstation utilities are provided with the Janus IFDIAL Library that provide access to Model 204. These utilities are ready-to-run, precompiled C programs: batch2 sends data from an input file to a Model 204 server and places returned data into an output file. m204 initiates a conversation with a Model 204 server, prompting for input data from the terminal as required and sending the Model 204 output to standard output. These utilities and their options are described in the following section. 7.2.1 batch2 The batch2 command has the following format : batch2 filename host [ port ] batch2 command syntax where filename identifies the name of the input and output files. An .m204 string is appended to the filename to identify the input file, and a .lst string is appended to the filename to identify the output file. host is the name or ip address of the CMS or MVS system on which the Model 204 server is running. port is the port number for the Model 204 server. If this is not specified, the default port of 204 is used. 7.2.2 m204 The m204 command has the following format: m204 host [ port ] m204 command syntax where —————————————————————————————————————————— 212 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Workstation Utilities —————————————————————————————————————————— host is the name or ip address of the CMS or MVS system on which the Model 204 server is running. port is the port number for the Model 204 server. If this is not specified, the default port, 204, is used. The user is prompted for Model 204 input with a '>' and output from Model 204 is sent to standard output (normally the user's terminal screen). —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 213 —————————————————————————————————————————— Janus IFDIAL Library —————————————————————————————————————————— —————————————————————————————————————————— 214 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Janus TCP/IP Base IFDIAL Installation —————————————————————————————————————————— —————— APPENDIX A Janus TCP/IP Base IFDIAL Installation Please refer to the Sirius Mods Installation Guide for details on installing Janus. If you are using the IFDIAL support provided by Janus, refer back to this section after completing the basic installation. For installation of the mainframe components, see “Janus, the Sirius Mods, and UL/SPF” on page 2. This appendix is about installing Janus TCP/IP Base IFDIAL workstation components. The first section is for Unix-style workstations; the second is for Windows-based workstations. A.1 1. Unix-style workstations Install the Sirius Mods. See the Sirius Mods Installation Guide for details. The Online in which Janus will run must use a load module containing the Sirius Mods. 2. Transfer IFDIAL Library to Unix workstations. Log on to the target workstation, then create the target directory with the mkdir command. The recommended target directory is “/usr/janus”, so to create the directory, enter: mkdir /usr/janus Make the newly created directory the current directory: cd /usr/janus Download the appropriate tar file from the mainframe. The appropriate file depends on the target workstation. Under MVS the tar files are members of SIRIUS.LIB. Under CMS, they are files on the Sirius Mods installation disk with filetypes of TAR. The appropriate tar files for the supported target workstations are: Target workstation File/member name SPARC (Sun) workstation SPARC RS/6000 running AIX RS6000 All others UNIX —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 215 —————————————————————————————————————————— Janus TCP/IP Base IFDIAL Installation —————————————————————————————————————————— The following stream shows how the RS/6000 tar file is downloaded from a mainframe running IBM's TCP/IP product under MVS (user input is highlighted): # 'ftp ibmtcp' Connected to ibmtcp. 220-FTPSERVE IBM MVS V2R2 at IBMTCP, 12:44:31 on 09/13/93 220 Connection will close if idle for more than 5 minutes. Name (ibmtcp:root): 'renn' 331 Send password please. Password:'xxxxxxx' 230 RENN is logged on. ftp> 'binary' 200 Representation type is IMAGE. ftp> 'get ''sirius.lib(rs6000)'' rs6000.tar' 200 Port request OK. 125 Sending data set JANUS.V100.LIB(RS6000) FIXrecfm 80 250 Transfer completed successfully. 102400 bytes received in 1.676 seconds (59.66 Kbytes/s) ftp> 'quit' 221 Quit command received. Goodbye. The following stream shows how the RS/6000 tar file is downloaded from a mainframe running Interlink's TCP/IP product (user input is highlighted): # 'ftp snstcp' Connected to snstcp. 220 SNSTCP.SIRIUS.COM -- FTP Server, Enter command or HELP Name (snstcp:root): 'stimpy' 331 Enter PASS command Password:'xxxxxxx' 230 Logged in Host 204.0.0.4 User STIMPY Sess# 3 ftp> 'binary' 200 OK, Ready ftp> 'get ''sirius.lib(rs6000)'' rs6000.tar' 200 OK, Ready 150-Dataset open with attributes: Type I N Stru F Mode S Path JANUS.V100.LIB(RS6000) Volser MVSUSR Unit SYSALLDA Dsorg PO Recfm FB Lrecl 80 Blksize 3120 150 226-Transfer complete Sess# 3 102400 bytes sent in 2.22 seconds (46126 bytes/s) Path JANUS.V100.LIB(RS6000) User STIMPY Data bytes sent 102400 Disk tracks read 4 226 102400 bytes received in 1.851 seconds (54.03 Kbytes/s) ftp> 'quit' 221 Session terminated Note in the preceding examples that the file transfer is done in binary mode. After the appropriate tar file has been downloaded to the workstation, the individual files in the tar file must be extracted. This can be done with the following command: tar -xvf rs6000.tar —————————————————————————————————————————— 216 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Unix-style workstations —————————————————————————————————————————— 3. Recompile Janus IFDIAL Library on workstation If the workstation does not have a platform specific tar file, it is necessary to rebuild the object version of the Janus IFDIAL Library and the executable version of the workstation utilities. The following commands will accomplish this: make ifdial.o make batch2 make m204 This completes the installation of the Janus IFDIAL Library on the workstation. The Janus IFDIAL Library must be transferred to each workstation that is to have access to its services. A.2 1. Windows-based workstations Install the Sirius Mods. See the Sirius Mods Installation Guide for details. The Online in which Janus will run must use a load module containing the Sirius Mods. 2. Transfer IFDIAL Library to the Windows workstation. Log on to the target workstation, then create the target directory with the mkdir command. The recommended target directory is “\usr\janus”, so to create the directory, enter: mkdir \usr\janus Make the newly created directory the current directory: cd \usr\janus Download the appropriate distribution file from the mainframe. Under MVS, the distribution file is SIRIUS.LIB(WIN). Under CMS, the file is WIN TAR. The Windows distribution file is a self-extracting executable. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 217 —————————————————————————————————————————— Janus TCP/IP Base IFDIAL Installation —————————————————————————————————————————— The following stream shows how the distribution file is downloaded from a mainframe running IBM's TCP/IP product (user input is highlighted) under MVS: # 'ftp ibmtcp' Connected to ibmtcp. 220-FTPSERVE IBM MVS V2R2 at IBMTCP, 12:44:31 on 09/13/93 220 Connection will close if idle for more than 5 minutes. Name (ibmtcp:root): 'renn' 331 Send password please. Password:'xxxxxxx' 230 RENN is logged on. ftp> 'binary' 200 Representation type is IMAGE. ftp> 'get ''sirius.lib(win)'' setup_janus_ifdial_win.exe' 200 Port request OK. 125 Sending data set JANUS.V100.LIB(WIN) FIXrecfm 80 250 Transfer completed successfully. 88967 bytes received in 1.676 seconds (53.08 Kbytes/s) ftp> 'quit' 221 Quit command received. Goodbye. Note that the file transfer is done in binary mode. After the distribution file has been downloaded to the workstation, the individual files in it must be extracted. This can be done with the following command: setup_janus_ifdial_win.exe This will extract all the files into the current directory. If you want to install them in other than the download directory, simply move the distribution file there before running it. After extracting the files, the distribution file itself may be deleted. 3. Recompile Janus IFDIAL Library on workstation The distribution file contains already-built binaries for the Janus IFDIAL library (ifdial.lib, ifdial.dll) and the executable versions of the workstation utilities. To rebuild them (or to build debug versions), see the readme.txt file; if you run the dist_bld.bat file with no parameters, it will give a usage message. In particular, to rebuild all binaries with debug information: dist_bld all debug This completes the installation of the Janus IFDIAL Library on the workstation. The Janus IFDIAL Library must be transferred to each workstation that is to have access to its services. —————————————————————————————————————————— 218 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Storage requirements —————————————————————————————————————————— —————— APPENDIX B Storage requirements Each Janus connection requires several control blocks which maintain connection information and allow transfering of data between the server and client. Janus control blocks are allocated from SPCORE (above the line when possible) based on parameters set in the The storage requirements for connections on a given port are calculated as: #bytes = maxconn * (ibsize + obsize + maxrec + 1024) The storage requirements for OPENSERV and SDS connections on a given port are calculated as: #bytes = maxconn * (ibsize + obsize + rbsize + 2080) The storage requirements for WEBSERV connections on a given port are calculated as: #bytes = maxconn * (ibsize + obsize + rbsize + 1520) The additional storage requirements for any secure (SSL) connections are #bytes = maxconn * sslbsize Where: maxconn is the maximum number of connections allowed for the port. ibsize is the input buffer size (default is 4096). obsize is the output buffer size (default is 8192). rbsize is the RPC buffer size (default is 4096). maxrec is maximum record length (256 is the default). sslbsize is the SSL buffer size (default is 4096). For example, if 3 Janus ports are defined, one an OPENSERV port with 50 maximum connections, another a WEBSERV port with 20 maximum connections, the third a secure WEBSERV port with 10 connections and all default values are used, you would get: —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 219 —————————————————————————————————————————— Storage requirements —————————————————————————————————————————— 923,200 = + 358,080 = + 179,040 = + 40,960 = ----------1,501,280 = 50 20 20 10 * * * * (4096 + 8192 + 4096 + 2080) (4096 + 8192 + 4096 + 1520) (1024 + 1024 + 1024 + 2260) 4096 OPENSERV 1 WEBSERV 1 WEBSERV 2 SSL buffs total SPCORE bytes required If ALLOCC is not specified on the JANUS DEFINE commands, this space is allocated when the ports are started. If ALLOCC is specified, the space required for each connection is allocated when the connection is established. Specifying ALLOCC leaves SPCORE space free until it is needed, but may result in storage fragmentation. Even with ALLOCC specified, 1024 * maxconn bytes of space are reserved in SPCORE for each possible Janus connection at the time of the START command. This space is not freed until the port is completely drained of all connections either via the JANUS DRAIN or JANUS FORCE command. Except for SSLBSIZE, the only reason for using buffer sizes other than the defaults is TCP/IP efficiency. No values other than SSLBSIZE place limits on lengths of passed data. If a client attempts to pass a SSL block larger than SSLBSIZE, the secure connection is immediately terminated. —————————————————————————————————————————— 220 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Sample IFDIAL procedure —————————————————————————————————————————— —————— APPENDIX C Sample IFDIAL procedure This IFDIAL program uses the C routines from a workstation to upload terminal input lines to the Model 204 server address space. #include <stdio.h> #include <manifest.h> #include <ifdial.h> int main(argc, argv) int argc; char **argv; { char char int int char char FILE /* Main batch2 program /* Number of arguments /* Pointers to argument pointers */ */ */ input[256]; infile[256], outfile[256]; i, rc, port; cnum; *host; *host_data; *inf, *outf; if (argc < 3) { /* If no host name printf("%s - Command format is %s filename host ( port ).\n", argv[0], argv[0]); return(4); /* Leave in shame } inf = NULL; outf = NULL; if (strlen(argv[1]) < 252) { strcpy(infile, argv[1]); strcpy(outfile, argv[1]); strcat(infile, ".m204"); strcat(outfile, ".lst"); inf = fopen(infile, "r"); outf = fopen(outfile, "w"); } /* /* /* /* /* /* /* If reasonable file name Copy filename Copy filename Tack on input suffix Tack on output suffix Open the input file Open the output file */ */ */ */ */ */ */ */ */ if (inf == NULL) { /* If error opening input file printf("%s - Unable to open %s.\n", argv[0], infile); return(24); /* Leave in shame } */ if (outf == NULL) { /* If error opening output file printf("%s - Unable to open %s.\n", argv[0], outfile); return(24); /* Leave in shame } */ port = 0; if (argc >= 4) { */ */ /* Assume port will default /* If have port number */ */ —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 221 —————————————————————————————————————————— Sample IFDIAL procedure —————————————————————————————————————————— rc = sscanf(argv[3], "%d", &port); /* Get port number if (rc < 1) { /* If port number invalid printf("%s - Invalid port number - %s.\n", argv[0], argv[3]); return(8); /* Leave in shame } } */ */ cnum = ifdial(argv[2], port, 0, 0, 0); /* Connect to server if (cnum < 0) { /* If invalid return code printf("%s - Unable to connect to %s. ifdial = %d\n", argv[0], argv[2], cnum); /* Explain the situation return(-cnum); /* Leave in disgrace } */ */ while (fgets(input, sizeof(input), inf) /* Get next line != NULL) { /* Until no more data to read input[strlen(input) - 1] = '\0'; /* Get rid of \n rc = ifwrite(cnum, input); /* Send data to 204 if (rc == 1) /* If more data required continue; /* Get another line if (rc != 2) /* If no ifread data break; /* Something's gone wrong do { /* Until no more data rc = ifread(cnum, &host_data); /* Get the response line if (rc > 2) /* If problem break; /* Bail out fputs(host_data, outf); /* Output the returned data putc('\n', outf); /* Out with a new line } while (rc == 2); if (rc != 1) /* If problem break; /* Bail out } */ */ */ */ */ */ */ */ */ */ */ */ */ */ if (rc == 200) /* If connection lost printf("%s - Connection lost.\n", argv[0]); */ iffinish(); return(rc); } /* All done */ */ */ */ */ */ —————————————————————————————————————————— 222 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Date Processing —————————————————————————————————————————— —————— APPENDIX D Date Processing This chapter presents date processing issues for Janus TCP/IP Base. The only use of dates within Janus TCP/IP Base itself is to examine the CPU clock (as returned by the STCK hardware instruction) to determine the current date, in case Janus TCP/IP Base is under a rental or trial agreement. Please note the following: ● Janus TCP/IP Base itself does not produce any results which depend on the content of any data which may be date values. ● Since you can use a Janus IFDIAL port to send and receive data to and from Model 204, if that data contains two digit year date values, you must ensure that any application using that data has an algorithm or rule for unambiguously determining the correct century for the values. ● Each of the Janus family of products will have its own date processing considerations, described separately in that product's documentation. To correctly use Janus TCP/IP Base past the year 1999, Sirius Mods version 4.6 or later is required. Above and beyond the post-1999 requirements specific to Janus TCP/IP Base, you must examine all uses of date values in your applications to ensure that each of your applications produces correct results. Furthermore, both the operating system and Model 204 must correctly process and transmit dates beyond 1999 in order for Janus TCP/IP Base to operate properly. —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 223 —————————————————————————————————————————— Date Processing —————————————————————————————————————————— —————————————————————————————————————————— 224 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Index —————————————————————————————————————————— —————— Index A ADDCA, JANUS subcommand ... 25, 27 ALLOCC parameter, JANUS DEFINE ... 43, 52 ALLOW parameter JANUS CLSOCK command ... 32 JANUS FTP command ... 128 JANUS SRVSOCK command ... 146 JANUS WEB command ... 164 ALLOW rule ... 160 AND parameter, JANUS NAMESERVER ... 141 ANONUSER parameter, JANUS DEFINE ... 44 ANONYMOUS parameter, JANUS DEFINE ... 43 ASSIGN parameter, JANUS FTP command ... 129 AUDTERM parameter JANUS DEFINE command ... 44 JANUS WEB ON command ... 174 AUTOCSSINSP parameter JANUS DEFINE command ... 53 JANUS WEB SCREEN command ... 187 AUTODONE parameter JANUS DEFINE command ... 45 JANUS WEB ON command ... 174 AUTOLOAD parameter, JANUS DEFINE ... 45 Automating port definitions ... 108 AUTOON parameter JANUS DEFINE command ... 46 JANUS WEB ON command ... 175 AUTOPF parameter, JANUS WEB SCREEN ... 184 AUTOSYS parameter JANUS DEFINE command ... 46 B Base64 encoding ... 136, 175 See also BASE64 parameter BASE64 parameter JANUS WEB ON command ... 175 batch2 command ... 212 BGCOLOR parameter, JANUS WEB SCREEN ... 185 BINARY parameter JANUS DEFINE command ... 47 JANUS WEB ON command ... 175 Binary transfer mode ... 136 BINDADDR parameter, JANUS DEFINE ... 47 BRIGHT parameter, JANUS WEB SCREEN ... 185 BROWSER parameter, JANUS WEB SCREEN ... 185 BSIZE parameter, JANUS DEFINE ... 48 C CACHE parameter, JANUS NAMESERVER ... 142 case sensitivity ... 111 DEFINEREMOTE ... 111 Sybase SQL and Open Server names ... 111 Certificate, SSL ... 89 CA-signed ... 27, 116, 120, 152 in SSL cache ... 91, 94 requested by server ... 92 CHAR parameter JANUS DEFINE ... 48 CHARSET parameter JANUS DEFINE ... 48 JANUS DEFINEREMOTE ... 112 CHARSET, JANUS subcommand ... 25, 30 Client certificate ... 27, 89, 92 Client Object Library ... 203 CLIENTSOCKET parameter, JANUS DEFINE ... 49 CLOSEIMMED parameter JANUS DEFINE command ... 49 JANUS WEB ON command ... 176 CLOSEREAD parameter JANUS DEFINE command ... 49 JANUS WEB ON command ... 176 CLSOCK port type ... 31, 41, 121 CLSOCK, JANUS subcommand ... 25 —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 225 —————————————————————————————————————————— Index —————————————————————————————————————————— CMD parameter JANUS DEFINE command ... 50 JANUS WEB ON command ... 171 Codepage ... 10 Color mapping ... 195 Color, background ... 185 Color, field ... 185 COMPRESS parameter JANUS DEFINE command ... 51 JANUS WEB ON command ... 176 CONFIG, JANUS subcommand ... 40 CONFIGURATION, JANUS subcommand ... 25 Connection limit ... 42, 138 Content type client Post data ... 81, 179 web server response ... 160, 166 CR parameter JANUS DEFINE command ... 53 JANUS WEB ON command ... 176 CRLF parameter JANUS DEFINE command ... 53 JANUS WEB ON command ... 176 CSIPID system parameter ... 15 CSS parameter, JANUS WEB SCREEN ... 186 CSSINSP parameter JANUS DEFINE command ... 53 JANUS WEB SCREEN command ... 187 CSSTITLECLASS parameter, JANUS WEB SCREEN ... 187 CSSTITLEDIV parameter JANUS DEFINE ... 54 JANUS WEB SCREEN ... 187 CSSTITLESPAN parameter, JANUS DEFINE ... 54 D DBCS (Double Byte Character Set) support ... 55 DBCS parameter, JANUS DEFINE ... 55 DEASSIGN parameter, JANUS FTP command ... 131 DEBPORTCMD parameter, JANUS DEFINE ... 55 DEBPORTOPEN parameter, JANUS DEFINE ... 55 DEBUG parameter JANUS WEB command ... 168 DEBUG rule ... 160 DEBUGGERCLIENT port type ... 31, 41, 121 DEBUGGERSERVER port type ... 41 DEFAULT parameter, JANUS LOADXT ... 140 DEFAULTPRIVS parameter, JANUS FTP ASSIGN ... 129 DEFINE, JANUS subcommand ... 8, 25, 40 DEFINEIPGROUP, JANUS subcommand ... 25, 110 DEFINEREMOTE, JANUS subcommand ... 8, 25, 111 DEFINEUSGROUP, JANUS subcommand ... 25, 116 DELCA, JANUS subcommand ... 25, 116 DELETE, JANUS subcommand ... 25, 117 DELETEIPGROUP, JANUS subcommand ... 26, 117 DELETEREMOTE, JANUS subcommand ... 26, 118 DELETEUSGROUP, JANUS subcommand ... 26, 118 DIM fields ... 185 DISALLOW parameter JANUS CLSOCK command ... 36 JANUS FTP command ... 132 JANUS SRVSOCK command ... 147 JANUS WEB command ... 163 DISALLOW rule ... 160 DISPLAY, JANUS subcommand ... 26, 119 DISPLAYCA, JANUS subcommand ... 26, 120 DISPLAYREMOTE, JANUS subcommand ... 26, 121 DISPLAYSOCK, JANUS subcommand ... 26, 121 DISPLAYTRACE, JANUS subcommand ... 122 DISPLAYWEB, JANUS subcommand ... 26, 123 DISPLAYXT, JANUS subcommand ... 26 DISPXT, JANUS subcommand ... 124 DOMAIN, JANUS subcommand ... 26, 125 DRAIN, JANUS subcommand ... 26, 126 E Encoding ... 136 HTML form ... 81, 179 procedure data ... 175 Environment definition, overview of ... 15 EOD exception handler ... 198 Exception conditions ... 198 Exception handler ... 198 EXEC2RPC parameter, JANUS DEFINE ... 56 —————————————————————————————————————————— 226 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Index —————————————————————————————————————————— EXITURL parameter, JANUS WEB SCREEN ... 187 EXPIRE parameter, JANUS WEB ON ... 177 F FDWOL parameter, JANUS DEFINE ... 56 FILE parameter JANUS CLSOCK ALLOW ... 33 JANUS CLSOCK DISALLOW ... 37 FINCLOSE parameter, JANUS DEFINE ... 57 FORBIDDEN exception handler ... 198 FORCE, JANUS subcommand ... 26, 137 FORMPOSTWAIT parameter JANUS DEFINE command ... 56 JANUS WEB ON command ... 177 FORMREDIRWAIT parameter JANUS DEFINE command ... 57 JANUS WEB ON command ... 177 Forms, HTML ... 179 request size ... 179 FTP folder levels ... 130 FTP, JANUS subcommand ... 26, 127 FTPSERVER port type ... 42, 121 G GET method, JANUS WEB command ... 161 H HEAD method ... 161 HEADJS parameter, JANUS WEB SCREEN ... 188 HIGHPRIORITY parameter, JANUS DEFINE ... 58 HOME parameter, JANUS FTP command ... 133 HOVER parameter, JANUS WEB SCREEN ... 188 HOVERBG parameter, JANUS WEB SCREEN ... 189 HTTP methods ... 160 HTTPVERSION parameter, JANUS DEFINE ... 58 I IBSIZE parameter, JANUS DEFINE ... 59 IFDIAL Library programs ... 203, 213 ifdial function ... 204 iffinish function ... 206 ifhangup function ... 207 ifread function ... 208 ifwrite function ... 210 workstation utilities ... 212 IFDIAL port type ... 42 INONLY parameter, JANUS DEFINEREMOTE ... 112 INPUTTIMEOUT parameter, JANUS DEFINE ... 59 Installation ... 2 Installation instructions ... 215, 217 Unix-style workstations ... 215 Windows-based workstations ... 217 IPGROUP parameter JANUS CLSOCK ALLOW ... 35 JANUS CLSOCK DISALLOW ... 38 J JANCAT parameter, JANUS DEFINE ... 60 JANDEBM parameter ... 201 JANMAN ... 108 automating port definitions ... 108 Janus commands ... 124 introduction to ... 21 JANUS ADDCA ... 27 Adding Certifying Authority to port ... 27 JANUS CHARSET ... 30 JANUS CONFIG ... 40 JANUS DEFINE ... 8, 40, 219 storage allocation requirements ... 219 JANUS DEFINEIPGROUP ... 110 Grouping IP addresses for access control ... 110 JANUS DEFINEREMOTE ... 8, 111 Defining remote servers ... 111 JANUS DEFINEUSG, see JANUS DEFINEUSGROUP JANUS DEFINEUSGROUP ... 116 Grouping user IDs for access control ... 116 JANUS DEFUSG, see JANUS DEFINEUSGROUP —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 227 —————————————————————————————————————————— Index —————————————————————————————————————————— JANUS DEFUSGROUP see JANUS DEFINEUSGROUP JANUS DELCA ... 116 Deleting Certifying Authority from port ... 116 JANUS DELETE ... 117 JANUS DELETEIPGROUP ... 117 Deleting named IP groupings ... 117 JANUS DELETEREMOTE ... 118 JANUS DELETEUSGROUP ... 118 Deleting User Groups ... 118 JANUS DISPLAY ... 119 JANUS DISPLAYCA ... 120 Displaying Certifying Authority certificates ... 120 JANUS DISPLAYREMOTE ... 121 JANUS DISPLAYSOCK ... 121 JANUS DISPLAYTRACE ... 122 JANUS DISPLAYWEB ... 123 JANUS DISPXT ... 124 JANUS DOMAIN ... 125 JANUS DRAIN ... 126 JANUS FORCE ... 137 JANUS FTP ... 127 JANUS LANGUAGE ... 137 JANUS LIMITS ... 138 JANUS LOADXT ... 9, 139 JANUS NAMESERVER ... 141 JANUS RELOAD ... 144 JANUS SRVSOCK ... 145 JANUS SSLSTAT ... 149 JANUS SSLSTATUS ... 149 JANUS START ... 151 JANUS STAT ... 151 JANUS STATCA ... 152 JANUS STATUS ... 151 JANUS STATUSCA ... 152 Certifying Authority certificate usage ... 152 JANUS STATUSREMOTE ... 153 JANUS TCPLOG ... 154 JANUS TRACE ... 76, 155 JANUS TSTAT ... 158 JANUS TSTATUS ... 158 JANUS WEB ... 159 JANUSDEBUG ... 22 wildcards used with ... 21 JANUS concepts ... 7 JAPANIBM translate table ... 10 K KBGCOLOR parameter, JANUS WEB SCREEN ... 189 Keep-Alive connections, HTTP ... 60 Keepalive connection, TCP ... 99 KEEPALIVE parameter, JANUS DEFINE ... 60 KEYLOC parameter, JANUS WEB SCREEN ... 190 Keys, 3270 ... 196 KHOVER parameter, JANUS WEB SCREEN ... 190 KHOVERBG parameter, JANUS WEB SCREEN ... 190 KTEXT parameter, JANUS WEB SCREEN ... 191 L LANGUAGE parameter JANUS DEFINE ... 61 JANUS DEFINEREMOTE ... 112 LANGUAGE, JANUS subcommand ... 26, 137 LEGBL parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 191 LEGCSS parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 191 LEGJS parameter JANUS DEFINE ... 62 JANUS WEB SCREEN ... 191 LEGREV parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 192 LEGUS parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 192 LF parameter JANUS DEFINE command ... 62 JANUS WEB ON command ... 176 LIMITS, JANUS subcommand ... 26, 138 LINEND parameter, JANUS DEFINE ... 63 LOADXR, JANUS subcommand ... 26 LOADXT parameters ... 139 LOADXT, JANUS subcommand ... 139 LOG parameter, JANUS DEFINE ... 63 LOGAPPEND parameter, JANUS DEFINE ... 64 LOGCLOSET parameter, JANUS DEFINE ... 65 —————————————————————————————————————————— 228 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Index —————————————————————————————————————————— LOGGMT parameter, JANUS DEFINE ... 65 Login session ... 70 LOGMSGI parameter, JANUS DEFINE ... 65 LOGONERR exception handler ... 198 M MASTER parameter, JANUS DEFINE ... 66 defining OPEN CLIENT ports ... 66 MAXCURS parameter, JANUS DEFINE ... 66 MAXIPSES parameter, JANUS DEFINE ... 67 MAXREC parameter, JANUS DEFINE ... 67 MAXSAVE parameter, JANUS DEFINE ... 68 MAXTEMP parameter JANUS DEFINE ... 68 JANUS WEB ON command ... 177 MAXTTL parameter, JANUS NAMESERVER ... 143 method, HTTP ... 160 MIME type ... 166 See also Content type Model 204 resource requirements ... 43 buffer space requirements ... 43 Models, terminal ... 106 MSGSEND parameter JANUS DEFINE command ... 68 JANUS WEB ON command ... 177 MSG204 parameter ... 69 Sending terminal output to client ... 69 MSG204L parameter ... 69 Sending terminal output to client ... 69 m204 command ... 212 N NAMESERVER, JANUS subcommand ... 26, 141 NCMPBUF system parameter ... 15, 52 NEWGUESTOK parameter, JANUS DEFINE ... 72 NEWPASSWORD exception handler ... 198 NEWPASSWORDC parameter, JANUS DEFINE ... 69 NEWSESCMD parameter, JANUS DEFINE ... 70 NEWSESNOCLEARG parameter, JANUS DEFINE ... 72 NEWSESOPEN parameter, JANUS DEFINE ... 72 NOAUDTERM parameter JANUS DEFINE command ... 73 JANUS WEB ON command ... 174 NOAUTODONE parameter JANUS DEFINE command ... 74, 198 JANUS WEB ON command ... 174, 198 NOAUTOON parameter JANUS DEFINE command ... 75 JANUS WEB ON command ... 175 NOCLOSEIMMED parameter JANUS WEB ON command ... 176 NOCLOSEREAD parameter JANUS WEB ON command ... 176 NOCSSINSP parameter JANUS DEFINE command ... 53 JANUS WEB SCREEN command ... 187 NODBCS parameter, JANUS DEFINE ... 55 NODEBPORTCMD parameter, JANUS DEFINE ... 55 NODEBPORTOPEN parameter, JANUS DEFINE ... 55 NODEBUG rule ... 160 NODONE exception handler ... 198 NOFINCLOSE parameter, JANUS DEFINE ... 58 NOLEGBL parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 191 NOLEGCSS parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 191 NOLEGJS parameter JANUS DEFINE ... 62 JANUS WEB SCREEN ... 191 NOLEGREV parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 192 NOLEGUS parameter JANUS DEFINE ... 61 JANUS WEB SCREEN ... 192 NOLOGCOOKIE exception handler ... 198 NOMSGSEND parameter JANUS DEFINE command ... 68 JANUS WEB ON command ... 177 NONE parameter JANUS CLSOCK ALLOW ... 33 NOREDIRECT parameter JANUS WEB command ... 162 NOREDIRECT rule ... 160 —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 229 —————————————————————————————————————————— Index —————————————————————————————————————————— NOSCREEN parameter JANUS DEFINE ... 83 JANUS WEB SCREEN ... 192 NOSCREENREDIR parameter JANUS DEFINE ... 76 JANUS WEB SCREEN ... 192 NOSCREENURL parameter, JANUS WEB SCREEN ... 193 NOSITE parameter, JANUS DEFINEREMOTE ... 112 NOTFOUND exception handler ... 199 NOTRACEFIELD parameter, JANUS DEFINE ... 76 NOTRAWINPUTONLY parameter JANUS WEB ON command ... 179 NOUPCASE parameter ... 77 Converting client data to upper case ... 77 NOUSERID exception handler ... 199 NSUBTKS parameter, Model 204 ... 19 Ports, application ... 7 POST method, JANUS WEB command ... 161 POSTJS parameter, JANUS WEB SCREEN ... 188 PREFIX parameter, JANUS FTP ASSIGN ... 129 Prefix, procedure name ... 129, 131 PREJS parameter, JANUS WEB SCREEN ... 188 PRELOGINUSER parameter, JANUS DEFINE ... 79 PROC parameter JANUS CLSOCK ALLOW ... 33 JANUS CLSOCK DISALLOW ... 37 PRSTOK parameter JANUS DEFINE ... 79 PUBLOG parameter, JANUS DEFINE ... 80 PUT method, JANUS WEB command ... 161 R O OAS port type ... 42 OBSIZE parameter, JANUS DEFINE ... 77 OMNI port type ... 42 OMNIACCT parameter, JANUS DEFINE ... 77 OMNIUSER parameter, JANUS DEFINE ... 77 ON parameter JANUS FTP command ... 134 JANUS WEB command ... 171 ON rule ... 160 ONLOAD parameter, JANUS WEB SCREEN ... 192 OPEN parameter JANUS DEFINE command ... 78 JANUS WEB ON command ... 178 OPENERR exception handler ... 199 OPENSERV port type ... 42 OPTSITE parameter, JANUS DEFINEREMOTE ... 112 OUTONLY parameter ... 113 RAWINPUT parameter, JANUS DEFINE ... 81 RAWINPUTONLY parameter JANUS WEB ON command ... 179 RAWINPUTONLY parameter, JANUS DEFINE ... 81 RBSIZE parameter, JANUS DEFINE ... 82 RECV parameter, JANUS WEB ON ... 174 REDIRECT parameter JANUS WEB command ... 163 REDIRECT rule ... 160 RELOAD, JANUS subcommand ... 26, 144 REMOTE parameter JANUS CLSOCK ALLOW ... 34 JANUS CLSOCK DISALLOW ... 37-38 JANUS DEFINE ... 82 REQCANCEL exception handler ... 199 Reserved characters ... 11 RESTART exception handler ... 199 RPCONLY parameter, JANUS DEFINE ... 83 S P PASVPORT parameter, JANUS DEFINE ... 78 Performance ... 59, 77 Persistent connection ... see “Keep-Alive connections, HTTP” PF key labels ... 184 Port, Janus definition ... 40, 119 Sample code ... 221 IFDIAL procedure ... 221 SCREEN parameter JANUS DEFINE ... 83 JANUS WEB command ... 183 JANUS WEB SCREEN ... 192 SCREEN rule ... 160 —————————————————————————————————————————— 230 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Index —————————————————————————————————————————— SCREENREDIR parameter JANUS WEB SCREEN ... 192 SCREENURL parameter JANUS DEFINE ... 84 JANUS WEB SCREEN ... 193 SDAEMDEV system parameter ... 16 Sdaemon threads defined ... 16 for DBCS support ... 55 for Janus Web Legacy ... 98 for login caching ... 104-105 for SDS catalog ... 77, 84 limit per Online ... 42 SDS catalog sdaemon ... 77, 84 specifying account and user ID ... 77, 84 SDS port type ... 42 SDSACCT parameter ... 84 SDSUSER parameter ... 84 SEND parameter, JANUS WEB ON ... 173 Server ... 15 defined ... 15 ports ... 7 SESCOOKIE parameter, JANUS DEFINE ... 85 SESCOOKIENOSEC parameter, JANUS DEFINE ... 85 SESFASTLOGIN parameter, JANUS DEFINE ... 85 SESTIMEOUT parameter, JANUS DEFINE ... 86 SIRIUS file ... 2 Sirius Mods ... 2 SIRTERM system parameter ... 106 Site handlers ... 113-114 defined ... 114 specifying account and user ID ... 113 SITEACCT parameter, JANUS DEFINEREMOTE ... 113 SITEUSER parameter, JANUS DEFINEREMOTE ... 113 SLOWCLOSE parameter, JANUS DEFINE ... 86 SOCKACCT parameter, JANUS DEFINE ... 87 SOCKMAX Model 204 system parameter ... 88 SOCKPMAX parameter, JANUS DEFINE ... 87 SOCKUSER parameter, JANUS DEFINE ... 88 SQUAREB parameter, JANUS DEFINE ... 88 SRSDEFTO system parameter ... 16 SRSMAX system parameter ... 17 SRSMAXTO system parameter ... 17 SRSMAXUS system parameter ... 17 SRSPARM parameter ... 201 SRVSOCK port type ... 42, 121 SRVSOCK, JANUS subcommand ... 26, 145 SSI parameter, JANUS WEB ON ... 182 SSL certificate ... 92 See also Certificate, SSL SSL parameter, JANUS DEFINE ... 89 SSLBSIZE parameter, JANUS DEFINE ... 90 SSLCACHE parameter, JANUS DEFINE ... 90 SSLCIPH parameter, JANUS DEFINE ... 91 SSLCIPHERERR exception handler ... 199 SSLCLCERT parameter, JANUS DEFINE ... 92 SSLCLCERTR parameter, JANUS DEFINE ... 92 SSLIBSIZE parameter, JANUS DEFINE ... 93 SSLMAXAGE parameter, JANUS DEFINE ... 94 SSLMAXCERTL parameter, JANUS DEFINE ... 94 SSLOBSIZE parameter, JANUS DEFINE ... 95 SSLOPT parameter, JANUS DEFINE ... 95 SSLPOCERTERR exception handler ... 199 SSLPROT parameter, JANUS DEFINE ... 96 SSLPROTOCOLERR exception handler ... 199 SSLSES parameter, JANUS DEFINE ... 97 SSLSTAT, JANUS subcommand ... 149 SSLSTATUS, JANUS subcommand ... 27, 149 SSLUNENC parameter, JANUS DEFINE ... 97 STANDARD translate table ... 10 START, JANUS subcommand ... 27, 151 STAT, JANUS subcommand see STATUS ... 151 STATCA, JANUS subcommand see STATUSCA ... 152 STATUS, JANUS subcommand ... 27, 151 STATUSCA, JANUS subcommand ... 27, 152 STATUSREMOTE, JANUS subcommand ... 27, 153 STIMEOUT parameter JANUS DEFINE ... 98 JANUS WEB SCREEN ... 193 STIMEOUTURL parameter, JANUS WEB SCREEN ... 193 storage requirements ... 219 SUBSYS parameter JANUS CLSOCK ALLOW ... 34 JANUS CLSOCK DISALLOW ... 37 —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 231 —————————————————————————————————————————— Index —————————————————————————————————————————— SUFFIX parameter, JANUS FTP command ... 136 System parameters ... 15-18 CSIPID ... 15 NCMPBUF ... 15 SDAEMDEV ... 16 SRSDEFTO ... 16 SRSMAX ... 17 SRSMAXTO ... 17 SRSMAXUS ... 17 TCPSERV ... 18 TCPTYPE ... 18 T TCP keepalives ... 99 TCPKEEPALIVE parameter, JANUS DEFINE ... 99 TCPLOG parameter, JANUS DEFINE ... 98 TCPLOG, JANUS subcommand ... 27 TCPSERV system parameter ... 18 TCPTYPE system parameter ... 18 Terminal models ... 106 Terminal output ... 44, 69, 73 Sending to client ... 69 TEXT parameter JANUS WEB ON command ... 175 JANUS WEB SCREEN ... 193 Text transfer mode ... 136 TIMEOUT parameter JANUS DEFINE ... 100 JANUS DEFINEREMOTE ... 113 TIMEOUT parameter, JANUS DEFINE ... 59 TIMEOUT parameter, JANUS NAMESERVER ... 142 Timeouts, connection ... 113 Timeouts, session ... 98, 100 TITLE parameter, JANUS WEB SCREEN ... 194 TNSERV port type ... 42 AUTOSYS processing ... 46 CMD processing ... 50 NEWSESCMD processing ... 71 TCPKEEPALIVE processing ... 99 WSFQUERY processing ... 106 TRACE parameter ... 100 TRACE, JANUS subcommand ... 27, 76, 155 Transfer mode, FTP ... 136 Translate tables ... 9 Translation, character set ... 47-48, 107 TRUST parameter ... 113 TSTAT, JANUS subcommand ... 158 TSTATUS, JANUS subcommand ... 27, 158 TYPE parameter JANUS WEB command ... 166 TYPE rule ... 160 U UBGCOLOR parameter, JANUS WEB SCREEN ... 194 UBRIGHT parameter, JANUS WEB SCREEN ... 194 UL/SPF ... 2 UNAUTHORIZED exception handler ... 200 UNICODE parameter, JANUS LOADXT ... 139 Unicode tables ... 139 UPCASE parameter ... 101 Converting client data to upper case ... 101 Uploading subdirectories ... 131 URL parameters ... 179 URL processing ... 161, 163, 171, 179 Url-encoding ... 179 URL, exception ... 198 USER parameter JANUS CLSOCK ALLOW ... 33 JANUS CLSOCK DISALLOW ... 36 user parameters ... 201 User 0 parameters ... 15 Userid and password ... 77, 101 Converting to upper case ... 77, 101 USGROUP parameter JANUS CLSOCK ALLOW ... 33 JANUS CLSOCK DISALLOW ... 37 UTEXT parameter, JANUS WEB SCREEN ... 194 V VARIPADDR parameter, JANUS DEFINE ... 101 VERIP parameter, JANUS DEFINEREMOTE ... 113 W WEB, JANUS subcommand ... 27, 159 WEBACCT parameter, JANUS DEFINE ... 102 WEBCOOKID parameter, JANUS DEFINE ... 102 WEBLH parameter, JANUS DEFINE ... 102 —————————————————————————————————————————— 232 Janus TCP/IP Base Reference Manual —————————————————————————————————————————— Index —————————————————————————————————————————— WEBLM parameter, JANUS DEFINE ... 102 WEBLOGCOOKIE parameter, JANUS DEFINE ... 103 WEBLOGHOLD parameter, JANUS DEFINE ... 86, 103 WEBLOGMAX parameter, JANUS DEFINE ... 104 WEBPL parameter, JANUS DEFINE ... 104 WEBPUBLOG parameter, JANUS DEFINE ... 104 WEBREALM parameter, JANUS DEFINE ... 105 WEBSDMAX parameter, JANUS DEFINE ... 105 WEBSERV port type ... 42 WEBSM parameter, JANUS DEFINE ... 106 WEBUSER parameter, JANUS DEFINE ... 106 Workstation utilities ... 212 batch2 ... 212 m204 ... 212 WRAPJS parameter JANUS WEB ON ... 182 WSFQUERY parameter, JANUS DEFINE command ... 106 X XTAB parameter JANUS DEFINE command ... 107 JANUS WEB ON command ... 182 —————————————————————————————————————————— Janus TCP/IP Base Reference Manual 233 —————————————————————————————————————————— Index —————————————————————————————————————————— —————————————————————————————————————————— 234 Janus TCP/IP Base Reference Manual