Engine
Engine
Version 7.0MR5
Production Environment
© 2008-2009 Hewlett-Packard Development Company, L. P.
Confidential computer software. Valid license from HP required for possession, use or copying. Con-
sistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Docu-
mentation, and Technical Data for Commercial Items are licensed to the U.S. Government under
vendor's standard commercial license.
The information contained herein is subject to change without notice. The only warranties for HP
products and services are set forth in the express warranty statements accompanying such products
and services. Nothing herein should be construed as constituting an additional warranty. HP shall
not be liable for technical or editorial errors or omissions contained herein.
Contents
Production Environment 3
Using JCL Files to Run the Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Common JCL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Loading VSAM Package Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Running the Engine Using VSAM Package Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Using Dynamic Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Production Environment 4
Running Multiple Instances of the Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Troubleshooting ..................................................................................... 42
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Index .................................................................................................... 46
Production Environment 5
About the Production Environment
Introduction
There are two engines included with the HP Exstream content creation and design environment. You run the
design engine from the Design Manager interface for testing purposes. Each design station includes a copy of
this engine. The engine is required to run HP Exstream in a production environment. You run the engine from the
command prompt, through scripts or Job Control Language (JCL). You must use engine switches and specify
them either on the command line when you execute the program or in a control file to run the engine.
Benefits
There are many benefits to using the engine, including the following:
You can install the engine on several different platforms:
• Windows
• z/OS
• UNIX
• Linux
• AS/400
The engine eliminates the “Demonstration Powered by HP Exstream” tagline on the composed output.
NOTE: If you run the engine for the production environment from a design workstation, the engine
is limited to 120 pages per minute. If you run the design engine, it runs at full speed.
Guide Design
This guide assumes a strong understanding of your operating system and system administration concepts.
This guide provides the answers to the following questions:
How do I set options for the engine?
Which which operating systems can the engine work?
How do I use the command prompt to run the engine?
How do I run the engine on the Windows Server Environment?
How do I run the engine on the UNIX or Linux Environment?
How do I run the engine on AS/400?
How do I run the engine on z/OS?
What are control files, and how do I use them?
How can I improve system performance?
What are some frequently asked questions about the production environment?
Production Environment 6
About the Production Environment
For more information about the System Settings, see the System Settings chapter in the System Adminis-
tration guide.
To determine whether you can run in production mode, look at the Key string box on the Key tab in the
System Settings. In this box you can view:
Whether you can run in single-byte or double-byte mode.
If the license is capable of production.
When the key expires (if it expires).
In addition, the Operating Systems area shows you on what operating systems the key lets you run the
engine. In the example below, this system can utilize Linux, UNIX, Windows, and z/OS operating systems.
For information on the platform you are using, see the chapter devoted to that platform: Running the Engine
in the Windows Environment; Running the Engine in the UNIX or Linux Environment; Running the Engine on
Mainframe Platforms.
Return codes
Code Message
The second option is to call the EnginVer function in the library PubEngVersion.dll. The Windows call
signature is:
__declspec(dllimport) int EnginVer(char * pPubFile, long * piPubFileLen, char *
pVersion, long * piVersionLen);
Pass the package (PUB) file name and PUB file name length in the first two arguments. The DLL writes the engine
version required as a string into the buffer pointed to by the third argument, and returns the length of this string
into the long integer pointed to by the fourth argument. It returns the same error codes as PubEngVersion.exe.
Production Environment 7
Running the Engine in the Windows Environ-
ment
For information on the available engine switches, see the Engine Switches and Return Codes guide.
Naming Conventions
When you work from the command prompt, it is important to adhere to the naming conventions of the platform
you are using.
On Windows, make the directory and file specifications of production file names or arguments as follows:
C:\dir1\...\dirn\filename
The drive specification, C:, is optional. If you omit the drive specification, the current working drive is assumed.
Each directory specification and file name can be up to 128 characters in length.
If you begin with a backslash (\), the file is relative to the root directory. If you do not begin the file specifi-
cation with a backslash, the file specification is relative to your current working directory.
When you are testing on any platform, you can use names like C:\Data Files\Customer.dat as the File
to use for data mapping on the Test Data Source tab. In a Windows environment, you can retain the
same naming convention for the File to use for data mapping on the Production Data Source tab as
well. Relative file names cannot be used in production, therefore you must provide the entire path.
Production Environment 8
Running the Engine in the Windows Environment
For more information on the PACKAGEFILE and other engine switches, see the Engine Switches and Return
Codes guide.
For more information on specifying a different message resource file using the DLGMSGLANGUAGE or the
DLGMSGRESOURCE switch in a control file, see the Engine Switches and Return Codes guide.
For information on creating and running the engine with a control file, see the Control Files chapter.
For more information on creating and running the engine with a control file, see the Control Files chapter.
Production Environment 9
Running the Engine in the UNIX or Linux Envi-
ronment
Naming Conventions
When you are working from the command prompt, it is important to remember to retain the naming conventions
for the platform you are using. Make the directory and file specifications of production file names or arguments
as follows:
/dir1/... /dirn/filename
TIP: When you are testing on any platform, you can use names like C:\Data
Files\Customer.dat as a Test Data Source.
If you do not begin the file specification with a slash (/), the file is relative to your home directory. If you begin
with a slash, the file is relative to the root directory. UNIX directory and file names are case sensitive. Be sure to
verify all directories and file names for spelling and case before using them. If the names do not match, an error
is issued.
Production Environment 10
Running the Engine in the UNIX or Linux Environment
For more information on creating and running the engine with a control file, see the Control Files chapter
later in this book.
WARNING: When a package file contains features the key doesn’t authorize, the engine issues a
message indicating an unlicensed feature and stops processing.
For more information on creating and running the engine with a control file, see the Control Files chapter.
For more information on the CONTROLFILE switch, see the Engine Switches and Return Codes guide.
Production Environment 11
Running the Engine in the UNIX or Linux Environment
WARNING: When a package file contains features that the key doesn’t authorize, the engine
issues a message indicating an unlicensed feature and stops processing.
For more information on specifying a different message resource file using the DLGMSGLANGUAGE or the
DLGMSGRESOURCE switch in a control file, see the Engine Switches and Return Codes guide.
Naming Conventions
When you work on AS/400, all files used by the application must exist in the same directory. Therefore, local
names are sufficient when defining file names in the Production Data Source tab. Directory and file names
are case sensitive.
TIP: When you are testing on any platform, you can use names like C:\Data
Files\Customer.dat as a file name on the Test Data Source tab.
NOTE: To access native OS\400 files from the Portable Application Solutions Environment (PASE),
you must use the fully-qualified path to the data file. For example:
/QSYS.LIB/mydata.LIB/mytable.FILE/mytable.MBR
Production Environment 12
Running the Engine in the UNIX or Linux Environment
Transferring Files
To run the engine from the AS/400 environment, you must use FTP to upload files to the directory where the AIX
engine is installed. These files include:
The package file.
Data files used in the application.
Any control files or script files to be used by the application.
For more information on creating and running the engine with a control file, see the Control Files chapter.
To upload files to the AS/400, use the FTP command quote site namefmt 1.
NOTE: Before uploading to the AIX engine directory, you must remove all carriage returns (line
feeds) from text files. To do this, replace all X’0D0A’ commands with X’0A’ commands.
TIP: You can use the FTP command ascii to upload files that can be read with a text editor
program.
TIP: Use your FTP program in bin mode to upload all files that cannot be read by a text editor
program.
DBCS: For more information on creating and running the engine with a control file, see the Control
Files chapter.
Production Environment 13
Running the Engine in the UNIX or Linux Environment
Production Environment 14
Running the Engine on Mainframe Platforms
Naming Conventions
It is important to remember to retain the naming conventions of the platform you are using. Directory and file
names on z/OS must be in all capital letters. For example, you use names like DD:DATAOUT or
‘HLQ.XXXX.XXX’ on z/OS.
When you test you can use local file names like C:\Data Files\Customer.dat as the File to use in test
on the Test Data Source tab. However, the production file must be located on the production platform.
Use the following naming conventions when working with z/OS files:
z/OS datasets or files must be comprised of up to eight segments of up to eight characters separated by a period.
The first segment is called the High Level Qualifier (HLQ). The HLQ defaults to your login name and is automati-
cally prepended to any data set name (DSN) not enclosed in single quotes. For example if you are logged in as
P390A, then TESTING.CONTROL is the same as 'P390A.TESTING.CONTROL’.
WARNING: The destination PDS for the package file must have the following DCB information:
RECFM=VB, LRECL=1024, Block Size=27560
Failure to comply causes the engine to read package files incorrectly. If the LRECL
setting is larger than 1024, the files are not read correctly.
Production Environment 15
Running the Engine on Mainframe Platforms
NOTE: The slash (/) character is supported as an argument specifier on the z/OS platform. It is
used to define parameters or switches on the command line interface.
For more information on specifying a different key by using the KEY, KEYFILE, or KEYPART switches in a
control file, see the Engine Switches and Return Codes guide.
WARNING: When a package file contains features that the key doesn’t authorize, you receive a
message indicating an unlicensed feature and the process stops.
Production Environment 16
Running the Engine on Mainframe Platforms
//PARM='-USECONTROL=YES
This command defines the parameters for the load module. In this case, the JCL tells the ENGEXE load module to
use a control file. Since we did not set the name of the control file, the engine will use the default control value of
DD:EXCONTRL.
In this example the DD:EXCONTROL references P390A.EXSTREAM.VMSCTRL.
//STEPLIB DD DSN=P390A.EXSTREAM.LOAD,DISP=SHR
This command identifies the location of the load module.
//DLMSGRES DD DSN=P390A.DMSGENUS,DISP=SHR
This JCL is required to provide access to the message resource file which generates English language error
messages. DLMSGRES is the default DD value in z/OS for the English version of the message resource file. In this
example, the physical name of the message resource file is P390A.DMSGENUS.
//EXMSGS DD DSN=P390A.EXSTREAM.VERMSG(MSGAFP2),DISP=SHR
This control value identifies the MESSAGEFILE as DD:EXMSGS. This statement equates it to the physical file
MSGAFP2 in the PDS P390A.EXSTREAM.VERMSG. All engine messages are written to this file.
//BANKDATA DD DSN=P390A.EXSTREAM.VERDATA(BANKDATA),DISP=SHR
This command identifies the data file for the application. A value of DD:BANKDATA was entered as the name of
the production file used by this application. The statement equates the logical name BANKDATA to the physical file
BANKDATA in the PDS P390A.EXSTREAM.VERDATA.
//PACKAGE DD DSN=P390A.EXSTREAM.VERPACK(PACKAFP),DISP=SHR
This control value identifies the PACKAGEFILE as the DD:PACKAGE. This statement equates it to the physical file
PACKAFP in the PDS P390A.EXSTREAM.VERPACK. The package file is the file that the engine uses to create
output.
//EXREPORT DD DSN=P390A.EXSTREAM.VERRPT(RPTAFP2),DISP=SHR
This control value identifies the REPORTFILE as the DD:EXREPORT. This statement equates it to the physical file
RPTAFP2 in the PDS P390A.EXSTREAM.VERRPT. All engine report information is written to this file.
Production Environment 17
Running the Engine on Mainframe Platforms
//EXOUTPUT DD DSN=P390A.EXSTREAM.VERAFP(EXAFP2),DISP=SHR
This control value identifies the OUTPUTFILE as the DD:EXOUTPUT. This statement equates it to the physical file
EXAFP2 in the PDS P390A.EXSTREAM.VERAFP. The engine writes all the data destined for the output device
to this file. In this example, the output is an AFP print stream.
NOTE: When you select the output property Used resources only in any print stream that
supports it, the engine uses temporary files to generate the output. On z/OS systems, you
must allocate a temporary file (DD:TEMP) in your engine JCL. The space allocated for your
temporary file must be at least as large as your main file.
For more information on specifying a different message resource file using the DLGMSGLANGUAGE or the
DLGMSGRESOURCE switch in a control file, see the Engine Switches and Return Codes guide.
DD statement explanation
Statement Explanation
PATHOPTS Use PATHOPTS to specify the access and status of the data file.
OWRONLY Use OWRONLY to specify that the program can open file for writing.
OCREAT Use OCREAT to specify that the system can create the file if it does not already exist.
OTRUNC Use OTRUNC to specify that the system is to truncate the file length to zero when all
the following conditions are true:
• When the file specified on the PATH parameter exists
• When the file is a regular file
• When the file successfully opened with ORDWR or OWRONLY
PATHMODE Use the PATHMODE parameter to specify the file access attributes when the system is
creating the HFS file named on the PATH parameter. Creating the file is specified by
a PATHOPTS=OCREAT parameter. Use the SIRWXU permission to allow the file
owner to do the following:
• Read, write, and search, if the file is a directory.
• Read, write, and execute, for a file other than a directory.
PATHDISP Use the PATHDISP parameter to specify what happens to the file if the job ends
normally or abnormally.
KEEP
Use the KEEP parameter to specify that the file should be kept:
When the step ends normally, KEEP is the first subparameter.
When the step ends abnormally, KEEP is the second subparameter.
Production Environment 18
Running the Engine on Mainframe Platforms
DELETE
Use the DELETE parameter to specify that the file should be deleted:
When the step ends normally, DELETE is the first subparameter.
When the step ends abnormally, DELETE is the second subparameter.
Production Environment 19
Running the Engine on Mainframe Platforms
JCL used to load the package file into either VSAM file
VSAMRPRO
//REPRO EXEC PGM=IDCAMS
//INPUT DD DSN=QA.TC13811.PACKAGE(PKG4),DISP=SHR
//OUTPUT DD DSN=EXSTREAM.ESDS.PKG1,DISP=SHR
//SYSPRINT DD SYSOUT=*
//* REPRO
REPRO -
INFILE(INPUT) -
OUTFILE(OUTPUT)
/*
Tuning Options
Various tuning options can be used to improve the performance of z/OS batch jobs when using VSAM clusters
to store the package file. The best tuning method to use depends on the system software available to you. In
order of preference, the tuning methods recommended are discussed in the following sections.
Production Environment 20
Running the Engine on Mainframe Platforms
NOTE: You might need to ask a z/OS system programmer to find out which dataclasses support
Extended Format. You can see if the dataset is in extended format by using LISTCAT ALL
on the VSAM cluster and looking for Extended in the attribute section.
For more information on the available engine switches, see the Engine Switches and Return Codes guide.
NOTE: When uploading images to a mainframe, upload the files using the FTP command bin.
Uploading using ASCII mode alters the image data.
Production Environment 21
Running the Engine on Mainframe Platforms
Production Environment 22
Control Files
For more information on the available engine switches, see the Engine Switches and Return Codes guide.
Any engine switch can be placed in a control file. When you use a control file, the only command necessary at
the prompt is the CONTROLFILE=command.
NOTE: Options in the control file override options placed directly on the command prompt.
For more information on packaging with a control file, see the Packaging and the Design Engine guide.
NOTE: A package control file is created the same way as a control file for the engine. The only
difference is that packaging switches are used instead of engine switches.
WARNING: If you include double quotes around a file name in a control file, errors are issued in
the message file, stating the specified file could not be found or created.
Production Environment 23
Control Files
TIP: You can use comments to create a general control file, containing all the possible switches
necessary for a production run. Comment out any unnecessary switches before running the
engine. This makes the control file reusable.
For more information on the available engine switches, see the Engine Switches and Return Codes guide.
WARNING: If you include double quotes ("") around a file name in a control file, the engine
issues errors in the message file, stating the specified file could not be found or
created.
CONTROLFILE Switch
You can call other control files from within a control file. This option is available to make key management
easier. For example, you can have a control file using only the KEY switch. When you need to change the key,
change it in this control file and then you can link all your control files to the KEY control file.
Production Environment 24
Control Files
TIP: On z/OS systems you can use the KEYPART switch to split a key string into multiple parts. It is
used for keys that are too large to fit on a single line of JCL. When the engine processes
multiple KEYPART switches, it combines the parts in the order supplied to form a single key
string.
NOTE: You can set the z/OS command CAPS OFF, to use a mixed case file. If you do not use this
command, all text is converted to upper case.
Production Environment 25
Control Files
NOTE: You must license the Dynamic content import module to use the IMPORTDIRECTORY engine
switch.
For more information on the engine switches used in this example, see the Engine Switches and Return
Codes guide.
NOTE: The z/OS engine is distributed with a control file. It has a built-in DD name:
DD:TIFFIMPO(SOUTHERN)
This is a valid z/OS file name and can help you get started.
Production Environment 26
Control Files
NOTE: z/OS automatically appends the user’s High Level Qualifier (HLQ) to the front of the data
set. You do not need to use fully-qualified name, because z/OS will automatically add the
current HLQ.
Production Environment 27
Control Files
For more information on the APP_PACKAGEFILES engine switch used in this example, see the Engine
Switches and Return Codes guide.
NOTE: You can use the same sub-packages (campaign or document updates) in more than one
application when they are listed in each -APP_PACKAGEFILES file.
For example:
-APP_PACKAGEFILES=App_1_PackageFiles.txt
-APP_PACKAGEFILES= Second_App_PackageFiles.txt
WARNING: If a package file contains features the key doesn’t authorize, you receive a message
indicating an unlicensed feature and the process stops.
Production Environment 28
Engine Reporting
Message Files
Message files show you all the messages the engine generates while processing the application.
There are four options available when you create a message file, located in the Message level drop-down list
on the Run the Engine dialog box. Each option controls how much detail is provided, relating to the severity
of the messages reported.
NOTE: These options can also be controlled by using the MESSAGEFILE and MESSAGELEVEL
engine switches.
Production Environment 29
Engine Reporting
Report Files
Report files show details about each object in the application.
There are four options available when you create a Report file, located in the Reporting level drop-down list
on the Run the Engine dialog box. Each option controls how much detail is provided, regarding the qualifi-
cation and inclusion of objects for each customer.
NOTE: This option can also be controlled by using the REPORTFILE and REPORT engine switches.
Selection Summary
The Selection summary engine report provides the least amount of data. It provides details at the appli-
cation level of objects selected for the run. The following example shows an engine report file with Selection
summary selected. In the following example the Customer driver file contains only one customer.
*******************************************************************
HP Exstream Version 4.5.301m
* Execution Begins: 3/24/2004 12:22:23
* Report File (15)
******************************************************************
Customers Processed: 1
Campaigns Selected: 0
Campaign Messages: 0
Other Messages: 0
Pages Processed: 1 (0 blank)
Sheets Produced: 1
Production Environment 30
Engine Reporting
Customer Selections
The Customer selections option provides a minimal amount of detail, similar to the Selection summary,
only the selections are shown at a customer level, rather than an application level. The following example was
generated using the same application.
*******************************************************************
HP Exstream Version 5.5.21m
* Execution Begins: 9/13/2005 11:00:41
* Report File (15)
******************************************************************
******************************************************************
* Run Selections: 1:
******************************************************************
************** COMPOSED PAGE LIST ************************
**** COMPOSE INFO: Total pages: 1, Mktg: 0, Bus: 1, Inserts: 0, weight 0.150oz,
Language: English
Basic Automated 1, 1, 1 Front Page=Basic Table Papertype (8.5 x 11)
Weight ( 0.150 oz)
************** QUALIFICATION REPORT ************************
Qualified Document List (1):
1q, 1s Basic Automated (1 pages/messages)
1q, 1s Page (ordered): Basic Table
Customer Details
The Customer details option provides the most detail in the report files. This option generates information
about each object used for each customer. The following example report was generated using the same appli-
cation previously used. Note that there is only one customer for this run.
Each value of the variables used for the customer is reported, as well as the values at specific times throughout
the run. This is in addition to the qualification information already provided with lower levels of detail. This type
of detail is useful for troubleshooting variables to ensure they reset properly.
******************************************************************
* HP Exstream Version 5.5.21m
* Execution Begins: 9/13/2005 11:00:41
* Report File (15)
******************************************************************
******************************************************************
* Overview of File: Transactions
******************************************************************
* FORMAT: Record types
* The record types which have been mapped are:
* 0: (new customer)
* C: (new customer)
* T: (data record)
******************************************************************
******************************************************************
* Variable Information
******************************************************************
SYS_CustomerEffectiveDate Date System As-needed
SYS_LanguageCustomer String System Cus-
tomer(Don't Compute)
SYS_LocaleCustomer String System Cus-
tomer(Don't Compute)
SYS_CustInvalidDataLevel Integer System Post-cus-
tomer(Don't Compute)
CustomerName String File As-needed
CustomerAddress1 String File As-needed
CustomerAddress2 String File As-needed
CustomerAddress3 String File As-needed
ApprovedCard String File As-needed
ChargeTransactionDate Date () File As-needed
ChargeTransactionCity String () File As-needed
Production Environment 31
Engine Reporting
Production Environment 32
Engine Reporting
Production Environment 33
System Performance
Memory Management
The amount of memory available for processing varies based on your production platform and server set up.
Use the examples in the following table as a guideline to determine the maximum memory usage your
production platform can support.
Windows (64-bit) 4 GB
Windows (32-bit) 2 GB
Sun 3 GB
Linux (64-bit) 4 GB
WARNING: The table is a reference tool for troubleshooting memory management issues only. It is
not a guarantee of performance on all platforms and all configurations.
Memory usage may become an issue if you process large applications, such as those with long transaction
tables. The following sections describe how to better manage how much memory is used with three engine
switches: MEMORYSAVE, MEMORYCACHE, and CACHETABLE.
For more information on the MEMORYSAVE switch, see the Engine Switches and Return Codes guide.
Production Environment 34
System Performance
TIP: If you use both MEMORYCACHE and MEMORYSAVE, you may see a bigger improvement in
memory usage.
The engine writes all subsequent row data to a file instead of memory when the row count for any one table
exceeds one of the following conditions:
250,000 (the CACHETABLE default and the value used if you do not use the CACHETABLE switch)
The number you specify with the CACHETABLE switch
When the engine reaches the end of the table, it sends the stored row data into the print stream along with
pagination, header/footer, and other page design information. The engine then resets the file so it is ready for
the next large table in the run. The engine uses additional files if it reaches the memory limit or if it encounters
read/write errors.
For more information on the MEMORYCACHE and CACHETABLE switches, see the Engine Switches and
Return Codes guide.
Production Environment 35
System Performance
MEMORYCACHE
In a z/OS production run, the file you specify with the MEMORYCACHE switch must be an ESDS VSAM file. The
size of the file must accommodate row data for your largest customer. The VSAM cluster must be defined as
reusable prior to use (default is non-reusable).
NOTE: With extremely large tables, you can use multiple MEMORYCACHE entries with different file
names. The engine writes table row data to the next file in the list when the first file fills up.
Below are sections of sample code necessary to run an application using MEMORYCACHE. These are presented
in the order they must appear in the code.
Production Environment 36
System Performance
NOTE: The model dataset is specified by the production file. It is only used to get LRECL,
BLKSIZE, RECFM, and VOLSER to be used when allocating data sets dynamically.
NOTE: You can load VSAM files once and run multiple times.
Production Environment 37
System Performance
For more information on the MEMORYSAVE switch see the Engine Switches and Return Codes guide.
LE Reports
You can set LE to report on how it uses memory and to configure your JCL for better performance. Different
package files use memory differently, so before you move an application to production, you can run the LE
reports to configure memory usage optimally.
To generate a storage report and run-time options report for program ENGEXE, specify:
//GO1 EXEC PGM=ENGEXE,PARM='RPTSTG(ON),RPTOPTS(ON)/'
You can apply LE run-time options in the PARM argument step in your JCL. Anything before a forward slash (/)
is sent to LE as an option; anything after the slash is sent as an argument.
//[stepname] EXEC PGM=ENGEXE,
//PARM='[run-time options/][program parameters]'
For LE report memory configuration and usage reports (including tuning recommendations) use:
//[stepname] EXEC PGM=ENGEXE,
//PARM='RPTSTG(ON),RPTOPTS(ON)/-USECONTROL=YES'
RPTSTG(ON) shows the storage the application uses at run time. Use this report to help decide what values and
suboptions to indicate at run time.
NOTE: Because it increases run time, you generally only use RPTSTG(ON) to assist with
application development.
RPTOPTS(ON) shows the run-time options in effect during application run time.
LE Tuning Parameters
The main LE tuning parameters are ANYHEAP, HEAP, HEAPPOOLS, and STACK. HEAP and HEAPPOOLS are key
when tuning an application to improve memory usage and performance.
Production Environment 38
System Performance
Anyheap
The ANYHEAP option controls the allocation of library heap storage not restricted to below the 16M line. This
option is always in effect. The IBM default is:
ANYHEAP(16K,8K,ANYWHERE,FREE)
Another example is:
ANYHEAP(640K,32K,ANY,FREE)
Heap
The HEAP option controls the allocation of initial and additional heaps and details how that storage is
managed. This option is always in effect. The default is:
HEAP(32K,32K,ANYWHERE,KEEP,8K,4K)
For smaller applications, the LE reports require setting the heap to:
//PARM='HEAP(5M,256K,ANY,FREE,8K,4K)/-USECONTROL=YES'
For larger applications, set the heap to:
//PARM='HEAP(15M,512K,ANY,FREE,8K,4K)/-USECONTROL=YES'
The following table shows the heap suboptions.
Heap suboptions
Value Function
init_size Establishes the minimum initial allocation of heap storage. Designate as n, nK, or nM
bytes of storage. The actual amount of allocated storage rounds up to the nearest
multiple of 8-bytes.
incr_size Establishes the minimum size of any subsequent increment to the heap storage.
Designate as n, nK, or nM bytes of storage. The actual amount of allocated storage
rounds up to the nearest multiple of 8-bytes.
ANYWHERE/ANY Allocates heap storage anywhere in storage. On systems that support bimodal
addressing, you can allocate storage above or below the 16M line. If no storage is
available above the line, storage is obtained below the line. On systems that do not
support bimodal addressing, LE ignores this option and allocates the heap storage
below 16M. The abbreviation for ANYWHERE is ANY.
BELOW Allocates heap storage below the 16M line in storage that is accessible to 24-bit
addressing. The BELOW suboption causes the HEAPPOOLS option to be ignored
because HEAPPOOLS can only run above the line.
KEEP Stipulates that storage allocated to HEAP increments is not released when the last of
the storage is freed.
FREE Stipulates that storage allocated to HEAP increments is released when the last of the
storage is freed. The FREE suboption has no impact on heap increments containing a
HEAPPOOLS cell pool.
Production Environment 39
System Performance
Heap suboptions
Value Function
initsz24 Establishes the minimum initial size of the heap storage obtained below the 16M line
for applications running with ALL31(OFF) when these applications specify
ANYWHERE in the HEAP run-time option. Designate as n, nK, or nM number of bytes.
The amount of storage rounds up to the nearest multiple of 8-bytes. initsz24 applies to
the initial heap and other heaps created with the CEECRHP call not allocated strictly
below the 16M line.
incrsz24 Establishes the minimum size for any subsequent increment to the heap area obtained
below the 16M line for applications running with ALL31(OFF) when these
applications specify ANYWHERE in the HEAP run-time option. Designate as n, nK, or
nM number of bytes. The amount of storage rounds up to the nearest multiple of 8-
bytes. incrsz24 applies to the initial heap and other heaps created with the CEECRHP
call not allocated strictly below the 16M line.
Heappools
For C languages, LE has a faster heap manager called HEAPPOOLS. This causes faster runs but use slightly
more memory.
HEAPPOOLS(ON,8,10,32,10,128,10,256,10,1024,10,2048,10)
The HEAPPOOLS option controls an optional heap storage management algorithm (heap pools) and is used to
improve performance of multi-threaded C/C++ applications with high use of standard memory calls.
The following table describes the suboptions available for heap pools.
Heappools suboptions
Value Function
OFF Establishes that LE does not use the heap pool manager.
ON Establishes that LE uses the heap pool manager to manage heap storage requests
against the initial heap.
[cell size] The size of cells in a heap pool. The cell size must be a multiple of 8, up to 2048. Cell
sizes 1K and 2K are also allowed.
[percentage] Percentage of HEAP run-time option’s init_size value to be used as the size for the heap
pool and any extents. The percentage must be between 1 and 90.
Stack
Stack controls the allocation of the thread’s stack storage. The default is:
STACK(128K,128K,BELOW,KEEP)
NOTE: For more information on tuning LE, see Language Environment for OS/390 & VM -
Programming Guide SC28-1939 and Programming Reference SC28-1940, available from
IBM.
Production Environment 40
System Performance
Production Environment 41
Troubleshooting
Troubleshooting
This chapter contains recommended solutions to some common issues you may experience. If these recommen-
dations do not solve your problem, try running a debug file for your application. If the issue persists, you can
create a case in Software Support Online (SSO) at http://support.overview.hp.com.
I want to use an old .pub file, but I get a message stating the key is invalid.
If you don’t want to recreate an old .pub file, but your key has expired, you must update the key to run the
engine for the specified file. To run the engine for a package file with an expired key:
1. Add the KEY command to the engine control file.
2. Open the EKF file in a text editor and copy the key directly into the control file.
The engine should run without problems.
I have created a package file, but the engine issues an error when I try to run.
Make sure you are using the same key for the design and production environments. The engine enforces the key.
If you create an application using a demonstration key, for example, but the engine key does not have all the
same features enabled, you receive a message indicating an unlicensed feature and stops processing. To fix the
problem, update the application and remove the unlicensed features or upgrade your engine key.
For more information on the MEMORYCACHE and MEMORYSAVE switches, see the Engine Switches and
Return Codes guide.
All other embedded objects can be cached as expected on z/OS. All embedded objects can be cached as
expected on all other platforms.
Production Environment 42
Troubleshooting
Why do I receive the error message, "./Engine: cannot execute binary file",
when I try to run the engine in UNIX?
This error occurs if you download the wrong engine for your production environment. For example, if you
download the Solaris engine to run on your AIX system, you can fix this problem by downloading the correct
engine.
Why do I receive a "No such file or directory" message when I try to run the
engine on a UNIX-based platform?
When running the engine on the UNIX-based platform, set the following environment variables before you run
the engine:
For Solaris only, environment variables must contain the directory of libodbc.so and libodbcinst.so files.
TIP: If you have not set the environmental variables, you can add them to the profile file in the user’s
directory for anyone who runs the engine or Uptrack. Use the code <dir> for directory. For
example:
LD_LIBRARY_PATH=<dir>
export LD_LIBRARY_PATH
Production Environment 43
Troubleshooting
If we send a package file to our host (mainframe) that contains 40 fonts and
we run a data file through that only has one record and generates output that
only calls two fonts, are all 40 fonts sent to the output device or just the two
we need for the specific statement we are trying to create? The same question
applies to images.
It depends on the output driver you are creating and whether you are using the Dynamic Content Import
module. You can place all resources (all fonts, in this example) inline at the top of the print stream or place no
resources in the file. If the resources are not in the file, separate resource files are created and sent to the output
device or place them in resource libraries.
You can do the same for static images: all inline or previously created. For dynamic images, only the specific
images used for the pages produced are included.
Will a VSAM package file run slower than a regular package file?
Using a VSAM package file can reduce run time because it enables HP Exstream on z/OS to read application
objects such as documents, pages, and variables as they are required instead of reading the entire package file
into memory at the beginning of the run. You will see significant improvement if your application contains a very
large number of application objects, such as documents, and not all of them are accessed in every run.
Whether this approach will run slower or faster depends on:
Time spent reading the package file into memory—For small .pub files, there really isn't much to gain
from using this feature, since the loading of the package file is insignificant. You can get an indication of how
long HP Exstream is taking to read the package file into memory by comparing the SETUP time to the TOTAL
time in the Elapsed CPU time: section of the message file. If this ratio is really high, as in the example below,
consider using a VSAM package file. For example:
Elapsed CPU time: 248.05 sec SETUP 250.12 sec TOTAL
Percentage of documents accessed—If you run an application containing hundreds of documents in a
small run that produces only a few documents, you can see a large performance gain. The same .pub file in a
larger run that uses all objects decreases performance.
Contents of the package file—You gain performance benefits only if there is a higher ratio of application
objects (such as pages and messages) over Environment objects (such as fonts and outputs).
Tuning of VSAM datasets—Since z/OS defaults are based on obsolete disk technology (such as sectors,
cylinders, and tracks), you must tune the VSAM dataset to gain performance benefits on currently available
hardware.
Production Environment 44
Troubleshooting
For information on creating application reports, see the Creating Application Reports section of the Using
Applications chapter in the Applications, Documents, and Pages guide.
For information on using code trace and debug, see the Built-In Troubleshooting Tools chapter in the
Troubleshooting guide.
Production Environment 45
Index
A L
Algorithm used to set the MVS file size ............37 License key and CPU ID ................................ 42
Anyheap .....................................................39 Limit the resources used by the engine ............ 43
AS/400
Portable Application Solutions Environment .12
Retrieving output .....................................14
M
Running the engine .................................13
Memory management ................................... 34
Special considerations .............................12
Best configuration .................................. 43
Transferring files .....................................13
MEMORYCACHE switch ......................... 36 , 42
Message File ............................................... 29
Message file customization ........................... 29
C Message file options .................................... 29
C/C++ Memory Calls ...................................38 MVS
Control File > see also z/OS
And the System Key ................................24 Dynamic images .................................... 21
Comments .............................................24 Dynamic Images, Example JCL ................. 22
Creation ................................................24 File size algorithm .................................. 37
Formatting .............................................23 LE tuning parameters ........................ 38–40
Multiple package files .............................27 Loading VSAM Package Files ................... 19
Normal Mode (Step One) ........................27 Using LE reports ..................................... 38
Specifying package files in PostSort mode ..28
Specifying the z/OS name .......................26
Types ....................................................23
N
z/OS, Using a fully-qualified name ...........27
Naming conventions
z/OS, Using rules to specify file ...............27
AS/400 ................................................ 12
Control file
UNIX .................................................... 10
And the command prompt ........................23
Windows ................................................ 8
CONTROLFILE switch ....................................24
z/OS ................................................... 15
CPU, best configuration ................................43
P
D
Package file transfer UNIX ............................ 10
DBCS
Package report ............................................ 29
Message file customization ......................29
Pre-load Reference files, VSAM ...................... 37
Dynamic content import ................................44
Q
H
qp2term ..................................................... 13
Heap .........................................................39
Queues and MVS File Size ............................ 36
Heappools ..................................................40
R
I
Reference files pre-load VSAM ....................... 37
IBM LE and memory usage ............................38
Release with new sections/customers .............. 34
Innovation Access Method .............................20
Invalid key error ..........................................42
Production Environment 46
Index
S
Stack ..........................................................40
System generated files ..................................29 Z
System Settings ..............................................7 z/OS ......................................................... 15
> see also MVS
Batch Local Shared Resources .................. 21
BLSR ..................................................... 21
T Control files ........................................... 26
Transferring Package files Explain JCL commands ............................ 17
Windows ................................................8 IAM ..................................................... 20
Troubleshooting the Production Environment 42–44 Improving performance ........................... 35
Memory use in ....................................... 37
Naming conventions ............................... 15
U Package file transfer ............................... 15
UNIX Queues and file size ............................... 36
Naming conventions ...............................10 Sample JCL file used to run the engine ....... 16
Package file transfer ...............................10 SMB ..................................................... 21
Run the engine from Shell script ................11 Specifying file names in commands ........... 16
Run the engine from the shell prompt .........11 Specifying names in the control file ........... 26
Sample shell script ..................................11 System Managed Buffering ...................... 21
Using AFP images with VSE ...........................44 Using JCL files to run the engine ............... 16
Using HFS for file output ......................... 18–19 Using VSAM Package Files ...................... 20
VSAM tuning options ........................ 20–21
Production Environment 47