HEIRLOOM COMPUTING
Elastic Batch Platform
Configuration Reference
The definitive reference for all supported EBP configuration properties. A single, comprehensive guide covering EBP, RAC, and HSORT settings, including descriptions, default values, and usage information.
BUILD VERSION 26.5.31.RC2 | BUILD DATE Sun May 31 2026 (UTC) | PARAMETERS 187 documented |
Contents
| Logging & Console Messages (7) | Job Timing & Aging (6) | Data Control Block (DCB & DCBDB) (19) |
| Spool & Directory Settings (9) | Dataset Naming & Catalog (8) | Security & Access Control (RAC) (58) |
| Libraries & Classpath (4) | EBP-Plex (Multi-Node Cluster) (10) | Debugging (5) |
| Execution Commands (7) | System & Locale (4) | Exit Handlers & Extensibility (3) |
| Parameter Handling (3) | Scheduling & Cloud Service (5) | Restart & Recovery (2) |
| Output Classes & Routing (4) | Batch HourGlass (Time Simulation) (2) | FAQS Automation (2) |
| PARMLIB, Aliases & Symbolics (14) | HSORT (Sort Engine) (12) | Miscellaneous (3) |
How to read this reference
Every EBP configuration property carries the ebp. prefix and lives in the ebp.properties file in the Web application deployment directory (or an external directory named by the ebppropdir environment variable). Values persist until the EBP subsystem is redeployed. Numbered families such as systemlib.n accept multiple entries (systemlib.1, systemlib.2, …); named families such as output.XXXX and parmlib.XXXX use a user-defined key. Where a default is defined it appears in parentheses at the end of each description.
Upgrade note: Updating EBP replaces ebp.properties with the version default. Use the SAVE button before upgrading and LOAD afterward to restore your settings.
Logging & Console Messages 7 settings How EBP emits messages to the server logs and the system console, and how those logs are located, sized and archived. | |||
| Property | Description | ||
| ebp.errorlevel | Level of error messages reported on the application server's logs: S, E, W, I or D for severe, error, warning, informational or debugging; set to D when using rac.debug or hsortlog for detailed diagnostics (default: I) | ||
| ebp.logebpconsolemsg | Controls whether the EBP Console messages are logged to a file at all (yes | no; default: no) | ||
| ebp.loglocation | Location of the log file for EBP Console messages; specify the full path (e.g., C:\logs\ebp.output.log); if not specified, defaults to the EBP home directory with file name ebp.output.log | ||
| ebp.loglocationpattern | Location and pattern of the archive logs (archived daily); specify the full path and archive pattern (e.g., C:\logs\app.%d{yyyy-MM-dd}.%i.log.gz); if not specified, defaults to the EBP home directory with that pattern | ||
| ebp.logsize | Log size limit after which the log is archived and a new log file is created (default: 20MB) | ||
| ebp.messages | Whether messages are generated on the application server's output and error logs or in the output.CONSOLE output spooler specification (yes | no; default: yes) | ||
| ebp.msgleveloverride | Forces the JCL MSGLEVEL=(statements,messages) for every job, overriding whatever each job's own JCL requests; written as two digits in the form (statements,messages), each from 0 to 4, where the first controls how much of the JCL is echoed to the log and the second how many system messages appear. Higher numbers show more detail; leave blank to let each job keep its own MSGLEVEL. | ||
Spool & Directory Settings 9 settings Locations for submitted jobs, output, temporary work and the persistent object store. | |||
| Property | Description | ||
| ebp.db.objectstore | Chooses where EBP keeps its job bookkeeping (job inputs and outputs, catalog, operator messages, and similar). Set to yes to store this information in a database; no (the default) keeps it in XML files on disk. See also objectstore and storefilename for the file location, and persistjobiodata. | ||
| ebp.deletescript | An optional program or script that EBP runs whenever a job's datasets are fully cleaned up (not just its temporary files); EBP passes the job number as the only argument so you can add your own custom cleanup, and leaving it blank (the default) does nothing. | ||
| ebp.jobspool | Default input spool directory; holds submitted datasets (default: job_input_queue) | ||
| ebp.keeptempfiles | Set to yes to retain temp files created for a JOB run; temp files are stored in the tempspool directory (yes | no; default: no) | ||
| ebp.objectstore | Path to the directory containing the Object Store files | ||
| ebp.outputspool | Default output spool directory; holds output datasets associated with SYSOUT=class DD cards or standard out/error files for scripts and command line programs; referenced by output.XXXX when using the hold disposition (default: job_output_queue) | ||
| ebp.persistjobiodata | Controls whether each job's input deck and output listings are stored inside the job's saved record rather than only pointed to; with yes the JCL and message output are embedded so they stay with the job, with no (the default) EBP keeps them in a separate spool file on disk and stores only a reference. Interacts with db.objectstore and jobspool. | ||
| ebp.storefilename | Persistent object storage file | ||
| ebp.tempspool | Default location of temporary datasets and working directories for running programs; see also keeptempfiles to retain these files after a job completes (default: temp_spool) | ||
Libraries & Classpath 4 settings Where EBP looks for executable programs, datasets, cataloged procedures and Java classpath entries. | |||
| Property | Description | ||
| ebp.classlib | CLASSPATH entries passed to programs such as ecobol and java that have a '-cp' option; path-separator-separated directories (containing .class files) or jar files (colon on Linux, semicolon on Windows); note: J2EE servers and servlet containers such as Tomcat often do not pass $CLASSPATH (default: $CLASSPATH) | ||
| ebp.datalib | Location where datasets referenced on DD cards may be found; may contain environment variables; $HOME is the deployment home directory; also the default location for database-based DCB files (VDB, VSQL) (default: /data) | ||
| ebp.jcllib | Location where system cataloged procedures referenced in EXEC PROC steps are found; may contain environment variables; $HOME is the deployment home directory (default: $HOME/jcl_system_lib) | ||
| ebp.systemlib | Locations of system library directories where main programs on the EXEC PGM= statement may be found (e.g., systemlib.9=/usr/bin allows EXEC=echo); may be directories or Java packages and may contain environment variables; $HOME is the Web server's deployment home directory; see also alias.XXXX (default: com.heirloomcomputing.pgm, /data) | ||
Execution Commands 7 settings The commands used to launch Java, Python, shell and native programs referenced on EXEC cards. | |||
| Property | Description | ||
| ebp.checkpointcommand | Set 'checkpointcommand.A' to an external checkpoint launch command (e.g., dmtcp_launch) for Class A jobs for process-level restart | ||
| ebp.ebpstartcommand | A command that sets operating system resource restrictions before starting the Java, Python or executable on the EXEC card; CPU time from job class, JOB and STEP cards is regulated with this wrapper; specify as a relative path, e.g., ../../bin/ebpstart_Linuxx86_64 (default: none - CPU time specifications are not enforced) | ||
| ebp.javacommand | Command to issue to start programs found ending in .class, such as standard utilities; see also classlib.n for classpath settings (default: java) | ||
| ebp.javajarcommand | Command to issue to start programs contained in a jar file, such as the COBOL executables; see also classlib.n for the classpath available to these programs (default: java -jar) | ||
| ebp.pythoncommand | Command issued to start scripts running under a Python interpreter class and by TSO for % Python scripts (SYSEXEC DD datasets with .PY suffix); scripts start with #!/usr/bin/python and carry job parameters on the second line (default: python) | ||
| ebp.restartcommand | Set 'restartcommand.A' to an external restart command (e.g., dmtcp_restart) for Class A jobs for process-level restart | ||
| ebp.scriptcommand | Other script interpreters for job type SCRIPT (first line #!/bin/bash may override) | ||
Parameter Handling 3 settings How JCL PARM= values and symbolic parameters are parsed and delivered to programs. | |||
| Property | Description | ||
| ebp.immediatesymbolreplacement | Replace symbolic parameters (e.g., &DEPT) inside immediate file (DD *) data if yes; see Symbolics and the PARMLIB for the full list (default: no) | ||
| ebp.parmcount | Number of args passed to a program from a JCL PARM= clause; parm split by spaces into UNIX-style argc/argv or kept as one large string; use 1 for IBM MVS compatibility and 256 for Linux/UNIX; see also parmempty (number 1-256; default: 256) | ||
| ebp.parmempty | How a PARM= evaluating to "" is passed: a single zero-length argument or no argument at all; use no for IBM MVS compatibility and yes for Linux/UNIX; see also parmcount (yes | no; default: no) | ||
Output Classes & Routing 4 settings Disposition of SYSOUT output by class, MSGCLASS combination and destination routing. | |||
| Property | Description | ||
| ebp.destdispatch.implementation | The Java class that handles routing spool output to a destination (POWER-style DEST/queue handling); EBP launches this class as a separate process, passing it the spool file, output class, type, destination and job details. Leave blank if you do not route output this way, in which case any routing request is rejected. See also stepexithandler, jobexithandler and vse.userprophandler, which are launched the same way. | ||
| ebp.lstspoolfiles.fba | For VSE (POWER) jobs, controls whether listing-queue (LST) spool files sent to a printer are treated as fixed-block ASA (FBA) format; when true, printer output that comes from an LST queue is forced into line-sequential FBA layout, false (the default) leaves it unchanged. | ||
| ebp.msgclasscombine | Combine all SYSOUT=* output into a single MSGCLASS output dataset; applies to all output classes defined in output.XXXX (yes | no; default: yes) | ||
| ebp.output | Output class specifiers by class name (A, B, C), DEFAULT or CONSOLE; value may be none (discard), hold (in outputspool under a job name subdirectory), log log-name (Java Logger/log4j), lpr parms (pipe to lpr) or an arbitrary command such as cat >>afile; DEFAULT covers classes not overridden; CONSOLE is the EBP system console and hold rolls the log daily into outputspool (defaults: DEFAULT=hold, CONSOLE=none, L=log, P=lpr, Y=hold, Z=none) | ||
PARMLIB, Aliases & Symbolics 14 settings User-definable symbolics available to JCL and program-name alias substitutions. | |||
| Property | Description | ||
| ebp.alias | Replace EXEC PGM names with aliases, such as SORT having a value SYNCSORT, to force it as the default over Linux sort; the alias is resolved before searching systemlib.n directories | ||
| ebp.alias.DFSORT | DFSORT invokes HSORT | ||
| ebp.alias.SORT | SORT invokes HSORT | ||
| ebp.alias.SYNCSORT | SYNCSORT invokes HSORT | ||
| ebp.parmlib.DEPT | Our department name (IT) | ||
| ebp.parmlib.SYSALVL | The architecture level of the system (J for Java) | ||
| ebp.parmlib.SYSCLONE | Shorthand notation for the name of the system; often used in fields that are limited to two characters (HC for Heirloom Computing) | ||
| ebp.parmlib.SYSGID | The current group (EBP) | ||
| ebp.parmlib.SYSNAME | The name of the system (HCIEBP for Heirloom Computing Elastic Batch Platform) | ||
| ebp.parmlib.SYSPLEX | The name of the sysplex (HCIEBP for Heirloom Computing Elastic Batch Platform) | ||
| ebp.parmlib.SYSR1 | The IPL Volume Serial name (HCI001) | ||
| ebp.parmlib.SYSUID | The current user (EBP) | ||
| ebp.parmlib.dynamcpu | CA Dynam/D @ substitution (A) | ||
| ebp.parmlib.dynampartition | CA Dynam/D == substitution (AA) | ||
Job Timing & Aging 6 settings Inter-step, inter-job and idle polling delays plus automatic purging of completed jobs. | |||
| Property | Description | ||
| ebp.initiatordelay | Delay up to n milliseconds while idle or quiesced initiators look for jobs; see also jobdelay and jobstepdelay (default: 30000 = 30 sec) | ||
| ebp.jobdelay | Delay up to n milliseconds between jobs within an initiator; see also jobstepdelay and initiatordelay (default: 10000 = 10 sec) | ||
| ebp.jobstepdelay | Delay up to n milliseconds between steps within a job; see also jobdelay and initiatordelay (default: 100 = 0.1 sec) | ||
| ebp.maxjobage | Maximum retention period in minutes for completed jobs before they are eligible for automatic purging; purged job output is removed from the outputspool directory; see also maxjobagefrequencyindays and maxjobagestarttime (default: 0 = never purge) | ||
| ebp.maxjobagefrequencyindays | Execution interval in days for the automatic job-aging purge process (integer; default: 1 = daily) | ||
| ebp.maxjobagestarttime | Hour of day (0-23, 24-hour format) when the automatic job-aging purge process starts (integer; default: 2 = 2:00 AM) | ||
Dataset Naming & Catalog 8 settings How new dataset names are mapped to the file system, catalog handling, GDG rules, tape libraries and encoding. | |||
| Property | Description | ||
| ebp.checkbackref | Turns on an extra safety check of your JCL before a job runs. When a step looks back at an earlier step's result (for example an IF test on STEP1.RC), EBP confirms that the earlier step name actually exists in the job; set to yes to catch typos in those references up front, no (the default) skips the check. | ||
| ebp.defaultjobencoding | The character set used to read and write submitted job files (JCL/JCS, PROCs, previews, punch output) when nothing more specific is supplied; defaults to utf-8, with iso-8859-1 the common alternative. Any valid character-set name is accepted and an unrecognized one falls back to utf-8. | ||
| ebp.ignorevsamcatalogs | Controls how a CAT= catalog name on a DD statement affects the dataset name; with no (the default) the catalog name is added to the front of the dataset name as a high-level qualifier, with yes the CAT= catalog name is ignored and the dataset name is left unchanged. | ||
| ebp.largefilesizembs | The size in megabytes above which a data file is treated as large; the shipped value is 2 MB, and if the setting is removed the built-in fallback is 10 MB. | ||
| ebp.mainframe.gdg.protocol | Enforces strict mainframe rules for Generation Data Groups (GDGs); when true a GDG base must already exist before a new generation such as (+1) can be created, and trying to create one without a base fails the step, false (the default) allows the new generation without requiring a base first. (Separate from the COBOL runtime's own MAINFRAME-GDG-PROTOCOL profile setting, which defaults to true.) | ||
| ebp.newdsndirectory | New DSNs created as directory hierarchies; 'A.B.C(D)' becomes 'A/B/C/D' if yes, 'A.B.C/D' if no; affects how datasets are stored within datalib.n directories; see also newdsnlowercase (default: no) | ||
| ebp.newdsnlowercase | New DSNs created as lower case; 'A.B.C(D)' becomes 'a/b/c/D' or 'a.b.c/D' if yes; works in combination with newdsndirectory (default: no) | ||
| ebp.tape.IBMVTS.location | Points a JCL UNIT name to a folder that acts as a virtual tape library; here UNIT=IBMVTS maps to the given folder, and datasets on that unit are read from and archived into it. The part after 'tape.' is the UNIT name, so several units can be defined (e.g. tape.IBMVTS.location, tape.TAPE.location); the folder should sit inside a datalib.n directory. Leave unset if you do not use tape libraries. | ||
EBP-Plex (Multi-Node Cluster) 10 settings Clustered operation across multiple nodes: node identity, peer wiring, data locking and default classes. | |||
| Property | Description | ||
| ebp.database.ebp.consolemsg | Write EBP console messages to the database (in addition to the server logs) so they can be searched and archived; used with EBP-Plex clustered operation (true | false) | ||
| ebp.ebpplex.configpollinterval | Interval in milliseconds at which an EBP-Plex node polls for changes to classes and initiators (default: 1000 = 1 second) | ||
| ebp.ebpplexauth | In a multi-node EBP, the basic HTTP authentication string (before encryption) used between secure servers (e.g., myuser:mypassword); ensure ebp.properties is properly access-controlled when this value is set | ||
| ebp.ebpplexnode | In a multi-node EBP (EBP-Plex), the Web service location of this node (e.g., http://10.20.30.40:8080/ebp); must be set together with ebpplexpeer | ||
| ebp.ebpplexpeer | In a multi-node EBP, the Web service location of one other node in the EBP-Plex (e.g., http://10.20.30.41:8080/ebp); must be set together with ebpplexnode | ||
| ebp.ebpplexstatus | EBP-Plex multi-node operation status | ||
| ebp.nodeID | Unique identifier for this EBP node within an EBP-Plex; if plex is enabled and no nodeID is defined by the user, a UUID is generated automatically (e.g., ebpNode1) | ||
| ebp.plex.defaultclass | Automatically create JCL job classes and initiators on node startup, as ebp.plex.defaultclass.JCL.<class>=<number of initiators> (e.g., ebp.plex.defaultclass.JCL.A=1); applied only if the node has no classes already configured/persisted in the db object store | ||
| ebp.plex.enabled | Enable EBP-Plex clustered operation so multiple nodes share common data/spool directories and coordinate shared/exclusive dataset access and unique job numbering; if not set, the node operates independently even if directories overlap (true | false; default: false) | ||
| ebp.plex.enabled.datalock | In an EBP-Plex, enable inter-node data locking coordination for shared/exclusive dataset access (true | false) | ||
System & Locale 4 settings System banner name plus language, country and timezone settings that affect messages and symbolics. | |||
| Property | Description | ||
| ebp.country | International locale code for alternative EBP error message files; blank uses the server/JVM locale; works together with language (default: US) | ||
| ebp.language | International locale code for alternative EBP error message language; blank uses the server/JVM locale; works together with country (default: en) | ||
| ebp.sysname | Banner setting on console and logs; also available as the &SYSNAME symbolic (default: HCI EBP) | ||
| ebp.timezone | Timezone for dates within MSG and SYSOUT dataset messages; also affects the local-time symbolics (LDATE, LHHMMSS, etc.) (default: GMT) | ||
Scheduling & Cloud Service 5 settings Polling the Heirloom cloud (or local) scheduler for incoming work. | |||
| Property | Description | ||
| ebp.application | Schedule tasks for this application name from the hciservice portal; '*' for all tasks (default: my-scheduled-tasks) | ||
| ebp.hciservice | RESTful service end-point for the cloud (global or local) scheduler; used by scheduler polling and application task retrieval (default: https://paas.heirloomcomputing.com/rest/2017-01-01/) | ||
| ebp.scheduler | Poll the scheduler at hciservice every few seconds (default: yes) | ||
| ebp.scheduling | Currently polling the scheduler for incoming jobs (read only) (default: yes) | ||
| ebp.taskscope | Scope of tasks retrieved from the scheduler (user, group or all) based on subscriber ID; only relevant when scheduler is enabled (default: user) | ||
Batch HourGlass (Time Simulation) 2 settings IBM HourGlass integration for simulating the clock seen by batch jobs. | |||
| Property | Description | ||
| ebp.hourglass.active | Controls activation of the IBM HourGlass time-simulation system for batch jobs (yes | no; default: no) | ||
| ebp.hourglass.prefix | The two-character prefix that HourGlass dummy DD statements use as identifier (e.g., HG) | ||
HSORT (Sort Engine) 12 settings Tuning and behavior of the HSORT high-performance sort/merge engine. | |||
| Property | Description | ||
| ebp.fileforsort.charset | The character set assumed for files handed to the sort subsystem, so records are read and compared using the correct alphabet; defaults to ISO-8859-1. | ||
| ebp.hsort.abendrc | Controls whether a badly failed sort actually stops the job; when set to true, an HSORT sort that ends with a return code of 16 or higher is recorded as an abend so the job halts instead of continuing. Any other value, or leaving it unset (the default), lets the job carry on. Note only the literal value true works here — yes is not accepted. | ||
| ebp.hsort.bufferSize | The I/O buffer size, in bytes, used when reading and writing (default: 8192) | ||
| ebp.hsort.defaultMaxMemory | Default amount of memory used by HSORT for all jobs; overridden if the STEPMEM step parameter is set in JCS-type jobs; K, M or G unit symbols may be used (e.g., 1024K, 1024M, 1G); blank lets HSORT choose based on available memory | ||
| ebp.hsort.initialSortInParallel | Whether the initial in-memory sort of each chunk runs in parallel; set to yes to use multiple threads for the initial sort (default: no) | ||
| ebp.hsort.maxFilesPerMerge | How many work files HSORT merges in a single pass; if a sort produces more work files than this, it merges in multiple passes (default: 100) | ||
| ebp.hsort.maxItemsPerFile | How many records HSORT holds before writing a sorted chunk to a temporary work file; higher values use more memory but create fewer work files (default: 100000) | ||
| ebp.hsort.statistics.reversedOrder | Order of HSORT record-written statistics; straight order follows the order of the DD file names defined in the JCL, reversed order matches the mainframe implementation (true | false; default: false) | ||
| ebp.hsort.statistics.useSORTOFddnames | Whether to use the DDName or the output file name to identify where the records are written (true | false; default: false) | ||
| ebp.hsort.streamingoutfil | Reserved HSORT setting; | ||
| ebp.hsort.tempdir | Directory where HSORT writes its temporary work files; blank uses the JVM's default temporary directory | ||
| ebp.hsortlog | Additional logging in HSORT such as number of records written to files periodically if true; requires errorlevel set to D for full detail (true | false; default: false) | ||
Data Control Block (DCB & DCBDB) 19 settings Default dataset attributes when no catalog entry exists, and the database-backed DCB configuration. | |||
| Property | Description | ||
| ebp.cobolconfig | Path to the COBOL configuration file that tells the COBOL runtime where to find the DCB configuration file, avoiding sensitive credentials on the java command line (e.g., /data/system/ebp.cobolconfig) | ||
| ebp.dcb.DEFAULT | Default DCB attributes when no .dcb file can be found; of the form 'dcb.datasetname|DEFAULT-dcbsetting=dcbvalue' | ||
| ebp.dcb.DEFAULT-blksize | The default dataset block size for blocked (VB, FB) record formats (none) | ||
| ebp.dcb.DEFAULT-charset | The default dataset character set encoding when DCB is missing and cannot be determined by the DD card (iso-8859-1) | ||
| ebp.dcb.DEFAULT-dsorg | The default dataset organization when DCB is missing and cannot be determined by the DD card (PS) | ||
| ebp.dcb.DEFAULT-keylen | The default dataset primary key length (for INDEXED orientation) when DCB is missing and cannot be determined by the DD card (none) | ||
| ebp.dcb.DEFAULT-keyoff | The default dataset primary key offset (for INDEXED orientation) when DCB is missing and cannot be determined by the DD card (none) | ||
| ebp.dcb.DEFAULT-lrecl | The default dataset logical record length, but not LINESEQUENTIAL orientation (none) | ||
| ebp.dcb.DEFAULT-orient | The default dataset orientation when DCB is missing and cannot be determined by the DD card (LINESEQUENTIAL) | ||
| ebp.dcb.DEFAULT-proto | The default file protocol when DCB is missing and cannot be determined by the DD card (none) | ||
| ebp.dcb.DEFAULT-proto.VF | The default file protocol for variable length files when DCB is missing and cannot be determined by the DD card (none) | ||
| ebp.dcb.DEFAULT-recfm | The default dataset record format when DCB is missing and cannot be determined by the DD card (V) | ||
| ebp.dcb.dcb.db.driver | JDBC driver class for the database-backed DCB (DCBDB) Table DCB (e.g., org.postgresql.Driver); the driver jar must be on classlib.n or in the container lib directory | ||
| ebp.dcb.dcb.db.jndi | Optional JNDI data source name for the database-backed DCB (DCBDB) connection, used instead of an explicit driver/url | ||
| ebp.dcb.dcb.db.pass | Password for the database-backed DCB (DCBDB) database connection; secure the ebp.properties and cobolconfig files as they contain credentials | ||
| ebp.dcb.dcb.db.table | Table name (or suffix) holding the Table DCB catalog entries for the database-backed DCB (DCBDB) | ||
| ebp.dcb.dcb.db.url | JDBC URL of the database-backed DCB (DCBDB) database (e.g., jdbc:postgresql://localhost/mydb) | ||
| ebp.dcb.dcb.db.user | User name for the database-backed DCB (DCBDB) database connection | ||
| ebp.dcb.dcb.mode.db | Enable database-backed DCB (DCBDB) Table DCB mode if 'yes'/'true' (default: no) | ||
Security & Access Control (RAC) 58 settings Authentication, authorization and LDAP directory integration, roles and dataset-level access rules. | |||
| Property | Description | ||
| ebp.adminrole | The authenticated user's role to define job classes, start initiators, change configuration (default: EBP-admin) | ||
| ebp.apisecurity | Enable basic HTTP authentication for the EBP Console API; set to on to require authentication (on | off; default: off) | ||
| ebp.rac.alternateurl | If a socket connection cannot be made to the provider at connectionurl, an attempt is made to use this alternateurl (none) | ||
| ebp.rac.authentication | Type of authentication to use: none, simple, strong or a provider-specific definition; the provider's default is used if no value is given (none) | ||
| ebp.rac.cachesize | Cache the most recently used resource access permissions and users (separately) up to this many entries; works in conjunction with cachetime (default: 5000) | ||
| ebp.rac.cachetime | Cache resource access permissions and user authentications for this many minutes before rechecking the directory server; works with cachesize; note some Java App Servers also cache, which may need disabling for RAC caching to take effect (default: 480 minutes) | ||
| ebp.rac.class | The RAC module implementing com.heirloomcomputing.ecc.IRAC that is instantiated to handle authorization and authentication requests (default: com.heirloomcomputing.ecc.RAC) | ||
| ebp.rac.classpath | Classpath to a jar file used to locate rac.class if the JEE Application Server or Servlet Container classpath does not already include the RAC module (none) | ||
| ebp.rac.commonrole | A role name assigned to each successfully authenticated user in addition to the roles retrieved from LDAP; if not specified, only LDAP roles are used (none) | ||
| ebp.rac.connectionname | The directory distinguished name (e.g., cn=Manager,dc=example,dc=com) used when connecting to the directory for LDAP search operations; an anonymous connection is made if not specified; must be set together with connectionpassword (none) | ||
| ebp.rac.connectionpassword | The directory password used when connecting to the directory for LDAP search operations; an anonymous connection is made if not specified; must be set together with connectionname; ensure ebp.properties has appropriate file-system permissions when set (none) | ||
| ebp.rac.connectiontimeout | Timeout in milliseconds when establishing the connection to the LDAP directory (default: 5000 = 5 seconds) | ||
| ebp.rac.connectionurl | Connection URL passed to the JNDI driver when establishing a connection to the directory; see also alternateurl for failover (default: ldap://localhost:389) | ||
| ebp.rac.contextfactory | Fully qualified Java class name of the factory used to acquire the JNDI InitialContext (default: com.sun.jndi.ldap.LdapCtxFactory) | ||
| ebp.rac.dataset.accumulate.permissions | Accumulate permissions across multiple patterns; true = highest permission from all matching patterns, false = first matching pattern wins (traditional RACF) (true | false; default: true) | ||
| ebp.rac.dataset.ldap.objectclass | LDAP objectClass for dataset authorization entries; use 'group' for Active Directory, 'groupOfUniqueNames' for OpenLDAP/389 (default: group) | ||
| ebp.rac.dataset.max.patterns | Maximum number of wildcard patterns generated per dataset authorization check; prevents excessive LDAP query sizes for deeply nested dataset names (integer; default: 100) | ||
| ebp.rac.dataset.multisearch.enabled | Enables LDAP multi-search optimization and advanced pattern matching; reduces N sequential LDAP queries to 1 batch query and enables embedded-wildcard rules (e.g., CICS.*.TABLES.*); required for sidefile functionality (true | false; default: false) | ||
| ebp.rac.dataset.prefix.patterns.enabled | When multisearch is enabled, allows patterns ending with * to match dataset names with additional segments (e.g., YOUR.* matches YOUR.A.B.C) (true | false; default: true) | ||
| ebp.rac.dataset.sidefile.enabled | Set to yes to enable the RACF sidefile, no to disable; requires dataset.multisearch.enabled=yes (yes | no; default: no) | ||
| ebp.rac.dataset.sidefile.path | Full absolute path to the JSON sidefile containing RACF pattern definitions; must be accessible to the EBP process (none) | ||
| ebp.rac.dataset.sidefile.sort.racf | Sort sidefile patterns by specificity before matching so more specific patterns (longer prefixes, fewer wildcards) are evaluated first, giving predictable most-specific-match-first results (yes | no; default: yes) | ||
| ebp.rac.dataset.sidefile.use.regex | Set to yes for regex matching or no for the custom matcher (recommended, ~29% faster) that interprets RACF wildcards directly (yes | no; default: no) | ||
| ebp.rac.dataset.sidefile.watcher.enabled | Background thread that monitors the sidefile for changes and reloads patterns without an EBP restart, invalidating the resource cache when a change is detected (yes | no; default: no) | ||
| ebp.rac.dataset.sidefile.watcher.poll.interval | How frequently (in seconds) the sidefile watcher checks for file modifications; values below 10 are clamped to 10 with a warning; only relevant when sidefile.watcher.enabled is true (default: 60, minimum: 10) | ||
| ebp.rac.debug | Set to true for detailed LDAP communication messages on the EBP log; requires ebp.errorlevel set to D (default: false) | ||
| ebp.rac.opidattribute | The LDAP attribute within a user or role that holds the Operator ID (OPID) for that user (default: o) | ||
| ebp.rac.protocol | The security protocol to use (default: ldap) | ||
| ebp.rac.resourcebase | Base directory entry for resource searches; the top-level context is used if not specified; may include {0} for the resource name, {1} for the resource type and {2}..{n} for the authenticated user's DN name parts (default: cn={0},ou={1},dc=example,dc=com) | ||
| ebp.rac.resourcememberattribute | Attribute that contains group names and their permission rules; see also resourceruleattribute for the rules within those members (default: uniqueMember) | ||
| ebp.rac.resourcename | The attribute name that designates the name of the resource (default: cn) | ||
| ebp.rac.resourceruleattribute | Attribute on the resource and within its members defining the permission rules; works with resourcememberattribute (default: businessCategory) | ||
| ebp.rac.resourcesearch | The directory lookup search pattern, where {0} is substituted with a resource name (default: (uniqueMember={0})) | ||
| ebp.rac.resourcesearchasuser | Whether the resource search is performed as the authenticated user; if false, connectionname and connectionpassword are used if specified, else anonymous (default: false) | ||
| ebp.rac.resourcetypes | Comma-separated list of attribute names for the controlled resource types (DD dataset names, JOB input class, SYSOUT output class); used as the {1} substitution in resourcebase (default: datasets, jobclasses, outputclasses, transactions) | ||
| ebp.rac.rgbase | Base directory entry for resource group searches; the top-level context is used if not specified; may include pattern replacements {0}..{n} from the user's DN name parts (default: ou=groups,dc=example,dc=com) | ||
| ebp.rac.rgmemberattribute | The attribute name for the member; see also rgruleattribute for the rule attribute (default: uniqueMember) | ||
| ebp.rac.rgname | Attribute that contains resource group names in directory entries found by a resource group search (default: cn) | ||
| ebp.rac.rgruleattribute | The attribute name for the access rule; see also rgmemberattribute for the member attribute (default: businessCategory) | ||
| ebp.rac.rgsearch | LDAP filter expression for resource group searches; use {0} to substitute the DN of the user (default: (uniqueMember={0})) | ||
| ebp.rac.rolebase | Base directory entry for role searches; the top-level context is used if not specified; may include pattern replacements {0}..{n} from the user's DN name parts (default: ou=groups,dc=example,dc=com) | ||
| ebp.rac.rolename | Attribute that contains role names in directory entries found by a role search; see also userrolename for additional role names from the user's entry (default: cn) | ||
| ebp.rac.rolenested | Set to true to nest roles into roles; role searches repeat recursively to find all roles a user belongs to directly or indirectly (default: false) | ||
| ebp.rac.rolesearch | LDAP filter expression for role searches: {0} = user DN, {1} = username, {2} = value of the userroleattribute; also used recursively when rolenested is true; if not specified, roles are taken only from userrolename (none) | ||
| ebp.rac.rolesearchasuser | Whether the role search is performed as the user currently being authenticated; if false, connectionname and connectionpassword are used if specified, else anonymous; ignored with delegated credentials (default: false) | ||
| ebp.rac.rolesubtree | Set to true to search the entire subtree of rolebase for role entries; false searches only the top level (default: false) | ||
| ebp.rac.sizelimit | Maximum number of records to return when using the usersearch attribute (default: 0 = no limit) | ||
| ebp.rac.timelimit | Time in milliseconds to wait for records to be returned when using the usersearch attribute (default: 0 = no limit) | ||
| ebp.rac.userbase | Base element for user searches performed with usersearch; not used with userpattern unless EBP must authorize resource access without users being authenticated first (default: ou=people,dc=example,dc=com) | ||
| ebp.rac.userpassword | Name of the attribute in the user's entry containing the user's password; if set, EBP binds using connectionname/connectionpassword and compares this attribute; if not set, a simple bind is attempted using the user's DN and presented password (none) | ||
| ebp.rac.userpattern | Pattern for the user's DN, with {0} marking where the username is inserted; use instead of usersearch/usersubtree/userbase when the DN contains the username and is the same for all users; always ignored when accessing the directory with delegated credentials (default: uid={0},ou=people,dc=example,dc=com) | ||
| ebp.rac.userroleattribute | Attribute in the user's directory entry containing the value used in role searches (marked {2} in rolesearch); useful for RFC 2307; not available for nested role searches (none) | ||
| ebp.rac.userrolename | Attribute in the user's directory entry containing zero or more names of roles assigned to the user; if not specified, all roles derive from the role search via rolesearch (none) | ||
| ebp.rac.usersearch | LDAP filter expression for searching a user's directory entry, with {0} marking the username; use (with userbase) instead of userpattern; required if EBP jobs authorize without users being authenticated with bind mode first (default: (uid={0})) | ||
| ebp.rac.usersearchasuser | Whether the user search is performed as the user currently being authenticated; if false, connectionname and connectionpassword are used if specified, else anonymous; ignored with delegated credentials (default: false) | ||
| ebp.rac.usersubtree | Set to true to search the entire subtree of userbase for the user's entry; false searches only the top level; not used with userpattern (default: false) | ||
| ebp.rac.wildcard | The CN name used when looking for default CN entries for resources (CN=); override to use a different CN name in resource searches (default: *) | ||
| ebp.userrole | The authenticated user's role to submit, cancel, purge jobs (default: EBP-user) | ||
Debugging 5 settings Remote COBOL/Java debugging and extra diagnostic logging switches. | |||
| Property | Description | ||
| ebp.javadebughost | The host IP address Or '*' meaning all adaptors. Use 'localhost' for the same machine. | ||
| ebp.javadebugjobstep | Only debug jobs or steps with this name | ||
| ebp.javadebugport | COBOL/Java remote debugging port for first of concurrent executing programs (off=no debug) | ||
| ebp.javadebugsuspend | COBOL/Java remote debug suspend execution on program start (yes | no | delayed) | ||
| ebp.showsqlexceptionincobol | Add COBOL Runtime Option RUN_SHOW-SQL-EXCEPTION=true to log extra SQL information when a SQLException is thrown; false does not add the option at all; requires errorlevel set to D or I (true | false; default: false) | ||
Exit Handlers & Extensibility 3 settings Custom programs EBP invokes at step end, job end and on VSE user-property jobs. | |||
| Property | Description | ||
| ebp.jobexithandler | Program (e.g., JOBEXIT) executed after the end of the job; must be locatable via systemlib.n; see also stepexithandler (no default; ignored if not set) | ||
| ebp.stepexithandler | Program (e.g., STEPEXIT) executed after the end of the step; must be locatable via systemlib.n; see also jobexithandler (no default; ignored if not set) | ||
| ebp.vse.userprophandler | Names a Java program that EBP runs when a POWER/VSE (JCS) job finishes carrying a user-property value; EBP passes the job name, return code, user ID and user value to that program so you can act on them. Leave blank (the default) to do nothing. See also jobexithandler and destdispatch.implementation, which are launched the same way. | ||
Restart & Recovery 2 settings What happens to in-flight and pending jobs when the server is restarted. | |||
| Property | Description | ||
| ebp.restartjobsonserverreset | Controls what happens to jobs that were still pending when the server was last shut down; set to yes to put those jobs back on the input queue and continue them after a restart, no (the default) leaves them off the queue. Works together with restore.checkspoolfiles. | ||
| ebp.restore.checkspoolfiles | When jobs are restored after a restart, controls whether EBP first confirms that each job's saved input file still exists on disk; with true a job whose file is missing is dropped, with false (the default) jobs are re-queued without checking. Works together with restartjobsonserverreset. | ||
FAQS Automation 2 settings Console-message-driven automation subsystem that reacts to events. | |||
| Property | Description | ||
| ebp.faqs.enabled | Turns on the FAQS subsystem, which watches console messages and automatically triggers actions in response to them (a Vitec-project integration); set to yes to enable, no to disable. | ||
| ebp.faqs.implementation | The Java class that provides the FAQS message-handling logic used when faqs.enabled is yes; the default implementation reacts to specific console messages by releasing held jobs. Replace it with your own class to define different automatic actions. | ||
Miscellaneous 3 settings Additional settings and read-only status values. | |||
| Property | Description | ||
| ebp.parmlib | User-definable PARMLIB values, such as a company-wide DEPT code; these become available as symbolics (e.g., &DEPT) in JCL; see immediatesymbolreplacement for using symbolics in immediate data | ||
| ebp.previewsizekbs | Maximum file size in KB displayed in the EBP UI; large files negatively affect browser performance (default: 10 KB) | ||
| ebp.quiesced | System is in Quiesced state (read only) | ||
Appendix — The hsort.properties File Per-job and per-step tuning for the HSORT sort engine, kept in a separate file alongside ebp.properties. |
HSORT reads an optional companion file named hsort.properties from the same directory as ebp.properties. It fine-tunes how individual sort steps behave — hexadecimal handling, padding, collation order and statistics — without touching the global HSORT settings. The file is not required for HSORT to run; when present, EBP logs its location at startup (for example “hsort.properties file found in: …” when errorlevel is set to D). All job, procedure and step names used in the keys must be written in lowercase.
Key families and what they do
| Property key | What it does | Default |
| ebp.hsort.converthex.<job>.<step> | Keeps hexadecimal field values in hex form for that job step; set false to turn hex conversion off for the step so the raw bytes pass through unchanged. | true |
| ebp.hsort.converthex.<job>.<proc>.<step> | Same as above when the HSORT step runs inside a cataloged procedure — insert the procedure name between the job and step names. | true |
| ebp.hsort.nullpadding.<job>.<step> | Pads the result to the expected length using NULL (0x00) instead of spaces, for that specific job step. | false |
| ebp.hsort.nullpadding | Global switch: apply NULL (instead of space) padding to every HSORT step. | false |
| ebp.hsort.asciiorder.<job>.<step> | Sorts using ASCII collation instead of EBCDIC for that job step. | false |
| ebp.hsort.asciiorder.<job>.<proc>.<step> | Same as above when the step is contained within a procedure. | false |
| ebp.hsort.statistics.reversedOrder | Order of the record-written statistics: true reverses to match the mainframe implementation; false follows the order of the DD file names in the JCL. | false |
| ebp.hsort.statistics.useSORTOFddnames | Identifies where records were written by DDName rather than by the output file name. | false |
| ebp.hsort.postgres.addbinarylengthtovarchar | Adds a 2-byte binary length prefix to a VARCHAR field (PostgreSQL-backed data). | false |
0 Comments