You are on page 1of 418

Automation Engine 11

ONE Automation Platform

Knowledge Base

Version: 11.2.2
Publication Date: 2016-10
Automic Software GmbH
ii     Copyright

Copyright
Automic® and the Automic logo® are trademarks owned by Automic Software GmbH (Automic). All such
trademarks can be used by permission only and are subject to the written license terms. This
software/computer program is proprietary and confidential to Automic Software and is only available for
access and use under approved written license terms. 

This software/computer program is further protected by copyright laws, international treaties and other
domestic and international laws and any unauthorized access or use gives rise to civil and criminal
penalties. Unauthorized copying or other reproduction of any form (in whole or in part), disassembly,
decompilation, reverse engineering, modification, and development of any derivative works are all strictly
prohibited, and any party or person engaging in such will be prosecuted by Automic.

No liability is accepted for any changes, mistakes, printing or production errors. Reproduction in whole or
in part without permission is prohibited.

© Copyright Automic Software GmbH. All rights reserved.


Automation Engine iii

Contents
1 Terminology - Computer, Programs and Files 1

2 Floating-Point Numbers in the Automation Engine 6

3 Time 7

4 Agent's Job Messenger 9

5 Automation Engine and NAT 11

6 Message Number Changes 12

6.1 Message Number changed from 7 to 8 digits 12

7 External Error Codes 18

7.1 COBOL - File Error Codes 18

7.2 COBOL - Runtime Error Codes 20

7.3 TCP/IP - Error Messages of the TCP/IP-Stack 38

7.4 UNIX - Error Codes 40

7.4.1 Error Codes in Log Messages of Agents 40

7.4.2 DEC OSF 41

Error Codes Alpha - DEC-OSF/1 - Digital UNIX 4.0 41

7.4.3 HP-UX 44

Error Codes HP Workstation (9000), HP-UX 9 44

Error Codes HP Workstation(9000), HP-UX 10 46

7.4.4 IBM AIX 49

Error Codes Power PC - AIX 4.1 49

7.4.5 Sun OS (Solaris) 52

Error Codes Sparc, Solaris 1 Version 4.1 and Later 52

Error Codes Sparc, Solaris 2 Version 5.5 and Later 55

Error Codes Intel, Solaris 2.4 and Later 58

7.5 Windows - Error Codes 61

7.5.1 Win32 - Error Codes (0 - 999) 61

7.5.2 Win32 - Error Codes (1000 - 1999) 72

7.5.3 Win32 - Error Codes (2000 - 5999) 100

7.5.4 Win32 - Error Codes (6000 - 11999) 116

8 SNMP Support 139

8.1 About SNMP 139

8.2 Automation Engine and SNMP 139


iv Contents

8.3 Agent Mode on UNIX 141

8.4 Automation Engine SNMP Subagent's FAQ and Glossary 143

8.5 Installation 146

8.5.1 Installing the Automation Engine SNMP Subagent (UNIX) 146

8.5.2 Automation Engine SNMP Subagent for UNIX 147

8.5.3 Installing the Automation Engine SNMP Subagent (Windows) 150

8.5.4 Automation Engine SNMP Subagent for Windows 151

8.5.5 Windows SNMP Service Configuration 153

8.6 MIB 155

8.6.1 Structure of the MIB 155

8.6.2 Agent Data Group 155

8.6.3 Agent Control Group 156

8.6.4 Agent Work Group 156

8.6.5 System Group 158

8.6.6 Client Group 160

8.6.7 Server Group 162

8.6.8 Agent Group 165

8.6.9 Blocking Points Group 168

8.6.10 Notification Group 170

8.6.11 Generated SNMP Traps 172

8.7 Net-SNMP License 177

9 AE and Target Systems 182

9.1 AE and BS2000 182

9.1.1 BS2000 Text Archive 182

9.1.2 Automation Engine/Agent - BCIN for Connection Set Up 183

9.1.3 BS2000 Agent - File Transfer Support 184

9.1.4 Utility for RFC Tasks 185

9.1.5 Agent - Freely Defined Port Numbers 186

9.1.6 BS2000 Console Command 186

9.1.7 BS2000 Operating System Command 190

9.2 AE and Databases 194

9.2.1 Database Agent 194

9.2.2 Connection to Oracle Databases 195

9.2.3 Stored Procedures in Sybase 196


Automation Engine v

9.2.4 Stored Procedures in MS SQL Server 196

9.2.5 ILM - Partition Key Turnaround 197

9.3 AE and GCOS 8 200

9.3.1 GCOS8 Agent - File Transfer Support 200

9.3.2 Monitoring Abnormal Job-Messenger Ends 204

9.4 AE and J2EE/JMX 206

9.4.1 J2EE/JMX Agent 206

9.4.2 Generating MBeans from Web Services 208

9.4.3 Java EE/JMX Agent and IBM WebSphere 213

9.4.4 Sending an SOAP Message with an MBean 213

9.5 AE and Micro Focus JES 215

9.5.1 Jobs in Micro Focus JES 215

9.6 AE and MPE 219

9.6.1 Agent - Interaction between Automation Engine and MPE 219

9.7 AE and NSK 221

9.7.1 Architecture of the Automation Engine Agent for the HP Non Stop Server 221

1. Job Start 221

2. Job Run 222

3. Job End 222

9.7.2 Executing Jobs on NSK 223

9.7.3 Automated Handling of Input Prompts 223

9.7.4 Agent - Interaction Between Automation Engine and NSK 225

9.7.5 EMS Template File 228

9.7.6 Configuration of NSK-Specific Parameters 229

9.8 AE and OS/400 230

9.8.1 Agent - Interaction Between the Automation Engine and OS/400 230

9.8.2 OS/400 Agent - FileSystem Event Support 232

9.8.3 OS/400 Agent - File Transfer Support 233

9.8.4 Agent - Commands 237

9.9 AE and PeopleSoft 238

9.9.1 Testing the People Soft Connection 238

9.9.2 Using Bind Variables 241

9.9.3 Changes in Run Controls 241

9.10 Automation Engine and SAP 243


vi Contents

9.10.1 SAP Solutions and Job Scheduling with the Automation Engine 243

9.10.2 SAP NetWeaver 244

Automation Platform and SAP NetWeaver 244

People Integration 246

Integration in SAP Enterprise Portal (iViews) 246

Introduction 246

Starting Tasks 246

Monitoring Activities 247

Information Integration 249

Scheduling Data-Loading Processes 249

Scheduling Process Chains 249

Scheduling Queries in Batch Mode 251

Business Objects XI R2 (Crystal Reports) 252

Support of Business Objects (Crystal Reports) 252

Using the MBeans Crystal Reports 253

Process Integration 256

Monitoring SAP XI Communication Channels 256

Application Platform 257

ABAP 257

Variant Management 257

BDC Management 257

Spool Management 258

Event Management 259

Criteria Manager 261

Transferring SAP Jobs 262

Assuming SAP Calendar Definitions 263

Job Management 265

Executing Jobs in ABAP Stack (CCMS) 265

Child Processes (JOBD) 267

Intercepted Jobs 269

Evaluating the Application Return Code of SAP Steps 270

JAVA 271

J2EE/JMX Agent for SAP NetWeaver 271

JMX in SAP NetWeaver 272


Automation Engine vii

Executing Jobs in Java Stack (JXBP) 275

Lifecycle Management 276

Monitoring SAP NetWeavers 276

Monitoring Monitors 276

Monitoring SAP Events 277

Analyzing System and Application Logs 279

Integrating the Automation Engine with the SAP Solution Manager 279

Registering to System Landscape Directory 282

Switching Operation Modes 283

9.10.3 SAP Banking 283

Process Management and SAP for Banking 283

Processes in SAP for Banking 284

Application Return Code and Application Log 284

Starting Process Networks and Processes 284

Requirements for AE 285

AE Functional Description 285

AE JCL for SAP 285

9.10.4 SAP Financial Closing Cockpit 286

Integrating the Automation Engine in SAP Closing Cockpit 286

Requirements: 286

Supplied Files 286

Installation 286

Integrating the Automation Engine in SAP Closing Cockpit with FCC 2.0 Add-on 291

Requirements: 291

Supplied Files 292

Installation 292

Activating Objects with SAP Closing Cockpit 298

Configuration 298

Execution 300

9.10.5 SAP Solution Manager 301

SAP Solution Manager Integration 301

Configuration 301

Functionality 302

SAP Solution Manager - Use Cases 305


viii Contents

Use Case 1: Searching an AE Job Out of the Solution Manager 305

Use case 2: Scheduling Tasks from a Job Documentation 305

Use case 3: Directly Scheduling Tasks 308

Setting Up the UserInterface Integration 309

Supplied Files 310

Procedure 310

9.10.6 Custom Solutions 311

Archiving Data in SAP Systems 311

Controlling with AE 312

Requirements in the SAP System 312

Objects 312

Procedure 313

Conclusion 313

Monitoring SAP Programs Update Requests 314

Compare Values in SAP Spool Lists 315

Mass Processing 321

Definition 322

Technique 322

SAP R/3 Client Copies 322

Client Copies in SAP R/3 323

Problem Definition 323

R/3 Client Copies with AE 323

SAP Dialog for Automation Engine 324

Automated System Copy for SAP 324

9.10.7 Technical Connection 325

Automation Engine and SAP 325

Multiple SAP Systems 325

Other SAP Agents 325

SAP Security Objects 326

Consideration of Job Attributes 330

Interfaces 331

Interfaces 331

General Information 331

Functional Differences 331


Automation Engine ix

Transporting the Automation Engine Interface 334

General 334

Testing the Automation Engine Interface with ABAP Workbench 336

Agent for SAP BW 340

General 340

Status Check 341

Archive Parameters with R3_ACTIVATE_REPORT 342

ERROR/ERRORLEVEL with R3_ACTIVATE_SESSIONS 342

ERROR 342

ERROR=IGNORE 343

ERROR=ABEND 343

ERRORLEVEL 343

Troubleshooting 344

Checking Errors 344

Job Report 344

Attributes of Executable Objects 344

CPIC User 344

Helpful Transactions 344

Log Files 344

SAP's System Log 344

Traces 345

Problems by Importing Function Modules 345

Program Tp Does Not Terminate 345

SAP Jobs End with ARCHIVE_INFO_NOT_FOUND 346

Stability Problems with SAP Instances Occurred When Many SAP Agents (RFC
Connection) Were Used On One Server 346

Problem with Password Assignment to SAP 347

After Updating to SAP NetWeaver 2004s and Later, CPIC User Could No Longer Log
On 347

9.10.8 Certificates 350

Overview 351

9.11 AE and Siebel 352

9.11.1 Starting and Monitoring Tasks 352

9.12 AE and UNIX 353

9.12.1 Authentication of Login Data 353


x Contents

9.12.2 Shell and Shell Options 354

9.12.3 User ID for the UNIX Agent 355

9.12.4 UNIX Agent - File Transfer Support 355

9.12.5 Rights for Deleting Source Files in File Transfers 355

9.12.6 Querying the Unix File System 356

9.12.7 PREP_PROCESS - Querying the UNIX File System 361

9.12.8 AIX Process Abort Due to Lack of Memory 363

9.12.9 Enlarging Core Files 363

9.12.10 Return Codes for UNIX Jobs 364

9.12.11 Activating Job Messenger Traces 365

9.12.12 Solaris: Separating Jobs from Agent Processes 367

9.12.13 Resource Limitation by Using Ulimit 368

9.13 AE and VMS 368

9.13.1 VMS Agent - FileTransfer Support 368

9.13.2 Return Codes of VMS Jobs 371

9.14 AE and WebSphere MQ 371

9.14.1 Automation Engine Connector for WebSphere MQ Queue Manager 371

9.15 AE and Windows 375

9.15.1 Starting Programs on Windows 375

Domain 375

User Name 375

Password 375

BATCH (login type) 375

DESKTOP 375

Attention 375

9.15.2 Test Programs for the Windows Agent 377

9.15.3 Windows Job Object 378

9.15.4 Reports of Windows Jobs 379

9.15.5 User Account Control in Windows 2008 and Vista 380

9.15.6 Retrieving the CPU Number 381

9.15.7 Libraries in Windows 7 381

9.15.8 Windows Agent - File Transfer Support 382

9.16 AE and z/OS 383

9.16.1 Agent - Interaction Between the Automation Engine and z/OS 383
Automation Engine xi

9.16.2 z/OS Agent - File Transfer Support 384

9.16.3 Message Classes 385

9.16.4 Event Monitor 387

9.16.5 External Job Monitor 389

9.16.6 SMF Exit 393

9.16.7 Automatic File-System Events 397

9.16.8 GDG Support 400

9.16.9 Recognizing and Assessing Job Ends 401

9.16.10 Return Codes of z/OS Jobs 402

9.16.11 JCL Exit 402

9.16.12 Include MVS.JOBMD_DEFINITIONS 403

Glossary 405

A 405

C 405

D 405

G 405

I 406

J 406

P 406

R 406

S 407

T 407

U 407

V 407

W 407
1 | Chapter 1 Terminology - Computer, Programs and Files

1 Terminology - Computer, Programs


and Files
In this documentation, universal typographical conventions apply to all files and folder names.

Naming Conventions
[Name Conventions] [Program and File Overview]

General
File names can be entered in lowercase letters because in Windows file names are case-insensitive.

Syntax in General
Short file names (8.3) are used on the installation CD in order to avoid problems.
They are structured as shown below:

UCZKxxxx

Z = Purpose
K = components
xxxx = individual definition

Purpose Description
D UserInterface
S Server Routine (DLL)
X Agent
Y Utility (service program)

Automation Engine Syntax


UCSRVTP

UCSRV stands forAutomation Engine (Automation Engine)


T = Type - "c" for the communication process, "w" for the work process
P = Process

Agent Syntax
An extended syntax applies for agents:

UCXJSSVA

SSV = System ID and Version


A = Task (only for messenger program and CallAPI)
Chapter1 Terminology - Computer, Programs and Files | 2

System ID and Version Hardware, Operating System, Version


B2. BS2000
B24 SNI, BS2000 Sockets version 1.3
B25 SNI, BS2000 Sockets version 2.1 *
B26 SNI, BS2000 Sockets version 2.3 *
*) Automic recommends using the agent with the latest socket version.
MP. MPE
MP6 HP 3000, MPE Version 6.5 or later
N.. NSK
NS1 Tandem Guardian NSK Version D40 or later
NI6 Computers with Itanium processors
OAX Oracle Applications
M.. z/OS
M25 IBM, z/OS Version V2R5 or later
O.. OS/400
O41 IBM, OS/400 Version V4R1M0 or later
PSX PeopleSoft
R3X SAP
SLX Siebel
D.. UNIX - DEC OSF
DA4 Alpha - DEC-OSF/1 - Digital UNIX - Tru64 UNIX
H.. UNIX - HP-UX
HP1 HP Workstation (9000), HP-UX
HI6 rx2600 computer with Itanium, HP-UX
A.. UNIX - IBM AIX
A64 Power PC64, AIX
AP6 Power PC, AIX
L.. UNIX - Linux
LI3 Intel, Linux
LI6 Itanium, Linux
LX6 Linux (x64)
LZ3 zSeries, zLinux
LZ6 zSeries, zLinux 64bit
U.. UNIX - Sun OS (Solaris)
U64 Sparc64, Solaris
US8 Sparc, Solaris
UI8 Intel, Solaris
SI6 Intel 64 bit (x64), Solaris
3 | Chapter 1 Terminology - Computer, Programs and Files

V.. VMS
VA7 Alpha, OpenVMS-Alpha
VI8 OpenVMS (IA64)
VV7 VAX, VAX/VMS
W.. Windows
WI3 32 Bit plattforms (x86)
WI6 64 Bit platforms (IA64)
WX6 64 Bit platforms (x64)

Task Purpose
M Message program
C CallAPI

Program and File Overview


[Naming Conventions] [Program and File Overview]

Programs
Program Purpose
ucsrvcp Automation Engine for UNIX, communication process
ucsrvwp Automation Engine for UNIX, work process
ucsrvcp.exe Automation Engine for Windows, communication process
ucsrvwp.exe Automation Engine for Windows, work process
UCDJ.EXE Start program for UserInterface
UCDJ.JAR UserInterface
UCX... Agent programs
UCYBARBR.EXE Utility for searching the archive files
UCYBCHNG.EXE Utility for modifying exported data
UCYBDBCC.JAR Utility for copying and deleting clients
UCYBDBAR.JAR Utility for archiving the database
UCYBDBLD.JAR Utility for loading the database
UCYBDBRE.JAR Utility or reorganizing the database
UCYBDBUN.JAR Utility for unloading the database
UCYBDBRR.EXE Utility for creating revision reports (object audits)
UCYBCRYP.EXE Utility for encoding passwords
UCYBSMGR.EXE ServiceManager - Service
Chapter1 Terminology - Computer, Programs and Files | 4

UCYBSMDI.EXE ServiceManager - Dialog Program


UCYBSMCL.EXE ServiceManager - Command Line Program
UCS...DLL Server routines

Files
File Purpose
UC.MSL Message library
UCX.MSL Message library for agents outside Windows
UC_INI.TXT Initial database contents for DB.Load
UC_DEF.TXT Default database contents for NEW installation
UC_DDL.SQL DDL for DB structure
CBLRTSS.DLL Micro Focus Cobol runtime system (Version 4.0)
ZU*.DLL, UC*.DLL AE function libraries
*.OCX Visual Basic runtime system (Version 6.0)
TRANSPRT.TXT, Function modules for SAP Systems:
K*.*, R*.*, E*.TXT Overview of valid transport jobs, function modules and export protocol
UCYBABR.VBP, Microsoft Visual Basic source code of the Archive Browser
BROWSE*.*, TOOBIG.*
*.JAR Java function libraries

SAP Development Objects of the AE Interface


The AE interface for SAP Basis job scheduling has been developed in ABAP. It consists of the SAP
development objects that are listed in the following table:

R3X on SAP Basis Release R3X on SAP Basis Releases 4.0x, 4.5x, 4.6x
3.x and 6.10
Development J2U0 /SBB/UC4
class
DDIC structures J_2U* /SBB/UC4*
Function group J2U3 /SBB/UC4*
Function J_2U_30_* /SBB/UC4*
modules

Return Codes of Agents Running on Windows


Agents that run on a Windows platform supply the following return codes:

l 62 (FATAL_ERROR_SOCKETS) - Socket error


l 63 (FATAL_ERROR_NOINIFILE) - INI file not available
l 64 (FATAL_ERROR_NOMEMORY) - Memory allocation failed
5 | Chapter 1 Terminology - Computer, Programs and Files

l 65 (FATAL_ERROR_CONFIG) - Agent name or TCP/IP port number is not defined


l 66 - Log file could not be opened
Chapter2 Floating-Point Numbers in the Automation Engine | 6

2 Floating-Point Numbers in the


Automation Engine
Here you find a short description of the representation of floating-point numbers in information technology
and specifics relevant to the Automation Engine. An in-depth discussion of computer and numeric floating-
point numbers you may find in the respective scientific literature and on the web.

Computing floating-point numbers in information technology leads to rounding errors, as the number of
digits that can be used is finite. Since computers use the binary system for their calculations and internal
representation of numbers, numbers in computer systems have to be transformed into the binary system
first.

A very well-known example for issues with the representation of numbers in computer systems is the
decimal floating-point number 0.1, which needs an infinite number of digits in the binary system.

The representation of floating-point numbers in the binary system has been defined by the IEEE with the
standard IEEE754 for simple and double precision. The datatype double precision is being used
inside the Automation Engine.

Concerning the example of the number 0.1: By saving it with double precision it becomes
0.100000000000000005551115123126 mathematically. Would this number be used for calculations,
subsequent faults would occur.

The output of this number is again rounded, so that the Automation Engine displays
0.10000000000000001.
7 | Chapter 3 Time

3 Time
This document serves to introduce the basic terms regarding time in general and time in connection with
AE.

General Time Terms


Time is made up of a given date and a given time. The indicated time refers to the local time. It is thereby
dependent on the pertinent time zone and the use (or non-use) of Daylight Savings Time.

Los Angeles (PST) New York (EST) UTC Frankfurt (CEST) Tokyo (TYST)

Friday 3rd May, Friday 3rd May, Friday 3rd May, Friday 3rd May, Friday 3rd May,
2002 2002 2002 2002 2002
04:13:02 07:13:02 12:13:02 13:13:02 21:13:02

Date
The term "date" always refers to the local date. This date is therefore dependent on the respective time
zone and use (or non-use) of Daylight Savings Time.

Time
The term "time" always refers to the local time. The time is therefore dependent on the respective time
zone and use (or non-use) of Daylight Savings Time.

UTC - Coordinated Universal Time 


UTC is the international time standard and basis for all time calculations in AE. UTC is based on the
division of the day into 24 hours. Therefore, afternoon times are specified, for example, as 16:00 UTC
(sixteen hours, zero minutes). There is no daylight savings in UTC. This way the time and date
specification is always precise.

GMT - Greenwich Mean Time


Time zones are based upon Greenwich Time as the meridian (0º longitude) passes through Greenwich.
Greenwich Mean Time serves as the basis for calculating time differences to other time zones.

TZ - TimeZone
The areas with time differences to UTC are called time zones. This difference must not necessarily denote
one full hour (60 minutes). The time zones generally run along the longitudes. Within the political borders of
individual countries, however, the time zones can deviate from the general longitudinal definition.
Chapter3 Time | 8

Date Line
The date line lies along the 180° line of longitude.   

Standard Time
Standard time is the local time assigned to the pertinent time zone. Standard time is also occasionally
identified as winter time.

DST - Daylight Savings Time


For daylight savings, the standard time is adjusted forward by a certain amount of time. Each individual
country has its own rules on whether or not Daylight Savings Time is used, the point in time for the
changeover and the time difference to standard time. Likewise, the chronological year itself determines if
and when daylight savings is implemented. Some countries are currently in the process of making
changes or preparing to decide upon a Daylight Savings Time arrangement.

The time change from Daylight Savings Time to standard time and vice versa is most commonly 1 hour (60
minutes). Some countries, however, use a difference of more or less than one hour. Furthermore, time
change in the northern hemisphere is directly opposite to that in the southern hemisphere. When in the
northern hemisphere the changeover to Daylight Saving Time is made, the southern hemisphere
simultaneously switches back to standard time. The switch to Daylight Saving Time in the northern
hemisphere is made in the springtime, in the southern hemisphere in the fall (autumn).

See also:

Using TimeZones in AE
9 | Chapter 4 Agent's Job Messenger

4 Agent's Job Messenger


All OS agents have a Job Messenger that can be used to run and monitor jobs. You call it in the HEADER
and TRAILER of Include objects. These specific job includes are available in the system client 0000.

A sample excerpt of the Include object HEADER.MVS:


//JMLDS EXEC PGM=&UC_JOBMD,
// PARM='JNR=&UC_REALNR MNR=&UC_CLIENT PNR=&UC_IP_PORT IPA=&UC_IP_ADR
// TYP=S TXT=" Job started" 2>&1'
A sample excerpt of the Include object TRAILER.MVS:
//JMLDE EXEC PGM=&UC_JOBMD,COND=EVEN,
// PARM='JNR=&UC_REALNR MNR=&UC_CLIENT PNR=&UC_IP_PORT IPA=&UC_IP_ADR
// TYP=E STP=&UC_REPORT_STEPS RET=&RETCODE 2>&1'
Note that PARM statements must not exceed 100 characters.

General Start Parameters


There are several parameters that can be assigned to the Job Messenger. The following table shows the
parameters that apply to all Job Messengers.

Parameter Description
IPA The IP address.
JNR The RunID of the job.
MNR Client
PNR The port number.
RET The return code.
TYP The type ("S" - start Job Messenger, "E" - end Job Messenger, "V" - register a variable)

For the GCOS8 Job Messenger, the following additional rules apply: "R" - restart, "A" -
abnormal end, "X" - Job Messenger stop and "J" - job report from the RSM system.
TXT This text is subsequently output at the beginning of the job report and in the status text's
detail window.

Note that the parameter TXT= is limited to 32 characters. Use blanks for the first 8
digits because they are reserved for the Automation Engine. All other digits can be used
for your individual text.

Some Job Messengers have additional start parameters:

Operating system Parameter Description


GCOS8 RFN The job report's file name.
SNM The job's sequential number.
SW The status of the Job Messenger.
Chapter4 Agent's Job Messenger | 10

TIMEOUT The period in seconds after which a timeout occurs for


the connection between the agent and the Job
Messenger (default value: 60).
z/OS STP The logging of step return codes.

"0" - No logging (default value) is made.


"1" - The Job Messenger records return codes.
RETRY The number of connection attempts (default value: 4).
WAIT The time interval between the individual connection
attempts (default value: 30 seconds).
OS/400 OUT The Job Messenger's message logging.

"0" - No logging (default) is made.


"1" - The job report also includes Job Messenger
messages.
UNIX and VMS RETRY The number of connection attempts.

Default value: 3 for UNIX and VMS


TIMEOUT The period in seconds after which a timeout occurs for
the connection between the agent and the Job
Messenger (default value: 60).
WAIT The time interval between the individual connection
attempts.

Default value: 120 seconds for UNIX and VMS 120.


UNIX and Windows CMD The command that should be processed on the agent's
computer.

Within this command, you can also use passwords


that have been encrypted by using a PromptSet object.
To do so, you must specify the PromptSet variable that
includes the value of the encrypted PromptSet text
field. The Job Messenger automatically identifies and
decrypts the passwords.

Note that the Job Messenger does NOT decrypt


passwords that have been encrypted by using
UCYBCRYP.EXE.

You use the message call in the Process tab of the


jobs.
An example for Windows:
&UC_JOBMD CMD="ping localhost"

See also:

Job Includes
11 | Chapter 5 Automation Engine and NAT

5 Automation Engine and NAT


NATing (Network Address Translation) is a device (e.g, a router) which converts an IP address into a
different one.

There are also NPTs and NAPTs whose ports or addresses and ports can be modified. The following rules
apply:

Connection from an agent or AE client to the Automation Engine:

1. Every type of IP address can be used without creating a conflict with NAT, NPT or NAPT.
2. The CP selection is more complex because, by default, the IP address and port number of the first
CP are used for the other CPs.
3. It is possible to specify any host name in the parameter "hostname" of the Automation Engine's INI
file. Thus, NAT is no problem here; NPT and NAPT are not supported.

Connection from an agent to another one:

1. The Automation Engine communicates the IP address and port number from one agent to the other
one (Ex1 to Ex2) or vice versa (Ex2 to Ex1) if it is not possible to establish a connection.
2. Possible NAT problems can be solved via the HOST section of the agent's INI file. The agent's AE
name is the relevant parameter. Any IP address or DNS name can be specified as the value.
3. NPT and NAPT with port number modifications are also not supported.
Chapter6 Message Number Changes | 12

6 Message Number Changes


The following pages contain detailed information on the impact of the change of message number digits
introduced in Automation Engine v10.0.5 and the available solutions or workarounds.

6.1 Message Number changed from 7 to 8 digits


What was changed
The length of message numbers has changed with Version 11.1 from 7 to 8 digits.
For example:
V10.0:  U0003488 Server 'WP' was started as instance '1'.
V11.1: U00003488 Server 'WP' was started as instance '1'. 

Why this change


The change was introduced with an enhancement to enable an independent release cycle for API.

The enhancement deals with custom contents which is presumably not developed by Automic. Such
objects contain messages and captions.
All language dependent texts (messages and captions) are maintained at a central location.
In order to be able to distinguish between custom and Automic messages and captions the number of
digits was increased to 8. 

l The range of message numbers from 0 to 09999999 is reserved for Automic.


l All numbers > 09999999 are custom message numbers.

Details
Table: Possible impact on customers and solutions
N What Solution
o
.
13 | Chapter 6 Message Number Changes

1 Filter objects Filter objects must be adapted. The objects can be


found by simply searching them with the GUI search
Filter objects are intended to scan for string
feature or
patterns and might break.
on database level, by submitting a query such as:

Filter example:
select OH_Client, OH_Name, OFC_SrcName,
OFC_FilterText
from OH, OFC
where OH_Idnr = OFC_OH_Idnr
and OH_DeleteFlag = 0
and OFC_FilterText like '%U[0-9][0-9]
[0-9][0-9][0-9][0-9][0-9]%'
The SQL above queries exactly for the pattern
"Unnnnnnn". If there are other patterns such as
"Unn*", the query
must be changed accordingly.

Example result of the query:

OH_ OH_Name OFC_ OFC_


Clie SrcNa FilterTe
nt me xt
50 FILTER.OUTPUT.NE LOG U00034
W.1 88

The query found the filter object shown left.


Chapter6 Message Number Changes | 14

2 Pre-Process/Process/Post-Process tabs The script on the left contains an STR_FIND()


of executable objects: function to find a message number with pattern
"Unnnnnnn".
:SET &hnd = PREP_PROCESS_REPORT
(,,ACT) To find all scripts with the same pattern, the following
:PROCESS &hnd SQL can be used:
: SET &line  = GET_PROCESS_LINE
(&HND) select OH_Client, OH_Name, OT_Lnr, OT_
:  IF STR_FIND Content
(&line,"U2004943") <> 0 from OH, OT
where OH_Idnr = OT_OH_Idnr
:   MODIFY_STATE RETCODE = 50
and OT_Content like '%U[0-9][0-9][0-9]
:  ENDIF [0-9][0-9][0-9][0-9]%'
:ENDPROCESS and OH_DeleteFlag = 0
The SQL above queries exactly for the pattern
"Unnnnnnn". If there are other patterns such as
"Unn*", the query
must be changed accordingly.

Example result of the query:

O OH_Name O OT_Content
H T
_ _
C L
l n
i r
e
n
t
5 SAP.06.20.JO 1 :SET &hnd =  PREP_
0 BS.DISTRIBU PROCESS_REPORT(
TE ,,ACT,'*U2004943*','
Col=delimiter',"deli
miter=@;@")
5 R3_GET_ 5 : IF STR_FIND
0 JOBS (
&line,
"U2004943") <> 0
5 JS.SAP.BDC. 1 :SET &hnd = PREP_
0 CHECK PROCESS_REPORT(
,,ACT,'*U2004943*','
Col=delimiter',"deli
miter=@;@")
5 INCLUDE_ 6 :     
0 JOB_SAP_ 7 IF
ALL_POST_ &MSGID# = 'U2004005'
SCRIPT
5 UC4TST.INC0 9 :SET &hnd# = PREP_
0 314902.SCRIP PROCESS_REPORT
T.GAR_ (,&RUNID_
##STATUS_ EVENT#,"ACT","*U0020
1900##.SCRI 206*Test string*")

The query found the object shown on the left.


15 | Chapter 6 Message Number Changes

3 Custom Application Programs Custom application programs, which parse log files of
Automic components, must be adopted.
Although the uc4.jar is not affected by any
incompatible change, application programs must be
checked for report scans. 
4 Call API for SAP ABAP If an ABAP program uses the call API, they must be
The ABAP call API returns the message in checked on how they deal with the returned string.
a String:
call function 'UC4'
destination 'UC4DSP'
exporting client = p_
clint
trcflg = '0'
userabtl = p_
abtei
username = p_
usern
userpass = p_
passw
queue = p_
queue
importing msg = o_msg
run = o_run
tables    script = uc4_
script
exceptions
logon_failed
= 1
others = 99.
o_msg would contain "Unnnnnnnn ..."
(new format)
5 Call API for Java  If such client programs are in place, they must be
The Java Call API returns the message checked on how they deal with the returned string.
number as String
String msg = uc4.activateScript
(":stop msg,50,\"Hello
World\"");
System.out.println(msg);
Output:

U00000050 Hello World (new format)

Additional impact on customers running components of different


Versions
Be aware that to change everything to the new message format "Unnnnnnnn" requires all components to
be from Version 11.1.
Although the old message format and the new message format never can be mixed within one report or
within one log file, it might happen that old components are in place and create output in the former format.

Example:

Running an SAP agent V10 against Automation Engine V11.1 would cause 2 different logs:
Chapter6 Message Number Changes | 16

Activation Log (NEW format - created from the Engine)


2015-08-19 10:42:29 - U00020206 Variable 'LINK#' was stored with value
'http://www.uc4.com'.

Agent Log (OLD format - created from the agent)


2015-08-19 10:42:29 - U2000005 Job 'JOBS.SAP.01' with RunID '5124035'
started.
2015-08-19 10:42:29 - U2004018 The job was successfully interpreted.
2015-08-19 10:42:29 R3_ACTIVATE_REPORT
REPORT="RSPO0041",COVERPAGE="YES",VARIANT="STANDARD",ABORTED="NO"
2015-08-19 10:42:29 - U2004024 SAP job 'XBP_TEST_1' with number
'10422000' was created successfully.
2015-08-19 10:42:29 - U2004020 ABAP Program 'RSPO0041' was scheduled with
variant 'STANDARD' .
2015-08-19 10:42:29 - U2004005 SAP job 'XBP_TEST_1' with number
'10422000' was released.
2015-08-19 10:42:29 - U2004073 SAP job 'XBP_TEST_1' with number
'10422000' is now active.
2015-08-19 10:42:30 - U2004027 SAP job 'XBP_TEST_1' with number
'10422000' ended normally.
2015-08-19 10:42:30 - U2004026 Job script ended normally.

Hence in such cases please consider the following procedures:

If old and new versions are in place at the same time, the sripts/filters need to be changed, so that they
distinguish between versions of the data source.

I. Distinguish in a Filter object (Filter tab): Apply an OR combination such as

I. Distinguish in scripts: Based on the agent version

Scripts can distinguish between agent versions thus:

1. Pull the agent list with a query such as this:

select oh_name, host_htyp_hw, host_htyp_sw, host_hostAttrType, host_


version, host_hostroles from oh, host
where oh_otype = 'HOST'
and oh_deleteflag = 0
and oh_idnr = host_oh_idnr
17 | Chapter 6 Message Number Changes

1. Push the list of agents to a static Variable object with a script such as:

:SET &hnd# = PREP_PROCESS_VAR('VARA.SQLI.HOST')
:PROCESS &hnd#
: SET &host#=GET_PROCESS_LINE(&hnd#,1)
: SET &version#=GET_PROCESS_LINE(&hnd#,6)
:  PUT_VAR'VARA.STATIC.HOST',&host#,&version#
:ENDPROCESS
1. Grab the version of an agent with GET_VAR in order to be able to distinguish:

:SET &hostname# = GET_ATT('HOST')
:SET &version# = GET_VAR('VARA.STATIC.HOST','&hostname#')
:IF &version# = ' '
:...
Chapter7 External Error Codes | 18

7 External Error Codes

7.1 COBOL - File Error Codes


Original Text From Compiler Description
RT001   Insufficient buffer space. On OS/2, could indicate that the SWAPPATH has not been set
correctly or the SWAPPATH drive is full. Could also indicate an out of memory situation.
RT002   File not open when access tried.
RT003   Serial mode error.
RT004   Illegal file name.
RT005   Illegal device specification.
RT006   Attempt to write to a file opened for input.
RT007   Disk space exhausted.
RT008   Attempt to input from a file opened for output.
RT009   No room in directory (also, directory does not exist).
RT010   File name not supplied.
RT012   Attempt to open a file which is already open.
RT013   File not found.
RT014   Too many files open simultaneously.
RT015   Too many indexed files open.
RT016   Too many device files open.
RT017   Record error: probably zero length.
RT018   Read part record error: EOF before EOR or file open in wrong mode.
RT019   Rewrite error: open mode or access mode wrong.
RT020   Device or resource busy.
RT021   File is a directory.
RT022   Illegal or impossible access mode for OPEN.
RT023   Illegal or impossible access mode for CLOSE.
RT024   Disk I/O error.
RT025   Operating system data error.
RT026   Block I/O error.
RT027   Device not available.
RT028   No space on device.
RT029   Attempt to delete open file.
RT030   File system is read only.
RT031   Not owner of file.
RT032   Too many indexed files, or no such process.
19 | Chapter 7 External Error Codes

RT033   Physical I/O error.


RT034   Incorrect mode or file descriptor.
RT035   Attempt to access a file with incorrect permission.
RT036   File already exists.
RT037   File access denied.
RT038   Disk not compatible.
RT039   File not compatible.
RT040   Language initialization not set up correctly.
RT041   Corrupt index file.
RT042   Attempt to write on broken pipe.
RT043   File information missing for indexed file.
RT045   Attempt to open an NLS file using an incompatible program.
RT047   Indexed structure overflow. (Could indicate that you have reached the maximum number of
duplicate keys.)
RT065 File locked.
RT066   Attempt to add duplicate record key to indexed file.
RT067   Indexed file not open.
RT068   Record locked.
RT069   Illegal argument to ISAM module.
RT070   Too many indexed files open.
RT071   Bad indexed file format.
RT072   End of indexed file.
RT073   No record found in indexed file.
RT074   No current record in indexed file.
RT075   Indexed data file name too long.
RT077   Internal ISAM module failure.
RT078   Illegal key description in indexed file.
RT081   Key already exists in indexed file.
RT100   Invalid file operation.
RT101   Illegal operation on an indexed file.
RT102   Sequential file with non-integral number of records.
RT104   Null file name used in a file operation.
RT105   Memory allocation error.
RT129   Attempt to access record zero of relative file.
RT135   File must not exist.
RT138   File closed with lock - cannot be opened.
RT139   Record length or key data inconsistency.
RT141   File already open - cannot be opened.
Chapter7 External Error Codes | 20

RT142   File not open - cannot be closed.


RT143   REWRITE/DELETE in sequential mode not preceded by successful READ.
RT146   No current record defined for sequential read.
RT147   Wrong open mode or access mode for READ/START.
RT148   Wrong open mode or access mode for WRITE.
RT149   Wrong open mode or access mode for REWRITE/ DELETE.
RT150   Program abandoned at user request.
RT151   Random read on sequential file.
RT152   REWRITE on file not opened I-O.
RT158   Attempt to REWRITE to a line-sequential file.
RT159   Malformed line sequential-file.
RT161   File header not found.
RT173   Called program not found.
RT180   End-of-file marker error.
RT182   Console input or console output open in wrong direction.
RT183   Attempt to open line sequential file for I-O.
RT188   File name too large.
RT193   Error in variable length count.
RT194   File size too large.
RT195   DELETE/REWRITE not preceded by a READ.
RT196   Record number too large in relative or indexed file.
RT210   File is closed with lock.
RT213   Too many locks.
RT218   Malformed MULTIPLE REEL/UNIT file.
RT219   Operating system shared file limit exceeded.

7.2 COBOL - Runtime Error Codes


Original Text from the Compiler Description
001 Insufficient buffer space (Recoverable) -You have tried to open a file directly or indirectly and,
although you have not exceeded your system's file limit, something in your system is unable
to allocate enough memory space for this operation. -Although you can trap this error you
must do STOP RUN as soon as it is reported.
002 File not open when access attempted (Recoverable) -You have tried to access a file without
opening it first. -Open the file with the open mode that you need and try the operation again. As
this error implies that your program logic contains a mistake, you might want to terminate the
run and recode your program.
21 | Chapter 7 External Error Codes

003 Serial mode error (Recoverable) -You have tried to open a device as a relative or indexed file.
You are trying to execute a device, not a program. -Open the device in the correct mode or
close any open files, do STOP RUN and recode your program. The name of your program is
recognized by the operating system as a valid device. Rename your program.
004 Illegal file name (Recoverable) -A filename contains an illegal character. This could be any
character that is not part of the allowed character set or it could be the system-dependent
delimiter, which on most systems is the space. -Try the file operation again using the correct
filename.
005 Illegal device specification (Recoverable) -Devices to which your COBOL program can write
are defined by the operating system. You have tried to write to a device that is not defined by
your system. -Try the operation again using a device name that your system recognizes.
006 Attempt to write to a file opened for INPUT (Recoverable) -You have tried to WRITE to a file
that is open for input only. -Close the file and open it with a mode such as I-O, which allows
you to write to the file. As this error implies that your program logic contains a mistake, you
might want to terminate the run and recode your program.
007 Disk space exhausted (Fatal) -The disk is full. -This error can be trapped, but once it has been
reported you must do a STOP RUN immediately to terminate your program's run. When your
program has terminated, delete any files that you no longer need. Alternately, if your operating
system supports this, put a new disk in a floppy disk drive and redirect your program's file
operations to this.
008 Attempt to input from a file opened for OUTPUT (Recoverable) -You have tried to read from a
file that is open for output only. -Close the file and open it with a mode such as I-O, which
allows you to read from the file. As this error implies that your program logic contains a
mistake, you might want to terminate the run and recode your program.
009 No room in directory (Recoverable) -The system cannot write to the specified directory for one
of the following reasons: -The directory does not exist -The directory is full -Your program
cannot find the directory -Create the directory if it doesn't exist. If the directory is full, either
delete any files that you no longer need or, if your operating system supports this, put a new
disk in a floppy disk drive and redirect your program's file operations to it. Alternately, specify
a different drive or directory for your file operations.
010 File name not supplied (Recoverable) -You have tried to open a file that you have declared as
an external file, but have not named. -Specify the external filename.
012 Attempt to open a file which is already open (Recoverable) -You have tried to open a file which
is already open and so cannot be opened again. -Cancel your second attempt to open the file.
If the fact that the file is already open is acceptable to you, continue to run your program.
013 File not found (Recoverable) -The operating system has been unable to find a file which you
have tried to access in your program. -Ensure that you are in the correct directory or that a
path to the file concerned exists. You can then try the file operation again. If the error is the
result of a spelling mistake then ask for the correct file and try the file operation again.
014 Too many files open simultaneously (Recoverable) -You have tried to exceed the maximum
number of files which you can have open at any one time. This can be a software or an
operating system constraint, but you must not violate it. -Close some of the open files which
you are not currently accessing, and then try to open the relevant file again. You should then
be able to continue to run your program. Depending on your operating system, you might be
able to increase the maximum number of files you are allowed to have open. For example, on
DOS, add the line FILES=128 to your config.sys file. On Novell, add the lines CACHE
Buffers=0 File Handles=128 to your shell.cfg file. See also:/F RTS switch
Chapter7 External Error Codes | 22

015 Too many indexed files open (Recoverable) -You have tried to exceed the maximum number
of indexed files which you can have open at any one time. This can be a software or an
operating system restraint, but you must not violate it. -Close some of the open indexed files
which you are not currently accessing, and then try to open the relevant file again. You should
then be able to continue to run your program. (Indexed files count as two files, one for data and
one for the index.)
016 Too many device files open (Recoverable) -You have tried to exceed the maximum number of
device files which you can have open at any one time. This can be a software or an operating
system constraint, but you must not violate it. -Close some of the open device files which you
are not currently accessing, and then try to open the relevant file again. You should then be
able to continue to run your program.
017 Record error: probably zero length (Recoverable) -You have probably tried to access a record
that has had no value moved into it. -Although this error is recoverable in the sense that it can
be trapped, once it has been reported you must execute a STOP RUN statement immediately
and then recode your program to ensure that the COBOL record length is not zero.
018 Read part record error: EOF before EOR or file open in wrong mode (Recoverable) -A part
record has been found at the end of a file. Consequently your run-time system treats the data
file as a record, and not finding a full record, reports this error. -Ensure that the record size you
give when you read from or WRITE to a file is consistent.
019 Rewrite error: open mode or access mode wrong (Recoverable) -You are trying to do a
REWRITE to a file that has not been opened with the correct access mode for this operation. -
Close the file and reopen it in a mode such as I-O, which allows you to do REWRITE
operations on that file. As this error implies that your program logic contains a mistake, you
might want to close any open files and then execute a STOP RUN. You can then recode your
program to eliminate the logic error.
020 Device or resource busy (Recoverable) -You have tried to open a file that is assigned to a
device or resource (for example, a line printer) that is not available at this time. -You can trap
the error status returned by open and retry the open at regular intervals until it succeeds.
021 File is a directory (Fatal) -You have tried to WRITE to a directory instead of to a file.
Alternately, the attributes are not set up correctly to allow you to access a file. That is, it is
marked as read-only or you don't have sufficient rights to open it. -Recode your program so
that it writes to a file and not to a directory. You need to either change your file access
attributes or recode your program so that it does not violate the existing attributes.
022 Illegal or impossible access mode for OPEN (Recoverable) -The mode in which you are trying
to open a file violates the General Rule of COBOL for that type of file; for example you might
have opened a line sequential file in the I-O mode. -Open the file with a mode that is
compatible with that type of file.
023 Illegal or impossible access mode for CLOSE (Recoverable) -The mode in which you are
trying to close a file is not possible for that type of file. -Close the file with a new access mode
which is compatible with that type of file, or execute a STOP RUN statement and recode your
program.
024 Disk input-output error (Recoverable) -You might have performed a read after a WRITE, or
there might be either a verification failure or a parity error. -In some circumstances this error is
fatal, but if it occurs during a read you can trap it and then do a close on the file before
executing a STOP RUN statement.
025 Operating system data error (Fatal) -You are trying to set up terminal characteristics for a
device which is not a terminal. -Recode your program.
23 | Chapter 7 External Error Codes

026 Block I-O error (Fatal) -An error has occurred while you are trying to access a disk. This could
be the result of a corrupt disk. -If you have a corrupt disk try to run your program again using
your backup copy.
027 Device not available (Recoverable) -You are trying to access a device which either is not
attached to your machine or if attached is not on-line. -Attach the device to your machine and
ensure that it is on-line. Repeat the file operation.
028 No space on device (Fatal) -You have tried a file operation such as WRITE for which
insufficient space is available on your disk. -When your program has terminated you should
delete some of the files or directories on your current logged in disk. Ensure that you delete
sufficient files on your disk so that you have enough room to carry out successful file
operations.
029 Attempt to delete open file (Recoverable) -You have tried to perform a DELETE FD operation
on an open file. -Close the file before performing the DELETE FD operation.
030 File system is read-only (Recoverable) -The file system which you are using is read-only,
which effectively means that it is write-protected. You have tried to change a file in some way,
for example you might have tried to WRITE to a file or to DELETE information in it. -You
should abandon your attempt to alter the file unless you can make your own personal copy of
it. You should then be able to alter the contents of your copy, but not of the original source.
031 Not owner of file (Recoverable) -You are trying an operation on a file but the file's owner has
not given you the necessary permission for that operation. You could for example be trying to
alter the access modes for a file, which only the file's owner can do. -You should abandon
your tried file operation unless the file's owner gives you the permission necessary to do the
operation you want to carry out.
032 Too many indexed files, or no such process (Recoverable) -You have tried to open an indexed
file but the number of files that you currently have open is the system limit. Alternately, you
could be trying to use a process id which does not exist, or which your operating system no
longer recognizes. -You should close some of the indexed files which you are no longer
accessing, and you should then be able to open the file you require. In this case you must
rewrite your code so that it uses a process id which your system recognizes.
033 Physical I-O error (Fatal) -You have a hardware error of some type. Perhaps you have not put
a disk in the relevant drive or you might have tried to WRITE to a disk but the processor
detected hardware interface has failed.
-You should try to correct the fault in your hardware; for example put a disk in the necessary
drive.
034 Incorrect mode or file descriptor (Recoverable) -You are either trying to write to a file which is
open for read purposes only, or read a file which is open for write purposes only. -You should
close the file and reopen using the correct access mode. As this error implies that your
program logic contains a mistake, you might want to close any open files, execute a STOP
RUN statement and then recode your program to eliminate the logic error. Shareable files
opened INPUT (read-only) by the COBOL system still require write-permission (from the
operating system) to enable temporary locking to take place.
035 Attempt to access a file with incorrect permission (Recoverable) -You are trying a file
operation which you do not have sufficient permission to achieve. For example you could be
trying to write data to a file which has been set up with the read attribute only. -If you are the
owner of the file you can alter the attributes of the file so that you have the permission needed
to effect the particular file operation you were trying. If you are not the owner of the file you
cannot to carry out that operation successfully unless you copy the file and make the changes
to the copy only. You cannot alter the source file.
Chapter7 External Error Codes | 24

036 File already exists (Recoverable) -You are trying an inappropriate operation on an already
existing file. -As this error implies that your program logic contains a mistake, you might like to
recode your program to eliminate this mistake.
037 File access denied (Fatal) -Your attempt to access a file has been denied by the operating
system. You might have tried to write to a write-protected file or you could have tried to read
from an output device. -Alter the access permission on the relevant file. Access can be read-
only, if you just want to read the contents of the file without making any changes, or it can be
read and write in which case you can alter its contents.
038 Disk not compatible (Fatal) -You have tried to access a disk that is incompatible with the
current version of your operating system. This could be because it was created under a
previous version of the system or it could have been created under a completely different
operating system. You would also receive this error if you tried to load a disk with a name that
clashed with a disk that was already loaded. -If the error is a result of a clash of names you
can rename one of the disks and then you can load both disks together if this is what you
want.
039 File not compatible (Fatal) -You have tried to access a file that is not compatible with the
structure of files under the current release of your software. This could be because the file
was created either under a different operating system or under a previous version of your
current system. -You should create a new copy of the file which has the correct structure.
040 National Language initialization not set up correctly (Fatal) -You have tried to use the
additional language variants, but the environment or side file that is required to set up the
language either has not been set up correctly, or does not exist, or is invalid. This might be
because you have the LANG environment variable set for use by another system in a format
not recognized by this COBOL system. -Set up the required environment or side file before
you try to run the program again. Use the COBLANG environment variable to set the locale
information for the COBOL system. See the chapter NLS Support in your Programmer's
Guide to Writing Programs.
041 Corrupt index file (Recoverable) -Your run-time system does not recognize the control
information for an indexed file and as the index has been corrupted in some way the data in the
file is no longer accessible by your system. This error is recoverable in the sense that it can be
trapped but should you receive it, you can do little except to close any open files and stop your
program's run. -You should rerun your program using the backup copy of that file. If you have
added a great deal of information to the file since you last took a backup you might like to
rebuild the file using the Rebuild utility, which reads the data (if this has not been corrupted)
and builds a new index for it.
042 Attempt to write on broken pipe (Recoverable) -One of the following has occurred: -Your
program has created a process as a result of a DD_ logical filename mapping assignment (for
example, the process might be a line printer spooler). The process was not created properly,
or has ended prematurely. This error occurs when your program tries to write to the process. -
Your application has terminated abnormally or prematurely, thus breaking the pipe. -You can
trap the error status returned by the write operation, then open the file again.
043 File information missing for indexed file (Fatal) -The system has crashed on your program's
previous run, while the file was open. Information was probably added to the end of the file,
but the directory information was not updated and so that data cannot be accessed by your
system. Alternately, you have copied the indexed file from one disk to another but have
copied either only the data part of the file or only the index. -If the error is the result of a crash
then whether you can access the necessary data or not is entirely system dependent. If,
however, it is the result of a faulty copy you should be able to restore the missing part of the
file from the.dat or .idx file.
25 | Chapter 7 External Error Codes

044 Attempt to OPEN an NLS file in a non-NLS program (Fatal)


-The logical filename is preceded by "%NLS%", but the program which OPENS the file has
been compiled without the NLS directive set: the OPEN fails.
045 Attempt to OPEN an NLS file using incompatible language definition (Fatal) -The NLS control
information for a file in your program does not match the same NLS control information in the
header of your index file. Alternately, your index file has become corrupted. -Rebuild your
index file, or rerun your program using the backup copy of that file. If you have added a great
deal of information since you last took a backup, you might want to rebuild the file using a
utility that is able to read the data, if it is not corrupt, and build a new index for it.
046 NLS support module not found (Fatal) -Your system could not find the National Language
Support module COBNLSMG. Alternately, your system cannot find cobnls.dll (OS/2),
cobnls.dle (DOS), or cobnls.dlw (Windows). -Ensure that cobnlsmg.gnt is present in either
utils.lbr or in a directory on COBDIR, or, if your program is linked, ensure that cobnlsmg.obj is
linked in to it. Ensure that cobnls.dle is present in utils.lbr , or that cobnls.dlw is present in a
directory specified in COBDIR, or that cobnls.dll is present on the LIBPATH.
047 Indexed structure overflow (Fatal) -The structure of your indexed file contains a fault. You
have probably tried to put another entry in the index when there is no room for it. Alternately,
you have tried to access an old format indexed file, created perhaps using CIS COBOL. -If
your index has no room for further entries you should reorganize your file. If you have tried to
access an old format indexed file, you can run the Rebuild utility to check the consistency of
this indexed file, and to construct a new indexed file if the old one was found to be corrupt.
See your Programmer's Guide to File Handling for details of the Rebuild utility.
048 Attempt to divide by zero (Fatal) -You are executing a program that is trying to perform a fixed-
point divide by zero. Alternately, if you have COBFSTAT environment variable set to
HOSTSTAT, this could be mainframe file status code "90". -Either recode your program so
that you can trap the error with an ON SIZE ERROR clause, or run your program without the
RTS O switch set, or recompile your program without the CHECKDIV"OSVS" directive set.

048-057 Host file status, not an RTS message -If you have COBFSTAT environment variable set to
HOSTSTAT, this is a mainframe file status code "9x", where x is given by subtracting 48 from
the error number.
055 Routine table overflow (Fatal) -You have tried to load too many programs simultaneously.
Alternately, if you have COBFSTAT environment variable set to HOSTSTAT, this could be
mainframe file status code "97". -Cancel any programs that you are no longer using, or use
fewer separate programs.
065 File locked (Recoverable) -You have tried to open a file which has already been locked, or
opened for output by another user. Alternately, you have tried to lock or open for output a file
which another user already has open. -Your program can inform the system operator (if there
is one) that it is unable to access this file and should wait until the other user has finished
using the file and closes it. You should then be able to continue to run your program.
066 Attempt to add duplicate record key to indexed file (Fatal) -You have tried to add a duplicate
key for a key which you have not defined as being able to have duplicates. -As this error
implies that your program logic contains a mistake, you probably should recode.
067 Indexed file not open (Recoverable) -You are trying to access an indexed file which you have
not opened. -Open the file in the relevant access mode and then retry the unsuccessful file
operation.
Chapter7 External Error Codes | 26

068 Record locked (Recoverable) -You have tried to access a record which is currently locked by
another user. -Your program can inform the system operator (if there is one) that the record is
currently locked, and you should then wait until the other user has released the lock on that
record. You should then be able to access the relevant record. You should not continually retry
to gain access to the record without operator intervention, as this could result in your
application hanging.
069 Illegal argument to isam module (Fatal) -This is the result of an internal system error. -Contact
Technical Support who will help you find the cause of your error and how it can be rectified.
070 Too many indexed files open (Recoverable) -You are trying to open an indexed file but you
have already exhausted the system limit which specifies how many of these files can be
opened at any one time. -Close some of the open indexed files which you are not currently
accessing. You should then be able to open the indexed file which you require and to continue
the program run.
071 Bad indexed file format (Fatal) -You are either using a file which has been corrupted, or there is
an internal system error. -If the disk you are using is corrupt, rerun your program using your
backup copy of the disk. If this is not the cause of the error then you should contact Technical
Support who will help you find the cause of your error and how it can be rectified.
072 End of indexed file (Fatal) -This is the result of an internal system error. -Contact Technical
Support who will help you find the cause of your error and how it can be rectified.
073 No record found in indexed file (Fatal) -This is the result of an internal system error. -Contact
Technical Support who will help you find the cause of the error and how it can be rectified.
074 No current record in indexed file (Fatal) -This is the result of an internal system error. -Contact
Technical Support who will help you find the cause of the error and how it can be rectified.
075 Indexed data file name too long (Fatal) -When creating indexed files, the extension .idx is
added to the user-defined filename, and so your filename must not exceed x-4 characters in
length, where x is the maximum length of filename. See your Programmer's Guide to File
Handling for details. -Rename the file with a shorter filename, that is, one that is less than 10
characters in length.
076 Can't create lock file in /isam directory (Fatal) -For some reason your system is unable to
create a lock file in the /isam directory. One reason for this could be that in its previous run
your program terminated abnormally (perhaps due to a power failure) leaving some files
locked. -You should manually remove all of the files that are still locked from the /isam
directory before you can successfully run your program.
077 Internal ISAM module error (Fatal) -This is the result of an internal system error. -Contact
Technical Support who will help you find the cause of your error and how it can be rectified.
078 Illegal key description in indexed file (Fatal) -This is the result of an internal system error. -
Contact Technical Support who will help you find the cause of your error and how it can be
rectified.
079 COBCONFIG syntax error (Fatal) -An error exists in the run-time configuration sidefile
accessed via the environment variable COBCONFIG. -Check your syntax against your object
COBOL User Guide. You might have used incorrect syntax, or syntax that is not compatible
with the type of RTS tuneable you are configuring (this could include assigning an illegal value
to the RTS tuneable).
081 Key already exists in indexed file (Fatal) -This is the result of an internal system error. -
Contact Technical Support who will help you find the cause of your error and how it can be
rectified.
082 CALL convention not supported (Fatal) -The CALL convention you have specified is not
supported. -See your object COBOL User Guide for a list of supported CALL conventions.
27 | Chapter 7 External Error Codes

086 Remote file system failure (Fatal)


099 Illegal operation in SORT/MERGE module (Fatal) -A SORT or MERGE module has received
a RELEASE operation outside the Input procedure, or a RETURN operation either outside the
Output procedure, or before the Input procedure has terminated correctly. -Recode your
program so that RELEASE and RETURN operations are issued by the appropriate
procedures.

100 Invalid file operation (Fatal) -You have tried a file operation which violates a general rule of
COBOL in some way. The most likely cause of this error is that you have tried a rewrite on a
sequential file opened I-O, or on a relative file with access mode sequential also opened I-O,
without preceding it with a successful read NEXT. -Recode your program to ensure that the
REWRITE statement in error is preceded by a read NEXT.
101 Illegal operation on an indexed file (Fatal) -This is the result of an internal system error. -
Contact Technical Support who will help you find the cause of your error and how it can be
rectified.
102 Sequential file with non-integral number of records (Fatal) -You have either specified an
incorrect record length for a sequential file, or the sequential file you are trying to access is
corrupt in some way, or the file which you have specified is not a sequential file. -Recode your
program so that it specifies the correct type of file, or if the error is the result of a corrupt file,
try to run the program again using a backup copy of that file.
103 Parameter cannot be passed BY VALUE (Fatal)
104 Null file name used in a file operation (Fatal) -You specified a data-name for a filename instead
of a literal, and the data item contained only spaces when you tried to open the file. -Recode
your program specifying the correct filename.
105 Memory allocation error (Fatal) -The run-time system is unable to allocate sufficient memory
space to successfully carry out the tried operation, probably because of insufficient memory
space on your system. -You should obtain more memory in which to run your program. Refer
to your operating system documentation for details of how you can obtain more memory, if
this is possible.
106 Dictionary error (Fatal) -This could be the result of a read or write error to file or disk, but it is
more likely to be the result of an internal system error. Alternately, your application might have
called many programs without canceling them afterward, so that memory becomes exhausted
during Animation. -Contact Technical Support who will help you to find the cause of your error
and how it can be rectified. Ensure that as much memory as possible is available during
Animation by canceling any program you do not currently need to access.
107 Operation not implemented in this run-time system (Fatal) -You are trying to perform a file
operation which your run-time system does not support. -You should recode your program so
that it does not try such operations, or you should acquire a version of your system that does
support this facility.
108 Failure to initialize data division (Fatal) -The run-time system cannot load your program
properly because the data needed to correctly initialize the Data Division has become
corrupted. -You should compile your program again to try to obtain good intermediate code.
109 Invalid checksum in run-time system (Recoverable) -The internal information in the run-time
system has been altered. The run-time system might have become corrupted, or you might
have illegally tried to change the internal run-time system information.
110 Generated code not supported by this RTS (Fatal) -Contact Technical Support who will help
you to find the cause of the error and how it can be rectified.
Chapter7 External Error Codes | 28

111 Incompatible Class Library and Run-time Environment versions (Fatal) -The version numbers
for these components do not match. -Check that you have fully installed both the Class
Library and the Run-time Environment from the same version of object COBOL. If you have
more than one version installed, check that your PATH, LIBPATH, and COBDIR environment
variables specify an appropriate path for the version you are using.
112 Unable to locate/access the required security key (Recoverable) -The run-time system cannot
locate or cannot access the coded security key (dongle) that is required to execute this
application. -Connect the security key that was supplied with your COBOL system to the
parallel port of your computer, then re-run the application.
114 Attempt to access item beyond bounds of memory (Fatal) -Memory access violation has been
detected by your operating system.
115 Unexpected signal (Fatal) -A signal the run-time system was not expecting has been caught.
116 Cannot allocate memory (Fatal) -For some reason a part of your run-time system is unable to
allocate you sufficient memory to enable you to execute your code. -You should try to reduce
memory usage by canceling programs that are not in use, then try the operation that caused
this message again.
117 Bad collating sequence (Fatal) -This is an internal system error. -Please contact Technical
Support who will help you to find the cause of the error and how it can be rectified.
118 Symbol not found (Fatal) -You are unable to load your object file. You have tried to call a
program that has not been specified in the COBPATH environment variable. -Check that your
COBPATH has been set up correctly. If not, revise your COBPATH to include the program
being called.
119 Symbol redefined (Fatal) -The RTS has detected a symbol (for example, data item, entry point
or module name) which is already defined. -You can recode your application to remove the
naming duplication. If you are not linking with a non-COBOL function, you can use the -e RTS
switch (32-bit RTS only).
120 Symbol string table of zero size (Fatal) -You probably have a malformed object file. -Once the
program has terminated you must correct your object file. If this does not work, contact
Technical Support who will help you to find the specific cause of the error.
121 Symbol is not in TEXT section (Fatal) -You have tried to call a subprogram that is not an
executable program. Alternately, you have used the same name for a called program as for a
previously defined data item. -Check that the subprogram being called is an executable one. If
required, correct the subprogram's name in the calling program and resubmit it to your COBOL
system. Once your program has terminated, recode it to remove the naming duplication.
Resubmit your program to your COBOL system.
122 Coblongjmp() called below level of cobsavenv() (Fatal) -You might have returned control to a
higher level in the CALL/PERFORM hierarchy than the level at which cobsetjmp was called.
Coblongjmp must be called only from the same or from a lower level in the CALL/PERFORM
hierarchy as cobsavenv was. See your object COBOL User Guide for details of cobsavenv
and coblongjmp.
123 Unknown relocation type (Fatal) -You are using incompatible versions of the object file and the
COBOL run-time library. -Once the program has terminated, resubmit your object file to your
COBOL system with the current version of your COBOL run-time library. If this does not work,
contact Technical Support who will help you to find the specific cause of the error.
124 Communication failure during I/O request to the central file handler
125 All locks/ current transactions canceled due to exceeding time limit
126 Record size exceeds system limit (Fatal)
29 | Chapter 7 External Error Codes

129 Attempt to access record zero of relative file (Recoverable) -The value specified in the
RELATIVE KEY data item contains the value zero. -You should ensure that the value in the
RELATIVE KEY data item is greater than zero, then continue to run your program.
135 File must not exist (Recoverable) -The operating system has been unable to find a file which
you have tried to access in your program. -Ensure that you are in the correct directory or that a
path to the file concerned exists. You can then try the file operation again. If the error is the
result of a spelling mistake then ask for the correct file and try the file operation again.
137 Illegal device specification - not mass storage
138 File closed with lock - cannot be opened (Recoverable) -You are trying to open a file which you
previously closed with lock, which violates one of the general rules of COBOL programming. -
You cannot open the relevant file. As this error implies that your program logic contains a
mistake, you might want to close any remaining open files, execute a STOP RUN statement
and recode.
139 Record length or key data inconsistency (Recoverable) -A discrepancy exists between the
length of a record, or the keys which you have specified, in your current program and its
definition in the program in which it was first opened. -Your program has a fault, so you
probably should edit your code, then resubmit it to your COBOL system before running it
again.
141 File already open - cannot be opened (Recoverable) -You have tried to open a file which is
already open and so cannot be opened again. -Cancel your second attempt to open the file
and continue to run your program if the fact that the file is already open is acceptable to you.
However as this error implies that your program logic contains a mistake, you might want to
close any open files, execute a STOP RUN statement and then recode.
142 File not open - cannot be closed (Recoverable) -You have tried to close a file which is not
open. -You can abandon your attempt to close the relevant file and continue to run your
program. However, as this error implies that your program logic contains a mistake, you might
want to close any open files, execute a STOP RUN statement and then recode.
143 Rewrite/delete in sequential mode not preceded by successful read (Recoverable) -You have
failed to do a successful read on a sequentially accessed file trying a REWRITE or DELETE
on some of the information contained in that file. -If the previous read was successful then
perform a read on the relevant file before you retry the unsuccessful REWRITE or DELETE
operation. If the previous read was also unsuccessful close the file, execute a STOP RUN
statement and then recode your program before you next run it.
144 Boundary violation (Recoverable) -You have tried to write a record to a variable length record
file, the length of which is not within the defined range for that file. -Recode your program.
146 No current record defined for sequential read (Recoverable) -The file position indicator in your
file is undefined owing to a failed read/START or INVALID KEY condition. You have tried to
read another record in the file but as the current record is undefined the system cannot find the
start of the record for which you have asked. -You should try a START operation, and
continue to do so until the file position indicator is updated successfully.
147 Wrong open mode or access mode for read/start (Recoverable) -You have tried to carry out a
read or start operation on a file which has not been opened for INPUT or I-O, or which is not
open at all. -Open the file for I-O or for INPUT and you should then be able to continue to run
your program. However, as this error implies that your program logic contains a mistake, you
might want to close any files which are open, execute a STOP RUN statement and then
recode.
Chapter7 External Error Codes | 30

148 Wrong open mode or access mode for write (Recoverable) -You have tried to write to a file in
sequential access mode that you have not opened for OUTPUT or EXTEND, or you have
tried to write to a file in random or dynamic access mode that has not been opened INPUT or
I-O, or which is not open at all. -Close the file and reopen it with the correct open mode for the
file type. However, as this error implies that your program logic contains a mistake, you might
want to close any files that are open, execute a STOP RUN statement and then recode.
149 Wrong open mode or access mode for rewrite/delete (Recoverable) -You are trying to do a
REWRITE or a DELETE on a file that you have not opened for I-O, or which is not open at all.
-Close the file and reopen for I-O. However, as this error implies that your program logic
contains a mistake, you might want to close any open files, execute a STOP RUN statement
and then recode.

151 Random read on sequential file (Recoverable) -You are trying to do a random read on a file
which has sequential organization. -Read the file with the correct access mode. As this error
implies that your program logic contains a mistake, you might like to close any files which are
open, execute a STOP RUN statement and recode.
152 REWRITE on file not opened I-O (Recoverable) -You have tried a REWRITE on a file that is
not open I-O. -Close the relevant file and open it for I-O operations. You should then be able to
carry out the REWRITE operation successfully. However, as this error implies that your
program logic contains a mistake, you might want to close any open files, execute a STOP
RUN statement and then recode.
153 Subscript out of range (Fatal) -A subscript which you have used in your program is out of the
defined range, that is, it is either less than one or it is greater than the number of occurrences
of the item. -You should recode your program.
154 PERFORM nested too deeply (Fatal) -This error usually results if you have used GO TO to
jump out of the range of a PERFORM rather than to jump to an EXIT statement at the end of
its range. -When your program has terminated you should to recode your program to ensure
that the GO TO in question jumps to an EXIT statement at the end of the PERFORM's range.
155 Illegal command line (Fatal) -The run-time system does not recognize as valid the command
line format you have specified. Alternately, the generic command-line interpreter, which must
be present if your program is to be run successfully, is not found on your system. Alternately,
you have set an invalid COBSW value. -Rerun your application with a valid command line.
Ensure that the interpreter is present to enable your system to pick up the commands
correctly and then rerun your program. Reset COBSW to a valid value.
156 Too many parentheses in compute statement (Fatal) -You have coded a COMPUTE
statement which is too complex for your system to handle successfully. -You should recode
your program. We strongly advise you to break the relevant COMPUTE statement into a
number of simpler statements.
157 Not enough program memory: object file too large to load (Recoverable) -Either your program
is too large for the available memory space, or the stack is full. -If you have specified the ON
OVERFLOW/EXCEPTION clause in the relevant CALL statement, the error is recoverable.
Any associated imperative statement is executed before the next instruction.
158 Attempt to REWRITE to a line-sequential file (Recoverable) -You have used the REWRITE
statement in conjunction with a file whose organization is line sequential. The REWRITE
statement cannot be used with line sequential files. -Close the file in error before executing a
STOP RUN statement to ensure that you do not lose any data from it. Recode your program
to make the organization of the file to which you want to do a REWRITE either sequential,
indexed sequential, or relative.
31 | Chapter 7 External Error Codes

159 Malformed line-sequential file (Recoverable) -A line-sequential file which you are trying to
access is corrupt in some way. -Rerun your program using the backup copy of that file.
160 Overlay loading error (Recoverable) -An error has occurred while trying to load the
intermediate code for an independent segment. The segment is either missing or corrupted in
some way. -If the segment is missing, locate it. If you cannot find it, or if it is present and
corrupt, resubmit your program to your COBOL system.
161 Illegal intermediate code (Fatal) -The intermediate code which is currently being processed is
not valid code. You are probably trying to execute a corrupted file or one which has not been
submitted to your COBOL system successfully. -You should resubmit your source program to
your COBOL system, to try to obtain uncorrupted intermediate code.
162 Arithmetic overflow or underflow (Fatal) -You are executing a program that is trying to perform
a floating-point divide by zero. -You should recode your program to avoid this illegal operation.
163 Illegal character in numeric field (Fatal) -By default the value which you enter into a numeric or
numeric edited field is checked to ensure that it is numeric. You have entered either
nonnumeric characters or uninitialized numerics into numeric or numeric edited fields: these
are automatically space filled and are thus classified as nonnumeric items. -You must adjust
your code so that no invalid data is used. You can locate the invalid numeric data in your code
by setting the +F switch on, and animating your program until you receive this error. You might
need to use one of the Compiler directives, BADSIGNS, HOST-NUMCOMPARE,
SIGNCOMPARE or SPZERO, to resolve invalid data in numeric fields. See your object
COBOL User Guide for details of these directives.
164 Run-Time subprogram not found (Fatal) -You have tried to call a subroutine whose entry
address has not been set up in your run-time system. -Check to see that you used a valid call
number in the unsuccessful subroutine call. If not, revise your code to contain a call number
which your system recognizes. If you did use a valid call number but still received this error
you should contact Technical Support.
165 Version number incompatibility (Fatal) -One or more of the run-time support modules is
incompatible with the run-time system you are using. The name of the incompatible support
module is displayed. Alternately, the run-time system you are using is incompatible with the
version of your COBOL system. Either "RTS" or the name of the run-time system file is
displayed: coblib.dll (OS/2), coblib.dle (DOS) or coblib.dlw (Windows). -Reinstall the support
module, using your installation disks. Reinstall the run-time system file, using your installation
disks. If no support module name is displayed, you have done one of the following: -Used
intermediate code which has been produced on a version of your COBOL system that is
incompatible with the run-time system you are using. Your RTS, therefore, cannot execute
correctly any generated code you are producing or have already produced from this
intermediate code. -Tried to execute a file which is not your COBOL system's intermediate or
generated code.
166 Recursive COBOL CALL is illegal (Fatal) -You have tried to call a COBOL module that is
already active. -You should recode your program.
167 Too many USING items (Fatal) -The list of items which you have supplied in a
CALL....USING statement is longer than the run-time system can handle. -Once your
program has terminated recode it with group items rather than elementary items before
rerunning it.
Chapter7 External Error Codes | 32

168 Stack overflow (Fatal) -You have nested a PERFORM statement or a series of CALL
statements too deeply. Alternately, if you have specified the CHECKSTACK directive when
compiling your program, an incorrect number of parameters might have been used on a call,
and as a result the stack has been corrupted. -Edit your program to reduce the number of
levels in the nested PERFORM or CALL statement. If the CHECKSTACK directive has been
used, determine which call is at fault and edit the source to provide the correct number and
size of parameters.
169 Illegal configuration information (Fatal) -You have tried an operation for which your machine is
not configured;  the most likely cause of this is that Adis is not configured correctly. -Check
that Adis is configured correctly. See your Programmer's Guide to Creating UserInterfaces for
details of how you can reconfigure Adis.
170 System program not found (Fatal) -A system program, for example Adis or ExtFH, is not
present on the current logged-in drive. -Ensure that all the system programs are available on
the logged-in drive and copy those which are not currently present using your backup system
disk. Once all the necessary system programs are available you can run your program.
171 Japanese operations illegal with this RTS (Fatal) -You are trying to perform Japanese
operations with a non-Japanese run-time system, or you have used a Japanese version of
your COBOL system to produce code which you are now trying to run using a non-Japanese
run-time system. -You should resubmit your program using a non-Japanese run-time system,
or if you still want your program to perform Japanese operations, you should acquire a
Japanese run-time system.
172 Recursive non-MF PERFORM is illegal (Fatal) -You have tried full recursion of a PERFORM
statement in a program that was submitted to your COBOL system with the OSVS parameter
of the PERFORM-TYPE directive specified. That is, you have tried to end two PERFORMs
with the same return address. -You should either resubmit your program to your COBOL
system with a parameter other than OSVS specified for the PERFORM-TYPE directive, or
recode your program so that each PERFORM has its own unique return address before you
resubmit it to your COBOL system with the MF parameter of the PERFORM-TYPE directive
specified.
173 Called program file not found in drive/directory (Fatal) -You have tried to call a program which
is not present on your current logged-in drive or directory, or in a directory pointed to by the
COBDIR environment variable. -Once your program has terminated you should copy the
relevant file into your logged-in drive or directory. If insufficient space is available, you should
set the COBDIR environment variable to search the directory or drive on which the file is
present when your program calls it. Once you have taken these steps, run your program
again.
174 Imported file not found (Fatal) -You have tried to load a .dll file which contains references to
another .dll file which cannot be found by the operating system. -Locate the missing file and
ensure it is located on the default search path for your operating system.
175 Attempt to run intermediate code program which had severe errors in it (Fatal) -You are trying
to run a program that produced severe faults when you submitted it to your COBOL system
with the run-time switch E turned off. Alternately, you could try to run the program with the E
run-time switch set, though this might not give the desired results. -You should edit your
source code to correct all the severe faults, resubmit it to your COBOL system, then run the
intermediate code that is produced. When your program is being animated, Animator reports
this error and enables you to continue to run the program. See also: E RTS switch
176 Illegal intersegment reference (Fatal) -You might have a corrupted file. Alternately, your code
contains a segment reference for the Forward Reference Table which is illegal. -Resubmit
your source code to your COBOL system. If you receive this error again, contact Technical
Support who will help you to find the specific cause of the error.
33 | Chapter 7 External Error Codes

177 Attempt to cancel program failed (Fatal) -You have tried to remove a currently executing
program or its parents or grandparents, from memory. Alternately, you have tried to cancel a
DLL, either directly or indirectly as an imported DLL, that contains an entry point which has
been registered as an EXIT LIST function via the OS/2 API call DosExitList. -Once your
program has terminated you need to recode your program to ensure that you do not try to
cancel a program (or its parents or grandparents) while it is still being executed. Locate the
erroneous DLL and ensure that the EXIT LIST function is removed before you cancel the DLL.
If you cannot recode the DLL, you can set the O RTS switch to force a logical cancel on the
DLL. See also:D2 RTS switch O RTS switch
178 Error during save (Fatal) -You cannot save the information which your program has generated.
This can be caused by several different reasons but one of the most common causes is that
you have tried to Build a module that is too large for the available memory space. -If the error
is caused by a lack of space you can either delete some of the files which you no longer need
on your current disk, or insert a new floppy disk to take the output from your program. You
should then be able to rerun your program and save the information given by it.
179 Error during chain (program not found) (Fatal) -You have tried to chain to another program
which your system is unable to find. -Once your program has terminated you should copy the
relevant file into your logged-in drive or directory. If insufficient space is available, you should
set the COBDIR environment variable to search the directory or drive on which the file is
present when your program calls it. Once you have taken these steps, run your program
again.
180 End-of-file marker error (Fatal) -A file-marker used to indicate that the end-of-file has been
reached is missing from one of your files. -You should resubmit your code to your COBOL
system, or use a debugger to place the end-of-file marker at the end of the file. You can then
rerun your program.
181 Invalid parameter error (Fatal) -A parameter which you have used is not one which is
recognized by your system. You have probably used a parameter for a run-time system
subprogram which is not in the first 64K of the Data Division. -Revise your code to contain a
parameter which is known by your system. That is, ensure that the parameter is in the first
64K of the Data Division.
182 Console input or console output open in wrong direction (Fatal) -You are either trying to read
input from the screen or write to the keyboard. -You should recode your program.
183 Attempt to open line sequential file for I-O (Fatal) -You have tried to open a line-sequential file
in the input-output open mode, but this mode is not supported for files with this organization. -
When your program has terminated you should recode your program to ensure that the file
with organization line sequential is opened for input, output, or extend. You can then rerun
your code.
184 ACCEPT/DISPLAY I-O error (Fatal) -You have either tried to read input from the screen or
write to the keyboard, or the ADIS module has not been able to open your terminal's channels
for I-O. -Your program logic contains a mistake, so you must recode.
185 File malformed (Recoverable)
186 Attempt to open stdin, stdout or stderr with incorrect mode (Recoverable) -You have tried to
open either a standard input file with output mode, or some other file in an incorrect mode.
187 Run-time system not found on $COBDIR path (Fatal) -The run-time system cannot be found
on the path you have set up in the COBDIR environment variable. Alternately, you might not
have installed your COBOL system correctly. -Ensure that the run-time system is on the path
you have set up in the COBDIR environment variable. Alternately, ensure that your COBOL
system has been installed correctly. If it has not, you must reinstall your COBOL system.
Chapter7 External Error Codes | 34

188 Filename too large (Fatal) -A filename which you have used has more characters than the
maximum number allowed by your operating system. -You should recode your program to
check the length of the file in error, and rename it with a shorter filename. You can then run
your program again.
189 Intermediate code load error (Fatal) -You are unable to load your intermediate code. You might
have tried to load intermediate code that either has not been successfully produced, or has
been corrupted in some way. -Try to obtain good intermediate code, for example, by
resubmitting (or submitting) your source code to your COBOL system. You should then be
able to load your code and run the program successfully.
190 Too many arguments to CALL (Fatal) -A CALL statement in your program cannot be
successfully executed because of the number of arguments which you have used with it. -
When your program has terminated you can recode it using group items rather than
elementary ones. You should then be able to run your program successfully.
191 Terminal type not defined (Fatal) -Your terminal type is undefined, so your operating system is
unable to drive your terminal. -Set up the necessary environment for your terminal.
192 Required terminal capability description missing (Fatal) -A compulsory entry, for example
cursor movement or clear screen, is missing from your terminal configuration database. -Add
the missing entry to your terminal configuration database.
193 Error in variable length count (Fatal) -The intermediate code which is currently being
processed is not a valid operation. You are probably trying to execute a corrupt file or one
which has not been produced. -You should resubmit your source code to your COBOL
system.
194 File size too large (Fatal) -A file which your program is accessing is too large for successful
execution to continue. -When your program has terminated you should recode your program
spreading the data over more than one file to ensure that no file becomes too large for your
operating system to handle. Having recoded your program you can then rerun it.
195 DELETE/REWRITE not preceded by a read (Fatal) -Before a DELETE or a REWRITE
statement can be successfully executed in sequential access mode the last input-output
statement executed for the associated file must have been a successful read. In your code no
read statement precedes your tried DELETE or REWRITE. -When your program has
terminated, recode your program, making sure that the last input-output statement to be
executed before the DELETE or REWRITE is a READ statement.
196 Record number too large in relative or indexed file (Fatal) -The relative record key has
exceeded the system limit, that is, the file is too large for the system to handle. Alternately,
the record key which you have specified is too large for the system to deal with successfully,
or the pointer to the record has been corrupted in some way so that it is either too large or it is
not a multiple of the record length.
197 Screen handling system initialization error (Fatal) -This error can be caused by one of the
following: -Your display adapter is in the wrong mode. -Your screen handling interface has not
been correctly initialized because your terminal does not have the required capabilities. -Your
terminfo file is corrupted. -Memory has been incorrectly allocated. -If you are using a DOS or
OS/2 system, the monitor must be in alphanumeric display mode rather than graphics display
mode. You can set the display mode to a valid alphanumeric mode by using the DOS MODE
utility and then rerunning your program. If you are using a UNIX-type system, you must check
that your terminfo file contains the correct entry for your terminal. If your terminfo file is
corrupt, or your screen handling interface has not been correctly initialized, you must advise
your system administrator of the problem, and he will take steps to try to correct it. If your
memory has been incorrectly allocated, you must rerun your program.
35 | Chapter 7 External Error Codes

198 Load failure (Fatal) -The system cannot load a program, usually because of insufficient
memory. Alternately your program has run out of memory during the loading or reloading of a
file. This occurs more frequently during Animation because of the extra memory required
during Animation. -Make more memory available and then rerun your program. Ensure that as
much memory as possible is available during Animation by canceling any program you do not
currently need to access.
199 Operating System error code lies outside expected range (Fatal) -A system call has returned
an unexpected error number which is not documented. -Contact Technical Support who will
help you to find the specific cause of this error.

200 Run-time system internal logic error (Fatal) -The amount of memory available on your machine
is so low that not even the run-time system can be fully loaded. Alternately, your run-time
system has stopped as a result of an internal logic error from which you cannot recover. -Free
some memory and then you should be able to run your program successfully. Contact
Technical Support who will help you to find the cause of the error.
201 I-O error in paging system (Fatal) -No room is available in your current directory or on the
floppy disk which you are using, for the paging file. -When your program has terminated,
delete any files which you no longer need from your directory to make room for the paging file,
or insert a new floppy disk.
202 Exported functionality error (Fatal) -You have either caused an internal run-time system error
by invalid use of an exported function, or the code produced by a preprocessor in your COBOL
system contains errors. -Ensure that all of your external assembler applications call and use
run-time system functions correctly before you try to run your program again. If you are using
a preprocessor as part of your COBOL system, you should use the software as a standalone
preprocessor to isolate the problem areas.
203 CALL parameter not supplied (Fatal) -The item you are trying to access in the Linkage Section
of the currently executing program has not been initialized. -Recode your program to ensure
that it contains all of the necessary parameters, or check that it is a valid caller.
206 Reading unwritten data from memory (Fatal) -You are trying to read data which has not been
written, from the core file.
207 Machine does not exist (Recoverable) -You have tried to access a machine that is not
connected to your network, or which is not on-line. -Make sure the machine is connected to
the network and is on-line, then try to access it again.
208 Error in multi-user system (Fatal) -This is normally caused by an unexpected error occurring in
the network or file-sharing facilities. A corrupted network message also causes this error to be
returned. -Retry the unsuccessful operation. If the error persists, contact Technical Support
who will help you to find the specific cause of this error.
209 Network communication error (Recoverable) -This is normally given if an incorrect checksum
has been received in a communications packet. -Your program should continue to execute
after you have received this error but results might be undefined.
210 File is closed with lock (Fatal) -You have tried to open a file which you have previously closed
with lock. -Recode your program to avoid opening a file which has previously been closed with
lock.
211 Program not executable by run-time system (Fatal) -You have tried to run a program that is
incompatible with the current version of either your run-time system, your object file or your
COBOL run-time library. For example, your run-time system does not run a program linked
using a different object file format or COBOL run-time library. -If your object file is
incompatible with the current version of either your COBOL run-time library or your run-time
system, you should relink with the current version of your COBOL run-time library.
Chapter7 External Error Codes | 36

213 Too many locks (Recoverable) -You have either tried to exceed the maximum number of
simultaneous record locks per file you can have, or you have exhausted an operating system
or network resource, for example dynamic memory. -Execute a COMMIT or an UNLOCK
operation on the relevant file and you should then be able to continue to run your program. You
should try not to retain a record lock for longer than is necessary.
214 GO TO has not been ALTERed (Fatal) -You have violated one of the general rules of COBOL
programming. -Close any files which might be open, execute a STOP RUN statement and
then edit your program to avoid such illegal operations.
215 Cannot ANIMATE a program running COMMUNICATIONS (Fatal) -You have tried to animate
a program which makes use of the communications module. This cannot be done as both
Animator and the communications module need full use of the CRT. -You should run your
program without the aid of Animator.
216 Cannot initialize the named communications device (Fatal) -A device driver is probably
missing. -Ensure that all communications drivers are loaded before you try to run
Communications.
217 Incompatible host for native code file (Fatal) -The .gnt file is not valid for the host processor. -
You must resubmit your program to your COBOL system.
218 Malformed MULTIPLE REEL/UNIT file (Fatal) -Either your file header is not correctly
formatted, or you are not using a MULTIPLE REEL/UNIT file. -You should try to run your
program again using a backup copy of the relevant file.
219 Operating system shared file limit exceeded (Recoverable) -You have tried to exceed your
operating system's limit on the number of shared files that you can have open simultaneously.
As this figure is operating system dependent, you should consult your Release Notes for
details of how many shared files your system permits to be open at any one time. -Close
some of the open shared files you are no longer accessing and retry the file operation.
220 Attempt to execute more than one SORT or MERGE simultaneously (Fatal) -You have coded
your program in such a way that it is trying to execute more than one SORT or MERGE
operation at the same time. For example, you might have coded a SORT statement in the
input or output procedure of another SORT statement, an operation that is specifically
prohibited under the rules of ANSI COBOL. -You should recode your program to ensure that it
does not execute more than one SORT or MERGE at any one time.
221 SORT/MERGE error: see status keys (Fatal) -You have tried a SORT/MERGE operation
which has been unsuccessful for some reason. You might have had too many files open when
you tried a SORT/MERGE operation, or the file which you are trying to access might be
locked. -The action you should take depends on the situation in which it occurs. Check the
status of each file (USING/ GIVING) defined in the SORT statement.
222 SORT/MERGE error: see status keys (Fatal) -You have tried a SORT/MERGE operation
which has been unsuccessful for some reason. You might have had too many files open when
you tried a SORT/MERGE operation, or the file which you are trying to access might be
locked. -The action you should take depends on the situation in which it occurs. Check the
status of each file (USING/ GIVING) defined in the SORT statement.
223 SORT/MERGE error: see status keys (Fatal) -You have tried a SORT/MERGE operation
which has been unsuccessful for some reason. You might have had too many files open when
you tried a SORT/MERGE operation, or the file which you are trying to access might be
locked. Alternately, you have set the TMP environment variable to point to a directory that
does not exist. -The action you should take depends on the situation in which it occurs. Either
set TMP to point to a directory that does exist, or unset TMP.
224 External Language Initialization failure
37 | Chapter 7 External Error Codes

225 Dynamic load error - program component missing (Fatal) -The run-time system cannot locate
the root or overlay of a program that is currently loaded in memory. Alternately, you have
insufficient memory to load your program. Alternately, the run-time system could not find
enough file handles to open and, therefore, load the code. -Either the library that contained the
program has been canceled, or the program is no longer available on the program search path.
Ensure that the program is available either on disk or on an open library. Either free some
memory, use XM, or restructure your application so that it uses less memory. Increase your
operating system file handles limit.
226 EXTERNAL file definition inconsistent -Two or more programs define the same external file
but with different formats. For example, maximum and minimum record lengths might be
different. -Ensure that all of your programs define the external file with the same format so that
they are consistent. It is useful to have the file definition in a COPY file.
227 EXTERNAL data definition inconsistent (Fatal) -Two or more programs are defining the same
external data item, but the first loaded program has defined the size differently from the
second or subsequent loaded program. -Ensure that both or all of your programs define the
size of the external data item as being the same.
228 Could not allocate memory for EXTERNAL item (Fatal)
229 SORT/MERGE module does not support EXTERNAL using/giving files (Recoverable) -You
have tried a SORT or MERGE operation which has USING/ GIVING files which are defined
as EXTERNAL. The SORT/ MERGE module does not support USING/ GIVING files defined
as EXTERNAL. -Recompile your program to use the callable SORT module (EXTSM).
230 Floating Point Support Module not found (Fatal)
235 Error in animator communications channel (Fatal) -Animator has encountered system limits or
conflicts resulting in communications errors. Perhaps two logins on the same UNIX system
are trying to cross-session animate the same program file. -Copy the animated program file to
a different directory and try animation.
236 Animated program has terminated unexpectedly (Fatal) -A program you are animating has
terminated without following the standard run-time system shut-down process. The
termination was probably either initiated by the user or caused by a severe run-time error. -
Run your program without animation to determine if it runs successfully; if so, animate the
program without cross-session or intrasession animation.
237 Unable to initialize animated process (Fatal) -Animator has encountered system limits in
starting your program. The animated program cannot start because of either insufficient
memory or too many processes running on the UNIX system. -Animate your program when
the load on the system has reduced. Run the program without animation to determine if it runs
successfully; if so, animate the program without cross-session or intrasession animation. Ask
your system administrator to expand the number of process slots and virtual memory page
maps.
238 STOP RUN encountered during GNT animation (Informational) -Animator has encountered a
STOP RUN statement while animating your .gnt code program. -Step or Zoom the animated
program, and Animator will terminate the program and its current session.
239 Shared run-time system initialization failure (Informational) -You are calling a COBOL module
from a non-COBOL program, and have not initialized the shared run-time system. -Ensure that
your application calls the cobinit() function before executing any COBOL modules.
240 Object reference not valid (Fatal) -You have tried to use an object reference that contains an
incorrect or non-existent object handle. -Ensure that the object reference uses the correct
object handle, and that your program has not previously destroyed the object by sending it a
Finalize message.
Chapter7 External Error Codes | 38

241 Cannot instantiate an abstract class (Fatal) -You have tried to create an instance of a class
that has been declared ABSTRACT. Such classes cannot be instantiated. -Ensure that you
have specified the correct class name. Check to see if there is a subclass that you should use
instead.
242 Could not resolve DoesNotUnderstand message (Fatal) -The run-time system could not
resolve the DoesNotUnderstand message. This is usually because you have defined a class
in such a way that this method cannot be found. -Check the logic in your program to ensure
that it invokes only methods that are supported by the object, or ensure that the object
supports the DoesNotUnderstand method.
243 Class could not be loaded (Fatal) -An attempt to load an object class has failed because the
class does not contain a valid Class-Control section, or because the class is not defined
correctly. -Check the definition of the class.
254 Keyboard interrupt to ANIMATOR during ACCEPT (Fatal) -While using Animator you have
terminated your program with a keyboard interrupt.

7.3 TCP/IP - Error Messages of the TCP/IP-Stack


The following is a list of possible error codes returned by the WSAGetLastError function, along with their
explanations. The error numbers are consistently set across all Windows Sockets-compliant
implementations.

Windows Sockets code Berkeley equivalent Error Interpretation


WSAEINTR EINTR 10004 As in standard C
WSAEBADF EBADF 10009 As in standard C
WSAEACCES EACCES 10013 As in standard C
WSAEDISCON None 10101 The message terminated
gracefully. Used only for
message-oriented protocols.
WSAEFAULT EFAULT 10014 As in standard C
WSAEINVAL EINVAL 10022 As in standard C
WSAEMFILE EMFILE 10024 As in standard C
WSAEWOULDBLOCK EWOULDBLOCK 10035 As in BSD
WSAEINPROGRESS EINPROGRESS 10036 This error is returned if
anyWindows Sockets function is
called while a blocking function is
in progress.
WSAEALREADY EALREADY 10037 As in BSD
WSAENOTSOCK ENOTSOCK 10038 As in BSD
WSAEDESTADDRREQ EDESTADDRREQ 10039 As in BSD
WSAEMSGSIZE EMSGSIZE 10040 As in BSD
WSAEPROTOTYPE EPROTOTYPE 10041 As in BSD
WSAENOPROTOOPT ENOPROTOOPT 10042 As in BSD
WSAEPROTONOSUPPORT EPROTONOSUPPORT 10043 As in BSD
39 | Chapter 7 External Error Codes

WSAESOCKTNOSUPPORT ESOCKTNOSUPPORT 10044 As in BSD


WSAEOPNOTSUPP EOPNOTSUPP 10045 As in BSD
WSAEPFNOSUPPORT EPFNOSUPPORT 10046 As in BSD
WSAEAFNOSUPPORT EAFNOSUPPORT 10047 As in BSD
WSAEADDRINUSE EADDRINUSE 10048 As in BSD
WSAEADDRNOTAVAIL EADDRNOTAVAIL 10049 As in BSD
WSAENETDOWN ENETDOWN 10050 As in BSD. This error may be
reported at any time if the
Windows Sockets implementation
detects an underlying failure.
WSAENETUNREACH ENETUNREACH 10051 As in BSD
WSAENETRESET ENETRESET 10052 As in BSD
WSAECONNABORTED ECONNABORTED 10053 As in BSD
WSAECONNRESET ECONNRESET 10054 As in BSD
WSAENOBUFS ENOBUFS 10055 As in BSD
WSAEISCONN EISCONN 10056 As in BSD
WSAENOTCONN ENOTCONN 10057 As in BSD
WSAESHUTDOWN ESHUTDOWN 10058 As in BSD
WSAETOOMANYREFS ETOOMANYREFS 10059 As in BSD
WSAETIMEDOUT ETIMEDOUT 10060 As in BSD
WSAECONNREFUSED ECONNREFUSED 10061 As in BSD
WSAELOOP ELOOP 10062 As in BSD
WSAENAMETOOLONG ENAMETOOLONG 10063 As in BSD
WSAEHOSTDOWN EHOSTDOWN 10064 As in BSD
WSAEHOSTUNREACH EHOSTUNREACH 10065 As in BSD
WSASYSNOTREADY None 10091 Returned by WSAStartup,
indicating that the network
subsystem is unusable.
WSAVERNOTSUPPORTED None 10092 Returned by WSAStartup,
indicating that the Windows
Sockets DLL cannot support this
app.
WSANOTINITIALISED None 10093 Returned by any function except
WSAStartup, indicating that a
successful WSAStartup, has not
yet been performed.
WSAHOST_NOT_FOUND HOST_NOT_FOUND 11001 As in BSD
WSATRY_AGAIN TRY_AGAIN 11002 As in BSD
WSANO_RECOVERY NO_RECOVERY 11003 As in BSD
WSANO_DATA NO_DATA 11004 As in BSD
Chapter7 External Error Codes | 40

The first set of definitions is present to resolve contentions between standard C error codes which may be
defined inconsistently between various C compilers.

The second set of definitions provides Windows Sockets versions of regular Berkeley Sockets error
codes.

The third set of definitions consists of extended Windows Sockets-specific error codes.

The fourth set of errors are returned by Windows Sockets getXbyY and WSAAsyncGetXByY functions
and correspond to the errors that in Berkeley software would be returned in the h_errno variable. They
correspond to various errors that may be returned by the Domain Name Service. If the Windows Sockets
implementation does not use the DNS, it will use the most appropriate code. In general, a Windows
Sockets application should interpret WSAHOST_NOT_FOUND and WSANO_DATA as indicating that
the key (name, address, and so on) was not found, while WSATRY_AGAIN and WSANO_RECOVERY
suggest that the name service itself is nonoperational.

The error numbers are derived from the WINSOCK.H header file and are based on the fact that Windows
Sockets error numbers are computed by adding 10000 to the "normal" Berkeley error number.

Note that this table does not include all of the error codes defined in WINSOCK.H. This is because it
includes only errors that might reasonably be returned by a Windows Sockets implementation.
WINSOCK.H, on the other hand, includes a full set of BSD definitions to ensure compatibility with ported
software.

7.4 UNIX - Error Codes

7.4.1 Error Codes in Log Messages of Agents


Subject
Sun OS (Solaris)
Error codes Sparc, Solaris 1 Version 4.1 and later 
Error codes Sparc, Solaris 2 Version 5.5 and later 
Error codes Intel, Solaris 2.4 and later (corresponds to SVR4)

HP-UX
Error codes HP-Workstation (9000); HP-UX 9
Error codes HP-Workstation (9000); HP-UX 10 

DEC OSF
Error codes Alpha - DEC-OSF/1 - Digital UNIX 4.0

IBM AIX
Error codes Power-PC - AIX 4.1 

Notes
In the log messages of the agents, error codes of various UNIX systems are used. An example for such a
log message:  "U2003040 error in 'read' call (58), socket '6', error: ('11' - No more processes)".
41 | Chapter 7 External Error Codes

This log message means that with the function "read" (reading TCP/IP) on socket 6 (internal number) error
code 11 occurred. These messages are normally of minor significance and are to be ignored.

We supply all error codes and text here. If you require further information, you can call up the
documentation of a function by entering  man function on the UNIX system. The description of possible
error codes is also included.
Example: man read

7.4.2 DEC OSF


Error Codes Alpha - DEC-OSF/1 - Digital UNIX 4.0
Error Code Error Text
0 Successful
1 Not owner
2 No such file or directory
3 No such process
4 Interrupted system call
5 I/O error
6 No such device or address
7 Arg list too long
8 Exec format error
9 Bad file number
10 No children
11 Operation would cause deadlock
12 Not enough core
13 Permission denied
14 Bad address
15 Block device required
16 Mount device busy
17 File exists
18 Cross-device link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 File table overflow
24 Too many open files
25 Not a typewriter
26 Text file busy
27 File too large
Chapter7 External Error Codes | 42

28 No space left on device


29 Illegal seek
30 Read-only file system
31 Too many links
32 Broken pipe
33 Argument too large
34 Result too large
35 Operation would block
36 Operation now in progress
37 Operation already in progress
38 Socket operation on non-socket
39 Destination address required
40 Message too long
41 Protocol wrong type for socket
42 Protocol not available
43 Protocol not supported
44 Socket type not supported
45 Operation not supported on socket
46 Protocol family not supported
47 Address family not supported by protocol family
48 Address already in use
49 Cannot assign requested address
50 Network is down
51 Network is unreachable
52 Network dropped connection on reset
53 Software caused connection abort
54 Connection reset by peer
55 No buffer space available
56 Socket is already connected
57 Socket is not connected
58 Cannot send after socket shutdown
59 Too many references: cannot splice
60 Connection timed out
61 Connection refused
62 Too many levels of symbolic links
63 File name too long
64 Host is down
65 No route to host
43 | Chapter 7 External Error Codes

66 Directory not empty


67 Too many processes
68 Too many users
69 Disc quota exceeded
70 Stale NFS file handle
71 Too many levels of remote in path
72 RPC struct is bad
73 RPC version wrong
74 RPC prog. not avail
75 Program version wrong
76 Bad procedure for program
77 No locks available
78 Function not implemented
79 Inappropriate file type or format
80 No msg matches receive request
81 Msg queue id has been removed
82 Out of STREAMS resources
83 System call timed out
84 Next message has wrong type
85 STREAMS protocol error
86 No message on stream head read q
87 fd not associated with a stream
88 Tells open to clone the device
89 Mounting a dirty fs w/o force
90 Duplicate package name on install
91 Version number mismatch
92 Unresolved package name
93 Unresolved symbol name
94 Operation canceled
95 Cannot start operation
97 Operation (now) in progress
98 Too many timers
99 Function not implemented
100 Internal AIO operation complete
101 Reserved
102 Reserved
103 Value too large to be stored in data type
116 Invalid wide character
Chapter7 External Error Codes | 44

7.4.3 HP-UX
Error Codes HP Workstation (9000), HP-UX 9
Error Code Error Text
1 Not super-user
2 No such file or directory
3 No such process
4 Interrupted system call
5 I/O error
6 No such device or address
7 Arg list too long
8 Exec format error
9 Bad file number
10 No children
11 No more processes
12 Not enough core
13 Permission denied
14 Bad address
15 Block device required
16 Mount device busy
17 File exists
18 Cross-device link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 File table overflow
24 Too many open files
25 Not a typewriter
26 Text file busy
27 File too large
28 No space left on device
29 Illegal seek
30 Read only file system
31 Too many links
32 Broken pipe
35 No message of desired type
36 Identifier removed
45 | Chapter 7 External Error Codes

37 Channel number out of range


38 Level 2 not synchronized
39 Level 3 halted
40 Level 3 reset
41 Link number out of range
42 Protocol driver not attached
43 No CSI structure available
44 Level 2 halted
45 A deadlock would occur
46 System record lock table was full
47 Illegal byte sequence
50 Machine is not on the network
51 No data (for no delay io)
52 Timer expired
53 Out of streams resources
54 Device not a stream
55 Package not installed
57 The link has been severed
58 Advertise error
59 srmount error
60 Communication error on send
61 Protocol error
64 Multihop attempted
66 Cross mount point (not really error)
67 Trying to read unreadable message
68 For Sun compatibility, will not occur.
69 Disc quota exceeded
70 Stale NFS file handle
71 Too many levels of remote in path
99 Unexpected Error
215 Symbol does not exist in executable
216 Socket operation on non-socket
217 Destination address required
218 Message too long
219 Protocol wrong type for socket
220 Protocol not available
221 Protocol not supported
222 Socket type not supported
Chapter7 External Error Codes | 46

223 Operation not supported


224 Protocol family not supported
225 Address family not supported by
226 Address already in use
227 Cannot assign requested address
228 Network is down
229 Network is unreachable
230 Network dropped connection on
231 Software caused connection abort
232 Connection reset by peer
233 No buffer space available
234 Socket is already connected
235 Socket is not connected
236 Cannot send after socket shutdown
237 Too many references: cannot splice
238 Connection timed out
239 Connection refused
240 Remote peer released connection
241 Host is down
242 No route to host
244 Operation already in progress
245 Operation now in progress
246 Operation would block
247 Directory not empty
248 File name too long
249 Too many levels of symbolic links
250 No message of desired type
251 Function not implemented

Error Codes HP Workstation(9000), HP-UX 10


Error Code Error Text
1 Not super-user
2 No such file or directory
3 No such process
4 Interrupted system call
5 I/O error
6 No such device or address
7 Arg list too long
47 | Chapter 7 External Error Codes

8 Exec format error


9 Bad file number
10 No children
11 No more processes
12 Not enough core
13 Permission denied
14 Bad address
15 Block device required
16 Mount device busy
17 File exists
18 Cross-device link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 File table overflow
24 Too many open files
25 Not a typewriter
26 Text file busy
27 File too large
28 No space left on device
29 Illegal seek
30 Read only file system
31 Too many links
32 Broken pipe
33 Math arg out of domain of func
34 Math result not representable
35 No message of desired type
36 Identifier removed
37 Channel number out of range
38 Level 2 not synchronized
39 Level 3 halted
40 Level 3 reset
41 Link number out of range
42 Protocol driver not attached
43 No CSI structure available
44 Level 2 halted
45 A deadlock would occur
Chapter7 External Error Codes | 48

46 System record lock table was full


47 Illegal byte sequence
50 Machine is not on the network
51 No data (for no delay io)
52 Timer expired
53 Out of streams resources
54 Device not a stream
55 Package not installed
57 The link has been severed
58 Advertise error
59 srmount error
60 Communication error on send
61 Protocol error
64 Multihop attempted
66 Cross mount point (not really error)
67 Trying to read unreadable message
68 For Sun compatibility, will not occur.
69 Disc quota exceeded
70 Stale NFS file handle
71 Too many levels of remote in path
72 Value too large to be stored in data type
215 Symbol does not exist in executable
216 Socket operation on non-socket
217 Destination address required
218 Message too long
219 Protocol wrong type for socket
220 Protocol not available
221 Protocol not supported
222 Socket type not supported
223 Operation not supported
224 Protocol family not supported
225 Address family not supported by
226 Address already in use
227 Cannot assign requested address
228 Network is down
229 Network is unreachable
230 Network dropped connection on reset
231 Software caused connection abort
49 | Chapter 7 External Error Codes

232 Connection reset by peer


233 No buffer space available
234 Socket is already connected
235 Socket is not connected
236 Cannot send after socket shutdown
237 Too many references: cannot splice
238 Connection timed out
239 Connection refused
240 Remote peer released connection
241 Host is down
242 No route to host
244 Operation already in progress
245 Operation now in progress
246 Operation would block
247 Directory not empty
248 File name too long
249 Too many levels of symbolic links
251 Function not implemented
252 Function not implemented

7.4.4 IBM AIX


Error Codes Power PC - AIX 4.1
Error Code Error Text
1  Operation not allowed 
2  No such file or directory 
3  No such process 
4  Interrupted system call 
5  I/O error 
6  No such device or address 
7  Arg list too long 
8  Exec format error 
9  Bad file descriptor 
10 No child processes
11 Resource temporarily unavailable
12 Not enough space
13 Permission denied
14 Bad address
Chapter7 External Error Codes | 50

15 Block device required


16 Resource busy
17 File exists
18 Improper link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 Too many open files in system
24 Too many open files
25 Inappropriate I/O control operation
26 Text file busy
27 File too large
28 No space left on device
29 Invalid seek
30 Read only file system
31 Too many links
32 Broken pipe
33 Domain error within math function
34 Result too large
35 No message of desired type
36 Identifier removed
37 Channel number out of range
38 Level 2 not synchronized
39 Level 3 halted
40 Level 3 reset
41 Link number out of range
42 Protocol driver not attached
43 No CSI structure available
44 Level 2 halted
45 Resource deadlock avoided
46 Device not ready
47 Write-protected media
48 Unformatted media
49 No locks available
50 No connection
52 No file system
53 Old, currently unused AIX error
51 | Chapter 7 External Error Codes

54 Operation would block


55 Operation now in progress
56 Operation already in progress
57 Socket operation on non-socket
58 Destination address required
59 Message too long
60 Protocol wrong type for socket
61 Protocol not available
62 Protocol not supported
63 Socket type not supported
64 Operation not supported on socket
65 Protocol family not supported
66 Address family not supported by protocol family
67 Address already in use
68 Cannot assign requested address
69 Network is down
70 Network is unreachable
71 Network dropped connection on reset
72 Software caused connection abort
73 Connection reset by peer
74 No buffer space available
75 Socket is already connected
76 Socket is not connected
77 Cannot send after socket shutdown
78 Connection timed out
79 Connection refused
80 Host is down
81 No route to host
82 Restart the system call
83 Too many processes
84 Too many users
85 Too many levels of symbolic links
86 File name too long
87 Directory not empty
88 Disc quota exceeded
89 - 92 Reserved for future use compatible with AIX PS/2
93 Item is not local to host
94 - 108 Reserved for future use compatible with AIX PS/2
Chapter7 External Error Codes | 52

109 Function not implemented POSIX


110 Media surface error
111 I/O completed, but needs relocation
112 No attribute found
113 Security authentication denied
114 Not a trusted program
115 Too many references: can't splice
116 Invalid wide character
117 Asynchronous i/o canceled
118 Temp out of streams resources
119 I_STR ioctl timed out
120 Wrong message type at stream head
121 STREAMS protocol error
122 No message ready at stream head
123 fd is not a stream
124 POSIX threads unsupported value
125 Multihop is not allowed
126 The link has been severed
127 Value too large to be stored in data type 

7.4.5 Sun OS (Solaris)


Error Codes Sparc, Solaris 1 Version 4.1 and Later
Error Code Error Text
1 Not owner
2 No such file or directory
3 No such process
4 Interrupted system call
5 I/O error
6 No such device or address
7 Arg list too long
8 Exec format error
9 Bad file number
10 No children
11 No more processes
12 Not enough core
13 Permission denied
14 Bad address
53 | Chapter 7 External Error Codes

15 Block device required


16 Mount device busy
17 File exists
18 Cross-device link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 File table overflow
24 Too many open files
25 Not a typewriter
26 Text file busy
27 File too large
28 No space left on device
29 Illegal seek
30 Read-only file system
31 Too many links
32 Broken pipe
33 Argument too large
34 Result too large
35 Operation would block
36 Operation now in progress
37 Operation already in progress
38 Socket operation on non-socket
39 Destination address required
40 Message too long
41 Protocol wrong type for socket
42 Protocol not available
43 Protocol not supported
44 Socket type not supported
45 Operation not supported on socket
46 Protocol family not supported
47 Address family not supported by protocol family
48 Address already in use
49 Cannot assign requested address
50 Network is down
51 Network is unreachable
52 Network dropped connection on reset
Chapter7 External Error Codes | 54

53 Software caused connection abort


54 Connection reset by peer
55 No buffer space available
56 Socket is already connected
57 Socket is not connected
58 Cannot send after socket shutdown
59 Too many references: cannot splice
60 Connection timed out
61 Connection refused
62 Too many levels of symbolic links
63 File name too long
64 Host is down
65 No route to host
66 Directory not empty
67 Too many processes
68 Too many users
69 Disc quota exceeded
70 Stale NFS file handle
71 Too many levels of remote in path
72 Device is not a stream
73 Timer expired
74 Out of streams resources
75 No message of desired type
76 Trying to read unreadable message
77 Identifier removed
78 Deadlock condition.
79 No record locks available.
80 Machine is not on the network
81 Object is remote
82 The link has been severed
83 Advertise error
84 srmount error
85 Communication error on send
86 Protocol error
87 multihop attempted
88 Cross mount point (not an error)
89 Remote address changed
90 Function not implemented
55 | Chapter 7 External Error Codes

Error Codes Sparc, Solaris 2 Version 5.5 and Later


Error Code Error Text
1 Not super-user
2 No such file or directory
3 No such process
4 Interrupted system call
5 I/O error
6 No such device or address
7 Arg list too long
8 Exec format error
9 Bad file number
10 No children
11 Resource temporarily unavailable
12 Not enough core
13 Permission denied
14 Bad address
15 Block device required
16 Mount device busy
17 File exists
18 Cross-device link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 File table overflow
24 Too many open files
25 Inappropriate ioctl for device
26 Text file busy
27 File too large
28 No space left on device
29 Illegal seek
30 Read only file system
31 Too many links
32 Broken pipe
33 Math arg out of domain of func
34 Math result not representable
35 No message of desired type
36 Identifier removed
Chapter7 External Error Codes | 56

37 Channel number out of range


38 Level 2 not synchronized
39 Level 3 halted
40 Level 3 reset
41 Link number out of range
42 Protocol driver not attached
43 No CSI structure available
44 Level 2 halted
45 Deadlock condition.
46 No record locks available.
47 Operation canceled
48 Operation not supported
49 Disc quota exceeded
50 Invalid exchange
51 Invalid request descriptor
52 Exchange full
53 No anode
54 Invalid request code
55 Invalid slot
56 File locking deadlock error
57 Bad font file fmt
60 Device not a stream
61 No data (for no delay io)
62 timer expired
63 out of streams resources
64 Machine is not on the network
65 Package not installed
66 The object is remote
67 the link has been severed
68 advertise error
69 srmount error
70 Communication error on send
71 Protocol error
74 Multihop attempted
77 Trying to read unreadable message
78 Path name is too long
79 Value too large to be stored in data type
80 Given log. name not unique
57 | Chapter 7 External Error Codes

81 f.d. invalid for this operation


82 Remote address changed
83 Cannot access a needed shared lib.
84 Accessing a corrupted shared lib.
85 .lib section in a.out corrupted.
86 Attempting to link in too many libs.
87 Attempting to exec a shared library.
88 Illegal byte sequence.
89 Unsupported file system operation
90 Symbolic link loop
91 Restartable system call
92 If pipe/FIFO, do not sleep in stream head
93 Directory not empty
94 Too many users (for UFS)
95 Socket operation on non-socket
96 Destination address required
97 Message too long
98 Protocol wrong type for socket
99 Protocol not available
120 Protocol not supported
121 Socket type not supported
122 Operation not supported on socket
123 Protocol family not supported
124 Address family not supported by
125 Address already in use
126 Cannot assign requested address
127 Network is down
128 Network is unreachable
129 Network dropped connection because
130 Software caused connection abort
131 Connection reset by peer
132 No buffer space available
133 Socket is already connected
134 Socket is not connected
135 - 142 XENIX
143 Cannot send after socket shutdown
144 Too many references: cannot splice
145 Connection timed out
Chapter7 External Error Codes | 58

146 Connection refused


147 Host is down
148 No route to host
149 Operation already in progress
150 Operation now in progress
151 Stale NFS file handle

Error Codes Intel, Solaris 2.4 and Later


Error Code Error Text
1 Not super-user
2 No such file or directory
3 No such process
4 Interrupted system call
5 I/O error
6 No such device or address
7 Arg list too long
8 Exec format error
9 Bad file number
10 No children
11 Resource temporarily unavailable
12 Not enough core
13 Permission denied
14 Bad address
15 Block device required
16 Mount device busy
17 File exists
18 Cross-device link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 File table overflow
24 Too many open files
25 Inappropriate ioctl for device
26 Text file busy
27 File too large
28 No space left on device
29 Illegal seek
59 | Chapter 7 External Error Codes

30 Read only file system


31 Too many links
32 Broken pipe
33 Math arg out of domain of func
34 Math result not representable
35 No message of desired type
36 Identifier removed
37 Channel number out of range
38 Level 2 not synchronized
39 Level 3 halted
40 Level 3 reset
41 Link number out of range
42 Protocol driver not attached
43 No CSI structure available
44 Level 2 halted
45 Deadlock condition.
46 No record locks available.
47 Operation canceled
48 Operation not supported
50 Invalid exchange
51 Invalid request descriptor
52 Exchange full
53 No anode
54 Invalid request code
55 Invalid slot
56 File locking deadlock error
57 Bad font file fmt
60 Device not a stream
61 No data (for no delay io)
62 Timer expired
63 Out of streams resources
64 Machine is not on the network
65 Package not installed
66 The object is remote
67 The link has been severed
68 Advertise error
69 srmount error
70 Communication error on send
Chapter7 External Error Codes | 60

71 Protocol error
74 Multihop attempted
77 Trying to read unreadable message
78 Path name is too long
79 Value too large to be stored in data type
80 Given log. name not unique
81 f.d. invalid for this operation
82 Remote address changed
83 Cannot access a needed shared lib.
84 Accessing a corrupted shared lib.
85 .lib section in a.out corrupted.
86 Attempting to link in too many libs.
87 Attempting to exec a shared library.
88 Illegal byte sequence.
89 Unsupported file system operation
90 Symbolic link loop
91 Restartable system call
92 If pipe/FIFO, do not sleep in stream head
93 Directory not empty
94 Too many users (for UFS)
95 Socket operation on non-socket
96 Destination address required
97 Message too long
98 Protocol wrong type for socket
99 Protocol not available
120 Protocol not supported
121 Socket type not supported
122 Operation not supported on socket
123 Protocol family not supported
124 Address family not supported by
125 Address already in use
126 Cannot assign requested address
127 Network is down
128 Network is unreachable
129 Network dropped connection because of reset
130 Software caused connection abort
131 Connection reset by peer
132 No buffer space available
61 | Chapter 7 External Error Codes

133 Socket is already connected


134 Socket is not connected
135 - 142 XENIX
143 Cannot send after socket shutdown
144 Too many references: cannot splice
145 Connection timed out
146 Connection refused
147 Host is down
148 No route to host
149 Operation already in progress
150 Operation now in progress

7.5 Windows - Error Codes

7.5.1 Win32 - Error Codes (0 - 999)


The following table provides a list of Win32 error codes.

Code Description Name


0 The operation completed successfully. ERROR_
SUCCESS
1 Incorrect function. ERROR_
INVALID_
FUNCTION
2 The system cannot find the file specified. ERROR_FILE_
NOT_FOUND
3 The system cannot find the path specified. ERROR_PATH_
NOT_FOUND
4 The system cannot open the file. ERROR_TOO_
MANY_OPEN_
FILES
5 Access is denied. ERROR_
ACCESS_
DENIED
6 The handle is invalid. ERROR_
INVALID_
HANDLE
7 The storage control blocks were destroyed. ERROR_ARENA_
TRASHED
8 Not enough storage is available to process this command. ERROR_NOT_
ENOUGH_
MEMORY
Chapter7 External Error Codes | 62

9 The storage control block address is invalid. ERROR_


INVALID_BLOCK
10 The environment is incorrect. ERROR_BAD_
ENVIRONMENT
11 An attempt was made to load a program with an incorrect format. ERROR_BAD_
FORMAT
12 The access code is invalid. ERROR_
INVALID_
ACCESS
13 The data is invalid. ERROR_
INVALID_DATA
14 Not enough storage is available to complete this operation. ERROR_
OUTOFMEMORY
15 The system cannot find the drive specified. ERROR_
INVALID_DRIVE
16 The directory cannot be removed. ERROR_
CURRENT_
DIRECTORY
17 The system cannot move the file to a different disk drive. ERROR_NOT_
SAME_DEVICE
18 There are no more files. ERROR_NO_
MORE_FILES
19 The media is write protected. ERROR_WRITE_
PROTECT
20 The system cannot find the device specified. ERROR_BAD_
UNIT
21 The device is not ready. ERROR_NOT_
READY
22 The device does not recognize the command. ERROR_BAD_
COMMAND
23 Data error (cyclic redundancy check). ERROR_CRC
24 The program issued a command but the command length is incorrect. ERROR_BAD_
LENGTH
25 The drive cannot locate a specific area or track on the disk. ERROR_SEEK
26 The specified disk or diskette cannot be accessed. ERROR_NOT_
DOS_DISK
27 The drive cannot find the sector requested. ERROR_
SECTOR_NOT_
FOUND
28 The printer is out of paper. ERROR_OUT_
OF_PAPER
29 The system cannot write to the specified device. ERROR_WRITE_
FAULT
30 The system cannot read from the specified device. ERROR_READ_
FAULT
63 | Chapter 7 External Error Codes

31 A device attached to the system is not functioning. ERROR_GEN_


FAILURE
32 The process cannot access the file because it is being used by another ERROR_
process. SHARING_
VIOLATION
33 The process cannot access the file because another process has locked a ERROR_LOCK_
portion of the file. VIOLATION
34 The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) ERROR_
into drive %1. WRONG_DISK
36 Too many files opened for sharing. ERROR_
SHARING_
BUFFER_
EXCEEDED
38 Reached the end of the file. ERROR_
HANDLE_EOF
39 The disk is full. ERROR_
HANDLE_DISK_
FULL
50 The network request is not supported. ERROR_NOT_
SUPPORTED
51 The remote computer is not available. ERROR_REM_
NOT_LIST
52 A duplicate name exists on the network. ERROR_DUP_
NAME
53 The network path was not found. ERROR_BAD_
NETPATH
54 The network is busy. ERROR_
NETWORK_BUSY
55 The specified network resource or device is no longer available. ERROR_DEV_
NOT_EXIST
56 The network BIOS command limit has been reached. ERROR_TOO_
MANY_CMDS
57 A network adapter hardware error occurred. ERROR_ADAP_
HDW_ERR
58 The specified server cannot perform the requested operation. ERROR_BAD_
NET_RESP
59 An unexpected network error occurred. ERROR_UNEXP_
NET_ERR
60 The remote adapter is not compatible. ERROR_BAD_
REM_ADAP
61 The printer queue is full. ERROR_
PRINTQ_FULL
62 Space to store the file waiting to be printed is not available on the server. ERROR_NO_
SPOOL_SPACE
Chapter7 External Error Codes | 64

63 Your file waiting to be printed was deleted. ERROR_PRINT_


CANCELED
64 The specified network name is no longer available. ERROR_
NETNAME_
DELETED
65 Network access is denied. ERROR_
NETWORK_
ACCESS_
DENIED
66 The network resource type is not correct. ERROR_BAD_
DEV_TYPE
67 The network name cannot be found. ERROR_BAD_
NET_NAME
68 The name limit for the local computer network adapter card was exceeded. ERROR_TOO_
MANY_NAMES
69 The network BIOS session limit was exceeded. ERROR_TOO_
MANY_SESS
70 The remote server has been paused or is in the process of being started. ERROR_
SHARING_
PAUSED
71 No more connections can be made to this remote computer at this time ERROR_REQ_
because there are already as many connections as the computer can NOT_ACCEP
accept.
72 The specified printer or disk device has been paused. ERROR_REDIR_
PAUSED
80 The file exists. ERROR_FILE_
EXISTS
82 The directory or file cannot be created. ERROR_
CANNOT_MAKE
83 Fail on INT 24. ERROR_FAIL_I24
84 Storage to process this request is not available. ERROR_OUT_
OF_
STRUCTURES
85 The local device name is already in use. ERROR_
ALREADY_
ASSIGNED
86 The specified network password is not correct. ERROR_
INVALID_
PASSWORD
87 The parameter is incorrect. ERROR_
INVALID_
PARAMETER
88 A write fault occurred on the network. ERROR_NET_
WRITE_FAULT
89 The system cannot start another process at this time. ERROR_NO_
PROC_SLOTS
65 | Chapter 7 External Error Codes

100 Cannot create another system semaphore. ERROR_TOO_


MANY_
SEMAPHORES
101 The exclusive semaphore is owned by another process. ERROR_EXCL_
SEM_ALREADY_
OWNED
102 The semaphore is set and cannot be closed. ERROR_SEM_IS_
SET
103 The semaphore cannot be set again. ERROR_TOO_
MANY_SEM_
REQUESTS
104 Cannot request exclusive semaphores at interrupt time. ERROR_
INVALID_AT_
INTERRUPT_
TIME
105 The previous ownership of this semaphore has ended. ERROR_SEM_
OWNER_DIED
106 Insert the diskette for drive %1. ERROR_SEM_
USER_LIMIT
107 The program stopped because an alternate diskette was not inserted. ERROR_DISK_
CHANGE
108 The disk is in use or locked by another process. ERROR_DRIVE_
LOCKED
109 The pipe has been ended. ERROR_
BROKEN_PIPE
110 The system cannot open the device or file specified. ERROR_OPEN_
FAILED
111 The file name is too long. ERROR_
BUFFER_
OVERFLOW
112 There is not enough space on the disk. ERROR_DISK_
FULL
113 No more internal file identifiers available. ERROR_NO_
MORE_SEARCH_
HANDLES
114 The target internal file identifier is incorrect. ERROR_
INVALID_
TARGET_
HANDLE
117 The IOCTL call made by the application program is not correct. ERROR_
INVALID_
CATEGORY
118 The verify-on-write switch parameter value is not correct. ERROR_
INVALID_
VERIFY_SWITCH
Chapter7 External Error Codes | 66

119 The system does not support the command requested. ERROR_BAD_
DRIVER_LEVEL
120 This function is not supported on this system. ERROR_CALL_
NOT_
IMPLEMENTED
121 The semaphore timeout period has expired. ERROR_SEM_
TIMEOUT
122 The data area passed to a system call is too small. ERROR_
INSUFFICIENT_
BUFFER
123 The filename, directory name, or volume label syntax is incorrect. ERROR_
INVALID_NAME
124 The system call level is not correct. ERROR_
INVALID_LEVEL
125 The disk has no volume label. ERROR_NO_
VOLUME_LABEL
126 The specified module could not be found. ERROR_MOD_
NOT_FOUND
127 The specified procedure could not be found. ERROR_PROC_
NOT_FOUND
128 There are no child processes to wait for. ERROR_WAIT_
NO_CHILDREN
129 The %1 application cannot be run in Win32 mode. ERROR_CHILD_
NOT_COMPLETE
130 Attempt to use a file handle to an open disk partition for an operation other ERROR_
than raw disk I/O. DIRECT_
ACCESS_
HANDLE
131 An attempt was made to move the file pointer before the beginning of the ERROR_
file. NEGATIVE_SEEK
132 The file pointer cannot be set on the specified device or file. ERROR_SEEK_
ON_DEVICE
133 A JOIN or SUBST command cannot be used for a drive that contains ERROR_IS_
previously joined drives. JOIN_TARGET
134 An attempt was made to use a JOIN or SUBST command on a drive that ERROR_IS_
has already been joined. JOINED
135 An attempt was made to use a JOIN or SUBST command on a drive that ERROR_IS_
has already been substituted. SUBSTED
136 The system tried to delete the JOIN of a drive that is not joined. ERROR_NOT_
JOINED
137 The system tried to delete the substitution of a drive that is not substituted. ERROR_NOT_
SUBSTED
138 The system tried to join a drive to a directory on a joined drive. ERROR_JOIN_
TO_JOIN
67 | Chapter 7 External Error Codes

139 The system tried to substitute a drive to a directory on a substituted drive. ERROR_SUBST_
TO_SUBST
140 The system tried to join a drive to a directory on a substituted drive. ERROR_JOIN_
TO_SUBST
141 The system tried to SUBST a drive to a directory on a joined drive. ERROR_SUBST_
TO_JOIN
142 The system cannot perform a JOIN or SUBST at this time. ERROR_BUSY_
DRIVE
143 The system cannot join or substitute a drive to or for a directory on the ERROR_SAME_
same drive. DRIVE
144 The directory is not a subdirectory of the root directory. ERROR_DIR_
NOT_ROOT
145 The directory is not empty. ERROR_DIR_
NOT_EMPTY
146 The path specified is being used in a substitute. ERROR_IS_
SUBST_PATH
147 Not enough resources are available to process this command. ERROR_IS_
JOIN_PATH
148 The path specified cannot be used at this time. ERROR_PATH_
BUSY
149 An attempt was made to join or substitute a drive for which a directory on ERROR_IS_
the drive is the target of a previous substitute. SUBST_TARGET
150 System trace information was not specified in your CONFIG.SYS file, or ERROR_
tracing is disallowed. SYSTEM_TRACE
151 The number of specified semaphore events for DosMuxSemWait is not ERROR_
correct. INVALID_EVENT_
COUNT
152 DosMuxSemWait did not execute; too many semaphores are already set. ERROR_TOO_
MANY_
MUXWAITERS
153 The DosMuxSemWait list is not correct. ERROR_
INVALID_LIST_
FORMAT
154 The volume label you entered exceeds the label character limit of the target ERROR_LABEL_
file system. TOO_LONG
155 Cannot create another thread. ERROR_TOO_
MANY_TCBS
156 The recipient process has refused the signal. ERROR_SIGNAL_
REFUSED
157 The segment is already discarded and cannot be locked. ERROR_
DISCARDED
158 The segment is already unlocked. ERROR_NOT_
LOCKED
Chapter7 External Error Codes | 68

159 The address for the thread ID is not correct. ERROR_BAD_


THREADID_
ADDR
160 The argument string passed to DosExecPgm is not correct. ERROR_BAD_
ARGUMENTS
161 The specified path is invalid. ERROR_BAD_
PATHNAME
162 A signal is already pending. ERROR_SIGNAL_
PENDING
164 No more threads can be created in the system. ERROR_MAX_
THRDS_
REACHED
167 Unable to lock a region of a file. ERROR_LOCK_
FAILED
170 The requested resource is in use. ERROR_BUSY
173 A lock request was not outstanding for the supplied cancel region. ERROR_
CANCEL_
VIOLATION
174 The file system does not support atomic changes to the lock type. ERROR_
ATOMIC_LOCKS_
NOT_
SUPPORTED
180 The system detected a segment number that was not correct. ERROR_
INVALID_
SEGMENT_
NUMBER
182 The operating system cannot run %1. ERROR_
INVALID_
ORDINAL
183 Cannot create a file when that file already exists. ERROR_
ALREADY_
EXISTS
186 The flag passed is not correct. ERROR_
INVALID_FLAG_
NUMBER
187 The specified system semaphore name was not found. ERROR_SEM_
NOT_FOUND
188 The operating system cannot run %1. ERROR_
INVALID_
STARTING_
CODESEG
189 The operating system cannot run %1. ERROR_
INVALID_
STACKSEG
190 The operating system cannot run %1. ERROR_
INVALID_
MODULETYPE
69 | Chapter 7 External Error Codes

191 Cannot run %1 in Win32 mode. ERROR_


INVALID_EXE_
SIGNATURE
192 The operating system cannot run %1. ERROR_EXE_
MARKED_
INVALID
193 %1 is not a valid Win32 application. ERROR_BAD_
EXE_FORMAT
194 The operating system cannot run %1. ERROR_
ITERATED_
DATA_
EXCEEDS_64k
195 The operating system cannot run %1. ERROR_
INVALID_
MINALLOCSIZE
196 The operating system cannot run this application program. ERROR_
DYNLINK_FROM_
INVALID_RING
197 The operating system is not presently configured to run this application. ERROR_IOPL_
NOT_ENABLED
198 The operating system cannot run %1. ERROR_
INVALID_
SEGDPL
199 The operating system cannot run this application program. ERROR_
AUTODATASEG_
EXCEEDS_64k
200 The code segment cannot be greater than or equal to 64K. ERROR_
RING2SEG_
MUST_BE_
MOVABLE
201 The operating system cannot run %1. ERROR_RELOC_
CHAIN_XEEDS_
SEGLIM
202 The operating system cannot run %1. ERROR_
INFLOOP_IN_
RELOC_CHAIN
203 The system could not find the environment option that was entered. ERROR_
ENVVAR_NOT_
FOUND
205 No process in the command subtree has a signal handler. ERROR_NO_
SIGNAL_SENT
206 The filename or extension is too long. ERROR_
FILENAME_
EXCED_RANGE
207 The ring 2 stack is in use. ERROR_RING2_
STACK_IN_USE
Chapter7 External Error Codes | 70

208 The global filename characters, * or ?, are entered incorrectly or too many ERROR_META_
global filename characters are specified. EXPANSION_
TOO_LONG
209 The signal being posted is not correct. ERROR_
INVALID_
SIGNAL_
NUMBER
210 The signal handler cannot be set. ERROR_
THREAD_1_
INACTIVE
212 The segment is locked and cannot be reallocated. ERROR_LOCKED
214 Too many dynamic-link modules are attached to this program or dynamic- ERROR_TOO_
link module. MANY_MODULES
215 Cannot nest calls to LoadModule. ERROR_
NESTING_NOT_
ALLOWED
216 The image file %1 is valid, but is for a machine type other than the current ERROR_EXE_
machine. MACHINE_TYPE_
MISMATCH
230 The pipe state is invalid. ERROR_BAD_
PIPE
231 All pipe instances are busy. ERROR_PIPE_
BUSY
232 The pipe is being closed. ERROR_NO_
DATA
233 No process is on the other end of the pipe. ERROR_PIPE_
NOT_
CONNECTED
234 More data is available. ERROR_MORE_
DATA
240 The session was canceled. ERROR_VC_
DISCONNECTED
254 The specified extended attribute name was invalid. ERROR_
INVALID_EA_
NAME
255 The extended attributes are inconsistent. ERROR_EA_
LIST_
INCONSISTENT
258 The wait operation timed out. WAIT_TIMEOUT
259 No more data is available. ERROR_NO_
MORE_ITEMS
266 The copy functions cannot be used. ERROR_
CANNOT_COPY
267 The directory name is invalid. ERROR_
DIRECTORY
71 | Chapter 7 External Error Codes

275 The extended attributes did not fit in the buffer. ERROR_EAS_
DIDNT_FIT
276 The extended attribute file on the mounted file system is corrupt. ERROR_EA_
FILE_CORRUPT
277 The extended attribute table file is full. ERROR_EA_
TABLE_FULL
278 The specified extended attribute handle is invalid. ERROR_
INVALID_EA_
HANDLE
282 The mounted file system does not support extended attributes. ERROR_EAS_
NOT_
SUPPORTED
288 Attempt to release mutex not owned by caller. ERROR_NOT_
OWNER
298 Too many posts were made to a semaphore. ERROR_TOO_
MANY_POSTS
299 Only part of a ReadProcessMemory or WriteProcessMemory request was ERROR_
completed. PARTIAL_COPY
300 The oplock request is denied. ERROR_
OPLOCK_NOT_
GRANTED
301 An invalid oplock acknowledgment was received by the system. ERROR_
INVALID_
OPLOCK_
PROTOCOL
317 The system cannot find message text for message number 0x%1 in the ERROR_MR_
message file for %2. MID_NOT_
FOUND
487 Attempt to access invalid address. ERROR_
INVALID_
ADDRESS
534 Arithmetic result exceeded 32 bits. ERROR_
ARITHMETIC_
OVERFLOW
535 There is a process on other end of the pipe. ERROR_PIPE_
CONNECTED
536 Waiting for a process to open the other end of the pipe. ERROR_PIPE_
LISTENING
994 Access to the extended attribute was denied. ERROR_EA_
ACCESS_
DENIED
995 The I/O operation has been aborted because of either a thread exit or an ERROR_
application request. OPERATION_
ABORTED
996 Overlapped I/O event is not in a signaled state. ERROR_IO_
INCOMPLETE
Chapter7 External Error Codes | 72

997 Overlapped I/O operation is in progress. ERROR_IO_


PENDING
998 Invalid access to memory location. ERROR_
NOACCESS
999 Error performing inpage operation.  ERROR_
SWAPERROR 

7.5.2 Win32 - Error Codes (1000 - 1999)


The following table provides a list of Win32 error codes.

Code Description Name


1001 Recursion too deep; the stack overflowed. ERROR_STACK_
OVERFLOW
1002 The window cannot act on the sent message. ERROR_INVALID_
MESSAGE
1003 Cannot complete this function. ERROR_CAN_NOT_
COMPLETE
1004 Invalid flags. ERROR_INVALID_
FLAGS
1005 The volume does not contain a recognized file system. Please make sure ERROR_
that all required file system drivers are loaded and that the volume is not UNRECOGNIZED_
corrupted. VOLUME
1006 The volume for a file has been externally altered so that the opened file is ERROR_FILE_
no longer valid. INVALID
1007 The requested operation cannot be performed in full-screen mode. ERROR_
FULLSCREEN_
MODE
1008 An attempt was made to reference a token that does not exist. ERROR_NO_
TOKEN
1009 The configuration registry database is corrupt. ERROR_BADDB
1010 The configuration registry key is invalid. ERROR_BADKEY
1011 The configuration registry key could not be opened. ERROR_
CANTOPEN
1012 The configuration registry key could not be read. ERROR_
CANTREAD
1013 The configuration registry key could not be written. ERROR_
CANTWRITE
1014 One of the files in the registry database had to be recovered by use of a ERROR_
log or alternate copy. The recovery was successful. REGISTRY_
RECOVERED
1015 The registry is corrupted. The structure of one of the files that contains ERROR_
registry data is corrupted, or the system's image of the file in memory is REGISTRY_
corrupted, or the file could not be recovered because the alternate copy or CORRUPT
log was absent or corrupted.
73 | Chapter 7 External Error Codes

1016 An I/O operation initiated by the registry failed unrecoverably. The registry ERROR_
could not read in, or write out, or flush, one of the files that contain the REGISTRY_IO_
system's image of the registry. FAILED
1017 The system has attempted to load or restore a file into the registry, but the ERROR_NOT_
specified file is not in a registry file format. REGISTRY_FILE
1018 Illegal operation attempted on a registry key that has been marked for ERROR_KEY_
deletion. DELETED
1019 System could not allocate the required space in a registry log. ERROR_NO_LOG_
SPACE
1020 Cannot create a symbolic link in a registry key that already has subkeys ERROR_KEY_HAS_
or values. CHILDREN
1021 Cannot create a stable subkey under a volatile parent key. ERROR_CHILD_
MUST_BE_
VOLATILE
1022 A notify change request is being completed and the information is not ERROR_NOTIFY_
being returned in the caller's buffer. The caller now must enumerate the ENUM_DIR
files to find the changes.
1051 A stop control has been sent to a service that other running services are ERROR_
dependent on. DEPENDENT_
SERVICES_
RUNNING
1052 The requested control is not valid for this service. ERROR_INVALID_
SERVICE_
CONTROL
1053 The service did not respond to the start or control request in a timely ERROR_SERVICE_
fashion. REQUEST_
TIMEOUT
1054 A thread could not be created for the service. ERROR_SERVICE_
NO_THREAD
1055 The service database is locked. ERROR_SERVICE_
DATABASE_
LOCKED
1056 An instance of the service is already running. ERROR_SERVICE_
ALREADY_
RUNNING
1057 The account name is invalid or does not exist. ERROR_INVALID_
SERVICE_
ACCOUNT
1058 The service cannot be started, either because it is disabled or because it ERROR_SERVICE_
has no enabled devices associated with it. DISABLED
1059 Circular service dependency was specified. ERROR_
CIRCULAR_
DEPENDENCY
1060 The specified service does not exist as an installed service. ERROR_SERVICE_
DOES_NOT_EXIST
Chapter7 External Error Codes | 74

1061 The service cannot accept control messages at this time. ERROR_SERVICE_
CANNOT_ACCEPT_
CTRL
1062 The service has not been started. ERROR_SERVICE_
NOT_ACTIVE
1063 The service process could not connect to the service controller. ERROR_FAILED_
SERVICE_
CONTROLLER_
CONNECT
1064 An exception occurred in the service when handling the control request. ERROR_
EXCEPTION_IN_
SERVICE
1065 The database specified does not exist. ERROR_
DATABASE_DOES_
NOT_EXIST
1066 The service has returned a service-specific error code. ERROR_SERVICE_
SPECIFIC_ERROR
1067 The process terminated unexpectedly. ERROR_
PROCESS_
ABORTED
1068 The dependency service or group failed to start. ERROR_SERVICE_
DEPENDENCY_
FAIL
1069 The service did not start due to a logon failure. ERROR_SERVICE_
LOGON_FAILED
1070 After starting, the service hung in a start-pending state. ERROR_SERVICE_
START_HANG
1071 The specified service database lock is invalid. ERROR_INVALID_
SERVICE_LOCK
1072 The specified service has been marked for deletion. ERROR_SERVICE_
MARKED_FOR_
DELETE
1073 The specified service already exists. ERROR_SERVICE_
EXISTS
1074 The system is currently running with the last-known-good configuration. ERROR_ALREADY_
RUNNING_LKG
1075 The dependency service does not exist or has been marked for deletion. ERROR_SERVICE_
DEPENDENCY_
DELETED
1076 The current boot has already been accepted for use as the last-known- ERROR_BOOT_
good control set. ALREADY_
ACCEPTED
1077 No attempts to start the service have been made since the last boot. ERROR_SERVICE_
NEVER_STARTED
1078 The name is already in use as either a service name or a service display ERROR_
name. DUPLICATE_
SERVICE_NAME
75 | Chapter 7 External Error Codes

1079 The account specified for this service is different from the account ERROR_
specified for other services running in the same process. DIFFERENT_
SERVICE_
ACCOUNT
1080 Failure actions can only be set for Win32 services, not for drivers. ERROR_CANNOT_
DETECT_DRIVER_
FAILURE
1081 This service runs in the same process as the service control manager. ERROR_CANNOT_
Therefore, the service control manager cannot take action if this service's DETECT_
process terminates unexpectedly. PROCESS_ABORT
1082 No recovery program has been configured for this service. ERROR_NO_
RECOVERY_
PROGRAM
1083 The executable program that this service is configured to run in does not ERROR_SERVICE_
implement the service. NOT_IN_EXE
1100 The physical end of the tape has been reached. ERROR_END_OF_
MEDIA
1101 A tape access reached a filemark. ERROR_
FILEMARK_
DETECTED
1102 The beginning of the tape or a partition was encountered. ERROR_
BEGINNING_OF_
MEDIA
1103 A tape access reached the end of a set of files. ERROR_
SETMARK_
DETECTED
1104 No more data is on the tape. ERROR_NO_DATA_
DETECTED
1105 Tape could not be partitioned. ERROR_
PARTITION_
FAILURE
1106 When accessing a new tape of a multivolume partition, the current block ERROR_INVALID_
size is incorrect. BLOCK_LENGTH
1107 Tape partition information could not be found when loading a tape. ERROR_DEVICE_
NOT_PARTITIONED
1108 Unable to lock the media eject mechanism. ERROR_UNABLE_
TO_LOCK_MEDIA
1109 Unable to unload the media. ERROR_UNABLE_
TO_UNLOAD_
MEDIA
1110 The media in the drive can have changed. ERROR_MEDIA_
CHANGED
1111 The I/O bus was reset. ERROR_BUS_
RESET
1112 No media in drive. ERROR_NO_
MEDIA_IN_DRIVE
Chapter7 External Error Codes | 76

1113 No mapping for the Unicode character exists in the target multi-byte code ERROR_NO_
page. UNICODE_
TRANSLATION
1114 A dynamic link library (DLL) initialization routine failed. ERROR_DLL_INIT_
FAILED
1115 A system shutdown is in progress. ERROR_
SHUTDOWN_IN_
PROGRESS
1116 Unable to abort the system shutdown because no shutdown was in ERROR_NO_
progress. SHUTDOWN_IN_
PROGRESS
1117 The request could not be performed because of an I/O device error. ERROR_IO_
DEVICE
1118 No serial device was successfully initialized. The serial driver will unload. ERROR_SERIAL_
NO_DEVICE
1119 Unable to open a device that was sharing an interrupt request (IRQ) with ERROR_IRQ_BUSY
other devices. At least one other device that uses that IRQ was already
opened.
1120 A serial I/O operation was completed by another write to the serial port. ERROR_MORE_
(The IOCTL_SERIAL_XOFF_COUNTER reached zero.) WRITES
1121 A serial I/O operation completed because the timeout period expired. (The ERROR_
IOCTL_SERIAL_XOFF_COUNTER did not reach zero.) COUNTER_
TIMEOUT
1122 No ID address mark was found on the floppy disk. ERROR_FLOPPY_
ID_MARK_NOT_
FOUND
1123 Mismatch between the floppy disk sector ID field and the floppy disk ERROR_FLOPPY_
controller track address. WRONG_
CYLINDER
1124 The floppy disk controller reported an error that is not recognized by the ERROR_FLOPPY_
floppy disk driver. UNKNOWN_
ERROR
1125 The floppy disk controller returned inconsistent results in its registers. ERROR_FLOPPY_
BAD_REGISTERS
1126 While accessing the hard disk, a recalibrate operation failed, even after ERROR_DISK_
retries. RECALIBRATE_
FAILED
1127 While accessing the hard disk, a disk operation failed even after retries. ERROR_DISK_
OPERATION_
FAILED
1128 While accessing the hard disk, a disk controller reset was needed, but ERROR_DISK_
even that failed. RESET_FAILED
1129 Physical end of tape encountered. ERROR_EOM_
OVERFLOW
1130 Not enough server storage is available to process this command. ERROR_NOT_
ENOUGH_
SERVER_MEMORY
77 | Chapter 7 External Error Codes

1131 A potential deadlock condition has been detected. ERROR_


POSSIBLE_
DEADLOCK
1132 The base address or the file offset specified does not have the proper ERROR_MAPPED_
alignment. ALIGNMENT
1140 An attempt to change the system power state was vetoed by another ERROR_SET_
application or driver. POWER_STATE_
VETOED
1141 The system BIOS failed an attempt to change the system power state. ERROR_SET_
POWER_STATE_
FAILED
1142 An attempt was made to create more links on a file than the file system ERROR_TOO_
supports. MANY_LINKS
1150 The specified program requires a newer version of Windows. ERROR_OLD_WIN_
VERSION
1151 The specified program is not a Windows or MS-DOS program. ERROR_APP_
WRONG_OS
1152 Cannot start more than one instance of the specified program. ERROR_SINGLE_
INSTANCE_APP
1153 The specified program was written for an earlier version of Windows. ERROR_RMODE_
APP
1154 One of the library files needed to run this application is damaged. ERROR_INVALID_
DLL
1155 No application is associated with the specified file for this operation. ERROR_NO_
ASSOCIATION
1156 An error occurred in sending the command to the application. ERROR_DDE_FAIL
1157 One of the library files needed to run this application cannot be found. ERROR_DLL_NOT_
FOUND
1158 The current process has used all of its system allowance of handles for ERROR_NO_
Window Manager objects. MORE_USER_
HANDLES
1159 The message can be used only with synchronous operations. ERROR_
MESSAGE_SYNC_
ONLY
1160 The indicated source element has no media. ERROR_SOURCE_
ELEMENT_EMPTY
1161 The indicated destination element already contains media. ERROR_
DESTINATION_
ELEMENT_FULL
1162 The indicated element does not exist. ERROR_ILLEGAL_
ELEMENT_
ADDRESS
1163 The indicated element is part of a magazine that is not present. ERROR_
MAGAZINE_NOT_
PRESENT
Chapter7 External Error Codes | 78

1164 The indicated device requires reinitialization due to hardware errors. ERROR_DEVICE_
REINITIALIZATION_
NEEDED
1165 The device has indicated that cleaning is required before further ERROR_DEVICE_
operations are attempted. REQUIRES_
CLEANING
1166 The device has indicated that its door is open. ERROR_DEVICE_
DOOR_OPEN
1167 The device is not connected. ERROR_DEVICE_
NOT_CONNECTED
1168 Element not found. ERROR_NOT_
FOUND
1169 There was no match for the specified key in the index. ERROR_NO_
MATCH
1170 The property set specified does not exist on the object. ERROR_SET_NOT_
FOUND
1171 The point passed to GetMouseMovePointsEx is not in the buffer. ERROR_POINT_
NOT_FOUND
1172 The tracking (workstation) service is not running. ERROR_NO_
TRACKING_
SERVICE
1173 The Volume ID could not be found. ERROR_NO_
VOLUME_ID
1174 The specified Very Large Memory (64-bit) operation is invalid. ERROR_INVALID_
VLM_OPERATION
1175 Unable to remove the file to be replaced. ERROR_UNABLE_
TO_REMOVE_
REPLACED
1176 Unable to move the replacement file to the file to be replaced. The file to ERROR_UNABLE_
be replaced has retained its original name. TO_MOVE_
REPLACEMENT
1177 Unable to move the replacement file to the file to be replaced. The file to ERROR_UNABLE_
be replaced has been renamed using the backup name. TO_MOVE_
REPLACEMENT_2
1178 The volume change journal is being deleted. ERROR_JOURNAL_
DELETE_IN_
PROGRESS
1179 The volume change journal service is not active. ERROR_JOURNAL_
NOT_ACTIVE
1180 A file was found, but it cannot be the correct file. ERROR_
POTENTIAL_FILE_
FOUND
1181 The journal entry has been deleted from the journal. ERROR_JOURNAL_
ENTRY_DELETED
1200 The specified device name is invalid. ERROR_BAD_
DEVICE
79 | Chapter 7 External Error Codes

1201 The device is not currently connected but it is a remembered connection. ERROR_
CONNECTION_
UNAVAIL
1202 An attempt was made to remember a device that had previously been ERROR_DEVICE_
remembered. ALREADY_
REMEMBERED
1203 No network provider accepted the given network path. ERROR_NO_NET_
OR_BAD_PATH
1204 The specified network provider name is invalid. ERROR_BAD_
PROVIDER
1205 Unable to open the network connection profile. ERROR_CANNOT_
OPEN_PROFILE
1206 The network connection profile is corrupted. ERROR_BAD_
PROFILE
1207 Cannot enumerate a noncontainer. ERROR_NOT_
CONTAINER
1208 An extended error has occurred. ERROR_
EXTENDED_
ERROR
1209 The format of the specified group name is invalid. ERROR_INVALID_
GROUPNAME
1210 The format of the specified computer name is invalid. ERROR_INVALID_
COMPUTERNAME
1211 The format of the specified event name is invalid. ERROR_INVALID_
EVENTNAME
1212 The format of the specified domain name is invalid. ERROR_INVALID_
DOMAINNAME
1213 The format of the specified service name is invalid. ERROR_INVALID_
SERVICENAME
1214 The format of the specified network name is invalid. ERROR_INVALID_
NETNAME
1215 The format of the specified share name is invalid. ERROR_INVALID_
SHARENAME
1216 The format of the specified password is invalid. ERROR_INVALID_
PASSWORDNAME
1217 The format of the specified message name is invalid. ERROR_INVALID_
MESSAGENAME
1218 The format of the specified message destination is invalid. ERROR_INVALID_
MESSAGEDEST
1219 The credentials supplied conflict with an existing set of credentials. ERROR_SESSION_
CREDENTIAL_
CONFLICT
1220 An attempt was made to establish a session to a network server, but ERROR_REMOTE_
there are already too many sessions established to that server. SESSION_LIMIT_
EXCEEDED
Chapter7 External Error Codes | 80

1221 The workgroup or domain name is already in use by another computer on ERROR_DUP_
the network. DOMAINNAME
1222 The network is not present or not started. ERROR_NO_
NETWORK
1223 The operation was canceled by the user. ERROR_
CANCELED
1224 The requested operation cannot be performed on a file with a user- ERROR_USER_
mapped section open. MAPPED_FILE
1225 The remote system refused the network connection. ERROR_
CONNECTION_
REFUSED
1226 The network connection was gracefully closed. ERROR_
GRACEFUL_
DISCONNECT
1227 The network transport endpoint already has an address associated with it. ERROR_
ADDRESS_
ALREADY_
ASSOCIATED
1228 An address has not yet been associated with the network endpoint. ERROR_
ADDRESS_NOT_
ASSOCIATED
1229 An operation was attempted on a nonexistent network connection. ERROR_
CONNECTION_
INVALID
1230 An invalid operation was attempted on an active network connection. ERROR_
CONNECTION_
ACTIVE
1231 The remote network is not reachable by the transport. ERROR_
NETWORK_
UNREACHABLE
1232 The remote system is not reachable by the transport. ERROR_HOST_
UNREACHABLE
1233 The remote system does not support the transport protocol. ERROR_
PROTOCOL_
UNREACHABLE
1234 No service is operating at the destination network endpoint on the remote ERROR_PORT_
system. UNREACHABLE
1235 The request was aborted. ERROR_
REQUEST_
ABORTED
1236 The network connection was aborted by the local system. ERROR_
CONNECTION_
ABORTED
1237 The operation could not be completed. A retry should be performed. ERROR_RETRY
1238 A connection to the server could not be made because the limit on the ERROR_
number of concurrent connections for this account has been reached. CONNECTION_
COUNT_LIMIT
81 | Chapter 7 External Error Codes

1239 Attempting to log in during an unauthorized time of day for this account. ERROR_LOGIN_
TIME_
RESTRICTION
1240 The account is not authorized to log in from this station. ERROR_LOGIN_
WKSTA_
RESTRICTION
1241 The network address could not be used for the operation requested. ERROR_
INCORRECT_
ADDRESS
1242 The service is already registered. ERROR_ALREADY_
REGISTERED
1243 The specified service does not exist. ERROR_SERVICE_
NOT_FOUND
1244 The operation being requested was not performed because the user has ERROR_NOT_
not been authenticated. AUTHENTICATED
1245 The operation being requested was not performed because the user has ERROR_NOT_
not logged on to the network. The specified service does not exist. LOGGED_ON
1246 Continue with work in progress. ERROR_CONTINUE
1247 An attempt was made to perform an initialization operation when ERROR_ALREADY_
initialization has already been completed. INITIALIZED
1248 No more local devices. ERROR_NO_
MORE_DEVICES
1249 The specified site does not exist. ERROR_NO_
SUCH_SITE
1250 A domain controller with the specified name already exists. ERROR_DOMAIN_
CONTROLLER_
EXISTS
1251 This operation is supported only when you are connected to the server. ERROR_ONLY_IF_
CONNECTED
1300 Not all privileges referenced are assigned to the caller. ERROR_NOT_ALL_
ASSIGNED
1301 Some mapping between account names and security IDs was not done. ERROR_SOME_
NOT_MAPPED
1302 No system quota limits are specifically set for this account. ERROR_NO_
QUOTAS_FOR_
ACCOUNT
1303 No encryption key is available. A well-known encryption key was ERROR_LOCAL_
returned. USER_SESSION_
KEY
1304 The Windows NT password is too complex to be converted to a LAN ERROR_NULL_LM_
Manager password. The LAN Manager password returned is a NULL PASSWORD
string.
1305 The revision level is unknown. ERROR_
UNKNOWN_
REVISION
Chapter7 External Error Codes | 82

1306 Indicates two revision levels are incompatible. ERROR_


REVISION_
MISMATCH
1307 This security ID cannot be assigned as the owner of this object. ERROR_INVALID_
OWNER
1308 This security ID cannot be assigned as the primary group of an object. ERROR_INVALID_
PRIMARY_GROUP
1309 An attempt has been made to operate on an impersonation token by a ERROR_NO_
thread that is not currently impersonating a client. IMPERSONATION_
TOKEN
1310 The group cannot be disabled. ERROR_CANT_
DISABLE_
MANDATORY
1311 There are currently no logon servers available to service the logon ERROR_NO_
request. LOGON_SERVERS
1312 A specified logon session does not exist. It can already have been ERROR_NO_
terminated. SUCH_LOGON_
SESSION
1313 A specified privilege does not exist. ERROR_NO_
SUCH_PRIVILEGE
1314 A required privilege is not held by the client. ERROR_
PRIVILEGE_NOT_
HELD
1315 The name provided is not a properly formed account name. ERROR_INVALID_
ACCOUNT_NAME
1316 The specified user already exists. ERROR_USER_
EXISTS
1317 The specified user does not exist. ERROR_NO_
SUCH_USER
1318 The specified group already exists. ERROR_GROUP_
EXISTS
1319 The specified group does not exist. ERROR_NO_
SUCH_GROUP
1320 Either the specified user account is already a member of the specified ERROR_MEMBER_
group, or the specified group cannot be deleted because it contains a IN_GROUP
member.
1321 The specified user account is not a member of the specified group ERROR_MEMBER_
account. NOT_IN_GROUP
1322 The last remaining administration account cannot be disabled or deleted. ERROR_LAST_
ADMIN
1323 Unable to update the password. The value provided as the current ERROR_WRONG_
password is incorrect. PASSWORD
1324 Unable to update the password. The value provided for the new password ERROR_ILL_
contains values that are not allowed in passwords. FORMED_
PASSWORD
83 | Chapter 7 External Error Codes

1325 Unable to update the password because a password update rule has been ERROR_
violated. PASSWORD_
RESTRICTION
1326 Logon failure: unknown user name or bad password. ERROR_LOGON_
FAILURE
1327 Logon failure: user account restriction. ERROR_
ACCOUNT_
RESTRICTION
1328 Logon failure: account logon time restriction violation. ERROR_INVALID_
LOGON_HOURS
1329 Logon failure: user not allowed to log on to this computer. ERROR_INVALID_
WORKSTATION
1330 Logon failure: the specified account password has expired. ERROR_
PASSWORD_
EXPIRED
1331 Logon failure: account currently disabled. ERROR_
ACCOUNT_
DISABLED
1332 No mapping between account names and security IDs was done. ERROR_NONE_
MAPPED
1333 Too many local user identifiers (LUIDs) were requested at one time. ERROR_TOO_
MANY_LUIDS_
REQUESTED
1334 No more local user identifiers (LUIDs) are available. ERROR_LUIDS_
EXHAUSTED
1335 The subauthority part of a security ID is invalid for this particular use. ERROR_INVALID_
SUB_AUTHORITY
1336 The access control list (ACL) structure is invalid. ERROR_INVALID_
ACL
1337 The security ID structure is invalid. ERROR_INVALID_
SID
1338 The security descriptor structure is invalid. ERROR_INVALID_
SECURITY_DESCR
1340 The inherited access control list (ACL) or access control entry (ACE) ERROR_BAD_
could not be built. INHERITANCE_ACL
1341 The server is currently disabled. ERROR_SERVER_
DISABLED
1342 The server is currently enabled. ERROR_SERVER_
NOT_DISABLED
1343 The value provided was an invalid value for an identifier authority. ERROR_INVALID_
ID_AUTHORITY
1344 No more memory is available for security information updates. ERROR_
ALLOTTED_
SPACE_
EXCEEDED
Chapter7 External Error Codes | 84

1345 The specified attributes are invalid, or incompatible with the attributes for ERROR_INVALID_
the group as a whole. GROUP_
ATTRIBUTES
1346 Either a required impersonation level was not provided, or the provided ERROR_BAD_
impersonation level is invalid. IMPERSONATION_
LEVEL
1347 Cannot open an anonymous level security token. ERROR_CANT_
OPEN_
ANONYMOUS
1348 The validation information class requested was invalid. ERROR_BAD_
VALIDATION_
CLASS
1349 The type of the token is inappropriate for its attempted use. ERROR_BAD_
TOKEN_TYPE
1350 Unable to perform a security operation on an object that has no ERROR_NO_
associated security. SECURITY_ON_
OBJECT
1351 Configuration information could not be read from the domain controller, ERROR_CANT_
either because the machine is unavailable, or access has been denied. ACCESS_DOMAIN_
INFO
1352 The security account manager (SAM) or local security authority (LSA) ERROR_INVALID_
server was in the wrong state to perform the security operation. SERVER_STATE
1353 The domain was in the wrong state to perform the security operation. ERROR_INVALID_
DOMAIN_STATE
1354 This operation is only allowed for the Primary Domain Controller of the ERROR_INVALID_
domain. DOMAIN_ROLE
1355 The specified domain did not exist. ERROR_NO_
SUCH_DOMAIN
1356 The specified domain already exists. ERROR_DOMAIN_
EXISTS
1357 An attempt was made to exceed the limit on the number of domains per ERROR_DOMAIN_
server. LIMIT_EXCEEDED
1358 Unable to complete the requested operation because of either a ERROR_
catastrophic media failure or a data structure corruption on the disk. INTERNAL_DB_
CORRUPTION
1359 The security account database contains an internal inconsistency. ERROR_
INTERNAL_ERROR
1360 Generic access types were contained in an access mask which should ERROR_GENERIC_
already be mapped to nongeneric types. NOT_MAPPED
1361 A security descriptor is not in the right format (absolute or self-relative). ERROR_BAD_
DESCRIPTOR_
FORMAT
1362 The requested action is restricted for use by logon processes only. The ERROR_NOT_
calling process has not registered as a logon process. LOGON_PROCESS
1363 Cannot start a new logon session with an ID that is already in use. ERROR_LOGON_
SESSION_EXISTS
85 | Chapter 7 External Error Codes

1364 A specified authentication package is unknown. ERROR_NO_


SUCH_PACKAGE
1365 The logon session is not in a state that is consistent with the requested ERROR_BAD_
operation. LOGON_SESSION_
STATE
1366 The logon session ID is already in use. ERROR_LOGON_
SESSION_
COLLISION
1367 A logon request contained an invalid logon type value. ERROR_INVALID_
LOGON_TYPE
1368 Unable to impersonate using a named pipe until data has been read from ERROR_CANNOT_
that pipe. IMPERSONATE
1369 The transaction state of a registry subtree is incompatible with the ERROR_RXACT_
requested operation. INVALID_STATE
1370 An internal security database corruption has been encountered. ERROR_RXACT_
COMMIT_FAILURE
1371 Cannot perform this operation on built-in accounts. ERROR_SPECIAL_
ACCOUNT
1372 Cannot perform this operation on this built-in special group. ERROR_SPECIAL_
GROUP
1373 Cannot perform this operation on this built-in special user. ERROR_SPECIAL_
USER
1374 The user cannot be removed from a group because the group is currently ERROR_
the user's primary group. MEMBERS_
PRIMARY_GROUP
1375 The token is already in use as a primary token. ERROR_TOKEN_
ALREADY_IN_USE
1376 The specified local group does not exist. ERROR_NO_
SUCH_ALIAS
1377 The specified account name is not a member of the local group. ERROR_MEMBER_
NOT_IN_ALIAS
1378 The specified account name is already a member of the local group. ERROR_MEMBER_
IN_ALIAS
1379 The specified local group already exists. ERROR_ALIAS_
EXISTS
1380 Logon failure: the user has not been granted the requested logon type at ERROR_LOGON_
this computer. NOT_GRANTED
1381 The maximum number of secrets that can be stored in a single system ERROR_TOO_
has been exceeded. MANY_SECRETS
1382 The length of a secret exceeds the maximum length allowed. ERROR_SECRET_
TOO_LONG
1383 The local security authority database contains an internal inconsistency. ERROR_
INTERNAL_DB_
ERROR
Chapter7 External Error Codes | 86

1384 During a logon attempt, the user's security context accumulated too ERROR_TOO_
many security IDs. MANY_CONTEXT_
IDS
1385 Logon failure: the user has not been granted the requested logon type at ERROR_LOGON_
this computer. TYPE_NOT_
GRANTED
1386 A cross-encrypted password is necessary to change a user password. ERROR_NT_
CROSS_
ENCRYPTION_
REQUIRED
1387 A new member could not be added to a local group because the member ERROR_NO_
does not exist. SUCH_MEMBER
1388 A new member could not be added to a local group because the member ERROR_INVALID_
has the wrong account type. MEMBER
1389 Too many security IDs have been specified. ERROR_TOO_
MANY_SIDS
1390 A cross-encrypted password is necessary to change this user password. ERROR_LM_
CROSS_
ENCRYPTION_
REQUIRED
1391 Indicates an ACL contains no inheritable components. ERROR_NO_
INHERITANCE
1392 The file or directory is corrupted and unreadable. ERROR_FILE_
CORRUPT
1393 The disk structure is corrupted and unreadable. ERROR_DISK_
CORRUPT
1394 There is no user session key for the specified logon session. ERROR_NO_
USER_SESSION_
KEY
1395 The service being accessed is licensed for a particular number of ERROR_LICENSE_
connections. No more connections can be made to the service at this QUOTA_
time because there are already as many connections as the service can EXCEEDED
accept.
1396 Logon Failure: The target account name is incorrect. ERROR_WRONG_
TARGET_NAME
1397 Mutual Authentication failed. The server's password is out of date at the ERROR_MUTUAL_
domain controller. AUTH_FAILED
1398 There is a time difference between the client and server. ERROR_TIME_
SKEW
1400 Invalid window handle. ERROR_INVALID_
WINDOW_HANDLE
1401 Invalid menu handle. ERROR_INVALID_
MENU_HANDLE
1402 Invalid cursor handle. ERROR_INVALID_
CURSOR_HANDLE
1403 Invalid accelerator table handle. ERROR_INVALID_
ACCEL_HANDLE
87 | Chapter 7 External Error Codes

1404 Invalid hook handle. ERROR_INVALID_


HOOK_HANDLE
1405 Invalid handle to a multiple-window position structure. ERROR_INVALID_
DWP_HANDLE
1406 Cannot create a top-level child window. ERROR_TLW_
WITH_WSCHILD
1407 Cannot find window class. ERROR_CANNOT_
FIND_WND_CLASS
1408 Invalid window; it belongs to other thread. ERROR_WINDOW_
OF_OTHER_
THREAD
1409 Hot key is already registered. ERROR_HOTKEY_
ALREADY_
REGISTERED
1410 Class already exists. ERROR_CLASS_
ALREADY_EXISTS
1411 Class does not exist. ERROR_CLASS_
DOES_NOT_EXIST
1412 Class still has open windows. ERROR_CLASS_
HAS_WINDOWS
1413 Invalid index. ERROR_INVALID_
INDEX
1414 Invalid icon handle. ERROR_INVALID_
ICON_HANDLE
1415 Using private DIALOG window words. ERROR_PRIVATE_
DIALOG_INDEX
1416 The list box identifier was not found. ERROR_LISTBOX_
ID_NOT_FOUND
1417 No wildcards were found. ERROR_NO_
WILDCARD_
CHARACTERS
1418 Thread does not have a clipboard open. ERROR_
CLIPBOARD_NOT_
OPEN
1419 Hot key is not registered. ERROR_HOTKEY_
NOT_REGISTERED
1420 The window is not a valid dialog window. ERROR_WINDOW_
NOT_DIALOG
1421 Control ID not found. ERROR_
CONTROL_ID_
NOT_FOUND
1422 Invalid message for a combo box because it does not have an edit ERROR_INVALID_
control. COMBOBOX_
MESSAGE
1423 The window is not a combo box. ERROR_WINDOW_
NOT_COMBOBOX
Chapter7 External Error Codes | 88

1424 Height must be less than 256. ERROR_INVALID_


EDIT_HEIGHT
1425 Invalid device context (DC) handle. ERROR_DC_NOT_
FOUND
1426 Invalid hook procedure type. ERROR_INVALID_
HOOK_FILTER
1427 Invalid hook procedure. ERROR_INVALID_
FILTER_PROC
1428 Cannot set nonlocal hook without a module handle. ERROR_HOOK_
NEEDS_HMOD
1429 This hook procedure can only be set globally. ERROR_GLOBAL_
ONLY_HOOK
1430 The journal hook procedure is already installed. ERROR_JOURNAL_
HOOK_SET
1431 The hook procedure is not installed. ERROR_HOOK_
NOT_INSTALLED
1432 Invalid message for single-selection list box. ERROR_INVALID_
LB_MESSAGE
1433 LB_SETCOUNT sent to non-lazy list box. ERROR_
SETCOUNT_ON_
BAD_LB
1434 This list box does not support tab stops. ERROR_LB_
WITHOUT_
TABSTOPS
1435 Cannot destroy object created by another thread. ERROR_
DESTROY_
OBJECT_OF_
OTHER_THREAD
1436 Child windows cannot have menus. ERROR_CHILD_
WINDOW_MENU
1437 The window does not have a system menu. ERROR_NO_
SYSTEM_MENU
1438 Invalid message box style. ERROR_INVALID_
MSGBOX_STYLE
1439 Invalid system-wide (SPI_*) parameter. ERROR_INVALID_
SPI_VALUE
1440 Screen already locked. ERROR_SCREEN_
ALREADY_LOCKED
1441 All handles to windows in a multiple-window position structure must have ERROR_HWNDS_
the same parent. HAVE_DIFF_
PARENT
1442 The window is not a child window. ERROR_NOT_
CHILD_WINDOW
1443 Invalid GW_* command. ERROR_INVALID_
GW_COMMAND
89 | Chapter 7 External Error Codes

1444 Invalid thread identifier. ERROR_INVALID_


THREAD_ID
1445 Cannot process a message from a window that is not a multiple ERROR_NON_
document interface (MDI) window. MDICHILD_
WINDOW
1446 Context menu already active. ERROR_POPUP_
ALREADY_ACTIVE
1447 The window does not have scroll bars. ERROR_NO_
SCROLLBARS
1448 Scroll bar range cannot be greater than 0x7FFF. ERROR_INVALID_
SCROLLBAR_
RANGE
1449 Cannot show or remove the window in the way specified. ERROR_INVALID_
SHOWWIN_
COMMAND
1450 Insufficient system resources exist to complete the requested service. ERROR_NO_
SYSTEM_
RESOURCES
1451 Insufficient system resources exist to complete the requested service. ERROR_
NONPAGED_
SYSTEM_
RESOURCES
1452 Insufficient system resources exist to complete the requested service. ERROR_PAGED_
SYSTEM_
RESOURCES
1453 Insufficient quota to complete the requested service. ERROR_
WORKING_SET_
QUOTA
1454 Insufficient quota to complete the requested service. ERROR_
PAGEFILE_QUOTA
1455 The paging file is too small for this operation to complete. ERROR_
COMMITMENT_
LIMIT
1456 A menu item was not found. ERROR_MENU_
ITEM_NOT_FOUND
1457 Invalid keyboard layout handle. ERROR_INVALID_
KEYBOARD_
HANDLE
1458 Hook type not allowed. ERROR_HOOK_
TYPE_NOT_
ALLOWED
1459 This operation requires an interactive window station. ERROR_
REQUIRES_
INTERACTIVE_
WINDOWSTATION
1460 This operation returned because the timeout period expired. ERROR_TIMEOUT
Chapter7 External Error Codes | 90

1461 Invalid monitor handle. ERROR_INVALID_


MONITOR_HANDLE
1500 The event log file is corrupted. ERROR_
EVENTLOG_FILE_
CORRUPT
1501 No event log file could be opened, so the event logging service did not ERROR_
start. EVENTLOG_CANT_
START
1502 The event log file is full. ERROR_LOG_FILE_
FULL
1503 The event log file has changed between read operations. ERROR_
EVENTLOG_FILE_
CHANGED
1601 Failure accessing installation service. ERROR_INSTALL_
SERVICE_FAILURE
1602 User canceled installation. ERROR_INSTALL_
USEREXIT
1603 Fatal error during installation. ERROR_INSTALL_
FAILURE
1604 Installation suspended, incomplete. ERROR_INSTALL_
SUSPEND
1605 Product is not installed. ERROR_
UNKNOWN_
PRODUCT
1606 Feature ID not registered. ERROR_
UNKNOWN_
FEATURE
1607 Component ID not registered. ERROR_
UNKNOWN_
COMPONENT
1608 Unknown property. ERROR_
UNKNOWN_
PROPERTY
1609 Handle is in an invalid state. ERROR_INVALID_
HANDLE_STATE
1610 Configuration data corrupt. ERROR_BAD_
CONFIGURATION
1611 Component qualifier not present. ERROR_INDEX_
ABSENT
1612 Install source unavailable. ERROR_INSTALL_
SOURCE_ABSENT
1613 Database version unsupported. ERROR_INSTALL_
PACKAGE_
VERSION
1614 Product is uninstalled. ERROR_
PRODUCT_
UNINSTALLED
91 | Chapter 7 External Error Codes

1615 SQL query syntax invalid or unsupported. ERROR_BAD_


QUERY_SYNTAX
1616 Record field does not exist. ERROR_INVALID_
FIELD
1617 The device has been removed. ERROR_DEVICE_
REMOVED
1618 An installation is in progress. ERROR_INSTALL_
ALREADY_
RUNNING
1619 Installation package could not be opened. ERROR_INSTALL_
PACKAGE_OPEN_
FAILED
1620 Installation package invalid. ERROR_INSTALL_
PACKAGE_INVALID
1621 Could not initialize installer UserInterface. ERROR_INSTALL_
UI_FAILURE
1622 Error opening installation log file. ERROR_INSTALL_
LOG_FAILURE
1623 Product language not supported by system. ERROR_INSTALL_
LANGUAGE_
UNSUPPORTED
1624 Error applying transform to install package. ERROR_INSTALL_
TRANSFORM_
FAILURE
1625 Install package signature not accepted. ERROR_INSTALL_
PACKAGE_
REJECTED
1626 Function could not be executed. ERROR_
FUNCTION_NOT_
CALLED
1627 Function failed during execution. ERROR_
FUNCTION_FAILED
1628 Invalid or unknown table specified. ERROR_INVALID_
TABLE
1629 Data supplied is of wrong type. ERROR_
DATATYPE_
MISMATCH
1630 Data of this type is not supported. ERROR_
UNSUPPORTED_
TYPE
1631 Unable to create requested object. ERROR_CREATE_
FAILED
1632 Temp folder is full or inaccessible. ERROR_INSTALL_
TEMP_
UNWRITABLE
Chapter7 External Error Codes | 92

1633 Product platform not supported. ERROR_INSTALL_


PLATFORM_
UNSUPPORTED
1634 Component not used on this computer. ERROR_INSTALL_
NOTUSED
1635 Patch package could not be opened. ERROR_PATCH_
PACKAGE_OPEN_
FAILED
1636 Patch package invalid. ERROR_PATCH_
PACKAGE_INVALID
1637 Patch package unsupported. ERROR_PATCH_
PACKAGE_
UNSUPPORTED.
1638 Invalid command line argument. ERROR_INVALID_
COMMAND_LINE
1700 The string binding is invalid. RPC_S_INVALID_
STRING_BINDING
1701 The binding handle is not the correct type. RPC_S_WRONG_
KIND_OF_BINDING
1702 The binding handle is invalid. RPC_S_INVALID_
BINDING
1703 The RPC protocol sequence is not supported. RPC_S_PROTSEQ_
NOT_SUPPORTED
1704 The RPC protocol sequence is invalid. RPC_S_INVALID_
RPC_PROTSEQ
1705 The string universal unique identifier (UUID) is invalid. RPC_S_INVALID_
STRING_UUID
1706 The endpoint format is invalid. RPC_S_INVALID_
ENDPOINT_
FORMAT
1707 The network address is invalid. RPC_S_INVALID_
NET_ADDR
1708 No endpoint was found. RPC_S_NO_
ENDPOINT_FOUND
1709 The timeout value is invalid. RPC_S_INVALID_
TIMEOUT
1710 The object universal unique identifier (UUID) was not found. RPC_S_OBJECT_
NOT_FOUND
1711 The object universal unique identifier (UUID) has already been registered. RPC_S_ALREADY_
REGISTERED
1712 The type universal unique identifier (UUID) has already been registered. RPC_S_TYPE_
ALREADY_
REGISTERED
1713 The RPC server is already listening. RPC_S_ALREADY_
LISTENING
93 | Chapter 7 External Error Codes

1714 No protocol sequences have been registered. RPC_S_NO_


PROTSEQS_
REGISTERED
1715 The RPC server is not listening. RPC_S_NOT_
LISTENING
1716 The manager type is unknown. RPC_S_
UNKNOWN_MGR_
TYPE
1717 The interface is unknown. RPC_S_
UNKNOWN_IF
1718 There are no bindings. RPC_S_NO_
BINDINGS
1719 There are no protocol sequences. RPC_S_NO_
PROTSEQS
1720 The endpoint cannot be created. RPC_S_CANT_
CREATE_
ENDPOINT
1721 Not enough resources are available to complete this operation. RPC_S_OUT_OF_
RESOURCES
1722 The RPC server is unavailable. RPC_S_SERVER_
UNAVAILABLE
1723 The RPC server is too busy to complete this operation. RPC_S_SERVER_
TOO_BUSY
1724 The network options are invalid. RPC_S_INVALID_
NETWORK_
OPTIONS
1725 There are no remote procedure calls active on this thread. RPC_S_NO_CALL_
ACTIVE
1726 The remote procedure call failed. RPC_S_CALL_
FAILED
1727 The remote procedure call failed and did not execute. RPC_S_CALL_
FAILED_DNE
1728 A remote procedure call (RPC) protocol error occurred. RPC_S_
PROTOCOL_
ERROR
1730 The transfer syntax is not supported by the RPC server. RPC_S_
UNSUPPORTED_
TRANS_SYN
1732 The universal unique identifier (UUID) type is not supported. RPC_S_
UNSUPPORTED_
TYPE
1733 The tag is invalid. RPC_S_INVALID_
TAG
1734 The array bounds are invalid. RPC_S_INVALID_
BOUND
1735 The binding does not contain an entry name. RPC_S_NO_
ENTRY_NAME
Chapter7 External Error Codes | 94

1736 The name syntax is invalid. RPC_S_INVALID_


NAME_SYNTAX
1737 The name syntax is not supported. RPC_S_
UNSUPPORTED_
NAME_SYNTAX
1739 No network address is available to use to construct a universal unique RPC_S_UUID_NO_
identifier (UUID). ADDRESS
1740 The endpoint is a duplicate. RPC_S_
DUPLICATE_
ENDPOINT
1741 The authentication type is unknown. RPC_S_
UNKNOWN_
AUTHN_TYPE
1742 The maximum number of calls is too small. RPC_S_MAX_
CALLS_TOO_SMALL
1743 The string is too long. RPC_S_STRING_
TOO_LONG
1744 The RPC protocol sequence was not found. RPC_S_PROTSEQ_
NOT_FOUND
1745 The procedure number is out of range. RPC_S_
PROCNUM_OUT_
OF_RANGE
1746 The binding does not contain any authentication information. RPC_S_BINDING_
HAS_NO_AUTH
1747 The authentication service is unknown. RPC_S_
UNKNOWN_
AUTHN_SERVICE
1748 The authentication level is unknown. RPC_S_
UNKNOWN_
AUTHN_LEVEL
1749 The security context is invalid. RPC_S_INVALID_
AUTH_IDENTITY
1750 The authorization service is unknown. RPC_S_
UNKNOWN_
AUTHZ_SERVICE
1751 The entry is invalid. EPT_S_INVALID_
ENTRY
1752 The server endpoint cannot perform the operation. EPT_S_CANT_
PERFORM_OP
1753 There are no more endpoints available from the endpoint mapper. EPT_S_NOT_
REGISTERED
1754 No interfaces have been exported. RPC_S_NOTHING_
TO_EXPORT
1755 The entry name is incomplete. RPC_S_
INCOMPLETE_
NAME
95 | Chapter 7 External Error Codes

1756 The version option is invalid. RPC_S_INVALID_


VERS_OPTION
1757 There are no more members. RPC_S_NO_MORE_
MEMBERS
1758 There is nothing to unexport. RPC_S_NOT_ALL_
OBJS_
UNEXPORTED
1759 The interface was not found. RPC_S_
INTERFACE_NOT_
FOUND
1760 The entry already exists. RPC_S_ENTRY_
ALREADY_EXISTS
1761 The entry is not found. RPC_S_ENTRY_
NOT_FOUND
1762 The name service is unavailable. RPC_S_NAME_
SERVICE_
UNAVAILABLE
1763 The network address family is invalid. RPC_S_INVALID_
NAF_ID
1764 The requested operation is not supported. RPC_S_CANNOT_
SUPPORT
1765 No security context is available to allow impersonation. RPC_S_NO_
CONTEXT_
AVAILABLE
1766 An internal error occurred in a remote procedure call (RPC). RPC_S_INTERNAL_
ERROR
1767 The RPC server attempted an integer division by zero. RPC_S_ZERO_
DIVIDE
1768 An addressing error occurred in the RPC server. RPC_S_ADDRESS_
ERROR
1769 A floating-point operation at the RPC server caused a division by zero. RPC_S_FP_DIV_
ZERO
1770 A floating-point underflow occurred at the RPC server. RPC_S_FP_
UNDERFLOW
1771 A floating-point overflow occurred at the RPC server. RPC_S_FP_
OVERFLOW
1772 The list of RPC servers available for the binding of auto handles has been RPC_X_NO_MORE_
exhausted. ENTRIES
1773 Unable to open the character translation table file. RPC_X_SS_CHAR_
TRANS_OPEN_FAIL
1774 The file containing the character translation table has fewer than 512 RPC_X_SS_CHAR_
bytes. TRANS_SHORT_
FILE
1775 A null context handle was passed from the client to the host during a RPC_X_SS_IN_
remote procedure call. NULL_CONTEXT
Chapter7 External Error Codes | 96

1777 The context handle changed during a remote procedure call. RPC_X_SS_
CONTEXT_
DAMAGED
1778 The binding handles passed to a remote procedure call do not match. RPC_X_SS_
HANDLES_
MISMATCH
1779 The stub is unable to get the remote procedure call handle. RPC_X_SS_
CANNOT_GET_
CALL_HANDLE
1780 A null reference pointer was passed to the stub. RPC_X_NULL_REF_
POINTER
1781 The enumeration value is out of range. RPC_X_ENUM_
VALUE_OUT_OF_
RANGE
1782 The byte count is too small. RPC_X_BYTE_
COUNT_TOO_
SMALL
1783 The stub received bad data. RPC_X_BAD_
STUB_DATA
1784 The supplied user buffer is not valid for the requested operation. ERROR_INVALID_
USER_BUFFER
1785 The disk media is not recognized. It cannot be formatted. ERROR_
UNRECOGNIZED_
MEDIA
1786 The workstation does not have a trust secret. ERROR_NO_
TRUST_LSA_
SECRET
1787 The SAM database on the Windows NT Server does not have a computer ERROR_NO_
account for this workstation trust relationship. TRUST_SAM_
ACCOUNT
1788 The trust relationship between the primary domain and the trusted domain ERROR_TRUSTED_
failed. DOMAIN_FAILURE
1789 The trust relationship between this workstation and the primary domain ERROR_TRUSTED_
failed. RELATIONSHIP_
FAILURE
1790 The network logon failed. ERROR_TRUST_
FAILURE
1791 A remote procedure call is already in progress for this thread. RPC_S_CALL_IN_
PROGRESS
1792 An attempt was made to logon, but the network logon service was not ERROR_
started. NETLOGON_NOT_
STARTED
1793 The user's account has expired. ERROR_
ACCOUNT_
EXPIRED
97 | Chapter 7 External Error Codes

1794 The redirector is in use and cannot be unloaded. ERROR_


REDIRECTOR_
HAS_OPEN_
HANDLES
1795 The specified printer driver is already installed. ERROR_PRINTER_
DRIVER_
ALREADY_
INSTALLED
1796 The specified port is unknown. ERROR_
UNKNOWN_PORT
1797 The printer driver is unknown. ERROR_
UNKNOWN_
PRINTER_DRIVER
1798 The print processor is unknown. ERROR_
UNKNOWN_
PRINTPROCESSOR
1799 The specified separator file is invalid. ERROR_INVALID_
SEPARATOR_FILE
1800 The specified priority is invalid. ERROR_INVALID_
PRIORITY
1801 The printer name is invalid. ERROR_INVALID_
PRINTER_NAME
1802 The printer already exists. ERROR_PRINTER_
ALREADY_EXISTS
1803 The printer command is invalid. ERROR_INVALID_
PRINTER_
COMMAND
1804 The specified datatype is invalid. ERROR_INVALID_
DATATYPE
1805 The environment specified is invalid. ERROR_INVALID_
ENVIRONMENT
1806 There are no more bindings. RPC_S_NO_MORE_
BINDINGS
1807 The account used is an interdomain trust account. Use your global user ERROR_
account or local user account to access this server. NOLOGON_
INTERDOMAIN_
TRUST_ACCOUNT
1808 The account used is a computer account. Use your global user account or ERROR_
local user account to access this server. NOLOGON_
WORKSTATION_
TRUST_ACCOUNT
1809 The account used is a server trust account. Use your global user account ERROR_
or local user account to access this server. NOLOGON_
SERVER_TRUST_
ACCOUNT
1810 The name or security ID (SID) of the domain specified is inconsistent with ERROR_DOMAIN_
the trust information for that domain. TRUST_
INCONSISTENT
Chapter7 External Error Codes | 98

1811 The server is in use and cannot be unloaded. ERROR_SERVER_


HAS_OPEN_
HANDLES
1812 The specified image file did not contain a resource section. ERROR_
RESOURCE_DATA_
NOT_FOUND
1813 The specified resource type cannot be found in the image file. ERROR_
RESOURCE_TYPE_
NOT_FOUND
1814 The specified resource name cannot be found in the image file. ERROR_
RESOURCE_
NAME_NOT_
FOUND
1815 The specified resource language ID cannot be found in the image file. ERROR_
RESOURCE_LANG_
NOT_FOUND
1816 Not enough quota is available to process this command. ERROR_NOT_
ENOUGH_QUOTA
1817 No interfaces have been registered. RPC_S_NO_
INTERFACES
1818 The remote procedure call was canceled. RPC_S_CALL_
CANCELED
1819 The binding handle does not contain all required information. RPC_S_BINDING_
INCOMPLETE
1820 A communications failure occurred during a remote procedure call. RPC_S_COMM_
FAILURE
1821 The requested authentication level is not supported. RPC_S_
UNSUPPORTED_
AUTHN_LEVEL
1822 No principal name registered. RPC_S_NO_
PRINC_NAME
1823 The error specified is not a valid Windows RPC error code. RPC_S_NOT_RPC_
ERROR
1824 A UUID that is valid only on this computer has been allocated. RPC_S_UUID_
LOCAL_ONLY
1825 A security package specific error occurred. RPC_S_SEC_PKG_
ERROR
1826 Thread is not canceled. RPC_S_NOT_
CANCELED
1827 Invalid operation on the encoding/decoding handle. RPC_X_INVALID_
ES_ACTION
1828 Incompatible version of the serializing package. RPC_X_WRONG_
ES_VERSION
1829 Incompatible version of the RPC stub. RPC_X_WRONG_
STUB_VERSION
1830 The RPC pipe object is invalid or corrupted. RPC_X_INVALID_
PIPE_OBJECT
99 | Chapter 7 External Error Codes

1831 An invalid operation was attempted on an RPC pipe object. RPC_X_WRONG_


PIPE_ORDER
1832 Unsupported RPC pipe version. RPC_X_WRONG_
PIPE_VERSION
1898 The group member was not found. RPC_S_GROUP_
MEMBER_NOT_
FOUND
1899 The endpoint mapper database entry could not be created. EPT_S_CANT_
CREATE
1900 The object universal unique identifier (UUID) is the nil UUID. RPC_S_INVALID_
OBJECT
1901 The specified time is invalid. ERROR_INVALID_
TIME
1902 The specified form name is invalid. ERROR_INVALID_
FORM_NAME
1903 The specified form size is invalid. ERROR_INVALID_
FORM_SIZE
1904 The specified printer handle is already being waited on ERROR_ALREADY_
WAITING
1905 The specified printer has been deleted. ERROR_PRINTER_
DELETED
1906 The state of the printer is invalid. ERROR_INVALID_
PRINTER_STATE
1907 The user must change his password before he logs on the first time. ERROR_
PASSWORD_
MUST_CHANGE
1908 Could not find the domain controller for this domain. ERROR_DOMAIN_
CONTROLLER_
NOT_FOUND
1909 The referenced account is currently locked out and cannot be logged on ERROR_
to. ACCOUNT_
LOCKED_OUT
1910 The object exporter specified was not found. OR_INVALID_OXID
1911 The object specified was not found. OR_INVALID_OID
1912 The object resolver set specified was not found. OR_INVALID_SET
1913 Some data remains to be sent in the request buffer. RPC_S_SEND_
INCOMPLETE
1914 Invalid asynchronous remote procedure call handle. RPC_S_INVALID_
ASYNC_HANDLE
1915 Invalid asynchronous RPC call handle for this operation. RPC_S_INVALID_
ASYNC_CALL
1916 The RPC pipe object has already been closed. RPC_X_PIPE_
CLOSED
1917 The RPC call completed before all pipes were processed. RPC_X_PIPE_
DISCIPLINE_
ERROR
Chapter7 External Error Codes | 100

1918 No more data is available from the RPC pipe. RPC_X_PIPE_


EMPTY
1919 No site name is available for this machine. ERROR_NO_
SITENAME
1920 The file cannot be accessed by the system. ERROR_CANT_
ACCESS_FILE
1921 The name of the file cannot be resolved by the system. ERROR_CANT_
RESOLVE_
FILENAME
1922 The entry is not of the expected type. RPC_S_ENTRY_
TYPE_MISMATCH
1923 Not all object UUIDs could be exported to the specified entry. RPC_S_NOT_ALL_
OBJS_EXPORTED
1924 Interface could not be exported to the specified entry. RPC_S_
INTERFACE_NOT_
EXPORTED
1925 The specified profile entry could not be added. RPC_S_PROFILE_
NOT_ADDED
1926 The specified profile element could not be added. RPC_S_PRF_ELT_
NOT_ADDED
1927 The specified profile element could not be removed. RPC_S_PRF_ELT_
NOT_REMOVED
1928 The group element could not be added. RPC_S_GRP_ELT_
NOT_ADDED
1929 The group element could not be removed.  RPC_S_GRP_ELT_
NOT_REMOVED 

7.5.3 Win32 - Error Codes (2000 - 5999)


The following table provides a list of Win32 error codes.

Code Description Name


2000 The pixel format is ERROR_INVALID_PIXEL_FORMAT
invalid.
2001 The specified ERROR_BAD_DRIVER
driver is invalid.
2002 The window style ERROR_INVALID_WINDOW_STYLE
or class attribute is
invalid for this
operation.
2003 The requested ERROR_METAFILE_NOT_SUPPORTED
metafile operation
is not supported.
101 | Chapter 7 External Error Codes

2004 The requested ERROR_TRANSFORM_NOT_SUPPORTED


transformation
operation is not
supported.
2005 The requested ERROR_CLIPPING_NOT_SUPPORTED
clipping operation
is not supported.
2010 The specified color ERROR_INVALID_CMM
management
module is invalid.
2011 The specified color ERROR_INVALID_PROFILE
profile is invalid.
2012 The specified tag ERROR_TAG_NOT_FOUND
was not found.
2013 A required tag is ERROR_TAG_NOT_PRESENT
not present.
2014 The specified tag is ERROR_DUPLICATE_TAG
already present.
2015 The specified color ERROR_PROFILE_NOT_ASSOCIATED_WITH_
profile is not DEVICE
associated with
any device.
2016 The specified color ERROR_PROFILE_NOT_FOUND
profile was not
found.
2017 The specified color ERROR_INVALID_COLORSPACE
space is invalid.
2018 Image Color ERROR_ICM_NOT_ENABLED
Management is not
enabled.
2019 There was an error ERROR_DELETING_ICM_XFORM
while deleting the
color transform.
2020 The specified color ERROR_INVALID_TRANSFORM
transform is
invalid.
2021 The specified ERROR_COLORSPACE_MISMATCH
transform does not
match the bitmap's
color space.
2022 The specified ERROR_INVALID_COLORINDEX
named color index
is not present in the
profile.
Chapter7 External Error Codes | 102

2108 The network ERROR_CONNECTED_OTHER_PASSWORD


connection was
made
successfully, but
the user had to be
prompted for a
password other
than the one
originally specified.
2202 The specified ERROR_BAD_USERNAME
username is
invalid.
2250 This network ERROR_NOT_CONNECTED
connection does
not exist.
2401 This network ERROR_OPEN_FILES
connection has
files open or
requests pending.
2402 Active connections ERROR_ACTIVE_CONNECTIONS
still exist.
2404 The device is in ERROR_DEVICE_IN_USE
use by an active
process and
cannot be
disconnected.
3000 The specified print ERROR_UNKNOWN_PRINT_MONITOR
monitor is
unknown.
3001 The specified ERROR_PRINTER_DRIVER_IN_USE
printer driver is
currently in use.
3002 The spool file was ERROR_SPOOL_FILE_NOT_FOUND
not found.
3003 A StartDocPrinter ERROR_SPL_NO_STARTDOC
call was not
issued.
3004 An AddJob call ERROR_SPL_NO_ADDJOB
was not issued.
3005 The specified print ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED
processor has
already been
installed.
3006 The specified print ERROR_PRINT_MONITOR_ALREADY_INSTALLED
monitor has
already been
installed.
103 | Chapter 7 External Error Codes

3007 The specified print ERROR_INVALID_PRINT_MONITOR


monitor does not
have the required
functions.
3008 The specified print ERROR_PRINT_MONITOR_IN_USE
monitor is currently
in use.
3009 The requested ERROR_PRINTER_HAS_JOBS_QUEUED
operation is not
allowed when there
are jobs queued to
the printer.
3010 The requested ERROR_SUCCESS_REBOOT_REQUIRED
operation is
successful.
Changes will not
be effective until
the system
reboots.
3011 The requested ERROR_SUCCESS_RESTART_REQUIRED
operation is
successful.
Changes will not
be effective until
the service is
restarted.
3012 No printers were ERROR_PRINTER_NOT_FOUND
found.
4000 WINS encountered ERROR_WINS_INTERNAL
an error while
processing the
command.
4001 The local WINS ERROR_CAN_NOT_DEL_LOCAL_WINS
cannot be deleted.
4002 The importation ERROR_STATIC_INIT
from the file failed.
4003 The backup failed. ERROR_INC_BACKUP
Was a full backup
done before?
4004 The backup failed. ERROR_FULL_BACKUP
Check the
directory to which
you are backing the
database.
4005 The name does not ERROR_REC_NON_EXISTENT
exist in the WINS
database.
Chapter7 External Error Codes | 104

4006 Replication with a ERROR_RPL_NOT_ALLOWED


nonconfigured
partner is not
allowed.
4100 The DHCP client ERROR_DHCP_ADDRESS_CONFLICT
has obtained an IP
address that is
already in use on
the network. The
local interface will
be disabled until
the DHCP client
can obtain a new
address.
4200 The GUID passed ERROR_WMI_GUID_NOT_FOUND
was not recognized
as valid by a WMI
data provider.
4201 The instance name ERROR_WMI_INSTANCE_NOT_FOUND
passed was not
recognized as valid
by a WMI data
provider.
4202 The data item ID ERROR_WMI_ITEMID_NOT_FOUND
passed was not
recognized as valid
by a WMI data
provider.
4203 The WMI request ERROR_WMI_TRY_AGAIN
could not be
completed and
should be retried.
4204 The WMI data ERROR_WMI_DP_NOT_FOUND
provider could not
be located.
4205 The WMI data ERROR_WMI_UNRESOLVED_INSTANCE_REF
provider references
an instance set
that has not been
registered.
4206 The WMI data ERROR_WMI_ALREADY_ENABLED
block or event
notification has
already been
enabled.
4207 The WMI data ERROR_WMI_GUID_DISCONNECTED
block is no longer
available.
105 | Chapter 7 External Error Codes

4208 The WMI data ERROR_WMI_SERVER_UNAVAILABLE


service is not
available.
4209 The WMI data ERROR_WMI_DP_FAILED
provider failed to
carry out the
request.
4210 The WMI MOF ERROR_WMI_INVALID_MOF
information is not
valid.
4211 The WMI ERROR_WMI_INVALID_REGINFO
registration
information is not
valid.
4212 The WMI data ERROR_WMI_ALREADY_DISABLED
block or event
notification has
already been
disabled.
4213 The WMI data item ERROR_WMI_READ_ONLY
or data block is
read only.
4214 The WMI data item ERROR_WMI_SET_FAILURE
or data block could
not be changed.
4300 The media ERROR_INVALID_MEDIA
identifier does not
represent a valid
medium.
4301 The library ERROR_INVALID_LIBRARY
identifier does not
represent a valid
library.
4302 The media pool ERROR_INVALID_MEDIA_POOL
identifier does not
represent a valid
media pool.
4303 The drive and ERROR_DRIVE_MEDIA_MISMATCH
medium are not
compatible or exist
in different
libraries.
4304 The medium ERROR_MEDIA_OFFLINE
currently exists in
an offline library
and must be online
to perform this
operation.
Chapter7 External Error Codes | 106

4305 The operation ERROR_LIBRARY_OFFLINE


cannot be
performed on an
offline library.
4306 The library, drive, ERROR_EMPTY
or media pool is
empty.
4307 The library, drive, ERROR_NOT_EMPTY
or media pool must
be empty to
perform this
operation.
4308 No media is ERROR_MEDIA_UNAVAILABLE
currently available
in this media pool
or library.
4309 A resource required ERROR_RESOURCE_DISABLED
for this operation is
disabled.
4310 The media ERROR_INVALID_CLEANER
identifier does not
represent a valid
cleaner.
4311 The drive cannot ERROR_UNABLE_TO_CLEAN
be cleaned or does
not support
cleaning.
4312 The object ERROR_OBJECT_NOT_FOUND
identifier does not
represent a valid
object.
4313 Unable to read ERROR_DATABASE_FAILURE
from or write to the
database.
4314 The database is ERROR_DATABASE_FULL
full.
4315 The medium is not ERROR_MEDIA_INCOMPATIBLE
compatible with the
device or media
pool.
4316 The resource ERROR_RESOURCE_NOT_PRESENT
required for this
operation does not
exist.
4317 The operation ERROR_INVALID_OPERATION
identifier is not
valid.
107 | Chapter 7 External Error Codes

4318 The media is not ERROR_MEDIA_NOT_AVAILABLE


mounted or ready
for use.
4319 The device is not ERROR_DEVICE_NOT_AVAILABLE
ready for use.
4320 The operator or ERROR_REQUEST_REFUSED
administrator has
refused the
request.
4321 The drive identifier ERROR_INVALID_DRIVE_OBJECT
does not represent
a valid drive.
4322 Library is full. No ERROR_LIBRARY_FULL
slot is available for
use.
4323 The transport ERROR_MEDIUM_NOT_ACCESSIBLE
cannot access the
medium.
4324 Unable to load the ERROR_UNABLE_TO_LOAD_MEDIUM
medium into the
drive.
4325 Unable to retrieve ERROR_UNABLE_TO_INVENTORY_DRIVE
status about the
drive.
4326 Unable to retrieve ERROR_UNABLE_TO_INVENTORY_SLOT
status about the
slot.
4327 Unable to retrieve ERROR_UNABLE_TO_INVENTORY_TRANSPORT
status about the
transport.
4328 Cannot use the ERROR_TRANSPORT_FULL
transport because
it is already in use.
4329 Unable to open or ERROR_CONTROLLING_IEPORT
close the
inject/eject port.
4330 Unable to eject the ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA
media because it is
in a drive.
4331 A cleaner slot is ERROR_CLEANER_SLOT_SET
already reserved.
4332 A cleaner slot is ERROR_CLEANER_SLOT_NOT_SET
not reserved.
Chapter7 External Error Codes | 108

4333 The cleaner ERROR_CLEANER_CARTRIDGE_SPENT


cartridge has
performed the
maximum number
of drive cleanings.
4334 Unexpected on- ERROR_UNEXPECTED_OMID
medium identifier.
4335 The last remaining ERROR_CANT_DELETE_LAST_ITEM
item in this group or
resource cannot be
deleted.
4336 The message ERROR_MESSAGE_EXCEEDS_MAX_SIZE
provided exceeds
the maximum size
allowed for this
parameter.
4337 The volume ERROR_VOLUME_CONTAINS_SYS_FILES
contains system or
paging files.
4338 The media type ERROR_INDIGENOUS_TYPE
cannot be removed
from this library
since at least one
drive in the library
reports it can
support this media
type.
4339 This offline media ERROR_NO_SUPPORTING_DRIVES
cannot be mounted
on this system
since no enabled
drives are present
which can be used.
4350 The remote storage ERROR_FILE_OFFLINE
service was not
able to recall the
file.
4351 The remote storage ERROR_REMOTE_STORAGE_NOT_ACTIVE
service is not
operational at this
time.
4352 The remote storage ERROR_REMOTE_STORAGE_MEDIA_ERROR
service
encountered a
media error.
4390 The file or directory ERROR_NOT_A_REPARSE_POINT
is not a reparse
point.
109 | Chapter 7 External Error Codes

4391 The reparse point ERROR_REPARSE_ATTRIBUTE_CONFLICT


attribute cannot be
set because it
conflicts with an
existing attribute.
4392 The data present in ERROR_INVALID_REPARSE_DATA
the reparse point
buffer is invalid.
4393 The tag present in ERROR_REPARSE_TAG_INVALID
the reparse point
buffer is invalid.
4394 There is a ERROR_REPARSE_TAG_MISMATCH
mismatch between
the tag specified in
the request and the
tag present in the
reparse point.
5001 The cluster ERROR_DEPENDENT_RESOURCE_EXISTS
resource cannot be
moved to another
group because
other resources are
dependent on it.
5002 The cluster ERROR_DEPENDENCY_NOT_FOUND
resource
dependency
cannot be found.
5003 The cluster ERROR_DEPENDENCY_ALREADY_EXISTS
resource cannot be
made dependent
on the specified
resource because
it is already
dependent.
5004 The cluster ERROR_RESOURCE_NOT_ONLINE
resource is not
online.
5005 A cluster node is ERROR_HOST_NODE_NOT_AVAILABLE
not available for
this operation.
5006 The cluster ERROR_RESOURCE_NOT_AVAILABLE
resource is not
available.
5007 The cluster ERROR_RESOURCE_NOT_FOUND
resource could not
be found.
5008 The cluster is being ERROR_SHUTDOWN_CLUSTER
shut down.
Chapter7 External Error Codes | 110

5009 A cluster node ERROR_CANT_EVICT_ACTIVE_NODE


cannot be evicted
from the cluster
while it is online.
5010 The object already ERROR_OBJECT_ALREADY_EXISTS
exists.
5011 The object is ERROR_OBJECT_IN_LIST
already in the list.
5012 The cluster group ERROR_GROUP_NOT_AVAILABLE
is not available for
any new requests.
5013 The cluster group ERROR_GROUP_NOT_FOUND
could not be found.
5014 The operation ERROR_GROUP_NOT_ONLINE
could not be
completed
because the
cluster group is not
online.
5015 The cluster node is ERROR_HOST_NODE_NOT_RESOURCE_OWNER
not the owner of
the resource.
5016 The cluster node is ERROR_HOST_NODE_NOT_GROUP_OWNER
not the owner of
the group.
5017 The cluster ERROR_RESMON_CREATE_FAILED
resource could not
be created in the
specified resource
monitor.
5018 The cluster ERROR_RESMON_ONLINE_FAILED
resource could not
be brought online
by the resource
monitor.
5019 The operation ERROR_RESOURCE_ONLINE
could not be
completed
because the
cluster resource is
online.
5020 The cluster ERROR_QUORUM_RESOURCE
resource could not
be deleted or
brought offline
because it is the
quorum resource.
111 | Chapter 7 External Error Codes

5021 The cluster could ERROR_NOT_QUORUM_CAPABLE


not make the
specified resource
a quorum resource
because it is not
capable of being a
quorum resource.
5022 The cluster ERROR_CLUSTER_SHUTTING_DOWN
software is
shutting down.
5023 The group or ERROR_INVALID_STATE
resource is not in
the correct state to
perform the
requested
operation.
5024 The properties ERROR_RESOURCE_PROPERTIES_STORED
were stored but not
all changes will
take effect until the
next time the
resource is brought
online.
5025 The cluster could ERROR_NOT_QUORUM_CLASS
not make the
specified resource
a quorum resource
because it does not
belong to a shared
storage class.
5026 The cluster ERROR_CORE_RESOURCE
resource could not
be deleted since it
is a core resource.
5027 The quorum ERROR_QUORUM_RESOURCE_ONLINE_FAILED
resource failed to
come online.
5028 The quorum log ERROR_QUORUMLOG_OPEN_FAILED
could not be
created or mounted
successfully.
5029 The cluster log is ERROR_CLUSTERLOG_CORRUPT
corrupt.
5030 The record could ERROR_CLUSTERLOG_RECORD_EXCEEDS_
not be written to MAXSIZE
the cluster log
since it exceeds
the maximum size.
Chapter7 External Error Codes | 112

5031 The cluster log ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE


exceeds its
maximum size.
5032 No checkpoint ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND
record was found in
the cluster log.
5033 The minimum ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE
required disk space
needed for logging
is not available.
5035 A cluster network ERROR_NETWORK_NOT_AVAILABLE
is not available for
this operation.
5036 A cluster node is ERROR_NODE_NOT_AVAILABLE
not available for
this operation.
5037 All cluster nodes ERROR_ALL_NODES_NOT_AVAILABLE
must be running to
perform this
operation.
5038 A cluster resource ERROR_RESOURCE_FAILED
failed.
5039 The cluster node is ERROR_CLUSTER_INVALID_NODE
not valid.
5040 The cluster node ERROR_CLUSTER_NODE_EXISTS
already exists.
5041 A node is in the ERROR_CLUSTER_JOIN_IN_PROGRESS
process of joining
the cluster.
5042 The cluster node ERROR_CLUSTER_NODE_NOT_FOUND
was not found.
5043 The cluster local ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND
node information
was not found.
5044 The cluster ERROR_CLUSTER_NETWORK_EXISTS
network already
exists.
5045 The cluster ERROR_CLUSTER_NETWORK_NOT_FOUND
network was not
found.
5046 The cluster ERROR_CLUSTER_NETINTERFACE_EXISTS
network interface
already exists.
5047 The cluster ERROR_CLUSTER_NETINTERFACE_NOT_FOUND
network interface
was not found.
113 | Chapter 7 External Error Codes

5048 The cluster request ERROR_CLUSTER_INVALID_REQUEST


is not valid for this
object.
5049 The cluster ERROR_CLUSTER_INVALID_NETWORK_PROVIDER
network provider is
not valid.
5050 The cluster node is ERROR_CLUSTER_NODE_DOWN
down.
5051 The cluster node is ERROR_CLUSTER_NODE_UNREACHABLE
not reachable.
5052 The cluster node is ERROR_CLUSTER_NODE_NOT_MEMBER
not a member of
the cluster.
5053 A cluster join ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS
operation is not in
progress.
5054 The cluster ERROR_CLUSTER_INVALID_NETWORK
network is not
valid.
5056 The cluster node is ERROR_CLUSTER_NODE_UP
up.
5057 The cluster IP ERROR_CLUSTER_IPADDR_IN_USE
address is already
in use.
5058 The cluster node is ERROR_CLUSTER_NODE_NOT_PAUSED
not paused.
5059 No cluster security ERROR_CLUSTER_NO_SECURITY_CONTEXT
context is
available.
5060 The cluster ERROR_CLUSTER_NETWORK_NOT_INTERNAL
network is not
configured for
internal cluster
communication.
5061 The cluster node is ERROR_CLUSTER_NODE_ALREADY_UP
already up.
5062 The cluster node is ERROR_CLUSTER_NODE_ALREADY_DOWN
already down.
5063 The cluster ERROR_CLUSTER_NETWORK_ALREADY_ONLINE
network is already
online.
5064 The cluster ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE
network is already
offline.
5065 The cluster node is ERROR_CLUSTER_NODE_ALREADY_MEMBER
already a member
of the cluster.
Chapter7 External Error Codes | 114

5066 The cluster ERROR_CLUSTER_LAST_INTERNAL_NETWORK


network is the only
one configured for
internal cluster
communication
between two or
more active cluster
nodes. The internal
communication
capability cannot
be removed from
the network.
5067 One or more ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS
cluster resources
depend on the
network to provide
service to clients.
The client access
capability cannot
be removed from
the network.
5068 This operation ERROR_INVALID_OPERATION_ON_QUORUM
cannot be
performed on the
cluster resource as
it the quorum
resource. You
cannot bring the
quorum resource
offline or modify its
possible owners
list.
5069 The cluster quorum ERROR_DEPENDENCY_NOT_ALLOWED
resource is not
allowed to have
any dependencies.
5070 The cluster node is ERROR_CLUSTER_NODE_PAUSED
paused.
5071 The cluster ERROR_NODE_CANT_HOST_RESOURCE
resource cannot be
brought online. The
owner node cannot
run this resource.
5072 The cluster node is ERROR_CLUSTER_NODE_NOT_READY
not ready to
perform the
requested
operation.
5073 The cluster node is ERROR_CLUSTER_NODE_SHUTTING_DOWN
shutting down.
115 | Chapter 7 External Error Codes

5074 The cluster join ERROR_CLUSTER_JOIN_ABORTED


operation was
aborted.
5075 The cluster join ERROR_CLUSTER_INCOMPATIBLE_VERSIONS
operation failed due
to incompatible
software versions
between the joining
node and its
sponsor.
5076 This resource ERROR_CLUSTER_MAXNUM_OF_RESOURCES_
cannot be created EXCEEDED
because the
cluster has
reached the limit on
the number of
resources it can
monitor.
5077 The system ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED
configuration
changed during the
cluster join or form
operation. The join
or form operation
was aborted.
5078 The specified ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND
resource type was
not found.
5079 The specified node ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED
does not support a
resource of this
type. This can be
due to version
inconsistencies or
due to the absence
of the resource
DLL on this node.
5080 The specified ERROR_CLUSTER_RESNAME_NOT_FOUND
resource name is
supported by this
resource DLL. This
can be due to a bad
(or changed) name
supplied to the
resource DLL.
5081 No authentication ERROR_CLUSTER_NO_RPC_PACKAGES_
package could be REGISTERED
registered with the
RPC server.
Chapter7 External Error Codes | 116

5082 You cannot bring ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST


the group online
because the owner
of the group is not
in the preferred list
for the group. To
change the owner
node for the group,
move the group.
5083 The join operation ERROR_CLUSTER_DATABASE_SEQMISMATCH
failed because the
cluster database
sequence number
has changed or is
incompatible with
the locker node.
This can happen
during a join
operation if the
cluster database
was changing
during the join.
5084 The resource ERROR_RESMON_INVALID_STATE
monitor will not
allow the fail
operation to be
performed while
the resource is in
its current state.
This can happen if
the resource is in a
pending state.

7.5.4 Win32 - Error Codes (6000 - 11999)


The following table provides a list of Win32 error codes.

Code Description Name


6000 The specified file could not be encrypted. ERROR_ENCRYPTION_
FAILED
6001 The specified file could not be decrypted. ERROR_DECRYPTION_
FAILED
6002 The specified file is encrypted and the user does not have the ERROR_FILE_ENCRYPTED
ability to decrypt it.
6003 There is no encryption recovery policy configured for this ERROR_NO_RECOVERY_
system. POLICY
6004 The required encryption driver is not loaded for this system. ERROR_NO_EFS
117 | Chapter 7 External Error Codes

6005 The file was encrypted with a different encryption driver than ERROR_WRONG_EFS
is currently loaded.
6006 There are no EFS keys defined for the user. ERROR_NO_USER_KEYS
6007 The specified file is not encrypted. ERROR_FILE_NOT_
ENCRYPTED
6008 The specified file is not in the defined EFS export format. ERROR_NOT_EXPORT_
FORMAT
6009 The specified file is read only. ERROR_FILE_READ_ONLY
6118 The list of servers for this workgroup is not currently available ERROR_NO_BROWSER_
SERVERS_FOUND
7001 The specified session name is invalid. ERROR_CTX_WINSTATION_
NAME_INVALID
7002 The specified protocol driver is invalid. ERROR_CTX_INVALID_PD
7003 The specified protocol driver was not found in the system ERROR_CTX_PD_NOT_
path. FOUND
7004 The specified terminal connection driver was not found in the ERROR_CTX_WD_NOT_
system path. FOUND
7005 A registry key for event logging could not be created for this ERROR_CTX_CANNOT_
session. MAKE_EVENTLOG_ENTRY
7006 A service with the same name already exists on the system. ERROR_CTX_SERVICE_
NAME_COLLISION
7007 A close operation is pending on the session. ERROR_CTX_CLOSE_
PENDING
7008 There are no free output buffers available. ERROR_CTX_NO_OUTBUF
7009 The MODEM.INF file was not found. ERROR_CTX_MODEM_INF_
NOT_FOUND
7010 The modem name was not found in MODEM.INF. ERROR_CTX_INVALID_
MODEMNAME
7011 The modem did not accept the command sent to it. Verify ERROR_CTX_MODEM_
that the configured modem name matches the attached RESPONSE_ERROR
modem.
7012 The modem did not respond to the command sent to it. Verify ERROR_CTX_MODEM_
that the modem is properly cabled and powered on. RESPONSE_TIMEOUT
7013 Carrier detect has failed or carrier has been dropped due to ERROR_CTX_MODEM_
disconnect. RESPONSE_NO_CARRIER
7014 Dial tone not detected within the required time. Verify that the ERROR_CTX_MODEM_
phone cable is properly attached and functional. RESPONSE_NO_DIALTONE
7015 Busy signal detected at remote site on callback. ERROR_CTX_MODEM_
RESPONSE_BUSY
7016 Voice detected at remote site on callback. ERROR_CTX_MODEM_
RESPONSE_VOICE
7017 Transport driver error ERROR_CTX_TD_ERROR
7022 The specified session cannot be found. ERROR_CTX_WINSTATION_
NOT_FOUND
Chapter7 External Error Codes | 118

7023 The specified session name is already in use. ERROR_CTX_WINSTATION_


ALREADY_EXISTS
7024 The requested operation cannot be completed because the ERROR_CTX_WINSTATION_
terminal connection is currently busy processing a connect, BUSY
disconnect, reset, or delete operation.
7025 An attempt has been made to connect to a session whose ERROR_CTX_BAD_VIDEO_
video mode is not supported by the current client. MODE
7035 The application attempted to enable DOS graphics mode. ERROR_CTX_GRAPHICS_
DOS graphics mode is not supported. INVALID
7037 Your interactive logon privilege has been disabled. Please ERROR_CTX_LOGON_
contact your administrator. DISABLED
7038 The requested operation can be performed only on the ERROR_CTX_NOT_
system console. This is most often the result of a driver or CONSOLE
system DLL requiring direct console access.
7040 The client failed to respond to the server connect message. ERROR_CTX_CLIENT_
QUERY_TIMEOUT
7041 Disconnecting the console session is not supported. ERROR_CTX_CONSOLE_
DISCONNECT
7042 Reconnecting a disconnected session to the console is not ERROR_CTX_CONSOLE_
supported. CONNECT
7044 The request to shadow another session was denied. ERROR_CTX_SHADOW_
DENIED
7045 The requested session access is denied. ERROR_CTX_WINSTATION_
ACCESS_DENIED
7049 The specified terminal connection driver is invalid. ERROR_CTX_INVALID_WD
7050 The requested session cannot be shadowed. This can be ERROR_CTX_SHADOW_
because the session is disconnected or does not currently INVALID
have a user logged on. Also, you cannot shadow a session
from the system console or shadow the system console.
7051 The requested session is not configured to allow shadowing. ERROR_CTX_SHADOW_
DISABLED
7052 Your request to connect to this Terminal Server has been ERROR_CTX_CLIENT_
rejected. Your Terminal Server client license number is LICENSE_IN_USE
currently being used by another user. Please call your
system administrator to obtain a new copy of the Terminal
Server client with a valid, unique license number.
7053 Your request to connect to this Terminal Server has been ERROR_CTX_CLIENT_
rejected. Your Terminal Server client license number has not LICENSE_NOT_SET
been entered for this copy of the Terminal Server client.
Please call your system administrator for help in entering a
valid, unique license number for this Terminal Server client.
7054 The system has reached its licensed logon limit. Please try ERROR_CTX_LICENSE_
again later. NOT_AVAILABLE
7055 The client you are using is not licensed to use this system. ERROR_CTX_LICENSE_
Your logon request is denied. CLIENT_INVALID
7056 The system license has expired. Your logon request is ERROR_CTX_LICENSE_
denied. EXPIRED
119 | Chapter 7 External Error Codes

8001 The file replication service API was called incorrectly. FRS_ERR_INVALID_API_
SEQUENCE
8002 The file replication service cannot be started. FRS_ERR_STARTING_
SERVICE
8003 The file replication service cannot be stopped. FRS_ERR_STOPPING_
SERVICE
8004 The file replication service API terminated the request. FRS_ERR_INTERNAL_API
8005 The file replication service terminated the request. FRS_ERR_INTERNAL
8006 The file replication service cannot be contacted. FRS_ERR_SERVICE_COMM
8007 The file replication service cannot satisfy the request FRS_ERR_INSUFFICIENT_
because the user is not a member of the Administrators PRIV
group.
8008 The file replication service cannot satisfy the request FRS_ERR_
because authenticated RPC is not available. AUTHENTICATION
8009 The file replication service cannot satisfy the request FRS_ERR_PARENT_
because the user is not a member of Administrators group on INSUFFICIENT_PRIV
the domain controller.
8010 The file replication service cannot satisfy the request FRS_ERR_PARENT_
because authenticated RPC is not available on the domain AUTHENTICATION
controller.
8011 The file replication service cannot communicate with the file FRS_ERR_CHILD_TO_
replication service on the domain controller. PARENT_COMM
8012 The file replication service on the domain controller cannot FRS_ERR_PARENT_TO_
communicate with the file replication service on this CHILD_COMM
computer.
8013 The file replication service cannot populate the system FRS_ERR_SYSVOL_
volume because of an internal error. POPULATE
8014 The file replication service cannot populate the system FRS_ERR_SYSVOL_
volume because of an internal timeout. POPULATE_TIMEOUT
8015 The file replication service cannot process the request. The FRS_ERR_SYSVOL_IS_
system volume is busy with a previous request. BUSY
8016 The file replication service cannot stop replicating the system FRS_ERR_SYSVOL_
volume because of an internal error. DEMOTE
8017 The file replication service detected an invalid parameter. FRS_ERR_INVALID_
SERVICE_PARAMETER
8200 An error occurred while installing the Windows NT directory ERROR_DS_NOT_
service. For more information, see the event log. INSTALLED
8201 The directory service evaluated group memberships locally. ERROR_DS_MEMBERSHIP_
EVALUATED_LOCALLY
8202 The specified directory service attribute or value does not ERROR_DS_NO_
exist. ATTRIBUTE_OR_VALUE
8203 The attribute syntax specified to the directory service is ERROR_DS_INVALID_
invalid. ATTRIBUTE_SYNTAX
8204 The attribute type specified to the directory service is not ERROR_DS_ATTRIBUTE_
defined. TYPE_UNDEFINED
Chapter7 External Error Codes | 120

8205 The specified directory service attribute or value already ERROR_DS_ATTRIBUTE_


exists. OR_VALUE_EXISTS
8206 The directory service is busy. ERROR_DS_BUSY
8207 The directory service is unavailable. ERROR_DS_UNAVAILABLE
8208 The directory service was unable to allocate a relative ERROR_DS_NO_RIDS_
identifier. ALLOCATED
8209 The directory service has exhausted the pool of relative ERROR_DS_NO_MORE_
identifiers. RIDS
8210 The requested operation could not be performed because the ERROR_DS_INCORRECT_
directory service is not the master for that type of operation. ROLE_OWNER
8211 The directory service was unable to initialize the subsystem ERROR_DS_RIDMGR_INIT_
that allocates relative identifiers. ERROR
8212 The requested operation did not satisfy one or more ERROR_DS_OBJ_CLASS_
constraints associated with the class of the object. VIOLATION
8213 The directory service can perform the requested operation ERROR_DS_CANT_ON_
only on a leaf object. NON_LEAF
8214 The directory service cannot perform the requested operation ERROR_DS_CANT_ON_RDN
on the RDN attribute of an object.
8215 The directory service detected an attempt to modify the ERROR_DS_CANT_MOD_
object class of an object. OBJ_CLASS
8216 The requested cross-domain move operation could not be ERROR_DS_CROSS_DOM_
performed. MOVE_ERROR
8217 Unable to contact the global catalog server. ERROR_DS_GC_NOT_
AVAILABLE
8218 The policy object is shared and can only be modified at the ERROR_SHARED_POLICY
root.
8219 The policy object does not exist. ERROR_POLICY_OBJECT_
NOT_FOUND
8220 The requested policy information is only in the directory ERROR_POLICY_ONLY_IN_
service. DS
8221 A domain controller promotion is currently active. ERROR_PROMOTION_
ACTIVE
8222 A domain controller promotion is not currently active ERROR_NO_PROMOTION_
ACTIVE
8224 An operations error occurred. ERROR_DS_OPERATIONS_
ERROR
8225 A protocol error occurred. ERROR_DS_PROTOCOL_
ERROR
8226 The time limit for this request was exceeded. ERROR_DS_TIMELIMIT_
EXCEEDED
8227 The size limit for this request was exceeded. ERROR_DS_SIZELIMIT_
EXCEEDED
8228 The administrative limit for this request was exceeded. ERROR_DS_ADMIN_LIMIT_
EXCEEDED
121 | Chapter 7 External Error Codes

8229 The compare response was false. ERROR_DS_COMPARE_


FALSE
8230 The compare response was true. ERROR_DS_COMPARE_
TRUE
8231 The requested authentication method is not supported by the ERROR_DS_AUTH_
server. METHOD_NOT_SUPPORTED
8232 A more secure authentication method is required for this ERROR_DS_STRONG_
server. AUTH_REQUIRED
8233 Inappropriate authentication. ERROR_DS_
INAPPROPRIATE_AUTH
8234 The authentication mechanism is unknown. ERROR_DS_AUTH_
UNKNOWN
8235 A referral was returned from the server. ERROR_DS_REFERRAL
8236 The server does not support the requested critical extension. ERROR_DS_UNAVAILABLE_
CRIT_EXTENSION
8237 This request requires a secure connection. ERROR_DS_
CONFIDENTIALITY_
REQUIRED
8238 Inappropriate matching. ERROR_DS_
INAPPROPRIATE_
MATCHING
8239 A constraint violation occurred. ERROR_DS_CONSTRAINT_
VIOLATION
8240 There is no such object on the server. ERROR_DS_NO_SUCH_
OBJECT
8241 There is an alias problem. ERROR_DS_ALIAS_
PROBLEM
8242 An invalid dn syntax has been specified. ERROR_DS_INVALID_DN_
SYNTAX
8243 The object is a leaf object. ERROR_DS_IS_LEAF
8244 There is an alias dereferencing problem. ERROR_DS_ALIAS_DEREF_
PROBLEM
8245 The server is unwilling to process the request. ERROR_DS_UNWILLING_
TO_PERFORM
8246 A loop has been detected. ERROR_DS_LOOP_DETECT
8247 There is a naming violation. ERROR_DS_NAMING_
VIOLATION
8248 The result set is too large. ERROR_DS_OBJECT_
RESULTS_TOO_LARGE
8249 The operation affects multiple DSAs ERROR_DS_AFFECTS_
MULTIPLE_DSAS
8250 The server is not operational. ERROR_DS_SERVER_
DOWN
8251 A local error has occurred. ERROR_DS_LOCAL_ERROR
Chapter7 External Error Codes | 122

8252 An encoding error has occurred. ERROR_DS_ENCODING_


ERROR
8253 A decoding error has occurred. ERROR_DS_DECODING_
ERROR
8254 The search filter cannot be recognized. ERROR_DS_FILTER_
UNKNOWN
8255 One or more parameters are illegal. ERROR_DS_PARAM_
ERROR
8256 The specified method is not supported. ERROR_DS_NOT_
SUPPORTED
8257 No results were returned. ERROR_DS_NO_RESULTS_
RETURNED
8258 The specified control is not supported by the server. ERROR_DS_CONTROL_
NOT_FOUND
8259 A referral loop was detected by the client. ERROR_DS_CLIENT_LOOP
8260 The preset referral limit was exceeded. ERROR_DS_REFERRAL_
LIMIT_EXCEEDED
8301 The root object must be the head of a naming context. The ERROR_DS_ROOT_MUST_
root object cannot have an instantiated parent. BE_NC
8302 The add replica operation cannot be performed. The naming ERROR_DS_ADD_REPLICA_
context must be writable in order to create the replica. INHIBITED
8303 A reference to an attribute that is not defined in the schema ERROR_DS_ATT_NOT_DEF_
occurred. IN_SCHEMA
8304 The maximum size of an object has been exceeded. ERROR_DS_MAX_OBJ_
SIZE_EXCEEDED
8305 An attempt was made to add an object to the directory with a ERROR_DS_OBJ_STRING_
name that is already in use. NAME_EXISTS
8306 An attempt was made to add an object of a class that does ERROR_DS_NO_RDN_
not have an RDN defined in the schema. DEFINED_IN_SCHEMA
8307 An attempt was made to add an object using an RDN that is ERROR_DS_RDN_DOESNT_
not the RDN defined in the schema. MATCH_SCHEMA
8308 None of the requested attributes were found on the objects. ERROR_DS_NO_
REQUESTED_ATTS_FOUND
8309 The user buffer is too small. ERROR_DS_USER_
BUFFER_TO_SMALL
8310 The attribute specified in the operation is not present on the ERROR_DS_ATT_IS_NOT_
object. ON_OBJ
8311 Illegal modify operation. Some aspect of the modification is ERROR_DS_ILLEGAL_MOD_
not allowed. OPERATION
8312 The specified object is too large. ERROR_DS_OBJ_TOO_
LARGE
8313 The specified instance type is not valid. ERROR_DS_BAD_
INSTANCE_TYPE
123 | Chapter 7 External Error Codes

8314 The operation must be performed at the master DSA. The ERROR_DS_MASTERDSA_
DNS root attribute is missing on the cross-reference object. REQUIRED
8315 The object class attribute must be specified. ERROR_DS_OBJECT_
CLASS_REQUIRED
8316 A required attribute is missing. ERROR_DS_MISSING_
REQUIRED_ATT
8317 An attempt was made to modify an object to include an ERROR_DS_ATT_NOT_DEF_
attribute that is not legal for its class FOR_CLASS
8318 The specified attribute is already present on the object. ERROR_DS_ATT_ALREADY_
EXISTS
8320 The specified attribute is not present, or has no values. ERROR_DS_CANT_ADD_
ATT_VALUES
8321 An attribute's single value constraint has been violated. ERROR_DS_SINGLE_
VALUE_CONSTRAINT
8322 An attribute's range constraint has been violated. ERROR_DS_RANGE_
CONSTRAINT
8323 The specified value already exists. ERROR_DS_ATT_VAL_
ALREADY_EXISTS
8324 The attribute cannot be removed because it is not present on ERROR_DS_CANT_REM_
the object. MISSING_ATT
8325 The attribute value cannot be removed because it is not ERROR_DS_CANT_REM_
present on the object. MISSING_ATT_VAL
8326 The specified root object cannot be a subref. ERROR_DS_ROOT_CANT_
BE_SUBREF
8327 Chaining is not allowed. ERROR_DS_NO_CHAINING
8328 Chained evaluation is not allowed. ERROR_DS_NO_CHAINED_
EVAL
8329 The operation could not be performed because the object's ERROR_DS_NO_PARENT_
parent is either uninstantiated or deleted. OBJECT
8330 Having a parent that is an alias is not allowed. Aliases are ERROR_DS_PARENT_IS_
leaf objects. AN_ALIAS
8331 The object and parent must be of the same type, either both ERROR_DS_CANT_MIX_
masters or both replicas. MASTER_AND_REPS
8332 The operation cannot be performed because child objects ERROR_DS_CHILDREN_
exist. This operation can only be performed on a leaf object. EXIST
8333 Directory object not found. ERROR_DS_OBJ_NOT_
FOUND
8334 The aliased object is missing. ERROR_DS_ALIASED_OBJ_
MISSING
8335 The object name has bad syntax. ERROR_DS_BAD_NAME_
SYNTAX
8336 It is not allowed for an alias to refer to another alias. ERROR_DS_ALIAS_POINTS_
TO_ALIAS
Chapter7 External Error Codes | 124

8337 The alias cannot be dereferenced. ERROR_DS_CANT_DEREF_


ALIAS
8338 The operation is out of scope. ERROR_DS_OUT_OF_
SCOPE
8340 The DSA object cannot be deleted. ERROR_DS_CANT_
DELETE_DSA_OBJ
8341 A directory service error has occurred. ERROR_DS_GENERIC_
ERROR
8342 The operation can only be performed on an internal master ERROR_DS_DSA_MUST_
DSA object. BE_INT_MASTER
8343 The object must be of class DSA. ERROR_DS_CLASS_NOT_
DSA
8344 Insufficient access rights to perform the operation. ERROR_DS_INSUFF_
ACCESS_RIGHTS
8345 The object cannot be added because the parent is not on the ERROR_DS_ILLEGAL_
list of possible superiors. SUPERIOR
8346 Access to the attribute is not allowed because the attribute is ERROR_DS_ATTRIBUTE_
owned by the Security Accounts Manager (SAM). OWNED_BY_SAM
8347 The name has too many parts. ERROR_DS_NAME_TOO_
MANY_PARTS
8348 The name is too long. ERROR_DS_NAME_TOO_
LONG
8349 The name value is too long. ERROR_DS_NAME_VALUE_
TOO_LONG
8350 The directory service encountered an error parsing a name. ERROR_DS_NAME_
UNPARSEABLE
8351 The directory service cannot get the attribute type for a ERROR_DS_NAME_TYPE_
name. UNKNOWN
8352 The name does not identify an object; the name identifies a ERROR_DS_NOT_AN_
phantom. OBJECT
8353 The security descriptor is too short. ERROR_DS_SEC_DESC_
TOO_SHORT
8354 The security descriptor is invalid. ERROR_DS_SEC_DESC_
INVALID
8355 Failed to create name for deleted object. ERROR_DS_NO_DELETED_
NAME
8356 The parent of a new subref must exist. ERROR_DS_SUBREF_
MUST_HAVE_PARENT
8357 The object must be a naming context. ERROR_DS_NCNAME_
MUST_BE_NC
8358 It is not allowed to add an attribute which is owned by the ERROR_DS_CANT_ADD_
system. SYSTEM_ONLY
8359 The class of the object must be structural; you cannot ERROR_DS_CLASS_MUST_
instantiate an abstract class. BE_CONCRETE
125 | Chapter 7 External Error Codes

8360 The schema object could not be found. ERROR_DS_INVALID_DMD


8361 A local object with this GUID (dead or alive) already exists. ERROR_DS_OBJ_GUID_
EXISTS
8362 The operation cannot be performed on a back link. ERROR_DS_NOT_ON_
BACKLINK
8363 The cross reference for the specified naming context could ERROR_DS_NO_
not be found. CROSSREF_FOR_NC
8364 The operation could not be performed because the directory ERROR_DS_SHUTTING_
service is shutting down. DOWN
8365 The directory service request is invalid. ERROR_DS_UNKNOWN_
OPERATION
8366 The role owner attribute could not be read. ERROR_DS_INVALID_
ROLE_OWNER
8367 The requested FSMO operation failed. The current FSMO ERROR_DS_COULDNT_
holder could not be reached. CONTACT_FSMO
8368 Modification of a DN across a naming context is not allowed. ERROR_DS_CROSS_NC_
DN_RENAME
8369 The attribute cannot be modified because it is owned by the ERROR_DS_CANT_MOD_
system. SYSTEM_ONLY
8370 Only the replicator can perform this function. ERROR_DS_REPLICATOR_
ONLY
8371 The specified class is not defined. ERROR_DS_OBJ_CLASS_
NOT_DEFINED
8372 The specified class is not a subclass. ERROR_DS_OBJ_CLASS_
NOT_SUBCLASS
8373 The name reference is invalid. ERROR_DS_NAME_
REFERENCE_INVALID
8374 A cross reference already exists. ERROR_DS_CROSS_REF_
EXISTS
8375 It is not allowed to delete a master cross reference. ERROR_DS_CANT_DEL_
MASTER_CROSSREF
8376 Subtree notifications are only supported on NC heads. ERROR_DS_SUBTREE_
NOTIFY_NOT_NC_HEAD
8377 Notification filter is too complex. ERROR_DS_NOTIFY_
FILTER_TOO_COMPLEX
8378 Schema update failed: duplicate RDN. ERROR_DS_DUP_RDN
8379 Schema update failed: duplicate OID ERROR_DS_DUP_OID
8380 Schema update failed: duplicate MAPI identifier. ERROR_DS_DUP_MAPI_ID
8381 Schema update failed: duplicate schema-id GUID. ERROR_DS_DUP_SCHEMA_
ID_GUID
8382 Schema update failed: duplicate LDAP display name. ERROR_DS_DUP_LDAP_
DISPLAY_NAME
8383 Schema update failed: range-lower less than range upper ERROR_DS_SEMANTIC_
ATT_TEST
Chapter7 External Error Codes | 126

8384 Schema update failed: syntax mismatch ERROR_DS_SYNTAX_


MISMATCH
8385 Schema deletion failed: attribute is used in must-contain ERROR_DS_EXISTS_IN_
MUST_HAVE
8386 Schema deletion failed: attribute is used in can-contain ERROR_DS_EXISTS_IN_
can_HAVE
8387 Schema update failed: attribute in can-contain does not exist ERROR_DS_
NONEXISTENT_can_HAVE
8388 Schema update failed: attribute in must-contain does not ERROR_DS_
exist NONEXISTENT_MUST_
HAVE
8389 Schema update failed: class in aux-class list does not exist ERROR_DS_AUX_CLS_
or is not an auxiliary class TEST_FAIL
8390 Schema update failed: class in poss-superiors does not exist ERROR_DS_
NONEXISTENT_POSS_SUP
8391 Schema update failed: class in subclass of list does not exist ERROR_DS_SUB_CLS_
or does not satisfy hierarchy rules TEST_FAIL
8392 Schema update failed: Rdn-Att-Id has wrong syntax ERROR_DS_BAD_RDN_
ATT_ID_SYNTAX
8393 Schema deletion failed: class is used as auxiliary class ERROR_DS_EXISTS_IN_
AUX_CLS
8394 Schema deletion failed: class is used as sub class ERROR_DS_EXISTS_IN_
SUB_CLS
8395 Schema deletion failed: class is used as poss superior ERROR_DS_EXISTS_IN_
POSS_SUP
8396 Schema update failed in recalculating validation cache. ERROR_DS_
RECALCSCHEMA_FAILED
8397 The tree deletion is not finished. ERROR_DS_TREE_DELETE_
NOT_FINISHED
8398 The requested delete operation could not be performed. ERROR_DS_CANT_DELETE
8399 Cannot read the governs class identifier for the schema ERROR_DS_ATT_SCHEMA_
record. REQ_ID
8400 The attribute schema has bad syntax. ERROR_DS_BAD_ATT_
SCHEMA_SYNTAX
8401 The attribute could not be cached. ERROR_DS_CANT_CACHE_
ATT
8402 The class could not be cached. ERROR_DS_CANT_CACHE_
CLASS
8403 The attribute could not be removed from the cache. ERROR_DS_CANT_
REMOVE_ATT_CACHE
8404 The class could not be removed from the cache. ERROR_DS_CANT_
REMOVE_CLASS_CACHE
8405 The distinguished name attribute could not be read. ERROR_DS_CANT_
RETRIEVE_DN
127 | Chapter 7 External Error Codes

8406 A required subref is missing. ERROR_DS_MISSING_


SUPREF
8407 The instance type attribute could not be retrieved. ERROR_DS_CANT_
RETRIEVE_INSTANCE
8408 An internal error has occurred. ERROR_DS_CODE_
INCONSISTENCY
8409 A database error has occurred. ERROR_DS_DATABASE_
ERROR
8410 The attribute GOVERNSID is missing. ERROR_DS_GOVERNSID_
MISSING
8411 An expected attribute is missing. ERROR_DS_MISSING_
EXPECTED_ATT
8412 The specified naming context is missing a cross reference. ERROR_DS_NCNAME_
MISSING_CR_REF
8413 A security checking error has occurred. ERROR_DS_SECURITY_
CHECKING_ERROR
8414 The schema is not loaded. ERROR_DS_SCHEMA_NOT_
LOADED
8415 Schema allocation failed. ERROR_DS_SCHEMA_
ALLOC_FAILED
8416 Failed to obtain the required syntax for the attribute schema. ERROR_DS_ATT_SCHEMA_
REQ_SYNTAX
8417 The global catalog verification failed. The global catalog is ERROR_DS_GCVERIFY_
not available or does not support the operation. Some part of ERROR
the directory is currently not available.
8418 The replication operation failed because of a schema ERROR_DS_DRA_SCHEMA_
mismatch between the servers involved. MISMATCH
8419 The DSA object could not be found. ERROR_DS_CANT_FIND_
DSA_OBJ
8420 The naming context could not be found. ERROR_DS_CANT_FIND_
EXPECTED_NC
8421 The naming context could not be found in the cache. ERROR_DS_CANT_FIND_
NC_IN_CACHE
8422 The child object could not be retrieved. ERROR_DS_CANT_
RETRIEVE_CHILD
8423 The modification was not allowed for security reasons. ERROR_DS_SECURITY_
ILLEGAL_MODIFY
8424 The operation cannot replace the hidden record. ERROR_DS_CANT_
REPLACE_HIDDEN_REC
8425 The hierarchy file is invalid. ERROR_DS_BAD_
HIERARCHY_FILE
8426 The attempt to build the hierarchy table failed. ERROR_DS_BUILD_
HIERARCHY_TABLE_FAILED
8427 The directory configuration parameter is missing from the ERROR_DS_CONFIG_
registry. PARAM_MISSING
Chapter7 External Error Codes | 128

8428 The attempt to count the address book indices failed. ERROR_DS_COUNTING_
AB_INDICES_FAILED
8429 The allocation of the hierarchy table failed. ERROR_DS_HIERARCHY_
TABLE_MALLOC_FAILED
8430 The directory service encountered an internal failure. ERROR_DS_INTERNAL_
FAILURE
8431 The directory service encountered an unknown failure. ERROR_DS_UNKNOWN_
ERROR
8432 A root object requires a class of 'top'. ERROR_DS_ROOT_
REQUIRES_CLASS_TOP
8433 This directory server is shutting down, and cannot take ERROR_DS_REFUSING_
ownership of new floating single-master operation roles. FSMO_ROLES
8434 The directory service is missing mandatory configuration ERROR_DS_MISSING_
information, and is unable to determine the ownership of FSMO_SETTINGS
floating single-master operation roles.
8435 The directory service was unable to transfer ownership of ERROR_DS_UNABLE_TO_
one or more floating single-master operation roles to other SURRENDER_ROLES
servers.
8436 The replication operation failed. ERROR_DS_DRA_GENERIC
8437 An invalid parameter was specified for this replication ERROR_DS_DRA_INVALID_
operation. PARAMETER
8438 The Windows NT directory service is too busy to complete ERROR_DS_DRA_BUSY
the replication operation at this time.
8439 The distinguished name specified for this replication ERROR_DS_DRA_BAD_DN
operation is invalid.
8440 The naming context specified for this replication operation is ERROR_DS_DRA_BAD_NC
invalid.
8441 The distinguished name specified for this replication ERROR_DS_DRA_DN_
operation already exists. EXISTS
8442 The replication system encountered an internal error. ERROR_DS_DRA_
INTERNAL_ERROR
8443 The replication operation encountered a database ERROR_DS_DRA_
inconsistency. INCONSISTENT_DIT
8444 The server specified for this replication operation could not be ERROR_DS_DRA_
contacted. CONNECTION_FAILED
8445 The replication operation encountered an object with an ERROR_DS_DRA_BAD_
invalid instance type. INSTANCE_TYPE
8446 The replication operation failed to allocate memory. ERROR_DS_DRA_OUT_OF_
MEM
8447 The replication operation encountered an error with the mail ERROR_DS_DRA_MAIL_
system. PROBLEM
8448 The replication reference information for the target server ERROR_DS_DRA_REF_
already exists. ALREADY_EXISTS
8449 The replication reference information for the target server ERROR_DS_DRA_REF_
does not exist. NOT_FOUND
129 | Chapter 7 External Error Codes

8450 The naming context cannot be removed because it is ERROR_DS_DRA_OBJ_IS_


replicated to another server. REP_SOURCE
8451 The replication operation encountered a database error. ERROR_DS_DRA_DB_
ERROR
8452 The naming context is in the process of being removed or is ERROR_DS_DRA_NO_
not replicated from the specified server. REPLICA
8453 Replication access was denied. ERROR_DS_DRA_ACCESS_
DENIED
8454 The requested operation is not supported by this version of ERROR_DS_DRA_NOT_
the Windows NT directory service. SUPPORTED
8455 The replication remote procedure call was canceled. ERROR_DS_DRA_RPC_
CANCELED
8456 The source server is currently rejecting replication requests. ERROR_DS_DRA_SOURCE_
DISABLED
8457 The destination server is currently rejecting replication ERROR_DS_DRA_SINK_
requests. DISABLED
8458 The replication operation failed due to a collision of object ERROR_DS_DRA_NAME_
names. COLLISION
8459 The replication source has been reinstalled. ERROR_DS_DRA_SOURCE_
REINSTALLED
8460 The replication operation failed because a required parent ERROR_DS_DRA_MISSING_
object is missing. PARENT
8461 The replication operation was preempted. ERROR_DS_DRA_
PREEMPTED
8462 The replication synchronization attempt was abandoned ERROR_DS_DRA_
because of a lack of updates. ABANDON_SYNC
8463 The replication operation was terminated because the ERROR_DS_DRA_
system is shutting down. SHUTDOWN
8464 The replication synchronization attempt failed as the ERROR_DS_DRA_
destination partial attribute set is not a subset of source INCOMPATIBLE_PARTIAL_
partial attribute set. SET
8465 The replication synchronization attempt failed because a ERROR_DS_DRA_SOURCE_
master replica attempted to sync from a partial replica. IS_PARTIAL_REPLICA
8466 The server specified for this replication operation was ERROR_DS_DRA_EXTN_
contacted, but that server was unable to contact an CONNECTION_FAILED
additional server needed to complete the operation.
8467 A schema mismatch is detected between the source and the ERROR_DS_INSTALL_
build used during a replica install. The replica cannot be SCHEMA_MISMATCH
installed.
8468 Schema update failed: An attribute with the same link ERROR_DS_DUP_LINK_ID
identifier already exists.
8469 Name translation: Generic processing error. ERROR_DS_NAME_ERROR_
RESOLVING
8470 Name translation: Could not find the name or insufficient right ERROR_DS_NAME_ERROR_
to see name. NOT_FOUND
Chapter7 External Error Codes | 130

8471 Name translation: Input name mapped to more than one ERROR_DS_NAME_ERROR_
output name. NOT_UNIQUE
8472 Name translation: Input name found, but not the associated ERROR_DS_NAME_ERROR_
output format. NO_MAPPING
8473 Name translation: Unable to resolve completely, only the ERROR_DS_NAME_ERROR_
domain was found. DOMAIN_ONLY
8474 Name translation: Unable to perform purely syntactical ERROR_DS_NAME_ERROR_
mapping at the client without going out to the wire. NO_SYNTACTICAL_
MAPPING
8475 Modification of a constructed att is not allowed. ERROR_DS_
CONSTRUCTED_ATT_MOD
8476 The OM-Object-Class specified is incorrect for an attribute ERROR_DS_WRONG_OM_
with the specified syntax. OBJ_CLASS
8477 The replication request has been posted; waiting for reply. ERROR_DS_DRA_REPL_
PENDING
8478 The requested operation requires a directory service, and ERROR_DS_DS_REQUIRED
none was available.
8479 The LDAP display name of the class or attribute contains ERROR_DS_INVALID_LDAP_
non-ASCII characters. DISPLAY_NAME
8480 The requested search operation is only supported for base ERROR_DS_NON_BASE_
searches. SEARCH
8481 The search failed to retrieve attributes from the database. ERROR_DS_CANT_
RETRIEVE_ATTS
8482 The schema update operation tried to add a backward link ERROR_DS_BACKLINK_
attribute that has no corresponding forward link. WITHOUT_LINK
8483 Source and destination of a cross domain move do not agree ERROR_DS_EPOCH_
on the object's epoch number. Either source or destination MISMATCH
does not have the latest version of the object.
8484 Source and destination of a cross domain move do not agree ERROR_DS_SRC_NAME_
on the object's current name. Either source or destination MISMATCH
does not have the latest version of the object.
8485 Source and destination of a cross domain move operation are ERROR_DS_SRC_AND_
identical. Caller should use local move operation instead of DST_NC_IDENTICAL
cross domain move operation.
8486 Source and destination for a cross domain move are not in ERROR_DS_DST_NC_
agreement on the naming contexts in the forest. Either MISMATCH
source or destination does not have the latest version of the
Partitions container.
8487 Destination of a cross domain move is not authoritative for ERROR_DS_NOT_
the destination naming context. AUTHORITIVE_FOR_DST_
NC
8488 Source and destination of a cross domain move do not agree ERROR_DS_SRC_GUID_
on the identity of the source object. Either source or MISMATCH
destination does not have the latest version of the source
object.
131 | Chapter 7 External Error Codes

8489 Object being moved across domains is already known to be ERROR_DS_CANT_MOVE_


deleted by the destination server. The source server does not DELETED_OBJECT
have the latest version of the source object.
8490 Another operation which requires exclusive access to the ERROR_DS_PDC_
PDC PSMO is already in progress. OPERATION_IN_PROGRESS
8491 A cross domain move operation failed such that the two ERROR_DS_CROSS_
versions of the moved object exist - one each in the source DOMAIN_CLEANUP_REQD
and destination domains. The destination object must be
removed to restore the system to a consistent state.
8492 This object cannot be moved across domain boundaries ERROR_DS_ILLEGAL_
either because cross domain moves for this class are XDOM_MOVE_OPERATION
disallowed, or the object has some special characteristics,
eg: trust account or restricted RID, which prevent its move.
8493 Can't move objects with memberships across domain ERROR_DS_CANT_WITH_
boundaries as once moved, this would violate the ACCT_GROUP_
membership conditions of the account group. Remove the MEMBERSHPS
object from any account group memberships and retry.
8494 A naming context head must be the immediate child of ERROR_DS_NC_MUST_
another naming context head, not of an interior node. HAVE_NC_PARENT
8495 The directory cannot validate the proposed naming context ERROR_DS_CR_
name because it does not hold a replica of the naming IMPOSSIBLE_TO_VALIDATE
context above the proposed naming context.
8496 Destination of a cross domain move must be in native mode. ERROR_DS_DST_DOMAIN_
NOT_NATIVE
8497 The operation cannot be performed because the server does ERROR_DS_MISSING_
not have an infrastructure container in the domain of interest. INFRASTRUCTURE_
CONTAINER
8498 Cross domain move of account groups is not allowed. ERROR_DS_CANT_MOVE_
ACCOUNT_GROUP
8499 Cross domain move of resource groups is not allowed. ERROR_DS_CANT_MOVE_
RESOURCE_GROUP
8500 The search flags for the attribute are invalid. The ANR bit is ERROR_DS_INVALID_
valid only on attributes of Unicode or Teletex strings. SEARCH_FLAG
8501 Tree deletions starting at an object which has an NC head as ERROR_DS_NO_TREE_
a descendant are not allowed. DELETE_ABOVE_NC
8502 The directory service failed to lock a tree in preparation for a ERROR_DS_COULDNT_
tree deletion because the tree was in use. LOCK_TREE_FOR_DELETE
8503 The directory service failed to identify the list of objects to ERROR_DS_COULDNT_
delete while attempting a tree deletion. IDENTIFY_OBJECTS_FOR_
TREE_DELETE
8504 Security Accounts Manager initialization failed because of ERROR_DS_SAM_INIT_
the following error: %1. FAILURE

Error status: 0x%2. Click OK tab to shut down the system,


then select Safe Mode during reboot. For more information,
check the event log.
Chapter7 External Error Codes | 132

8505 Only an administrator can modify the membership list of an ERROR_DS_SENSITIVE_


administrative group. GROUP_VIOLATION
8506 Cannot change the primary group ID of a domain controller ERROR_DS_CANT_MOD_
account. PRIMARYGROUPID
9001 DNS server unable to interpret format. DNS_ERROR_RCODE_
FORMAT_ERROR
9002 DNS server failure. DNS_ERROR_RCODE_
SERVER_FAILURE
9003 DNS name does not exist. DNS_ERROR_RCODE_
NAME_ERROR
9004 DNS request not supported by name server. DNS_ERROR_RCODE_NOT_
IMPLEMENTED
9005 DNS operation refused. DNS_ERROR_RCODE_
REFUSED
9006 DNS name that ought not exist, does exist. DNS_ERROR_RCODE_
YXDOMAIN
9007 DNS RR set that ought not exist, does exist. DNS_ERROR_RCODE_
YXRRSET
9008 DNS RR set that ought to exist, does not exist. DNS_ERROR_RCODE_
NXRRSET
9009 DNS server not authoritative for zone. DNS_ERROR_RCODE_
NOTAUTH
9010 DNS name in update or prereq is not in zone. DNS_ERROR_RCODE_
NOTZONE
9016 DNS signature failed to verify. DNS_ERROR_RCODE_
BADSIG
9017 DNS bad key. DNS_ERROR_RCODE_
BADKEY
9018 DNS signature validity expired. DNS_ERROR_RCODE_
BADTIME
9501 No records found for given DNS query. DNS_INFO_NO_RECORDS
9502 Bad DNS packet. DNS_ERROR_BAD_PACKET
9503 No DNS packet. DNS_ERROR_NO_PACKET
9504 DNS error, check rcode. DNS_ERROR_RCODE
9505 Unsecured DNS packet. DNS_ERROR_UNSECURE_
PACKET
9551 Invalid DNS type. DNS_ERROR_INVALID_
TYPE
9552 Invalid IP address. DNS_ERROR_INVALID_IP_
ADDRESS
9553 Invalid property. DNS_ERROR_INVALID_
PROPERTY
9554 Try DNS operation again later. DNS_ERROR_TRY_AGAIN_
LATER
133 | Chapter 7 External Error Codes

9555 Record for given name and type is not unique. DNS_ERROR_NOT_UNIQUE
9556 DNS name does not comply with RFC specifications. DNS_ERROR_NON_RFC_
NAME
9557 DNS name is a fully-qualified DNS name. DNS_STATUS_FQDN
9558 DNS name is dotted (multi-label). DNS_STATUS_DOTTED_
NAME
9559 DNS name is a single-part name. DNS_STATUS_SINGLE_
PART_NAME
9601 DNS zone does not exist. DNS_ERROR_ZONE_DOES_
NOT_EXIST
9602 DNS zone information not available. DNS_ERROR_NO_ZONE_
INFO
9603 Invalid operation for DNS zone. DNS_ERROR_INVALID_
ZONE_OPERATION
9604 Invalid DNS zone configuration. DNS_ERROR_ZONE_
CONFIGURATION_ERROR
9605 DNS zone has no start of authority (SOA) record. DNS_ERROR_ZONE_HAS_
NO_SOA_RECORD
9606 DNS zone has no name server (NS) record. DNS_ERROR_ZONE_HAS_
NO_NS_RECORDS
9607 DNS zone is locked. DNS_ERROR_ZONE_
LOCKED
9608 DNS zone creation failed. DNS_ERROR_ZONE_
CREATION_FAILED
9609 DNS zone already exists. DNS_ERROR_ZONE_
ALREADY_EXISTS
9610 DNS automatic zone already exists. DNS_ERROR_AUTOZONE_
ALREADY_EXISTS
9611 Invalid DNS zone type. DNS_ERROR_INVALID_
ZONE_TYPE
9612 Secondary DNS zone requires master IP address. DNS_ERROR_
SECONDARY_REQUIRES_
MASTER_IP
9613 DNS zone not secondary. DNS_ERROR_ZONE_NOT_
SECONDARY
9614 Need secondary IP address. DNS_ERROR_NEED_
SECONDARY_ADDRESSES
9615 WINS initialization failed. DNS_ERROR_WINS_INIT_
FAILED
9616 Need WINS servers. DNS_ERROR_NEED_WINS_
SERVERS
9617 NBTSTAT initialization call failed. DNS_ERROR_NBSTAT_
INIT_FAILED
Chapter7 External Error Codes | 134

9618 Invalid delete of start of authority (SOA) DNS_ERROR_SOA_


DELETE_INVALID
9651 Primary DNS zone requires datafile. DNS_ERROR_PRIMARY_
REQUIRES_DATAFILE
9652 Invalid datafile name for DNS zone. DNS_ERROR_INVALID_
DATAFILE_NAME
9653 Failed to open datafile for DNS zone. DNS_ERROR_DATAFILE_
OPEN_FAILURE
9654 Failed to write datafile for DNS zone. DNS_ERROR_FILE_
WRITEBACK_FAILED
9655 Failure while reading datafile for DNS zone. DNS_ERROR_DATAFILE_
PARSING
9701 DNS record does not exist. DNS_ERROR_RECORD_
DOES_NOT_EXIST
9702 DNS record format error. DNS_ERROR_RECORD_
FORMAT
9703 Node creation failure in DNS. DNS_ERROR_NODE_
CREATION_FAILED
9704 Unknown DNS record type. DNS_ERROR_UNKNOWN_
RECORD_TYPE
9705 DNS record timed out. DNS_ERROR_RECORD_
TIMED_OUT
9706 Name not in DNS zone. DNS_ERROR_NAME_NOT_
IN_ZONE
9707 CNAME loop detected. DNS_ERROR_CNAME_LOOP
9708 Node is a CNAME DNS record. DNS_ERROR_NODE_IS_
CNAME
9709 A CNAME record already exists for given name. DNS_ERROR_CNAME_
COLLISION
9710 Record only at DNS zone root. DNS_ERROR_RECORD_
ONLY_AT_ZONE_ROOT
9711 DNS record already exists. DNS_ERROR_RECORD_
ALREADY_EXISTS
9712 Secondary DNS zone data error. DNS_ERROR_
SECONDARY_DATA
9713 Could not create DNS cache data. DNS_ERROR_NO_CREATE_
CACHE_DATA
9714 DNS name does not exist. DNS_ERROR_NAME_DOES_
NOT_EXIST
9715 Could not create pointer (PTR) record. DNS_WARNING_PTR_
CREATE_FAILED
9716 DNS domain was undeleted. DNS_WARNING_DOMAIN_
UNDELETED
135 | Chapter 7 External Error Codes

9717 The Windows NT directory service is unavailable. DNS_ERROR_DS_


UNAVAILABLE
9718 DNS zone already exists in Windows NT directory service. DNS_ERROR_DS_ZONE_
ALREADY_EXISTS
9719 DNS server not creating or reading the boot file for the DNS_ERROR_NO_
directory service integrated DNS zone. BOOTFILE_IF_DS_ZONE
9751 DNS AXFR (zone transfer) complete. DNS_INFO_AXFR_
COMPLETE
9752 DNS zone transfer failed. DNS_ERROR_AXFR
9753 Added local WINS server. DNS_INFO_ADDED_LOCAL_
WINS
9801 Secure update call must continue update request. DNS_STATUS_CONTINUE_
NEEDED
9851 TCP/IP network protocol not installed. DNS_ERROR_NO_TCPIP
9852 No DNS servers configured for local system. DNS_ERROR_NO_DNS_
SERVERS
10004 A blocking operation was interrupted by a call to WSAEINTR
WSACancelBlockingCall.
10009 The file handle supplied is not valid. WSAEBADF
10013 An attempt was made to access a socket in a way forbidden WSAEACCES
by its access permissions.
10014 The system detected an invalid pointer address in attempting WSAEFAULT
to use a pointer argument in a call.
10022 An invalid argument was supplied. WSAEINVAL
10024 Too many open sockets. WSAEMFILE
10035 A non-blocking socket operation could not be completed WSAEWOULDBLOCK
immediately.
10036 A blocking operation is currently executing. WSAEINPROGRESS
10037 An operation was attempted on a non-blocking socket that WSAEALREADY
already had an operation in progress.
10038 An operation was attempted on something that is not a WSAENOTSOCK
socket.
10039 A required address was omitted from an operation on a WSAEDESTADDRREQ
socket.
10040 A message sent on a datagram socket was larger than the WSAEMSGSIZE
internal message buffer or some other network limit, or the
buffer used to receive a datagram into was smaller than the
datagram itself.
10041 A protocol was specified in the socket function call that does WSAEPROTOTYPE
not support the semantics of the socket type requested.
10042 An unknown, invalid, or unsupported option or level was WSAENOPROTOOPT
specified in a getsockopt or setsockopt call.
10043 The requested protocol has not been configured into the WSAEPROTONOSUPPORT
system, or no implementation for it exists.
Chapter7 External Error Codes | 136

10044 The support for the specified socket type does not exist in WSAESOCKTNOSUPPORT
this address family.
10045 The attempted operation is not supported for the type of WSAEOPNOTSUPP
object referenced.
10046 The protocol family has not been configured into the system WSAEPFNOSUPPORT
or no implementation for it exists.
10047 An address incompatible with the requested protocol was WSAEAFNOSUPPORT
used.
10048 Only one usage of each socket address (protocol/network WSAEADDRINUSE
address/port) is normally allowed.
10049 The requested address is not valid in its context. WSAEADDRNOTAVAIL
10050 A socket operation encountered a dead network. WSAENETDOWN
10051 A socket operation was attempted to an unreachable WSAENETUNREACH
network.
10052 The connection has been broken due to keep-alive activity WSAENETRESET
detecting a failure while the operation was in progress.
10053 An established connection was aborted by the software in WSAECONNABORTED
your host machine.
10054 An existing connection was forcibly closed by the remote WSAECONNRESET
host.
10055 An operation on a socket could not be performed because the WSAENOBUFS
system lacked sufficient buffer space or because a queue
was full.
10056 A connect request was made on an already connected WSAEISCONN
socket.
10057 A request to send or receive data was disallowed because WSAENOTCONN
the socket is not connected and (when sending on a
datagram socket using a sendto call) no address was
supplied.
10058 A request to send or receive data was disallowed because WSAESHUTDOWN
the socket had already been shut down in that direction with
a previous shutdown call.
10059 Too many references to some kernel object. WSAETOOMANYREFS
10060 A connection attempt failed because the connected party did WSAETIMEDOUT
not properly respond after a period of time, or established
connection failed because connected host has failed to
respond.
10061 No connection could be made because the target machine WSAECONNREFUSED
actively refused it.
10062 Cannot translate name. WSAELOOP
10063 Name component or name was too long. WSAENAMETOOLONG
10064 A socket operation failed because the destination host was WSAEHOSTDOWN
down.
10065 A socket operation was attempted to an unreachable host. WSAEHOSTUNREACH
137 | Chapter 7 External Error Codes

10066 Cannot remove a directory that is not empty. WSAENOTEMPTY


10067 A Windows Sockets implementation can have a limit on the WSAEPROCLIM
number of applications that can use it simultaneously.
10068 Ran out of quota. WSAEUSERS
10069 Ran out of disk quota. WSAEDQUOT
10070 File handle reference is no longer available. WSAESTALE
10071 Item is not available locally. WSAEREMOTE
10091 WSAStartup cannot function at this time because the WSASYSNOTREADY
underlying system it uses to provide network services is
currently unavailable.
10092 The Windows Sockets version requested is not supported. WSAVERNOTSUPPORTED
10093 Either the application has not called WSAStartup, or WSANOTINITIALISED
WSAStartup failed.
10101 Returned by WSARecv or WSARecvFrom to indicate the WSAEDISCON
remote party has initiated a graceful shutdown sequence.
10102 No more results can be returned by WSAENOMORE
WSALookupServiceNext.
10103 A call to WSALookupServiceEnd was made while this call WSAECANCELED
was still processing. The call has been canceled.
10104 The procedure call table is invalid. WSAEINVALIDPROCTABLE
10105 The requested service provider is invalid. WSAEINVALIDPROVIDER
10106 The requested service provider could not be loaded or WSAEPROVIDERFAILEDINIT
initialized.
10107 A system call that should never fail has failed. WSASYSCALLFAILURE
10108 No such service is known. The service cannot be found in WSASERVICE_NOT_FOUND
the specified name space.
10109 The specified class was not found. WSATYPE_NOT_FOUND
10110 No more results can be returned by WSA_E_NO_MORE
WSALookupServiceNext.
10111 A call to WSALookupServiceEnd was made while this call WSA_E_CANCELED
was still processing. The call has been canceled.
10112 A database query failed because it was actively refused. WSAEREFUSED
11001 No such host is known. WSAHOST_NOT_FOUND
11002 This is usually a temporary error during hostname resolution WSATRY_AGAIN
and means that the local server did not receive a response
from an authoritative server.
11003 A non-recoverable error occurred during a database lookup. WSANO_RECOVERY
11004 The requested name is valid and was found in the database, WSANO_DATA
but it does not have the correct associated data being
resolved for.
11005 At least one reserve has arrived. WSA_QOS_RECEIVERS
11006 At least one path has arrived. WSA_QOS_SENDERS
Chapter7 External Error Codes | 138

11007 There are no senders. WSA_QOS_NO_SENDERS


11008 There are no receivers. WSA_QOS_NO_RECEIVERS
11009 Reserve has been confirmed. WSA_QOS_REQUEST_
CONFIRMED
11010 Error due to lack of resources. WSA_QOS_ADMISSION_
FAILURE
11011 Rejected for administrative reasons - bad credentials. WSA_QOS_POLICY_
FAILURE
11012 Unknown or conflicting style. WSA_QOS_BAD_STYLE
11013 Problem with some part of the filterspec or provider-specific WSA_QOS_BAD_OBJECT
buffer in general.
11014 Problem with some part of the flowspec. WSA_QOS_TRAFFIC_CTRL_
ERROR
11015 General QOS error. WSA_QOS_GENERIC_
ERROR
139 | Chapter 8 SNMP Support

8 SNMP Support

8.1 About SNMP


SNMP (Simple Network Management Protocol) is an industry standard for monitoring and controlling
systems, devices and components within a network environment. It has been defined by the IEFT
(Internet Engineering Task Force). The IETF engages itself as a working group for problems regarding
TCP/IP and the Internet.

As of version 11.2 the new JMX-based monitoring solution, External Monitoring Interface (EMI) has
been introduced. As the SNMP technology now is rather out-dated, Automic strongly recommends
using the state of the art JMX solution.
SNMP uses the less secure UPD network protocol and since some time also is not able anymore to
support the whole range of AE functions.

During the monitoring and controlling of these net elements, SNMP management and SNMP agents are
generally distinguished. The SNMP agent runs on the computer, whose systems, devices and
components  are monitored and controlled. Network Management Station (NMS) is a computer which can -
with an application - present current information on the monitored net elements as well as change the
parameters of these net elements.

NMS and SNMP agents communicate via the network protocol TCP/IP. This allows for two types of
communication. One type queries the Network Management Station conditions of the monitored net
elements by the SNMP agents or sets new parameters. For the second type of communication, the SNMP
agent sends changes of the conditions in its monitored net elements to the Network Management Station.
The report of such a condition change is called a trap or SNMP trap. 

In order to clearly recognize participating systems also worldwide, a standard address space MIB
(Management Information Base) has been implemented. In this MIB, an MIB ID can be found for each
monitored net element. The MIB ID consists of a series of numbers which are separated by dots. The
worldwide MIB depicts a large tree with branches of the individual components and systems.

SNMP works on the basis of UDP (User Datagram Protocol). This simple protocol not uses an error
monitor or confirmation of transferred information. SNMP uses Port 161 for queries to the SNMP agents
and Port 162 as trap receiver.

8.2 Automation Engine and SNMP


SNMP can be used to monitor the various conditions which occur within an AE system. Its activities
include monitoring the availability of the Automation Engine and agents, active notifications or blocking
tasks. 

As of version 11.2 the new JMX-based monitoring solution, External Monitoring Interface (EMI) has
been introduced. As the SNMP technology now is rather out-dated, Automic strongly recommends
using the state of the art JMX solution.
SNMP uses the less secure UDP network protocol and since some time also is not able anymore to
support the whole range of AE functions.

The following illustration explains the interaction of AE and SNMP:


Chapter8 SNMP Support | 140

With the SNMP connection being activated, the relevant AE system monitoring values are sent to the AE
SNMP Subagent. It stores this information in its MIB and makes it available for the SNMP Masteragent.
The MIB content is write protected, the AE SNMP Subagent prevents values from being modified with the
SNMP command SET.

For applications (e.g. HP OpenView Operations), there are two methods to obtain information:

l The applications can periodically request information via the SNMP Masteragent which
communicates with the AE SNMP Subagent in order to obtain the relevant values.
l Events of special importance which occur in the AE system trigger SNMP traps. The AE SNMP
Subagent immediately forwards them to the SNMP Masteragent to ensure that the applications can
directly obtain the required information.

In particular situations, the Automation Engine generates predefined traps. You can also send traps using
the script statement :SEND_SNMP_TRAP.

Specify in the AE SNMP Subagent's INI file whether the MIB should be loaded and/or traps be sent. By
default, both is done. Automic recommends deactivating MIB loading if you intend to use traps only in
order to avoid unnecessary performance loads.The corresponding parameter processing= is available
in the section [SNMP].

Masteragent Mode On
The AE SNMP Subagent under UNIX is able to act as SNMP Masteragent with the advantage being that
no SNMP service must be configured.

See also:
141 | Chapter 8 SNMP Support

MIB Structure
Installing the AE SNMP Subagent (UNIX)
Installing the AE SNMP Subagent (Windows)
AE SNMP-Subagent's Glossary and FAQ

Requirements - Checklist

8.3 Agent Mode on UNIX


Under UNIX, the AE SNMP Subagent can run as Masteragent or Subagent.

Specify the mode in the INI-file parameter role= (section [SNMP]).

Masteragent (Recommended)

Advantages:

l There is no need to install Net-SNMP.


l Improved performance
l Improved error insulation

Disadvantages:

l Only AE monitoring starts.


l No other MIBs are available.
l The variable SNMPCONFPATH must be set. It contains the directory with the file ucsnmp1.conf
(e.g: "export SNMPCONFPATH=./")

You can specify the same parameters in the file ucsnmp1.conf as in the net-SNMP agent's
configuration file (snmpd.conf).

The AE SNMP Subagent uses the following parameters:

l trapcommunity
l trapsink
l rocommunity
Chapter8 SNMP Support | 142

l rwcommunity
l master

An explanation of the individual parameters is available in the description of the snmp.conf provided by net-
SNMP.

Example for the file ucsnmp1.conf:


trapsink host1 trapsink host2 rocommunity public master agentx

In Masteragent mode, no other Subagents can establish a connection to the SNMP Subagent.

Subagent

The AE SNMP Subagent cooperates with an existing Masteragent:

l A Masteragent which is able to deal with AgentX must be started.


l The standard communication medium is a local socket file which is stored in the directory
/var/agentx/mastert. The Masteragent creates this file. The AE SNMP Subagent only requires the
right to access it.
l The configuration file snmpd.conf contains some settings:

Example for the file ucsnmp1.conf:


trapsink local
rocommunity public

HP-UX 
The AE SNMP Subagent must operate on HP UX in Masteragent mode. The native Masteragent for the
HP-UX system is EMANATE. The AE SNMP Subagent uses the naaagt interface to communicate to it.
143 | Chapter 8 SNMP Support

The naaagt interface serves as SNMP Proxy. It redirects SNMP queries to a different UDP port via a
registered OID. By default, the naaagt uses port 8161. Thus, the AE SNMP Subagent uses a different port.

Further information about configuring the interface is provided in the naaagt documentation.

See also:

AE and SNMP

8.4 Automation Engine SNMP Subagent's FAQ


and Glossary
This document includes frequently asked questions and important terms regarding the AE SNMP
Subagent.

Keywords:
l SNMP - Simple Network Management Protocol
l MIB - Management Information Base. Stores information in a tree structure. The MIB is part of the
SNMP Subagent.
l Masteragent - SNMP service which communicates with SNMP Subagents in order to query MIB
information and forward it to the relevant applications.
l Subagent - Stores information in the MIB and makes it available for the Masteragent.

Frequently Asked Questions:


What is an OID?
Chapter8 SNMP Support | 144

Each information module in the MIB has a unique OID (Object Identifier) which is used to read the MIB's
content. OIDs consist of a series of numbers which are separated from each other with dots. OIDS are
globally unique. The AE SNMP Subagent's MIB has the OID "1.3.6.1.4.1.2562.1.1". The individual MIB
content also has a number which is appended to the MIB's OID. The MIB's tree structure results in OIDs
whose structure reflects the MIB structure.

Example:

The OID of the AE agent's version is: "1.3.6.1.4.1.2562.1.1.1.1.0 " 

The individual OID parts are:

1.3.6.1.4.1.2562.1.1 - MIB

1 - Agent group

1.1.0 - AE agent version

What is a trap?

A trap is an asynchronous message which the Automation Engine sends to the AE SNMP Subagent.
Traps are not stored in the MIB but are directly forwarded to the Masteragent. This means that the
applications immediately obtain important information.

How can I send a trap?

In particular situations, the Automation Engine automatically sends predefined traps. You can also send
individual traps using the script statement :SEND_SNMP_TRAP.

Are traps stored in the MIB table?

Traps are immediately forwarded to the Masteragent. There is no need to store them in the MIB.

What can be the reason for lost traps?

There can be various causes:

l Check the value specified in the AE SNMP Subagents INI-file parameter processing=. Value "1"
has the effect that no traps are sent to the Masteragent.
l The computer on which the Masteragent runs must be the trap destination. Under Windows, the
computer name must be specified in the Windows SNMP service. Under UNIX, it must be
specified in the file snmpd.conf or ucsnmp1.conf.
l The community name specified in the AE Subagent's INI-file parameter community= must comply
with the community specified in the Masteragent.

What is Net SNMP?

Net SNMP is an open source SNMP Server under UNIX.

Which SNMP versions does the AE SNMP Subagent support?

UNIX: SNMP V1, SNMP V2c and SNMP V3

Windows: SNMP V1 and SNMP V2c

Is it possible to install the AE SNMP Subagent subsequently?

Yes, refer to the corresponding installation guides (UNIX or Windows); they also describe the required
steps for subsequent installation.

How can I test that the AE SNMP Subagent installation was successful?

Use the SNMP Tool which is included in the delivery directory Tools\no_supp in the file snmptools.zip. It
can be used to read the MIB, receive or send traps etc.
145 | Chapter 8 SNMP Support

Note that the SNMP Tool is not supported.

Why does the AE SNMP Subagent ignore Masteragent queries?

Possible reasons are:

l The AE SNMP Subagent has not been started or the SNMP service is not active.
l The community name specified in the AE SNMP Subagent's INI-file parameter community= must
comply with the community specified in the Masteragent.

Why is the MIB table incomplete?

The MIB's tree structure is dynamically created. If there are no blocked tasks or active notifications, the
AE SNMP Subagent does not create structures for these areas.

Only the Agent Data Group and the Agent Work Group are created and filled with values if the Automation
Engine is inactive.

What SNMP Server configurations are required (Net SNMP, Windows SNMP service or
Masteragent mode)?

l Enter a community name.


l This community must at least have a reading right.
l Specify a destination for the traps (host name or IP address).
l Ensure that the network grants access to the UDP port 161.
l Access to the UDP port must also be granted if you want to receive traps.

What is a community name?

A community name is a group to which you can assign access rights. The default community name is
"public".

How can SNMP be used to monitor jobs?

AE does not support a direct connection of jobs to SNMP, but the script statement :SEND_SNMP_
TRAP can be used to monitor jobs.

Example:
:SET &NAME# = SYS_ACT_ME_NAME()
:SET &ID# = SYS_ACT_ME_NR()
:SET &JPNAME# = SYS_ACT_PARENT_NAME()
:SET &CLIENT# = SYS_ACT_CLIENT()
:SET &STATUS# = GET_UC_OBJECT_STATUS()
:IF &STATUS# < "1900"
: PRINT &STATUS#
: PRINT "Client: &CLIENT#, JOBNAME: &NAME#"
: PRINT &NAME#
: SEND_SNMP_TRAP 801450, "&CLIENT#", "&NAME#",, "Problems in processing!"
:ENIDF
The script function GET_UC_OBJECT_STATUS can be used to find out the job's end status and react to
it accordingly. This solution can be implemented in the direct form of a script or in a reusable form as an
Include object.

See also:

AE and SNMP
Chapter8 SNMP Support | 146

8.5 Installation

8.5.1 Installing the Automation Engine SNMP Subagent


(UNIX)
The following document guides you through the UNIX installation for AE SNMP Subagent.

Note that the AE SNMP Subagent must be installed on a computer on which at least one of the
Automation Engine's work processes is available.

Requirements
l The AE SNMP Subagent and Net SNMP must have been installed and activated on the Automation
Engine computer.
l Exception: HP UX. The AE SNMP Subagent must operate as SNMP Masteragent in order to use
EMANATE via naaagt. (naaagt configuration http://docs.hp.com/en/B2355-90692/naaagt.1M.html)

Supplied Files
The AE SNMP-Subagent files are stored in the appropriate platform's subfolder in IMAGE:SNMP\UNIX.

Installation
1. Installation of files

l Unpack the AE SNMP Subagent's TAR file.


l Copy the unpacked files to any directory of your choice or to the Automation Engine's folder.

2. Configuration of INI files

l Activate the SNMP connection in the Automation Engine's INI file UCSRV.INI using the parameter
snmp=1 (section [GLOBAL]). Also set the parameters snmp= and snmpreconnect= (section
[TCP/IP].
l End and restart the Automation Engine's communication and work processes on all computers. No
restart is necessary if the Automation Engine's INI file is already adjusted.
l Adjust the relevant parameters in the AE SNMP Subagent's INI file.

3. Masteragent mode

l On HP UX, it is essential to specify Masteragent mode. On all other platforms, you can select
whether the AE SNMP Subagent should run as Masteragent.
l Set the Masteragent mode in the AE SNMP Subagent's INI file using the parameter role=1.
l Adjust the supplied configuration files naacnf and ucsnmp1.conf.
l The variable SNMPCONFPATH must be set. It contains the directory with the file ucsnmp1.conf
(such as export SNMPCONFPATH=./).
l It is not required to set the environment variables MIB and MIBDIR.

4. Starting the AE SNMP Subagent


147 | Chapter 8 SNMP Support

l Start the AE SNMP Subagent and specify the INI file.


l Note that the SNMP Subagent must start under the root user because otherwise the Automation
Engine cannot establish a connection.

For example:
./ucsnmp1 -i /home/UC4/Server/ucsnmp1.ini &

The following start parameters are available:

Start parameters Description


-i INI-file path and Path and name of the INI file to be used.
name
By default, the INI file is searched in the folder in which the AE
SNMP Subagent is stored.
-h Shows available parameters and usage.
-v Shows the AE SNMP Subagent's version.
-crtini INI-file path Generates a standard INI file.
and name
By default, the INI file is searched in the folder in which theAE
SNMP Subagent is stored.

The order in which you start the Automation Engine and the SNMP Subagent is irrelevant.

Note the following: 

l If the AE SNMP Subagent starts first, the Automation Engine can immediately connect to the
SNMP Subagent when it boots.
l If the Automation Engine already runs with an active SNMP connection (UCSRV.INI), it attempts
to contact the SNMP Subagents in regular intervals (snmpreconnect=). The SNMP service can be
restarted subsequently even if the Automation Engine is running.
l Note that traps and all SNMP events can only be sent to the SNMP Subagent when the SNMP
connection is active. All events that should have been sent before the reconnection took place are
lost.
l You can set the time interval for the reconnection in the Automation Engine's INI file using the
parameter snmpreconnect= (default value: 500 seconds).

Messages are output when the SNMP agent starts. These messages are warnings and do not affect
the system's functionality (as opposed to error messages). The following message is always output
and can be ignored: "No log handling enabled - turning on stderr logging"

8.5.2 Automation Engine SNMP Subagent for UNIX

Structure of the File ucsnmp1.ini

Section/Parameter Description
[SNMP]
Chapter8 SNMP Support | 148

Section/Parameter Description
community= SNMP community name.

Default value: "public" 

The name is defined in the Masteragent. Enter the same community name in this
parameter. The community-name setting is found in the file snmp.con or
ucsnmp1.conf if the AE SNMP Subagent is used as Masteragent (see:
Installation Guide).

medium= Means of transport that should be used for the communication between
Automation Engine and AE SNMP Subagent. 

Possible value: "tcp" (default value), "pipe"

"tcp" - Communication via socket


"pipe" - Communication via pipe.

stream_port= Port number that the Automation Engine uses in order to connect to the AE
SNMP Subagent.

Note that the same port number must be specified in the Automation
Engine's INI-file parameter snmp= (section [TCP/IP]).

snmp_string= If role=0 has been specified, you can specify the path to the AgentX socket for
Net-SNMP here.

processing= Mode of the AE SNMP Subagent.

Allowed value: "1", "2" and "3" (default value)

"1" - The MIB is loaded but traps are not sent.


"2" - The MIB is not filled, traps are sent.
"3" - The MIB is loaded and traps are sent.

role= Role of the AE SNMP Subagent

Allowed value: "0" (default value) and "1"

"0" - The AE SNMP Subagent starts as Subagent.


"1" - The AE SNMP Subagent starts as Masteragent. In Masteragent mode, no
other Subagent can establish a connection to it.

Note that on HP UX, the Masteragent mode is essential in order to establish


a connection to EMANATE via naaagent.

[LOG]

snmp= Trace flag for the output of trace messages from the module that reads data from
the MIB table and sends it to the network.

Allowed values: "0" to "9"


Default value: "1"

Trace flags must only be used in close cooperation with Automic Support.
149 | Chapter 8 SNMP Support

Section/Parameter Description
stream= Trace flag for the output of trace messages from the module that receives
information from the Automation Engine and stores it in the MIB table.

Allowed values: "0" to "9"


Default value: "1"

Trace flags must only be used in close cooperation with Automic Support.

mib= Trace flag for the output of trace messages from the module that administers the
MIB table.

Allowed values: "0" to "9"


Default value: "1"

Trace flags must only be used in close cooperation with Automic Support.

file= Path and name of the log file.

The number signs serve as placeholders for a series in numerical order. When
you start the AE SNMP Subagent, the log files are renamed so that the most
current log file is always the one with the number "00".

By default, the log file is stored in the folder from which the AE SNMP
Subagent starts. 

INI-File Example

[SNMP]
community=public
medium=tcp
stream_port=2200
snmp_string=/var/agentx/master
processing=3
role=0
lib_path=.

[LOG]
snmp=1
stream=1
mib=1
file=ucsnmp_##.log

See also:

Notes for Configuration-File Adjustments


Chapter8 SNMP Support | 150

8.5.3 Installing the Automation Engine SNMP Subagent


(Windows)
The following document guides you through the Windows installation for AE SNMP Subagent.

Requirements
l The AE SNMP Subagent and the Windows SNMP service must be installed and activated on the
Automation Engine computer.
l Install Windows Patch KB950923 if you cannot start the AE SNMP Subagent on Windows Vista
or Windows Server 2008 and the Windows event log shows the error message "SNMP Extension
agent has terminated. Event 2020, EvntAgnt".

Supplied Files
The AE SNMP-Subagent files are stored in the particular platform's subfolder on
IMAGE:SNMP\WINDOWS.

Installation
You can set up the AE SNMP Subagent when you install the Automation Engine or subsequently.

1. Installation of files

l Start the AE SNMP Subagent's setup program or instead, you can also copy the library
UCSNMP1.DLL and the INI file UCSNMP1.INI manually to the directory %WINDIR%\System32.
l Register the library in the registry database as follows:

[HKEY_LOCAL_MACHINE\SOFTWARE\AUTOMIC\SnmpAgent\Vers1]
"Pathname"="UCSnmp1.dll"

[HKEY_LOCAL_
MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents]
"10"="SOFTWARE\\AUTOMIC\\SnmpAgent\\Vers1"

2. Configuration of INI files

l Activate the SNMP connection in the Automation Engine's INI file UCSRV.INI using the parameter
snmp=1 (section [GLOBAL]) . Also set the parameters snmp= and snmpreconnect= (section
[TCP/IP] ).
l End and restart theAutomation Engine's communication and work processes on all computers. No
restart is necessary if the Automation Engine's INI file is already adjusted.
l Configure the Windows SNMP service.
l Adjust the relevant parameters in the AE SNMP Subagent's INI file.
l The AE SNMP Subagent uses the path that is specified in the Windows system environment
variable UC_SNMP_INI in order to access the INI file. If this variable is not available, the Subagent
searches it in the directory in which the AE SNMP Subagent is installed. If the INI file is not
available here, the Subagent uses the default values.

3. Starting the AE SNMP Subagent

l Restart the Windows SNMP service. It automatically starts the AE SNMP Subagent.
151 | Chapter 8 SNMP Support

The order in which you start the Automation Engine and the SNMP Subagent is irrelevant.
Please note the following: 

l When the AE SNMP Subagent starts first, the Automation Engine can immediately connect to the
SNMP Subagent when it boots.
l When the Automation Engine already runs with an active SNMP connection (UCSRV.INI), it
attempts to contact the SNMP Subagents in regular intervals (snmpreconnect=). You can restart
the SNMP service subsequently even when the Automation Engine is running.
l Note that the SNMP connection needs to be active to send traps and SNMP events to the SNMP
Subagent. All events that should have been sent before the reconnection took place are lost.
l You can set the time interval for the reconnection in the Automation Engine's INI file by using the
parameter snmpreconnect= (default value: 500 seconds).

The Masteragent (Windows service) is decisive for the SNMP-trap version.

8.5.4 Automation Engine SNMP Subagent for Windows

Structure of the File ucsnmp1.ini

Section/Parameter Description
[SNMP]

community= SNMP community name.

Default value: "public"

The name is defined in the Masteragent. Enter the same community name in
this parameter. The community-name setting is found in the SNMP service's
properties.

medium= Means of transport that should be used for the communication between
Automation Engine and AE SNMP Subagent.

Possible value: "tcp" (default value), "pipe"

"tcp" - Communication via socket.


"pipe" - Communication via pipe.

stream_port= Port number that the Automation Engine uses in order to connect to the AE
SNMP Subagent.

Note that the same port number must be specified in the Automation
Engine's INI-file parameter snmp= (section [TCP/IP]).

processing= Mode of the AE SNMP Subagent.

Allowed value: "1", "2" and "3" (default value)

"1" - The MIB is loaded but traps are not sent.


"2" - The MIB is not filled, traps are sent.
"3" - The MIB is loaded and traps are sent.

[LOG]
Chapter8 SNMP Support | 152

Section/Parameter Description
snmp= Trace flag for the output of trace messages from the module that reads data
from the MIB table and sends it to the network.

Allowed values: "0" to "9"


Default value: "1"

Trace flags must only be used in close cooperation with Automic


Support.

stream= Trace flag for the output of trace messages from the module that receives
the information from the Automation Engine and stores it in the MIB table.

Allowed values: "0" to "9"


Default value: "1"

Trace flags must only be used in close cooperation with Automic


Support.

mib= Trace flag for the output of trace messages from the module that administers
the MIB table.

Allowed values: "0" to "9"


Default value: "1"

Trace flags must only be used in close cooperation with Automic


Support.

file= Path and name of the log file

The number signs serve as placeholders for a series in numerical order.


When you start the AE SNMP Subagent, the log files are renamed so that
the most current log file is always the one with the number "00".

By default, the log file is stored in the folder from which the AE SNMP
Subagent starts.

INI-File Example

[SNMP]
community=public
medium=tcp
stream_port=2200
processing=3

[LOG]
stream=1
snmp=1
mib=1
file=ucsnmp_##.log

See also:

Notes for Configuration-File Adjustments


153 | Chapter 8 SNMP Support

8.5.5 Windows SNMP Service Configuration


The following document describes the Windows SNMP Service configuration procedure.

Requirement

l The Windows SNMP Service must have been installed.

Procedure

l Open the properties of the Windows SNMP Service.


l Switch to the Traps tab. Enter a community name and specify the computer on which the SNMP
Management has been installed.

l Switch to the Security tab. Add the community name including a reading right.
Chapter8 SNMP Support | 154

See also:

Installing the AE SNMP Subagent (Windows)


155 | Chapter 8 SNMP Support

8.6 MIB

8.6.1 Structure of the MIB


The registered branch of the MIB subtree for Automic and its product AE is 1.3.6.1.4.1.2562.1.1 =
iso.org.dod.internet.private.enterprises.sbb.uc4.vers1. This address is the root of the Automic
subtree.

The MIB ID's - which identify the information for AE - are specified in a "relative" form. The MIB ID 3.10.0
stands for the complete address 1.3.6.1.4.1.2562.1.1.3.10.0.

The Automic subtree in the MIB includes several functional groups.

MIB ID Description
1 Agent Data Group
2 Agent Control Group
3 Agent Work Group
4 System Group
5 Client Group
6 Server Group
7 Agent Group
8 Blocking Points Group
9 Notification Group

Some AE terms have been renamed starting with Automation Engine version 8.00A. This modification
does not appliy to the terms used in the MIB in order to avoid possible incompatibilities.

8.6.2 Agent Data Group


MIB ID 1
Indicator Agent data group
Generated/Removed This is a permanent group. 
Belongs to AE SNMP subagent
Description This group serves as a description of the AE SNMP subagent
Chapter8 SNMP Support | 156

MIB ID 1.1.0
Indicator agentVersion
Type DisplayString (SIZE (0..5))
Description Version of AE SNMP subagent.

MIB ID 1.2.0
Indicator agentStartTime
Type DisplayString (SIZE (0..30))
Description Start time of the AE SNMP subagent in the format "YYYYMMDD HHMMSS".

MIB ID 1.3.0
Indicator agentNumberOfServerTasks
Type INTEGER
Description Current number of active server processes.

MIB ID 1.4.0
Indicator agentConnectCounter
Type Counter
Description Number of server processes which already have a connection to the SNMP subagent
(historical value).

8.6.3 Agent Control Group


MIB ID 2
Indicator Agent Control Group
Not used at this time.

8.6.4 Agent Work Group


An agent work group does not refer to agents but to the AE SNMP subagent.

MIB ID 3
Indicator Agent work group
Generated/Removed This is a permanent group. 
Belongs to AE system, indicated by agentWorkSysID.
157 | Chapter 8 SNMP Support

Description This group serves as the work area for generating SNMP traps. It contains the
values of the most recently generated traps.

MIB ID 3.1.0
Indicator agentWorkSysID
Type DisplayString (SIZE (0..8))
Description Working variable for generating traps (internal subagent).

MIB ID 3.2.0
Indicator agentWorkObject
Type DisplayString (SIZE (0..255))
Description Working variable for generating traps (internal subagent).

MIB ID 3.3.0
Indicator agentWorkString1
Type DisplayString (SIZE (0..255))
Description Working variable for generating traps (internal subagent).

MIB ID 3.4.0
Indicator agentWorkString2
Type DisplayString (SIZE (0..255))
Description Working variable for generating traps (internal subagent).

MIB ID 3.5.0
Indicator agentWorkString3
Type DisplayString (SIZE (0..255))
Description Working variable for generating traps (internal subagent).

MIB ID 3.6.0
Indicator agentWorkString4
Type DisplayString (SIZE (0..255))
Description Working variable for generating traps (internal subagent).
Chapter8 SNMP Support | 158

MIB ID 3.7.0
Indicator agentWorkString5
Type DisplayString (SIZE (0..255))
Description Working variable for generating traps (internal subagent).

MIB ID 3.8.0
Indicator agentWorkInteger1
Type INTEGER
Description Working variable for generating traps (internal subagent).

MIB ID 3.9.0
Indicator agentWorkInteger2
Type INTEGER
Description Working variable for generating traps (internal subagent).

MIB ID 3.10.0
Indicator agentWorkInteger3
Type INTEGER
Description Working variable for generating traps (internal subagent).

MIB ID 3.11.0
Indicator agentWorkInteger4
Type INTEGER
Description Working variable for generating traps (internal subagent).

MIB ID 3.12.0
Indicator agentWorkInteger5
Type INTEGER
Description Working variable for generating traps (internal subagent).

8.6.5 System Group


MIB ID 4
Indicator System group
159 | Chapter 8 SNMP Support

Generated/Removed The AE system starts when the first server process of this system starts.
The AE system remains in the MIB until the SNMP Subagent gets reloaded even
if all server processes are inactive.
Belongs to AE SNMP Subagent
Description This group contains the description of the AE systems. There is an entry for each
AE system in the following table.

MIB ID 4.1
Indicator systemTable
Type SEQUENCE OF SystemEntry
Index (sysSysID)
Description This table contains all active AE systems.

MIB ID 4.1.1
Indicator systemEntry
Type SystemEntry
Generated/Removed Contains all connected AE systems as long as the SNMP Subagent is active on
this computer.

MIB ID 4.1.1.1
Indicator sysSysID
Type DisplayString (SIZE (0..8))
Description Name of the AE system.
Value of the parameter "System=" from the INI file of the Automation Engine.

MIB ID 4.1.1.2
Indicator sysStartTime
Type DisplayString (SIZE (0..19))
Description Starting time of the first server process of this system.

MIB ID 4.1.1.3
Indicator sysDbmsName
Type DisplayString (SIZE (0..30))
Description Product name of the AE database (Oracle 7, Microsoft SQL Server 7 etc.).
Chapter8 SNMP Support | 160

MIB ID 4.1.1.4
Indicator sysDbVersion
Type DisplayString (SIZE (0..30))
Description Version of the AE database.

MIB ID 4.1.1.5
Indicator sysDbName
Type DisplayString (SIZE (0..30))
Description Name of the database which is provided with the supplied software package.

MIB ID 4.1.1.6
Indicator sysEMS
Type INTEGER
Contents 1 = BMC Patrol
2 = HP NNM
3 = BMC Patrol + HP NNM
4 = Tivoli
5 = BMC Patrol + Tivoli
6 = BMC Patrol + HP NNM
7 = all
Description A bit-vector to show the available licenses.

8.6.6 Client Group


MIB ID 5
Indicator Client group
Description This group contains the description of clients in all AE systems. There is an entry for each
client of an existing system in the following table. 

MIB ID 5.1
Indicator clientTable
Type SEQUENCE OF ClientEntry
Index (cliSysID, cliClient)
Description This table contains all existing clients.
161 | Chapter 8 SNMP Support

MIB ID 5.1.1
Indicator clientEntry
Type ClientEntry
Generated/Removed When a Automation Engine starts, a table entry for each client is created. If a
client should be added or deleted or if the status of a client changes (cliState),
the table is deleted and recreated with the existing client.
Belongs to AE system cliSysID

MIB ID 5.1.1.1
Indicator cliSysID
Type DisplayString (SIZE (0..8))
Description Name of the AE system to which the client belongs.

MIB ID 5.1.1.2
Indicator cliClient
Type INTEGER (0..9999)
Description Number of the client.

MIB ID 5.1.1.3
Indicator cliLastModifyTime
Type DisplayString (SIZE (0..19))
Description Time of the last update of this table entry.

MIB ID 5.1.1.4
Indicator cliState
Type INTEGER {run(1), stop(2)}
Contents 1 = active
2 = stopped
Description Indicates whether the automatic processing of tasks is active (system status GO) or has
been stopped (system status STOP).

MIB ID 5.1.1.5
Indicator cliMonitoring
Type INTEGER {yes(1), no(2)}
Contents 1 = Monitoring of a client's activities
2 = No monitoring of the client's activities
Chapter8 SNMP Support | 162

Description Indicates whether the client's activities are being monitored. For an active client, all
notifications and blocked workflows are monitored in this way. 

MIB ID 5.1.1.6
Indicator cliInfo
Type DisplayString
Is not currently used.

8.6.7 Server Group


MIB ID 6
Indicator Server group
Generated/Removed There is an entry for each server process in an existing AE system in the
following table. Stopped server processes (Status = STOPPED) remain in the
MIB until the SNMP Subagent is reloaded onto the computer.
Description This group contains the description of the server process in all AE systems.

MIB ID 6.1
Indicator serverInstanceTable
Type SEQUENCE OF serverInstancEntry
Index (srvSysID, srvName)
Description This table contains all existing server processes.

MIB ID 6.1.1
Indicator serverInstanceEntry
Type ServerInstanceEntry
Generated/Removed Starts a server process - a table entry is created for this. The entry will then no
longer be deleted.
Belongs to AE system coSysID and client coClient.

MIB ID 6.1.1.1
Indicator srvSysID
Type DisplayString (SIZE (0..8))
Description Name of the AE system to which the server process belongs.
Value of the parameter "system=" from the INI file of the Automation Engine.
163 | Chapter 8 SNMP Support

MIB ID 6.1.1.2
Indicator srvName
Type DisplayString (SIZE (0..8))
Description Name of the primary work process.

MIB ID 6.1.1.3
Indicator srvLastModifyTime
Type DisplayString (SIZE (0..19))
Description Time of the last update of this table entry.

MIB ID 6.1.1.4
Indicator srvVersion
Type DisplayString (SIZE (0..5))
Description The version of the Automation Engine.

MIB ID 6.1.1.5
Indicator srvStartTime
Type DisplayString (SIZE (0..19))
Description The start time of the server process.

MIB ID 6.1.1.6
Indicator srvState
Type INTEGER {run(1), ended(2), abnormal(3)}
Contents 1 = running
2 = Ended normally
3 = Canceled or no connection to the SNMP subagent
Description The status of the server process.

MIB ID 6.1.1.7
Indicator srvSrvConnect
Type INTEGER
Description The number of server processes which are connected to this server process (entries are
only available at the primary server process).

MIB ID 6.1.1.8
Chapter8 SNMP Support | 164

Indicator srvExeConnect
Type INTEGER
Description The number of agents that are connected to the server process (entries are only available
at the primary server process).

MIB ID 6.1.1.9
Indicator srvDiaConnect
Type INTEGER
Description Number of UserInterfaces are connected to the server process (Entries are only available
at the primary server process).

MIB ID 6.1.1.10
Indicator srvBusyMin
Type INTEGER (0..100)
Description Average workload (in percent) of the server process within the last minute before the
updating (statistical value).

MIB ID 6.1.1.11
Indicator srvBusy10Min
Type INTEGER (0..100)
Description Average workload (in percent) of the server process within the last ten minutes before the
updating (statistical value).

MIB ID 6.1.1.12
Indicator SrvBusyHour
Type INTEGER (0..100)
Description Average workload (in percent) of the Server within the last hour before the updating
(statistical value).

MIB ID 6.1.1.13
Indicator SrvRunMode
Type INTEGER {primary(1), normal(3), cp(4)}
Contents 1 = Primary work process
3 = Work process
4 = Communication process 
Description Indicates the run mode of the server process.
165 | Chapter 8 SNMP Support

MIB ID 6.1.1.14
Indicator SrvDBState
Type INTEGER {online(1), offline(2)}
Contents 1 = Automation Engine is connected to the AE database
2 = Automation Engine is not connected to the AE database
Description Indicates if the Automation Engine has a connection to the AE database.

MIB ID 6.1.1.15
Indicator SrvSDBState
Type INTEGER (1)
Contents 1 = SDB working correctly
Description Gives information on the availability of the status database (SDB).

8.6.8 Agent Group


MIB ID 7
Indicator Agent group
Generated/removed There is an entry in the following table for each agent in an AE system. If there is
more than one server within the system, the entries of the agents for each of
these server processes are completed in this way.
Description This group contains the description of the agents in all AE systems.

MIB ID 7.1
Indicator exekutorTable
Type SEQUENCE OF exekutorEntry
Index (exeSysID, exeSrvName, exeName, exeType)
Description This table contains all agents.

MIB ID 7.1.1
Indicator exekutorEntry
Type ExekutorEntry
Generated/Removed Starts a server process - a table entry is created for each agent known to the
system. If agents are added or removed, or if their status changes (exeState),
the table is completely deleted and recreated for every existing agent in the
system.
Belongs to AE system exeSysID and Automation Engine exeSrvName.
Chapter8 SNMP Support | 166

MIB ID 7.1.1.1
Indicator exeSysID
Type DisplayString (SIZE (0..8))
Description Name of the AE system to which the agent has established a connection.
Value of the parameter "system=" from the INI file of the Automation Engine.

MIB ID 7.1.1.2
Indicator exeSrvName
Type DisplayString (SIZE (0..8))
Description Name of the primary work process with which the agent is connected.

MIB ID 7.1.1.3
Indicator exeName
Type DisplayString (SIZE (0..8))
Description Name of the agent.
Value of the parameter "name=" from the INI file of the agent.

MIB ID 7.1.1.4
Indicator exeType
Type DisplayString (SIZE (0..8))
Description Type of agent (EX_JOB).

MIB ID 7.1.1.5
Indicator exeLastModifyTime
Type DisplayString (SIZE (0..19))
Description Time of the last update of this table entry.

MIB ID 7.1.1.6
Indicator exeHost
Type DisplayString (SIZE (0..8))
Description Name of the agent.
Value of the parameter "name=" from the INI file of the agent.

MIB ID 7.1.1.7
Indicator exeVersion
167 | Chapter 8 SNMP Support

Type DisplayString (SIZE (0..5))


Description Version of the agent.

MIB ID 7.1.1.8
Indicator exeHardware
Type DisplayString (SIZE (0..20))
Description CPU type which the agent determines from the system environment variables.

MIB ID 7.1.1.9
Indicator exeSoftware
Type DisplayString (SIZE (0..20))
Description Operating system which the agent determines from the system environment variables.

MIB ID 7.1.1.10
Indicator exeSoftwareVers
Type DisplayString (SIZE (0..20))
Description Version of the operating system which the agent determines from the system environment
variables.

MIB ID 7.1.1.11
Indicator exeJCLTyp
Type DisplayString (SIZE (0..8))
Description Job Control Language (JCL) used for job generation.
Value of the parameters "UC_HOST_JCL_VAR" from the INI file of the agent.

MIB ID 7.1.1.12
Indicator exeConnTime
Type DisplayString (SIZE (0..19))
Description Time of the agent's last connection setup to the server process.

MIB ID 7.1.1.13
Indicator exeState
Type INTEGER {run(1), ended(2), lost(3), timeout(4)}
Chapter8 SNMP Support | 168

Index 1 = Running
2 = Ended normally or not yet started
3 = Connection to the server process canceled
4 = No answer despite existing connection
5 = Agent object was deleted
Description Status of the agent at the time of the last update.

MIB ID 7.1.1.14
Indicator exeLastPing
Type DisplayString (SIZE (0..19))
Description Time of the last sign of life from the agent.

MIB ID 7.1.1.15
Indicator exeMonitoring
Type INTEGER {yes(1), no(2)}
Index 1 = Availability of the agents is monitored.
2 = Availability of the agent is not monitored.
Description Indicates if the availability of the agent is being monitored. Monitoring of productive agents
is important.

MIB ID 7.1.1.16
Indicator exeInfo
Type DisplayString
Description Not currently used.

8.6.9 Blocking Points Group


MIB ID 8
Indicator Blocking point group 
Generated/Removed There is an entry for each blocked task in the following table. The table entry
exists until the block is released or the workflow is canceled.
Description This group contains the description of all blocked tasks. The description contains
information on the task which caused the block as well as information on the
workflow which has been consequently blocked.

MIB ID 8.1
Indicator blockingPointsTable
169 | Chapter 8 SNMP Support

Type SEQUENCE OF blockingPointEntry


Index (blkSysID, blkClient, blkJPRunNr, blkJPLNR)
Description This table contains all blocked tasks in the AE system.

MIB ID 8.1.1
Indicator blockingPointEntry
Type BlockingPointEntry
Generated/Removed The entry is created if a task blocks and stays supported until the task continues
or is canceled.
Description AE system in blkSysID

MIB ID 8.1.1.1
Indicator blkSysID
Type DisplayString (SIZE (0..8))
Description Name of the AE system in which the blocking occurs.

MIB ID 8.1.1.2
Indicator blkClient
Type INTEGER (0..9999)
Description Number of the client in which the blocking occurs.

MIB ID 8.1.1.3
Indicator blkJPRunNr
Type INTEGER
Description RunID of the workflow in which the blocking occurs.

MIB ID 8.1.1.4
Indicator blkJPLNR
Type INTEGER
Description Number of line in which the blocked task is found within the workflow.

MIB ID 8.1.1.5
Indicator blkLastModifyTime
Type DisplayString (SIZE (0..19))
Description Time of the last update of this table entry.
Chapter8 SNMP Support | 170

MIB ID 8.1.1.6
Indicator blkJPName
Type DisplayString (SIZE (0..200))
Description Name of the blocked workflow.

MIB ID 8.1.1.7
Indicator blkObjTyp
Type DisplayString (SIZE (0..8))
Description Object type of the task which triggered the block.

MIB ID 8.1.1.8
Indicator blkObjName
Type DisplayString (SIZE (0..200))
Description Name of the task which triggered the block.

MIB ID 8.1.1.9
Indicator blkObjRunNr
Type INTEGER
Description RunID of the task which triggered the blocking.

8.6.10 Notification Group


MIB ID 9
Indicator Notification group
Generated/Removed The table entry exists until the notification has been acknowledged.
Description This table contains all active notifications.

MIB ID 9.1
Indicator NotificationTable
Type SEQUENCE OF NotificationEntry
Index (coSysID, coClient, coRunNr)
Description This table contains all active notifications.
171 | Chapter 8 SNMP Support

MIB ID 9.1.1
Indicator NotificationEntry 
Type NotificationEntry
Generated/Removed When AE sends a notification trap, an entry is created.
If the status of the notification changes, the entry is updated.
The entry is removed if the notification is acknowledged. 
Description AE system coSysID and client coClient.

MIB ID 9.1.1.1
Indicator coSysID
Type DisplayString (SIZE (0..8))
Description Name of the AE system in which the notification has been activated.

MIB ID 9.1.1.2
Indicator coClient 
Type INTEGER (0..99)
Description Number of the client in which the notification has been activated.

MIB ID 9.1.1.3
Indicator coRunNr 
Type INTEGER
Description RunID of the notification.

MIB ID 9.1.1.4
Indicator coLastModifyTime 
Type DisplayString (SIZE (0..19))
Description Time of the last update of this table entry.

MIB ID 9.1.1.5
Indicator coName 
Type DisplayString (SIZE (0..200))
Description Name of the notification.
Chapter8 SNMP Support | 172

MIB ID 9.1.1.6
Indicator coTyp 
Type INTEGER {question(1), message(2), alarm(3)}
Contents 1 = Request
2 = Message
3 = Alert
Description Type of notification.

MIB ID 9.1.1.7
Indicator coText 
Type DisplayString (SIZE (0..255))
Description Message text of the notification.

MIB ID 9.1.1.8
Indicator coState 
Type INTEGER
Contents 1542 = Calling - Calling the notification
1556 = Escalated - Notification is escalated
1553 = Accepted - CallOperator accepted
Description Current status of the notification.

8.6.11 Generated SNMP Traps


SNMP Traps with fixed trap codes are generated by AE so that the management system actively informs
about status changes or special conditions of AE. In addition to the Trap, the Automation Engine for
Windows can generate an event which is displayed in the application log of the Windows Event Viewer.
This requires the parameter snmp=2 to be set in the AE INI file. 

Overview of Traps

Trap Code Description


3400 Automation Engine started
3401 Automation Engine terminated
3410 Automation Engine ended abnormally
3536 Serious error when accessing the AE database. Access no longer possible.
3538 Connection to the AE database re-established
11603 Shutting down an agent
173 | Chapter 8 SNMP Support

11604 Cold start of an agent


11622 Warm start of an agent
11650 Connection to an agent disconnected
11652 SAP agent not longer connected to SAP system
11662 SAP agent is reconnected to SAP system
11801 System error of the Automation Engine
11818 Primary server has changed
801450 Message of a notification
xxxxxx User-defined SNMP Traps

Description of Traps

The individual SNMP Traps and their parameters are described below.

Trap Code 3400


Description Automation Engine started
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"
AgentWorkInteger1 Status of the Automation Engine:
1 = running
AgentWorkInteger2 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap Code 3401


Description End of a work of dialog process (regardless of the reason) or normal end of the
primary work process
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"
AgentWorkInteger1 Status of the Automation Engine:
2 = Ended normally
AgentWorkInteger2 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap Code 3410


Description Primary work process (PWP) ended abnormally
Chapter8 SNMP Support | 174

Note In addition to the Trap, an event is always generated in the application log of the
Windows Event Viewer. This entry to the application log is even made when
snmp=2 has been defined.
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"
AgentWorkInteger1 Status of the Automation Engine:
2 = Signal for abnormal end received
3 = any other abnormal termination
AgentWorkInteger2 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap Code 3536


Description Serious error when accessing the AE database. Access no longer possible.
Note This Trap is sent every 10 seconds until the database re-connects.
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"
AgentWorkString1 Error text of the ODBC driver

Trap Code 3538


Description Connection to AE database re-established
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"

Trap Code 11603


Description Shutting down an agent
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of AE the system"."Name of the Automation Engine"."Name of the
agent"."Type of the agent"
AgentWorkString1 Name of the agent
AgentWorkInteger1 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap Code 11604


Description Cold start of an agent
175 | Chapter 8 SNMP Support

AgentWorkSysID Name of the AE system


AgentWorkObject "Name of the AE system"."Name of the Automation Engine"."Name of the
agent"."Type of the agent"
AgentWorkString1 Name of the agent
AgentWorkInteger1 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap Code 11622


Description Warm start of an agent
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of AE the server"."Name of the agent"."Type
of the agent"
AgentWorkString1 Name of the agent

Trap-Code 11650
Description Ends connection to an agent
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"."Name of the
agent"."Type of the agent"
AgentWorkString1 Name of the agent
AgentWorkInteger1 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap-Code 11652
Description SAP agent not longer connected to SAP system
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"."Name of the
agent"."Type of the agent"
AgentWorkString1 Name of the agent
AgentWorkInteger1 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap-Code 11662
Chapter8 SNMP Support | 176

Description SAP agent reconnected to SAP system


AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Name of the Automation Engine"."Name of the
agent"."Type of the agent"
AgentWorkString1 Name of the agent
AgentWorkInteger1 Run mode of the Automation Engine:
1 = Primary
3 = Normal
4 = Communication process

Trap Code 11801


Description System error of the Automation Engine
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of AE system"."Name of the Automation Engine"."Name of  the kernel
function"
AgentWorkString1 Text of the error message
AgentWorkInteger1 Number of the error message

Trap-Code 11818
Description Primary Server has changed
Note Note
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of AE system"."Name of the Automation Engine"
AgentWorkInteger1 Previous mode
AgentWorkInteger2 New mode

Trap Code 801450


Description Message of a notification
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system"."Client"."RunID"
AgentWorkString1 Name of the notification
AgentWorkString2 Message text of the notification
177 | Chapter 8 SNMP Support

AgentWorkInteger1 Status of the notification (as in the message file UC.MSL):


1542 = Calling
1553 = Accepted
1556 = Escalated
1800 = ENDED_NOT_OK - Aborted
1850 = ENDED_CANCEL - Canceled.
1852 = Rejected
1856 = ENDED_ESCALATED - Aborted by Escalation.
1900 = ENDED_OK - Ended normally.
1901 = Confirmed

Aside from the SNMP Traps generated by the system, user-defined Traps can be generated with the script
statement  :SEND_SNMP_TRAP. Trap codes generated by AE and the AE.Connect for HP OpenView
NNM (Trap codes: 10000 - 10010) cannot be used as user-defined SNMP Traps!

Trap Code xxxxxx


Description User-defined SNMP Traps
AgentWorkSysID Name of the AE system
AgentWorkObject "Name of the AE system". "Name of the Automation Engine"
AgentWorkString1 User-defined
AgentWorkString2 User-defined
AgentWorkString3 User-defined
AgentWorkString4 User-defined
AgentWorkString5 User-defined
AgentWorkInteger1 User-defined
AgentWorkInteger2 User-defined
AgentWorkInteger3 User-defined
AgentWorkInteger4 User-defined
AgentWorkInteger5 User-defined

8.7 Net-SNMP License


Various copyrights apply to this package, listed in various separate parts below. Please make sure that
you read all the parts. Up until 2001, the project was based at UC Davis, and the first part covers all code
written during this time. From 2001 onwards, the project has been based at SourceForge, and Networks
Associates Technology, Inc hold the copyright on behalf of the wider Net-SNMP community, covering all
derivative work done since then. An additional copyright section has been added as Part 3 below also
under a BSD license for the work contributed by Cambridge Broadband Ltd. to the project since 2001. An
additional copyright section has been added as Part 4 below also under a BSD license for the work
contributed by Sun Microsystems, Inc. to the project since 2003.

Code has been contributed to this project by many people over the years it has been in development, and a
full list of contributors can be found in the README file under the THANKS section.

---- Part 1: CMU/UCD copyright notice: (BSD like) -----

Copyright 1989, 1991, 1992 by Carnegie Mellon University

Derivative Work - 1996, 1998-2000


Chapter8 SNMP Support | 178

Copyright 1996, 1998-2000 The Regents of the University of California

All Rights Reserved

Permission to use, copy, modify and distribute this software and its documentation for any purpose and
without fee is hereby granted, provided that the above copyright notice appears in all copies and that both
that copyright notice and this permission notice appear in supporting documentation, and that the name of
CMU and The Regents of the University of California not be used in advertising or publicity pertaining to
distribution of the software without specific written permission.

CMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL CMU OR THE REGENTS OF THE
UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM THE LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.

---- Part 2: Networks Associates Technology, Inc copyright notice (BSD) -----

Copyright (c) 2001-2003, Networks Associates Technology, Inc

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:

l Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
l Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
l Neither the name of the Networks Associates Technology, Inc nor the names of its contributors can
be used to endorse or promote products derived from this software without specific prior written
permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

---- Part 3: Cambridge Broadband Ltd. copyright notice (BSD) -----

Portions of this code are copyright (c) 2001-2003, Cambridge Broadband Ltd.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:

l Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
179 | Chapter 8 SNMP Support

l Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
l The name of Cambridge Broadband Ltd. cannot be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---- Part 4: Sun Microsystems, Inc. copyright notice (BSD) -----

Copyright © 2003 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A.

All rights reserved.

Use is subject to license terms below.

This distribution can include materials developed by third parties.

Sun, Sun Microsystems, the Sun logo and Solaris are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:

l Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
l Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
l Neither the name of the Sun Microsystems, Inc. nor the names of its contributors can be used to
endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

---- Part 5: Sparta, Inc copyright notice (BSD) -----

Copyright (c) 2003-2006, Sparta, Inc

All rights reserved

Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:
Chapter8 SNMP Support | 180

l Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
l Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
l Neither the name of Sparta, Inc nor the names of its contributors can be used to endorse or promote
products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

---- Part 6: Cisco/BUPTNIC copyright notice (BSD) -----

Copyright (c) 2004, Cisco, Inc and Information Network Center of Beijing University of Posts and
Telecommunications.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:

l Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
l Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
l Neither the name of Cisco, Inc, Beijing University of Posts and Telecommunications, nor the
names of their contributors can be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

---- Part 7: Fabasoft R&D Software GmbH & Co KG copyright notice (BSD) -----

Copyright (c) Fabasoft R&D Software GmbH & Co KG, 2003

oss@fabasoft.com

Author: Bernhard Penz


181 | Chapter 8 SNMP Support

Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:

l Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
l Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
l The name of Fabasoft R&D Software GmbH & Co KG or any of its subsidiaries, brand or product
names cannot be used to endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Chapter9 AE and Target Systems | 182

9 AE and Target Systems

9.1 AE and BS2000

9.1.1 BS2000 Text Archive


Initial Situation
It happens now and then that BS2000 files should be transported with other means than BS2000 data
carriers. Means such as disks, CDs and in particular the electronic transfer would be appropriate. Text
files (SAM, record length max. 255) can in the meantime easily be transported because a text-file transfer
is usually available between PC and BS2000 (in the worst case via EDP file transfer) in each BS2000
installation.

Nevertheless, transporting binary files (LMS libraries, programs etc.) is very problematic. FTP can be used
to transport programs in binary mode but unfortunately, they then consist of 2 additional PAM pages (they
function, though). LMS libraries such as ISAM files and the like cannot be transferred because the FCB is
not restored. Furthermore, FTP in BS2000 is liable to costs (TCP/IP-AP). This topic has become important
for AE because the BS2000 files are supplied on CD.

The Solution: BS2000 Text Archive

Integration into BS2 TOOLS

Starting with BS2 TOOLS Version 2.00W files can now be assumed to a text archive and text archives
unpacked.

l Assuming any file (especially a binary file) to a text archive:

Action Code "C+" in front of the binary file


Select the target text archive using the K3 key.
Select "Overwrite=E" for enlarging the text archive (several files in a text archive).
This process can take a while when large files are concerned.
l Unpacking a text archive:

Action Code "TAR" in front of a text archive generates the files in the own user ID.

Program BS2 TAR

This program unpacks a text archive to the own User ID. It is required for all transfers made in the form of
text archives.

No license is required for the program BS2 TAR (FREEWARE). It is supplied in the MUSTERLIB of all
existing systems. It can also be obtained from all Sales Partners.

The supplied TAR files whose names include "NK4" are for NK4 pubsets and can also be unpacked using
the program BS2 TAR.
183 | Chapter 9 AE and Target Systems

l Unloading a text archive:

/FILE from file, LINK=TAR


/EXEC BS2-TAR

AE Installationation CD

The program BS2 TAR can be obtained in two ways from the folder IMAGE:TOOLS\BS2_TAR :

BS2-TAR.BIN

The file  BS2-TAR.BIN contains the program BS2 TAR. This program was transferred via FTP in binary
mode and can also be re-transferred to BS2000 via FTP:

FTP
OPENBS2000 computer
user id (TSOS)
password
account
BIN
PUT BS2-TAR.BIN
BYE

In BS2000:

/CAT BS2-TAR.BIN,BS2-TAR,STATE=U,SHARE=YES,ACCESS=READ

BS2-TAR.TAR

The latest version of the program BS2 TAR in TAR format.


This version requires BS2 TAR already been installed on BS2000 computer.

The file is transferred to BS2000 in text mode using any file transfer and unpacked in BS2000 with BS2
TAR:

/FILE BS2-TAR.TAR,LINK=TAR
/EXEC BS2-TAR

9.1.2 Automation Engine/Agent - BCIN for Connection Set


Up
A TCP/IP connection of a BS2000 agent with another component requires this component's IP address to
be known in the BS2000 agent.

l Communication between a Automation Engine and a BS2000 agent is carried out via TCP/IP
connection.

Information and internal protocol are exchanged.


The IP address of the server computer be made known to the BS2000 with /BCIN!

l If a file transfer is initiated to/from a BS2000 agent, the participating agents set up a TCP/IP
connection between each other.

BS2000 must recognize the file transfer of the BS2000 agents.


Define the IP address of the host (Computer of the file transfer partners) with /BCIN.
Chapter9 AE and Target Systems | 184

9.1.3 BS2000 Agent - File Transfer Support


The BS2000 agent supports all file transfer functions such as the transfers of text and binary files or file
transfers with wildcard characters.

File Attributes for Destination


When defining a FileTransfer object, you can also specify file attributes for the destination in
the FileTransfer tab. All file attributes which comply with the file command can be used. They are entered
in a separate text field. Several file attributes need to be separated with commas:

Text mode:
FCB=SAM,LINK=UCEXSAM,SPACE=(300,300)

Binary mode:
SPACE=(300,300),BLKSIZE=STD,BLKCTRL=NO,FCB=PAM

Specified attributes replace default values or are added to the command.

Specifying an attribute means that the default-file command in the agent is overwritten. The
specification of SPACE= would result in a SAM file with RECFORM=FIX, for example. In this case,
the attribute RECFORM is also required if you use RECFORM=V.

The Siemens FT BS2000 can also be used to create ISAM files. Example:

FCB=ISAM,BLKCTRL=DATA,RECFORM=V,KEYPOS=5,KEYLEN=8

Example

RECSIZE=50,VOLUME=PRIVATE,SPACE=(100,100)

Library Elements As Source and Destination


Elements of LMS libraries (PLAM) can be a file transfer's source and destination.

l Library elements can be transferred between two LMS libraries.


l A library element can be transferred as a file to any destination system.
l Text files can be transferred to an LMS library from any destination system.

The element should be specified in the following form:

*LIB(Library,Element(Version),Type)

The element version is optional. The highest version is read (source) or an element is written with version
"@" (target) if no version has been specified.

Examples

*LIB($RS.LMS.LIB,MY.ELEMENT,S)
+LIB($RS.LMS.LIB,MY.*,S)
185 | Chapter 9 AE and Target Systems

Keeping the Original Attributes


To assume the attributes of source files to destination files, use the option Keep original file attributes in
the FileTransfer tab. This setting is only considered if source and destination agent are of a Automation
Engine version 9.00A or later (newfile transfer protocol). Source and destination platform must comply with
each other.

The following file attributes can be preserved in BS2000 file transfers:

Attributes Catalog Macro Attributes File Macro


l ACCESS l BLKCTRL
l ACLPROT l BLKSIZE
l BACKUP l DUPEKY
l BASACL l FCBTYPE
l CCS l KEYLEN
l DESTROY l KEYPOS
l EXDATE l RECFORM
l GROUPAR l RECSIZE
l GUARDS l RETPD
l LARGE l SPACE
l OTHERAR
l OWNERAR
l RETPD
l SHARE

Note that the file transfer must not include additional attributes for the destination file if this setting is
used. Otherwise, an error will occur.

Limitations to File Transfers with PAM Files


Keep the following limitations in mind:

l The BS2000 agent sends the file: If the PAM file is available in Non-Key (NK) format without an end
being marked, the last page is ignored and the file is read to the file size.
l The BS2000 agent receives the file: When writing a PAM file, an end marker (additional logical
block) is attached. This block can occasionally disturb (in particular cases even destroy) file
structures.

9.1.4 Utility for RFC Tasks


The supplied files for the BS2000 agent include the utility UCYBRFC? for RFC tasks.

The INI file of the agent contains the section "[RFC]" with the parameter "LOGON". If this parameter is set
to "1", the agent generates a batch job with the specified User ID when executing a file transfer with a
specified User ID. In this batch job, the service program UCYBRFC? is called. It connects to TCP/IP via
the port that has been defined in the section [RFC] with the parameter "PORT". This connection enables
the agent to check the specified user's access rights for the particular file. As this method causes a
performance loss for the agent, the RFC tasks are kept available for further file transfers. Only if an RFC
task has received no queries for a specified period of time (parameter TIMEOUT=), it ends automatically.
When the agent ends, all the corresponding RFC tasks end as well.

The file UCYBRFC? must be shareable when the RFC mechanism is activated.
Chapter9 AE and Target Systems | 186

9.1.5 Agent - Freely Defined Port Numbers


Free port number are usually supplied in the DCSOF with the parameter "Freeport". By default, the first
free  port number is 4096.

The BS2000 agent does not work with a fixed port number which is written in to its INI file. The agent
requests a free port number when it establishes a connection to the Automation Engine.

If the BS2000 agent is automatically loaded after a successful test start of the host, please make sure
that its required free port number is not in conflict with other settings.

Example:

The test results in the following constellation:

1. An application which uses the port number 4096 via /BCMAP command is already running.
2. The BS2000 agent is started manually and obtains the next free port number (e.g.: 4097).
3.Result: Both, the application and the agent work correctly.

After the tests, the BS2000 agent starts automatically and is loaded before the application.

1. The BS2000 agent obtains the first free port number 4096.
2. The application to which this port number has been assigned on a fixed basis via a /BCMAP command
cannot start.

9.1.6 BS2000 Console Command


The creation, the forming up and the processing of a data sequence is a complex process whereby script
functions and statements as well as special objects cooperate closely.

The following example shows the necessary definitions for the involved objects and the corresponding
script statements and their reference.
The example is kept small and clear to show the principles. It demonstrates how a BS2000 Console
Command is executed from a job and how the result is written line-by-line to the job's activation report.

To execute a BS2000 Console Command the utility UCYEBXXZ must be installed on the host.

Job: SC.PROCESS.BS2000UCON
187 | Chapter 9 AE and Target Systems

The script of the job calls the function PREP_PROCESS which prepares the processing of the data
sequence. The following parameters are passed:

l Name of the computer on which an event job shall be executed - in this case: C70.
l Type of the event job, that shall be executed - in this case BS2000UCON.
By specifying BS2000UCON, the job EVENT.BS2000UCON will be executed.
By default, the event jobs EVENT.BS2000.CMD, EVENT.BS2000UCON, EVENT.UNIXCMD,
EVENT.UNIXFS and EVENT.WINCMD are supplied with client 0000. They can be used as they
are or as a template for your own event jobs.
l The third function parameter was omitted. This means that by using the default value "*" as filter, all
output lines from the console command will be taken into account.
l The script variable &CMD of the event job is supplied with the value BCDISP DISP=O.
l The event job should execute this command on the console and thus list all active applications.

The job EVENT.BS2000UCON will then be started.

Job: EVENT.BS2000UCON
Chapter9 AE and Target Systems | 188

The job EVENT.BS2000UCON from client 0000 is supplied by default.

It is important that in its Attributes tab, the check box "Attribute dialog" is checked. That way the Include
object ATTRDIA.BS2000 is read, which normally causes the start of the Attribute Dialog.

Include: ATTRDIA.BS2000
189 | Chapter 9 AE and Target Systems

All attributes listed in the script of the Include can be supplied this way. The Attribute Dialog is not
displayed because passing the variable contents is done internally.

Job: EVENT.BS2000UCON

Now the job can log on and the console command can execute.

l The AE utility UCYEBXXZ starts in the signature $AE.


l The utility tries to establish one of the specified console connections.
l The command BCDISP DISP=O will be executed after the connection has been established
successfully.
l The completion message of the console command or the specified timeout of 120 seconds will
close the connection.

The outfile is transferred to the Automation Engine by using the file transfer and is then available as a data
sequence. The execution of the job EVENT.BS2000UCON is completed.

Job: SC.PROCESS.BS2000UCON
Chapter9 AE and Target Systems | 190

The function PREP_PROCESS returns a value which is a handle for information on the data sequence
that will be processed.

This value is passed to the statement :PROCESS as a start parameter. :PROCESS and
:ENDPROCESS then form a processing loop which, in this case, will be cycled until the end of the data
sequence is reached. During each iteration, a new line of the data sequence is fetched from memory. The
function GET_PROCESS_LINE can - by using the current value - retrieve the contents of the current line.

In the example, the current console line is written to the activation protocol.

The :STOP statement interrupts the execution and displays this activation report.

9.1.7 BS2000 Operating System Command


The creation, forming up and processing of a data sequence is a complex process whereby script
functions and statements, as well as special objects, cooperate closely.

The following example shows the necessary definitions for the involved objects and the corresponding
script statements and their reference.
The example is kept small and clear to show the principles. It demonstrates how a BS2000 Command is
executed from a job and how the result is written line-by-line to the job's activation report.

Job: SC.PROCESS.BS2000CMD
191 | Chapter 9 AE and Target Systems

The script of the job calls the function PREP_PROCESS which prepares the processing of the data
sequence. The following parameters are passed:

l Name of the computer on which an event job shall be executed - in this case: C70.
l Type of the event job to be executed - in this case BS2000CMD.
By specifying BS2000CMD, the job EVENT.BS2000CMD will be executed.
By default, the event jobs EVENT.BS2000.CMD, EVENT.BS2000UCON, EVENT.UNIXCMD,
EVENT.UNIXFS and EVENT.WINCMD are supplied with client 0000. They can be used as they
are or as a template for your own event jobs.
l The third function parameter was omitted. This means that by using the default value "*" as a filter,
all output lines from the console command will be taken into account.
l The script variable &CMD of the event job is supplied the value /STA P.
l The event job executes this command using the Login object AEADMIN.

The job EVENT.BS2000CMD will then be started.

Job: EVENT.BS2000CMD
Chapter9 AE and Target Systems | 192

This is the job EVENT.BS2000CMD from client 0000 supplied by default.

It is important that in its Attributes tab, the check box "Attribute dialog" is checked. That way, the Include
object ATTRDIA.BS2000 is read which normally causes the start of the Attribute Dialog.

Include: ATTRDIA.BS2000
193 | Chapter 9 AE and Target Systems

All attributes listed in the script of the Include can be supplied. The Attribute Dialog is not displayed
because passing of the variable contents is done internally.

Job: EVENT.BS2000CMD

Now the job can log on and the console command can execute.

l The scheduled command /STA P is stored in the script variable &CMD.


l SYSOUT is redirected to an output file and the command is executed.

The outfile is transferred to the Automation Engine by using the file transfer and is then available as a data
sequence. The execution of the job EVENT.BS2000CMD is completed.

Job: SC.PROCESS.BS2000CMD
Chapter9 AE and Target Systems | 194

The function PREP_PROCESS returns a value which is a handle for information on the data sequence
that will be processed.

This value is passed to the statement :PROCESS as a start parameter. :PROCESS and
:ENDPROCESS then form a processing loop which in this case, will be cycled until the end of the data
sequence is reached. During each iteration, a new line of the data sequence is fetched from the memory.
The function GET_PROCESS_LINE can retrieve the contents of the current line by using the current
value.

In the example, the current console line is written to the activation protocol.

The :STOP statement interrupts the execution and displays the activation report.

9.2 AE and Databases

9.2.1 Database Agent


One of AE's components is an agent that can be used to establish connections to databases. It facilitates
the execution of SQL statements in these databases without an external command line tool being required.
In doing so, security is increased and database administration simplified. In addition to typical SQL
statements such as SELECT or UPDATE, the agent can process database-specific commands and
stored procedures in the database.

The Job object includes an editor that makes it easy to specify SQL statements. Additionally it
displays database tables and columns.

The result of the SQL statements are stored in a job report which can be read using the script statement
PREP_PROCESS_REPORT. If an error occurs during job execution or if the job aborts, the agent cancels
195 | Chapter 9 AE and Target Systems

all SQL statements until the last COMMIT. The Job object provides many possible ways to configure the
execution of SQL statements.

The AE agent for databases currently supports Oracle, MSSQL, DB2 and MySQL.

See also:

Form tab

9.2.2 Connection to Oracle Databases


The database agent can connect either to an Oracle Database instance or to Oracle RAC nodes.

Single Instance Oracle Connections

This is the standard connection method. The Database can only connect to an Oracle Database instance.
The Job object contains the relevant connection data.

The database agent's INI-file parameter useOraClient= (section [SQL]) must be set to the value "0".

Oracle RAC connections

The database agent can connect itself to Oracle RAC nodes. The Oracle file tnsnames.ora contains the
relevant connection data. It is not necessary to fill in the field "Server" in the Job object's SQL tab.

The agent's connection information itself has to be defined by using Connection objects (e.g. in SQL
variables). In the Connection object you would use Oracle or Oracle OCI as connection type.

The following steps are required in addition to installing the database agent:

1. Set the database agent's INI-file parameter useOraClient= to the value "1".
2. Install the Oracle Client or the Oracle Instant Client on the database agent's computer. Several
packages are available for the Oracle Instant Client. The database agent requires the "Basic"
package.
3. When using the Oracle Instant Client, set two environment variables. Include the Oracle Instant
Client's installation directory in the environment variable PATH (for Windows) or LD_LIBRARY_
PATH (for UNIX). The environment variable TNS_ADMIN must point to the directory in which the
file tnsnames.ora is stored.

Example for the file tnsnames.ora:


APPL_DB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db-server01)
(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = db-server02)(PORT =
1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_
NAME = APPLDB.CUSTOMER.COM) ) )

For this example, the name "APPL_DB" must be specified in the Job object's field Database.
Chapter9 AE and Target Systems | 196

9.2.3 Stored Procedures in Sybase


The execution of stored procedures requires an additional command.

Use the following lines to call a stored procedure:


execute sp_procxmode 'procedure name','anymode';
execute procedure name;
The following error message is displayed if an attempt is made to execute a stored procedure directly:

"Stored procedure 'procedure name' can be run only in unchained transaction mode. The 'SET CHAINED
OFF' command will cause the current session to use unchained transaction mode."

The command "SET CHAINED OFF" cannot be called because of the JDBC driver. Use the command
sp_procxmode instead.

9.2.4 Stored Procedures in MS SQL Server


The AE database agent can be used to process Stored Procedures for MS SQL.

RETURN

The statement RETURN can return a number. This return code can then be written to the job report (see
example below). The name of the stored procedure is ANGTEST.
SQL_SET_STATEMENT_TERMINATOR TERM='!';
DECLARE @result int;
EXEC @result = ANGTEST;
select @result;!

A separator other than the semicolon is automatically used because this character has already been
used within the statement.

The job ends normally regardless of its return code. If you intend to change a job's end status, you can
read the corresponding value in the job report and react to it using :MODIFY_STATE.

PRINT

The statement PRINT facilitates the output of messages to a user (example: DBCC CHECKDB). These
messages are also written to the job report. Job execution continues as usual.

RAISE ERROR

Causes the job to be aborted. The error message is written to the activation report.

See also:

Form tab
Process tab
PREP_PROCESS_REPORT
197 | Chapter 9 AE and Target Systems

9.2.5 ILM - Partition Key Turnaround


Partitioning the AE database by using ILM results in a very specific situation when the maximum RunID
(tasks, statistical records) is reached. How quickly this limit is reached depends on the number of tasks
that are started on a regular basis. To solve this problem, the system executes a special procedure in such
a situation which is referred to as Partition Key Turnaround.

General Information
Statistical entries (for executed tasks) are stored in the AH table which also includes the corresponding
RunIDs in the AH_Idnr column. From a technical point of view, this column's values are 32-bit numbers
and the maximum value that can be reached is 2,147,483,647. All numbers below 1,000,000 are reserved
for specific processes.
Therefore, the allowed values for the RunIDs of statistical records range from: 1,000,000 to 2,147,483,647.

You will rarely ever reach this limit in AE systems that include a low number of regularly executed tasks.
By using a huge number of daily activities (~1,000,000), you can already reach this limit after a few years.

Partition Change
For general information about ILM and partition changes click here.

The database always keeps a certain number of partitions online. You can determine this number by
specifying the setting ONLINE_PARTITIONS in the variable UC_ILM_SETTINGS.

Using AE with ILM means that each partition is limited by a maximum key value. Only the current partition
is open ended and not limited by a maximum value. This partition uses a specific virtual value: NULL for
MS SQL Server and MAXVALUE for Oracle databases.

A partition change means that a new partition is inserted in the current partition's (virtual) upper limit and
the oldest partition is deleted. In Oracle, you can directly delete the partition; the MS SQL Server needs a
staging table for this purpose.

Partition Key Turnaround Mode


The system automatically and regularly checks the maximum RunID usage of all the existing partitions
and stores the result in the MAX_ENTRIES key of the variable UC_ILM_SETTINGS. For a partition
change, the system checks the currently highest RunID and calculates whether less than three times the
specified value of MAX_ENTRIES can be used until the limit is reached. If so, the system automatically
activates Partition Key Turnaround Mode.

With this special mode active, the new partitions are now inserted in the lower number range (starting with
1,000,000) and numbering starts from the beginning. This specific mode remains active until all partitions
that include the upper number ranges have been removed and a constant value range up to 2,147,483,647
has become available again.

Partitioning in Oracle differs from partitioning in MS SQL Server databases, and therefore their Partition
Key Turnaround patterns are also different. Thus the processes are written per database type.

Oracle

Base scenario:

Maximum usage (MAX_ENTRIES): 1,000,000


Currently highest RunID: 2,145,000.000
Online partitions: 4
Chapter9 AE and Target Systems | 198

Partition Upper limit


P11 2,142,483,647
P12 2,143,483,647
P13 2,144,483,647
P14 MAXVALUE

Technically, P11 ranges from 1,000,000 to 2,142,483,647, but logically it ranges from 2,141,483 647 to
2,142,483,647 because only data records are written to this AE section.

The partition should now be changed. The difference between the currently highest RunID (2,145,000,000)
and the maximum value (2,147,483,647) is less than three times the value of MAX_ENTRIES (1,000,000);
therefore, the system switches to Partition Key Turnaround Mode:

The oldest partition (P11) is split and a new partition (P15) is inserted in the lower number range (starting
with 1,000,000). The upper limit of the new partition is three times the maximum value. In our case, the
new partition's (P15) upper limit is 4,000,000.

When P15 has been inserted, the system removes the oldest partition P11 and four partitions are then
online again.

This procedure is repeated when the next partition change takes place:

The new partition's upper limit is again three times the maximum value with the upper limit of P15 being the
starting point for the calculation. The currently oldest partition P12 is split at the value 7,000,000. In doing
so, the new partition P16 is created and P12 is removed.

This procedure is repeated until no more partitions are available in the upper number range. In our case,
this will happen after one further partition change (P17).

Deleting the open-ended partition P14 now has the effect that the system does not split the partition but it
inserts a new open-ended partition (P18) instead.

This ends Partition Key Turnaround Mode and the normal mode is activated again. The RunIDs are now
allocated starting with the lower number range.

The following applies:


199 | Chapter 9 AE and Target Systems

l A further partition change is required if the Partition Key Turnaround Mode is active.
l The old partitions must still be deleted in order to ensure that the ones that include the upper number
ranges are removed and the system can switch back to normal mode.
l Automic recommends monitoring the RunID usage in order to ensure that the limit of three times the
maximum value is not exceeded. The partition must be changed ahead of schedule if this limit
cannot be kept.

SQL Server

Base scenario:

Maximum usage (MAX_ENTRIES): 1,000,000


Currently highest RunID: 2,145,000,000
Online partitions: 4

Partition Upper limit


P1 2,142,483,647
P12 2,143,483,647
P13 2,144,483,647
P14 NULL

Because a lower limit is defined in MS SQL Server, the lowest partition P1 is empty. Technically, you can
use it, but logically it is empty because AE does not use it. It is not shown in the System Overview.

Therefore, the lowest logical partition is P12.

The last partition P14 is open ended.

The partition should now be changed. Partition Key Turnaround Mode is activated because the difference
between the highest RunID and the maximum limit lies below three times the value of MAX_ENTRIES.

MS SQL Server defines a lower limit. Therefore, the lowest partition P1 is split at 1,000,000 so that the
lower area also includes a partition. This lower area remains partition P1 and is reserved for the values
below 1,000,000. It is still not used. The split creates the new partition P15 which inherits the upper limit of
the previously smallest partition.
Technically, P15 now ranges from 1,000,000 to 2,142,483,647. However, this limit will continuously
change because of the partition changes that will take place.

The oldest partition P12 is then deleted, whereby P15 automatically inherits this partition's upper limit.
Technically, P15 now ranges from 1,000,000 to 2,143,483,647.
Chapter9 AE and Target Systems | 200

The next partition change splits the partition 15: P15 obtains the actual maximum usage value of 1,000,000
as its upper limit with the calculation starting at P1's upper limit. As a result, P15's upper limit is 2,000,000.
The oldest partition P13 is now deleted.
Technically, the new partition P16 ranges from 2,000,000 to 2,144,483,647 because it inherits the upper
limit of P13.

The current situation is:

With the last partition change, P16 obtains the actual maximum usage value and is split at 3,000,000.
Partition P14 is deleted and the new partition P17 is open ended. Partition Key Turnaround Mode ends and
the system runs in normal mode again.

The following applies:

l Make sure that the partitions are changed on a regular basis if the maximum usage value of
2,147,483,647 is almost reached.

9.3 AE and GCOS 8

9.3.1 GCOS8 Agent - File Transfer Support


The GCOS agent provides file transfer support for files with a particular format and specific attributes.

GFRC File Format


[GFRC] [UFF sequential] [UFF relative] [UFF indicated]

l Sequential file organization


l Sequential access mode
l Processing modes: input, output or extend
201 | Chapter 9 AE and Target Systems

Syntax

Input mode:

GFRC=media code[,RSZ=record length]

Output mode:

GFRC=media code[,RSZ=record length][,VLREC_NO/VLREC_SEG]

File attribute Description


(UFAS
attributes)
GFRC=media Enforces file organization in sequential GFRC format
code
Allowed values for the media code:

l "00" - no media conversion record or no printer slew controls


l "01" - binary card image
l "02" - BCD card image
l "06" - GFRC format ASCII (format used by the Time Sharing System)
l "10" - Time Sharing System information record
RSZ=record Maximum number of characters for read or written records.
length
Target platform GCOS8: default value for non-partitioned records is 80, for partitioned
ones it is 84.
Default values for all other platforms:

l Media-Code 0: 16384
l Media-Code 2: 1272
l Media-Code 6: 16384
l Media-Code 10: 1272
VLREC_NO Enforces the use of records of a fixed length
VLREC_SEG Variable record length that can be partitioned via one or several physical blocks

Example

GFRC=06,RSZ=70

UFF Sequential File Format


[GFRC] [UFF sequential] [UFF relative] [UFF indicated]

l Sequential file organization


l Sequential access mode
l Processing modes: input, output or extend
l Variable record length by default

Syntax

Input mode:

UFF_SEQ[,RSZ=record length]
Chapter9 AE and Target Systems | 202

Output mode:

UFF_SEQ[,RSZ=record length][,VLREC_NO/VLREC_SEG][,CISZ=size]

File Description
attribute
(UFAS
Attributes)
UFF_SEQ Enforces file organization in sequential UFF format
RSZ= Maximum number of characters for read or written records. This value affects the size of
record the Control Intervals (CI) which is selected for output files. A CI size of 1K is used if the
length maximum record size is 2000 or less. Record sizes above 2000 cause the creation of CIs
with a record length of 4K. The default value is 80.
VLREC_ Enforces the use of records of a fixed length
NO
VLREC_ Variable record length that can be partitioned via one or several physical blocks
SEG
CISZ=size Sets the size of the Control Intervals (in Bytes)

Example

UFF_SEQ,RSZ=100

UFF Relative File Format


[GFRC] [UFF sequential] [UFF relative] [UFF indicated]

l Relative file organization


l Sequential or random access mode
l Processing modes: input, output or extend
l Fixed record lengths

Syntax

Input mode:

UFF_REL[,RSZ=record length]

Output mode:

UFF_REL[,RSZ=record length][,CISZ=size]

File attribute Description


(UFAS Attributes)
UFF_REL Enforces file organization in relative UFF format
RSZ=record length Maximum number of characters for read or written records. The default value is 80.
CISZ=size Sets the size of the Control Intervals (in Bytes)
203 | Chapter 9 AE and Target Systems

Example

UFF_REL,RSZ=120,CISZ=8192

UFF Indicated File Format


[GFRC] [UFF sequential] [UFF relative[UFF indicated

l Indicated file organization


l Sequential or random access mode
l Processing modes: input, output or extend
l Fixed record lengths

Separate the two names for the file and the index file with a semi-colon.

Syntax

Input mode:

UFF_IND[,KEY=(duplicates,offset,length)][,KNR=key number][,RSZ=record length]

Output mode:

UFF_IND,KEY=(duplicates,offset,length)[,RSZ=record length][,CISZ=size]

File attribute Description


(UFAS attributes)
UFF_IND Enforces file organization in indicated UFF format
RSZ=record length Maximum number of characters for read or unwritten records. The default value
is 80.
KEY=( Defines a key for the inidicated files:
duplicate,offset,length
l Duplicates - show whether duplicate keys are allowed for the key
)
definition.

Allowed values:
"0" - the key does not contain duplicates
"1" - the key can contain duplicates
l Offset - offset in records (Bytes)
l Length - key length (Bytes)

It is possible to define more than one key. The first entry is the primary key.
Set the parameter "duplicate" to 0 in order to avoid the use of double keys.
The entries ranging from the second to the nth one stand for the n-1 varying
keys. Using this attribute is obligatory.
KNR=key number Defines the key that is used as reference key when searching the record to be
read. This entry corresponds to the key definition's array element (basis 1) in
the KEY_DESC structure which is used to open the file. The default value is 1 -
i.e. the primary key.
CISZ=size Sets the sizes of the Control intervals (in Bytes).
Chapter9 AE and Target Systems | 204

Example

UFF_IND,KEY=(0,0,20)

See also:

FileTransfer tab

9.3.2 Monitoring Abnormal Job-Messenger Ends


The following description includes information about the GCOS8 Job Messenger and how an abnormal Job
Messenger end can be identified.

The GCOS8 agent uses three Job Messengers to obtain information about job states:

1. Start messenger (for job starts)


2. End messenger (for job ends)
3. Report messenger (for job reports)

If available, the report messenger is generated by the RSM system. GCOS8 jobs are finished after the job
report has been created. The RSM system retrieves the report from the SYSOUT, then the agent is
informed that the job report is ready to be transported to the AE system.

Messenger programs are vital for the execution of jobs. AE can be used to react to an abnormal job-
messenger ending.

The program Switch Word (PSW) is used to send information about an abnormal Job Messenger end. This
program has a 36-bit memory area. The bits between 0 and 17 are reserved for the GCOS8 system. The
remaining bits from 18 to 35 can be used in any which way. In order to display its status, the Job
Messenger uses only one bit. This bit is defined using the parameter SW=bit number. Set the selected bit
with the JCL statement $SET. With this configuration the Job Messenger is able to check whether the bit
is in status ON. It sets it to OFF as soon as it is able to end normally. If the status remains ON, the Job
Messenger has ended abnormally.

Ensure that no other applications already use the selected bit.

Procedure

The following descriptions use bit number 18. However, you can use any bit between 18 and 35 that has
not yet been used. Proceed as follows to activate Job Messenger monitoring.

Start messenger:

1. Open the Header-Include object HEADER.GCOS8.


2. Insert the $SET statement and the job-messenger parameter SW=. The illustration below shows
the relevant areas in a red frame.
3. The area where the bit status is checked is also shown in a frame. The start messenger has ended
abnormally if it is still set; therefore, the job will be canceled. Additional statements can also be
inserted.
205 | Chapter 9 AE and Target Systems

End messenger:

1. Open the Trailer-Include object TRAILER.GCOS8.


2. Use the same configuration as for the start messenger. Insert the $SET statement and the job-
messenger parameter SW=. The illustration shows these areas in a red frame.
Chapter9 AE and Target Systems | 206

Report messenger:

Refer to the RSM Documentation for detailed information about how to adjust the report messenger.

9.4 AE and J2EE/JMX

9.4.1 J2EE/JMX Agent


Java Management Extensions (JMX) is a technology which provides the instruments required for
managing and monitoring applications, devices and networks. The Automation Engine supplies an agent
for J2EE/JMX which facilitates the integration of Java applications in enterprise-wide processes. A
connection can be established via an MBean Server, a function used to access MBeans.

There are two methods in establishing a connection. First, the J2EE/JMX agent can be run as a Web
application within the Java Virtual Machine and access an MBean Server of the same computer.
207 | Chapter 9 AE and Target Systems

The second available method is to specify a job in a way that it can access MBean Servers on a different
computer via the MX Remote API (JSR 160). The URL of the MBean Server can be specified in the Job
object. In this case, the MBean Server computers must have a Connection Server.

The connection to the MBean Server can be defined in the Host tab of JMX jobs.

If the JMX agent is used for SAP, it creates an additional log file in SAP format. This file is
automatically created in the agent's sub-folder "log" in the installation directory and can easily be
processed with SAP Tools.

See also:

AE JCL for JMX


JMX-based External Monitoring Interface (EMI)
Chapter9 AE and Target Systems | 208

9.4.2 Generating MBeans from Web Services


Guideline for the creation of MBeans based on Web services.

Knowledge of Java and Web services is required in order to be able to fully understand this guideline.

AE provides support neither for Web services nor for MBeans.

General

The Automation Engine supports Web services through the usage of MBeans in combination with the JMX
agent. Many vendors offer Web services rather than MBeans as interfaces that provide access to their
applications. This guideline describes step by step how an MBean is generated from an existing Web
service. The Web service "CurrencyConvertor" which is provided by Generic Objects Technologies Ltd
serves as an example. It supplies currency exchange rates.

Requirements:

l JMX agent
l Access to the Web service (WDSL, URL, parameters)
l Apache Axis (freely available)

MBeans can only be created for synchronous Web services. Using asynchronous Web services is
much more difficult and must be handled individually.

Thoroughly test the generated MBean.

Installation

1. Setting up Apache Axis

l Download the Apache Axis files from http://ws.apache.org/axis. Install them as described in the
Apache Axis documentation.

2. Generating Java classes for calling the Web service

l Start the Apache Axis tool "WSDL2Java". This is a Web service wrapper generator. You can also
use Eclipse as your development environment. Specify the WSDL address
http://www.webservicex.com/CurrencyConvertor.asmx?wsdl" as the input parameter.
209 | Chapter 9 AE and Target Systems

l As a result, the following Java classes are generated:

3. Creating an MBean for using the Java classes

l This step describes the creation of an MBean that uses the generated Java classes to call the Web
service via JMX.
A few initiatory notes on MBeans programming guidelines:
l A standard MBean pattern consists of an interface and a class which implements it. 
l The interface has the same name as the class plus the ending "MBean".

l In the following example, the class is called "Converter" and the interface "ConverterMBean.java".
Create both files in the package "com.uc4.ws". This is followed by the full interface code and class:

ConverterMBean.java:
package com.uc4.ws;

import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
Chapter9 AE and Target Systems | 210

public interface ConverterMBean {


double convertCurrency(String fromCurrency, String toCurrency)
throws ServiceException, RemoteException, IllegalArgumentException;
}

Converter.java:
package com.uc4.ws;

import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import NET.webserviceX.www.Currency;
import NET.webserviceX.www.CurrencyConvertorLocator;
import NET.webserviceX.www.CurrencyConvertorSoap;

public class Converter implements ConverterMBean {


public double convertCurrency(String fromCurrency, String toCurrency)
throws ServiceException, RemoteException, IllegalArgumentException {
CurrencyConvertorLocator locator = new CurrencyConvertorLocator();
CurrencyConvertorSoap soap = locator.getCurrencyConvertorSoap();
return soap.conversionRate(
Currency.fromString(fromCurrency),
Currency.fromString(toCurrency));
}
}

The method "convertCurrency" contains the Web service call. Therefore, it uses the generated
Java classes. It creates a service-locator instance and calls the method
"getCurrencyConvertorSoap" in order to obtain a SOAP stub. This pattern (locator-stub) is
described in the Apache Axis documentation.

The stub calls the Web service. The parameters are converted from "java.lang.String" to
"NET.webserviceX.www.Currency" objects because only simple data types can be used in
MBeans. The supplied result is the current currency conversion rate.

4. Creating the MBean's JAR file and the Java classes

l Create a common JAR file for the two files of the MBean and the generated Java classes using an
ant script. The following example shows how the file "exampleMBean.jar" is generated.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>


<project name="uc4" default="exampleMBean.jar">
<property name="classes_dir" value="bin" />
<target name="exampleMBean.jar" description="Web Service MBean">
<jar jarfile="exampleMBean.jar" basedir="${classes_dir}"/>
</target>
</project>

No ant script is required in development environments such as Eclipse. Here you can generate the
JAR file via menu command.

5. Starting the JMX Agent using an MBean

l Include the generated JAR file and the Apache Axis JAR files in the JMX agent's classpath. The
call for starting the JMX agent under Windows is shown below:
211 | Chapter 9 AE and Target Systems

Java -cp axis.jar;commons-discovery-0.2.jar;commons-logging-1.0.4.jar;


wsdl4j-1.5.1.jar;saaj.jar;exampleMBean.jar;ucxjjmx.jar;jaxrpc.jar
com/uc4/ex/jmx/UCXJMX

UNIX: use a colon (":") instead of a semicolon (";").

The JMX agent does not require an application server but can run independently. It is sufficient to
install the Java version 5 as it contains the required JMX packages of version 1.2.

Usage

1. Creating a JMX job

l Log on to the AE system using the UserInterface.


l Create a JMX job and select the JMX agent which contains the MBean in its Attributes tab. Select
a suitable Login object.
l Switch to the Form tab. Click the button in order to insert a new line. Register the MBean on the
MBean Server by double-clicking the function "Register MBean" in the category "MBean Server".

The function JMX_CREATE_MBEAN creates an MBean instance and registers it on the local
MBean Server.

l Enter the MBean's full class name in the field "class". In this example it is
"com.uc4.ws.Converter".
l Enter the term which should be assigned to the MBean in the field "Object name". This name must
be unique in the MBean Server. It consists of two parts which are separated by a colon ":". The first
part refers to the domain name and the second one to the key properties. This example uses the
name "com.uc4:name=CurrencyConverter".

The domain name must not include the characters ":", "*" and "?". In order to avoid collisions
between the MBeans of different vendors, Automic recommends using the DNS name of your
company backwards as the domain name.

The key properties assign a unique name to the MBeans within the domain. They are separated
by commas ",". A key property is structured as follows: Properties=Value. The property must
not correspond to an attribute of the MBean. The number of key properties is not limited and the
order is irrelevant. A key property must not contain inverted commas, commas or ":", "=", "*"
and "?". Specify at least one key property.

l Activate the setting "End normally if already registered".


Chapter9 AE and Target Systems | 212

l Store the JMX job and process it. By doing so, the MBean is registered on the MBean Server and is
visible in the MBean browser (see step 2).

2. Using the MBean

l The MBean can be addressed and used via its operations. Click the button in the JMX job's
Form tabin order to insert a new line. Double-click the function "Execute operation" in the category
"Operations".

The function JMX_INVOKE calls an operation of an MBean.

l Click the "Search..." button in order to open the MBean browser.

l Select the MBean "CurrencyConverter" on the left. The table on the right shows the available JMX
operations for the MBean.
l Highlight the operation "convertCurrency" and Click OK tab. The fields "MBean Name" and
"Operation" are automatically filled with the correct values.
l Enter two currency codes in the field "Parameter" and separate them with a comma. Example:
"USD,EUR" has the effect that the MBean returns the exchange rate for US Dollars to Euro.
l Execute the JMX job. The conversion rate is output in a report.

Read the report using the script function PREP_PROCESS_REPORT so that the values
supplied by the MBeans can be used for further processing. The Sample Collection contains a
description of the required steps.
213 | Chapter 9 AE and Target Systems

9.4.3 Java EE/JMX Agent and IBM WebSphere


There are several ways of using the Java EE/JMX.

Deployed in IBM WebSphere:

1. With SOAP
2. or RMI

See also:

Setting up the Agent for Java EE/JMX (IBM WebSphere) with SOAP Connector
Setting up the Agent for Java EE/JMX (IBM WebSphere) with RMI Connector

9.4.4 Sending an SOAP Message with an MBean


Below is an example for an SOAP message which polls stock prices.

<?xml version="1.0" encoding="UTF-8"?>


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getQuote
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="urn:xmethods-delayed-quotes">
<symbol xsi:type="xsd:string">IBM</symbol>
</ns1:getQuote></soapenv:Body>
</soapenv:Envelope>

The following SOAP action should be used to send the SOAP message: "urn:xmethods-delayed-
quotes#getQuote".

URL of the webservice: http://services.xmethods.net/soap

An MBean can be used to send this SOAP message. This MBean requires at least Java version 5. Add
the MBean to the agent's classpath:

1. Copy the file soapmbean.jar into the folder of the JMX agent.
2. Start the JMX agent with the file soapmbean.jar in the classpath.
java -cp soapmbean.jar;ucxjjmx.jar com/uc4/ex/jmx/UCXJMX

Create a JMX job and insert the following line in the Process tab:
JMX_CREATE_MBEAN
EXISTS="IGNORE",CLASSNAME="com.uc4.ex.jmx.soap.SOAP",NAME="uc4.com:name=SOA
P"
Start the job. The MBean "SOAP" is now listed in the MBean Browser.

In the next step, determine the JCL for using the SOAP MBean:
JMX_CREATE_MBEAN
EXISTS="IGNORE",CLASSNAME="com.uc4.ex.jmx.soap.SOAP",NAME="uc4.com:name=SOA
P"
JMX_COMPOSITE_ADD KEY="1",VALUE='<?xml version="1.0" encoding="UTF-
Chapter9 AE and Target Systems | 214

8"?>',NAME="s"
JMX_COMPOSITE_ADD KEY="2",VALUE='<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ',NAME="s"
JMX_COMPOSITE_ADD
KEY="3",VALUE='xmlns:xsd="http://www.w3.org/2001/XMLSchema" ',NAME="s"
JMX_COMPOSITE_ADD
KEY="4",VALUE='xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">',NAME="s"
JMX_COMPOSITE_ADD KEY="5",VALUE="<soapenv:Body><ns1:getQuote ",NAME="s"
JMX_COMPOSITE_ADD
KEY="6",VALUE='soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encod
ing/" ',NAME="s"
JMX_COMPOSITE_ADD KEY="7",VALUE='xmlns:ns1="urn:xmethods-delayed-
quotes">',NAME="s"
JMX_COMPOSITE_ADD KEY="8",VALUE='<symbol
xsi:type="xsd:string">IBM</symbol>',NAME="s"
JMX_COMPOSITE_ADD
KEY="9",VALUE="</ns1:getQuote></soapenv:Body></soapenv:Envelope>",NAME="s"
JMX_INVOKE
OPERATIONNAME="sendSOAP",MBEAN="uc4.com:name=SOAP",PARAMS='s,"urn:xmethods-
delayed-quotes#getQuote",http://services.xmethods.net/soap'
The first line ensures that the MBean exists or loads it if necessary. The statements JMX_COMPOSITE_
ADD insert the SOAP message line by line with the parameter KEY= containing the line number. After the
SOAP message has been composed, it is assigned to the operation "sendSOAP" (JMX_INVOKE) as its
first parameter. The second parameter contains the SOAP action, and the third one the URL to which the
SOAP request should be sent.

Execute the job. The job report shows the response message.

An XPath expression can be used to read an individual value. Do so by inserting a new script line using the
script element JMX_COMPOSITE_ADD with the statement "XPATH" for KEY= and the searched value
for VALUE= (see second script line). The script now looks as shown below:
JMX_CREATE_MBEAN
EXISTS="IGNORE",CLASSNAME="com.uc4.ex.jmx.soap.SOAP",NAME="uc4.com:name=SOA
P"
JMX_COMPOSITE_ADD KEY="XPATH",VALUE="//Result",NAME="s"
JMX_COMPOSITE_ADD KEY="1",VALUE='<?xml version="1.0" encoding="UTF-
8"?>',NAME="s"
JMX_COMPOSITE_ADD KEY="2",VALUE='<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ',NAME="s"
JMX_COMPOSITE_ADD
KEY="3",VALUE='xmlns:xsd="http://www.w3.org/2001/XMLSchema" ',NAME="s"
JMX_COMPOSITE_ADD
KEY="4",VALUE='xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">',NAME="s"
JMX_COMPOSITE_ADD KEY="5",VALUE="<soapenv:Body><ns1:getQuote ",NAME="s"
JMX_COMPOSITE_ADD
KEY="6",VALUE='soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encod
ing/" ',NAME="s"
JMX_COMPOSITE_ADD KEY="7",VALUE='xmlns:ns1="urn:xmethods-delayed-
quotes">',NAME="s"
JMX_COMPOSITE_ADD KEY="8",VALUE='<symbol
xsi:type="xsd:string">IBM</symbol>',NAME="s"
JMX_COMPOSITE_ADD
KEY="9",VALUE="</ns1:getQuote></soapenv:Body></soapenv:Envelope>",NAME="s"
JMX_INVOKE
OPERATIONNAME="sendSOAP",MBEAN="uc4.com:name=SOAP",PARAMS='s,"urn:xmethods-
delayed-quotes#getQuote",http://services.xmethods.net/soap'
Based on the sample script, the job report now shows a value.
215 | Chapter 9 AE and Target Systems

Parts of the SOAP message can also be supplied with values via script variables. The following example
reads a value via a :READ mask:

Pre-Process tab:
:READ &SYMBOL#,"IBM,SAP,ORCL","Please choose one","IBM"
Process tab:

The script variable &SYMBOL# is used in the 10th line:


JMX_CREATE_MBEAN
EXISTS="IGNORE",CLASSNAME="com.uc4.ex.jmx.soap.SOAP",NAME="uc4.com:name=SOA
P"
JMX_COMPOSITE_ADD KEY="XPATH",VALUE="//Result",NAME="s"
JMX_COMPOSITE_ADD KEY="1",VALUE='<?xml version="1.0" encoding="UTF-
8"?>',NAME="s"
JMX_COMPOSITE_ADD KEY="2",VALUE='<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ',NAME="s"
JMX_COMPOSITE_ADD
KEY="3",VALUE='xmlns:xsd="http://www.w3.org/2001/XMLSchema" ',NAME="s"
JMX_COMPOSITE_ADD
KEY="4",VALUE='xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">',NAME="s"
JMX_COMPOSITE_ADD KEY="5",VALUE="<soapenv:Body><ns1:getQuote ",NAME="s"
JMX_COMPOSITE_ADD
KEY="6",VALUE='soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encod
ing/" ',NAME="s"
JMX_COMPOSITE_ADD KEY="7",VALUE='xmlns:ns1="urn:xmethods-delayed-
quotes">',NAME="s"
JMX_COMPOSITE_ADD KEY="8",VALUE='<symbol
xsi:type="xsd:string">&SYMBOL#</symbol>',NAME="s"
JMX_COMPOSITE_ADD
KEY="9",VALUE="</ns1:getQuote></soapenv:Body></soapenv:Envelope>",NAME="s"
JMX_INVOKE
OPERATIONNAME="sendSOAP",MBEAN="uc4.com:name=SOAP",PARAMS='s,"urn:xmethods-
delayed-quotes#getQuote",http://services.xmethods.net/soap'

9.5 AE and Micro Focus JES

9.5.1 Jobs in Micro Focus JES


The Mainframe Transaction Option (MTO) is a Micro Focus Enterprise Server (MF ES) component. This
JES engine facilitates the execution of z/OS jobs (JES jobs) under Windows and Unix.

The Automation Engine can be used to start jobs in Micro Focus JES and process JCL files. These are
then stored in the Server's file system. Jobs are started using the program CASSUB.

An AE agent for Windows processes the jobs in MF JES.


Chapter9 AE and Target Systems | 216

Creating a Job

1. Click the  button in the toolbar. A window opens which lists all the available object types
including the objects for the individual platforms. Select JOBS.WIN.

2. Assign a suitable name for the Job object and open it. Now click the Notification tab

3. A Windows agent executes the job. Select the agent which runs on the computer on which MF ES
is available.

4. In order to execute the job, the agent requires login information. This data is stored in the form of
Login objects. Select the suitable one in "Login".

5. Now click the Windows tab. In the upper left area, you can define how the generated job report
should be handled. You can store it in the database or as a file.

6. Specify type COM.

7. The command that should be specified indicates the path to program CASSUB. Use the start
parameters -r and -j to specify the JCL Server environment and the complete path to the JCL file.
The JCL Server Region Name describes the MF MTO Services. This value is available in the MF
Enterprise Server Administration.

8. Store and close the Job object after having completed your configuration. The Job object can now
be integrated in your processing.

Architecture

The job starts via CASSUB in the Micro Focus Enterprise Server. An exit is called when the job starts and
during its execution. It writes the synchronization files for the agent (*.log, *.inf and *.can files).
217 | Chapter 9 AE and Target Systems

Agent Variables in Micro Focus JES

The following environment variables are available in the user environment under which the JES Server has
started:

Environment Variable Description


UC4_MF_JES_ Path in which the exit should write the control files for the agent or
OUTPUT= communicates with the agent (*.log, *.inf, *.can).

Ensure that the variable UC4_MF_JES_OUTPUT contains one single


path which is defined with a closing backslash "\". Otherwise, there is no
functioning communication between agent and Exit. 

Examples:

Correct: UC_MF_JES_OUTPUT = c:\AUTOMIC\Agent\Microfocus\temp\


Incorrect: UC_MF_JES_OUTPUT = c:\AUTOMIC\Agent\Microfocus\temp
Incorrect: UC_MF_JES_OUTPUT = c:\AUTOMIC\temp\;c:\temp
UC4_MF_TRACE= Trace which the exit writes in the tracefile with open extend (specified in
UC4_MF_TRACE_FILE)

Possible values:
Y = The exit writes a trace.
N = No trace is written.
UC4_MF_TRACE_ Complete file name of the trace file
FILE=
Chapter9 AE and Target Systems | 218

UC4_MF_DELAY= Delay in seconds the EXIT waits if the *.INF file cannot be found.

Note that the default value is 500 ms.

It is important that the specified value is as low as possible because it


affects ALL JES jobs and not only those started with AE. If there are jobs
in AE that do not end, the exit was too quick and the agent had no time to
create the *.INF file after job start. It cannot be created before because the
JobID results from the job start. Automic recommends specifying value
100.

Example for a JES-Exit Trace File

2007.12.14/13:53:58.95->MFJUXIT EC = 01 Jobnum = 01406 Jobname = ????????


2007.12.14/13:53:58.95->MFJUXIT UC4_MF_JES_OUTPUT = C:\AUTOMIC\
2007.12.14/13:53:58.95->MFJUXIT UC4_MF_TRACE_FILE = c:\trc.txt
2007.12.14/13:53:58.95->MFJUXIT UC4_MF_DELAY = 5000
2007.12.14/13:53:58.95->MFJUXIT UC4_MF_DELAY (converted to number) =
000005000
2007.12.14/13:53:59.11->MFJUXIT EC = 25 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.17->MFJUXIT EC = 03 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.20->MFJUXIT EC = 08 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.20->MFJUXIT EC = 09 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.23->MFJUXIT EC = 10 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.23->MFJUXIT EC = 08 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.25->MFJUXIT EC = 09 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.26->MFJUXIT EC = 10 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.26->MFJUXIT EC = 08 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.26->MFJUXIT EC = 09 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.30->MFJUXIT EC = 10 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.31->MFJUXIT EC = 08 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.31->MFJUXIT EC = 09 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.33->MFJUXIT EC = 10 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.34->MFJUXIT EC = 05 Jobnum = 01406 Jobname = JCLTEST
2007.12.14/13:53:59.34->MFJUXIT inf-file not found waiting 000005000 ms
2007.12.14/13:54:05.26->MFJUXIT EC = 02 Jobnum = 01406 Jobname = JCLTEST

The Micro Focus Enterprise Server serves administrative purposes; jobs are maintained, started and
stopped in JES.
219 | Chapter 9 AE and Target Systems

The following example describes how to start a JES job in batch mode without the agent; the CASSUB is
manually set:
C:\Documents and Settings\Ni\My Documents\Micro Focus\Net Express
5.0\WORKAREA>cassub -lUC4 -jC:\es-jcldemo\jclbatch.jcl
JCLCM0901I JOB01407 ???????? Event-job-ready action is: 0 (Continue).
12:59:10
JCLCM0925I JOB01407 JCLTEST Event-job-stmt-info action is: 0 (Continue).
12:59
:10
JCLCM0187I JOB01407 JCLTEST JOB SUBMITTED (JOBNAME=JCLTEST,JOBNUM=01407)
12:59
:10
JCLCM0180I JOB01407 JCLTEST Job ready for execution. 12:59:10
Processed "C:\es-jcldemo\jclbatch.jcl"
C:\Documents and Settings\Ni\My Documents\Micro Focus\Net Express
5.0\WORKAREA>

The Exit creates the *.inf file for the agent which checks it and writes to the log file. This does not
happen if a job is started in batch mode.

9.6 AE and MPE

9.6.1 Agent - Interaction between Automation Engine and


MPE
The MPE agent works together with the AE system via a TCP/IP interface.

The MPE agent provides the following functions:


Chapter9 AE and Target Systems | 220

l Job Processing
l Execution of file transfers
l Event Handling

Job Processing

In AE jobs are defined and maintained in the form of objects that include various tabs. The JCL is stored in
the Process tab. Its logic can be very complex if you make use of AE's script elements. You can use # as
the prompt character in the JCL because the characters ! and : introduce comment lines and script
statements in AE script. You can also start JCL lines by using the script statement :DATA. In doing so,
you can keep ! and : as prompt characters.
See: User Guide - Job and Job - Execution

In AE, you can start jobs either manually or via control mechanisms such as workflows or schedules. The
Automation Engine then generates an executable job and sends it to the MPE agent via a file transfer.
See: Inside AE Guide - Executing Objects

The MPE agent reads the job and passes it to the MPE job queue.

The job notifies the agent about the beginning and end of an execution. The agent then passes this
information on to the Automation Engine.

The agent monitors the job's status in regular intervals. This ensures that an abnormal end can be
determined if a job vanishes  (fatal error or ABORTJOB). The job's return code is available in AE.

The job report ($STDLIST) is stored in the file that is specified by the Automation Engine. If specified in the
job, the agent transfers the report to the Automation Engine which stores it in the AE database. The agent
copies the job output from the Spooler. Therefore, you must use an OUTCLASS of priority 1.

Executing File Transfers

In AE, file transfers are defined and maintained in the form of objects that include various tabs. They are
executed with the character conversions that are defined in these tabs (such as UC_CODE).
See: User Guide - FileTransfer

Event Handling

In AE, events are defined and maintained in the form of objects that include various tabs.
Only events of type File System are currently supported.
See: User Guide - Event
221 | Chapter 9 AE and Target Systems

9.7 AE and NSK

9.7.1 Architecture of the Automation Engine Agent for the


HP Non Stop Server
This document explains a job run procedure on an HP NonStopServer via an AE NSK agent.

Description of Internal Procedures:

1. Job Start

Job start is initiated by the Automation Engine which sends the information that the job has started to the
AE NSK agent. The AE agent then creates an entry in the AE status file.
Chapter9 AE and Target Systems | 222

The AE NSK agent sends a message to the AE Output Collector (via IPC), which contains the following
information:

l user of the job,


l Job file that is to be used,
l the virtual terminal that is to be used (if necessary),
l priority of the job,
l file name of the job report,
l name of the AE macro file etc.

The following information is retrieved:

l # Location of the AE Output Collector that should be used as the output file of the job that is to be
started.
The AE Output Collector writes all outputs that were received in this # Location to the
corresponding report file.
l Flag whether a re-usable TACL process is available or a new TACL process needs to be started by
the agent and
l The information whether the default user (assumed by the TACLs after the job has ended) is still
valid.

If required, the agent starts a new TACL process. This process then logs on to the AE Output Collector
(because it has been specified as the output device).
The Output Collector generates the report file. Then, it configures the job's TACL (setting user, priority
etc). Finally, job file is assigned to the TACL of the job as obey file and commences to process the job.

2. Job Run

While the job is running, all the job-generated outputs are sent to the AE Output Collector and written to the
job reports. If an entry is expected and a terminal has been configured for the job, the respective entry is
then taken from the terminal.
The connection between the job report and the job is established via the # Location which is used by the
jobs to address the Output Collector.
Hence, outputs of Location $UC4OC.#AAL can be written to the report file $DATA.REPORTS.FFXX, and
outputs of $UC4OC.#AAM to the report file $DATA.REPORTS.FFXY.
Names of # Locations and the report files are assigned by the agent or the Output Collector.

3. Job End

The Output Collector recognizes that the job has ended when the TACL process of the job requires an
entry or closes the Output Collector (if an error occurs). When the job has ended, the Output Collector
writes this information to the job's status file and sends the corresponding message to the agent (via IPC).
Finally, the agent reports the job to the Server as finished.

Notes:
1. Meaning of the status file

The job's status file facilitates improved job recovery when the agent or the Output Collector fails. The
context is then retrieved from the job's status file in order to restart the troubled process. Many jobs can so
overcome these troubles and undisturbed processing can be continued. Jobs that have ended during the
223 | Chapter 9 AE and Target Systems

time of the agent/Output Collector failure are identified and registered. Hence, the Automation Engine
always shows a correct image of the system status.

2. Mutual Monitoring

Agent and Output Collector monitor themselves mutually. If one of these two processes ends
unexpectedly (unplanned stop, CPU failure, software failure etc), the surviving process automatically
restarts the failed process. If the CPU of the failed process is not available (anymore), another available
CPU is selected (with preference given to one that differs from the CPU of the surviving process). This
ensures that the system tolerates various errors.

See also:

Agent - Combining AE and NSK

9.7.2 Executing Jobs on NSK


AE broadly supports HP NonStop systems.

Processes are possible in the following areas:

l Guardian - TACL commands


l OSS - UNIX commands (osh Shell)
l NetBatch - NBEXEC scripts

As these commands differ from each other, 3 types of NSK jobs are provided. The type of Job object is
selected in the Guardian/NSK tab. It can be read with the script function GET_ATT.

NBEXEC script lines and AE Script start with a colon. Therefore, an empty space must be inserted at
the beginning of each -NBEXEC-processing line.

See also:

Guardian/NSK tab
Architecture of the AE Agent for the HP NonStop Server

9.7.3 Automated Handling of Input Prompts


Input prompts are often required to drive processing forward. The NSK agent provides an opportunity to
react to these prompts automatically.

In each individual NSK job, you can specify predefined inputs for particular prompts. If job execution
reaches a prompt, the agent searches for a predefined input. Processing continues automatically if it finds
one. If prompt handling has not been defined, further processing depends on the specifications that are
made in the Job object. If a virtual terminal has been specified in the Guardian/NSK tab, the prompt is
redirected to it and manual intervention is required. If a terminal has not been determined, the agent
assigns an EOF input to the prompt.

This function is only supported for NonStop agent environments and TACL.
Chapter9 AE and Target Systems | 224

Usage

Prompt inputs can be defined using the function UC4_AUTO_ANSWER. In a NSK job script, this function
can be used once or several times. Definitions only apply for one particular job. The syntax is:

UC4_AUTO_ANSWER "Prompt description" "Input"

The first parameter describes the prompt. You can either use the full name or specify wildcards using the
characters ? and *. The latter one serves to use the same input on several prompts without having to enter
an extra script line.

Add the character \ if \, ? or * should be read as normal characters.

The second parameter represents the input that is automatically assigned to the prompt. Enter a string, a
script variable or a TACL expression. You can also use <EOF!> in order to respond to the prompt with an
EOF input (Ctrl Y).

Note that both parameters must not include inverted commas.

The agent uses the input definitions which already occurred in the script. The search is made in strict
rotation; the first definition that complies with the prompt description is used.

Use the function UC4_AUTO_ANSWER_CLEAN to invalidate all input definitions that occurred in the
script so far. The agent then searches all definitions starting with this script line. You can use this function
to separate script sections in which different prompt handling should apply. UC4_AUTO_ANSWER_
CLEAN does not have parameters.

The function UC4_AUTO_ANSWER_TRACELEVEL can be used if you require more detailed information
about the search for prompt input definitions. Depending on the specified level, more detailed messages
are written to the job report and the virtual terminal. Its syntax is:

UC4_AUTO_ANSWER_TRACELEVELLevel

Enter a number between 0 and 3 for the level.

0 - No output is made about prompt comparison (default value).


1 - A message is sent for each coinciding prompt comparison.
2 - A message is sent for each non-coinciding prompt comparison.
3 - Output of level 2 and 3 messages

Examples

Example 1

The PURGE statement requires the specification of Y or N. The following script example shows an
automated form of input handling:
UC4_AUTO_ANSWER "PURGE * (y/[n])?" y
PURGE *
UC4_AUTO_ANSWER_CLEAN
The first line defines y as the response to the prompt for the PURGE statement. In doing so, the PURGE
call in the next line is automatically filled with y. Due to UC4_AUTO_ANSWER_CLEAN, this input
definition does not apply for the job's remaining script.

Example 2

Job report abstract of a script which uses the function UC4_AUTO_ANSWER_TRACELEVEL.


UC4_AUTO_ANSWER "*is no prompt*" "Answer 1"
UC4_AUTO_ANSWER "*is a prompt*" "Answer 2"
225 | Chapter 9 AE and Target Systems

UC4_AUTO_ANSWER "*is what*" "Answer 3"


UC4_AUTO_ANSWER "*is nothing*" "Answer 4"

run $data01.uc4.prompt
This is a prompt>Answer 2
Answer to the prompt received: Answer 2

UC4_AUTO_ANSWER_TRACELEVEL 1
run $data01.uc4.prompt
*** Pattern checked: "*is a prompt*", matched, answer generated: "Answer 2"
This is a prompt>Answer 2
Answer to the prompt received: Answer 2

UC4_AUTO_ANSWER_TRACELEVEL 3
run $data01.uc4.prompt
*** Pattern checked: "*is no prompt*", no match
*** Pattern checked: "*is a prompt*", matched, answer generated: "Answer 2"
This is a prompt>Answer 2
Answer to the prompt received: Answer 2

9.7.4 Agent - Interaction Between Automation Engine and


NSK
The NSK agent works together with the AE system via a TCP/IP interface.

The NSK agent provides the following functions:

l Job Processing
l Execution of file transfers
l CallAPI

Processing Jobs

In AE, jobs are defined and maintained in the form of objects which include various tabs. Commands and
statements are stored in the Process tab. It can be provided with a complex logic using the AE Script
elements.
See: User Guide - Job and Job Execution

Depending on the type of command (Guardian, NetBatch and OSS), several sub-types are available for
NSK jobs.

In AE, jobs can start either manually or via control mechanisms such as workflows or schedules. Thus, an
executable job is generated and transferred to the NSK agent via file transfer.
See: Inside AE Guide - Executing Objects

Jobs are processed with the login information (group name.user name) specified in the Login object which
can be selected in the Attributes tab.

The table below lists password requirements for the Login object.
Chapter9 AE and Target Systems | 226

Agent's User ID Entry in Login object


GROUP.USER A password is required if the job runs under another group name.user name
GROUP.255 A password is required if the job runs under another group name
255.255  No password is required

Recommended Configuration:

l Start the NSK agent with the User ID. SUPER.SUPER is usually not required. User settings must
be adjusted to working requirements.
l Define group name.user name in Login objects.
l Set parameter logon=1 in the INI file of the NSK agent.
l Specify the default user ERP_LOGIN in the client 0000. Use a valid User ID/password combination
but make surel to select a user who has been assigned very few rights. This user only serves to
equip TACL processes intended to be reused with as few rights as possible. These TACL
processes are then very safe and less error-prone).

Each job notifies the agent about the beginning and end of an execution. The agent then passes this
information on to the Automation Engine. The job's return code can be accessed in AE via Headers and
Trailers.

Header and Trailer contents are automatically added to the script defined in the job. The variable
"RETCODE" is defined in an NSK-specific Header. The content of this variable is transferred to the
Automation Engine when the job ends. This value is the job's return code. It can be used to define
dependencies between individual jobs in a workflow.

The following user-defined Header and Trailer can be used to set the "RETCODE" to "1" if a syntax error
occurs in the script: HEADER.NSK.USER.HEAD, TRAILER.NSK.USER.HEAD and RESTART.NSK

The agent creates files for job reports (if specified at the object) and the jobs on the computer. Their names
are structured as shown in the table below:

Description
Job file <UC_EX_PATH_TEMP>J<RunID>
Job-report file <UC_EX_PATH_JOBREPORT>O<RunID>

UC_EX_PATH_TEMP and UC_EX_PATH_JOBREPORT are agent variables. The RunID is a string


consisting of 7 to 10 digits which can be used in the statistics search or converted to the appropriate
number using the script function ALPHA2RUNNR.

Execution of File Transfers

In AE, file transfers are defined and maintained in the form of objects which include various tabs. They are
executed with their defined character conversion (e.g. "UC_CODE").

Peculiarities: The NSK agent handles each file transfer order with an extra process if the new file transfer
protocol is used. The agent has an additional listener port to provide this function. This port has the next
higher number when compared to the agent port.

You can specify additional attributes for the target file in the FileTransfer object (target - attributes) or
assume the source file's attributes (option "Keep original file attributes"). The original attributes can be
overwritten with additional definitions in the FileTransfer object. The following NSK file attributes are
supported:
227 | Chapter 9 AE and Target Systems

Attribut Description
CREATE_OPTS Options for file creation, bit mask
(<15> is the lowest bit of a 2-byte
word):

<10>Refresh EOF - has the effect


that the file label is immediately
written to the hard disk.
<11> Index compression - entries in
the index block of key sequenced
files are compressed. For other file
types, use the value 0.
<12> Data compression - keys of
entries in the data blocks of key
sequenced files are compressed.
Value 0 is required for other file types.
<13> Audit compression - data of
audited files is compressed.
<14> Audited - checks the file in the
Transaction Management Facility
(TMF) subsystem. Systems without
TMF require value 0.
<15> Odd unstructured - number of
I/O transfers of unstructured files.
With this option not being set, the
transfers are rounded to an even byte
limit. Other file types require the value
0.
File format This attribute is automatically set,
based on the file's current size.

1 - for files below 2GB, 2 - for all other


files
FILECODE Not relevant if only text and binary
files are transferred.
FILETYPE 0 - unstructured
1 - relative
2 - entry sequenced
3 - key sequenced

Not relevant if only text and binary


files are transferred.
KEY_LEN Not relevant if only text and binary
files are transferred.
KEY_OFFS Not relevant if only text and binary
files are transferred.
MAXEXT Maximum number of extents for the
file.
PEXT Number of 2k pages for the primary
extent.
Chapter9 AE and Target Systems | 228

RECLEN Not relevant if only text and binary


files are transferred.
SEXT Number of 2k pages for secondary
extents.

See: User Guide - File Transfer

Call Interface

The CallAPI enables you to execute calls in AE from your own programs. You can also use a CallAPI
without any programming being required if you use a utility which you can call from the command line of the
OS or from an executable file, for example.

See also:

User Guide - CallAPI


Inside AE - Architecture of the AE agents for the HP NonStop Server

9.7.5 EMS Template File


EMS template files can be used to edit messages in a system compliant way. In doing so, you can define
the SSID (subsystem ID). By default, it is uc4.1.1.

Procedure:

1.) The DDL file (uc4.ddl) must be compiled to a dictionary.

Ensure that within this dictionary, the $SYSTEM.ZSPIDEF.ZSPIDDL and


$SYSTEM.ZSPIDEF.ZEMSDDL have already been compiled.

2.) The TMPL file (uc4.tmpl) must refer to this created dictionary.

Content of the uc4.ddl


CONSTANT zspi-val-uc4 VALUE IS "UC4 ".
* Defines subsystem no. part of UC4 subsystem ID
CONSTANT zspi-ssn-uc4 VALUE IS 1.
* Defines version part of Pathway subsystem ID
CONSTANT zAE-val-version VALUE IS VERSION " 1".
* Defines the structure for the Pathway subsystem ID
* and initializes its parts
DEFINITION ZAE-VAL-SSID TACL SSID.
02 Z-FILLER TYPE CHARACTER 8 VALUE IS ZSPI-VAL-UC4.
02 Z-OWNER REDEFINES Z-FILLER TYPE ZSPI-DDL-CHAR8.
02 Z-NUMBER TYPE ZSPI-DDL-INT VALUE IS ZSPI-SSN-UC4.
02 Z-VERSION TYPE ZSPI-DDL-INT VALUE IS ZAE-VAL-VERSION.
END

Content of the uc4.tmpl


VERSION: "UC4 NSK agent Version 8.00A002 0040 AAD"
DICT: $DATA01.UC4DICT
SSID: ZAE-VAL-SSID
SSNAME: "UC4" , "UC4"
229 | Chapter 9 AE and Target Systems

MSG: ZSPI-TKN,0
"DUMMY"

9.7.6 Configuration of NSK-Specific Parameters


The NSK agent can be used to specify NSK-specific parameters in jobs (e.g. the TACL to be used or the
user under which the job report should be created).

Specify the parameters in the following format:

== Parameter=Value

The agent searches the script for these lines and sets the parameters to the values you specified. TACL
handles these lines as comments.

The following parameters are supported:

Parameter Description
UC4_TACL_ Alternative TACL (Shell)
PROGRAM
You can specify a different TACL if the standard TACL loads an environment which
should not be used for AE jobs. This parameter is also helpful if several clients
access a nonstop machine and require different TACL environments.

The agent uses the standard TACL if the specified TACL cannot be used and logs
an error message.
UC4_TACL_ TACL process name
PROCESSNAME
UC4_REPORT_ User under which the job report should be created.
USERNAME
The value "DEFAULT_USER" can also be specified. In this case, the job report is
created for the user under which the job runs.
UC4_REPORT_ NonStop security string for the job report
SECURITY
Use this parameter carefully. An incorrect security string can have the effect
that the agent cannot read or delete the job report.

Examples:
== UC4_TACL_PROGRAM=$SYSTEM.SYS03.TACL
== UC4_TACL_PROCESSNAME=$CAT2
== UC4_REPORT_USERNAME=SQLCMP.SMITH
== UC4_REPORT_SECURITY=NNNN
This is an optional function. The agent uses the particular default values for parameters which have not
been set in the script.
Chapter9 AE and Target Systems | 230

9.8 AE and OS/400

9.8.1 Agent - Interaction Between the Automation Engine


and OS/400
The OS/400 agent works together with the AE system via a TCP/IP interface.

The OS/400 agent provides the following functions:

l Job Processing
l Remote Status Capturing and Tracking
l Execution of file transfers
l Execution of file events
l Event Handling
l CallAPI

Job Processing 

In AE, jobs are defined and maintained in the form of objects that include various tabs. The JCL (CMD, CL
or REXX) is stored in the Process tab. Its logic can be very complex if you make use of AE's script
elements.
See: User Guide - Job and Job - Execution

In AE, jobs start either manually or via control mechanisms such as workflows or schedules.The
Automation Engine then generates an executable job and sends it to the OS/400 agent via a file transfer.
See: Inside AE Guide - Executing Objects

In OS/400, you can start jobs start by using the SBMJOB commandwhich calls the AE job shell
(IRSTRJOB program in the supplied library). Among other information, the job shell obtains the following
parameters - the job's name that is generated by the Automation Engine, and the name of the file member
under which the job has been stored. Depending on the job type, it executes the following:

l CMD
The job shell executes every line of the file member. If an error occurs in a particular line, the
severity code is set as the job's return code and only the Job Messenger is called at the job's end.
l ILE CL
The job shell converts the file member and creates a temporary CL program. If the conversion is
successful, the job shell processes the CL program.
l REXX
The job shell calls the REXX interpreter and assigns the name of the file member that includes the
REXX script.

Each job notifies the agent (Job Messenger) about the beginning and end of an execution. The agent then
passes this information on to the Automation Engine. The job's return code is available in AE.

The agent monitors the job's status in regular intervals. This ensures that an abnormal end can be
determined if a job vanishes  (ABEND or CANCEL). This job is then considered lost within the AE system.

The states of jobs that have been executed while the agent was terminated are also retrieved. Doing so is
possible because of the start and end messenger outputs.

Note that on OS/400, the JCL is compiled to a program and then executed. An uncontrolled termination
can occur which could have the effect that the job's status is not correctly displayed. Use the MONMSG
231 | Chapter 9 AE and Target Systems

command in order to identify program terminations and to react to them. To use this command, you require
the job setting "Type" - "ILE CL".

The following example monitors the execution of the JCL by using the MONMSG command and sets the
job status accordingly:

Pre-Process tab:
! Activates the start and end messenger output for the status recovery.
:SET&UC_QPRINT = 10
! The OS/400 CL command monitors all exceptions and skips to the ERROR
label.
MONMSG CPF0000 (GOTO ERROR)
Process tab:
! Command to be executed by the job. All active processes are shown in this
case.
wrkactjob *print
! Sets the job's return code to the value 0.
CHGVAR &RETCODE '0'
! Calls the end messenger.
GOTO END
! The adequate return code is set if an error occurs.
ERROR:
CHGVAR &RETCODE '99'
The job report (Spool) consists of the spool contents (depending on the job definition only QPJOBLOG or
the entire contents). It is written to a file that is specified by the Automation Engine. If specified in the job,
the agent transfers the report to the Automation Engine which stores it in the AE database.

Remote Status Capturing and Tracking

If you have OS/400 version IBM i 6.1 or above, you may use the following SQL statement examples to
check, if any OS/400 jobs have the status MSGW (= waiting for messages):

List all jobs in MSGW status:


select count(*) from EH where EH_RemoteStatus = 2006018 AND EH_Client =
&$CLIENT#

Return all necessary information to perform actions on jobs, which are in MSGW status:
select EH_AH_Idnr, EH_RemoteStatus, EH_RemoteStatusIns, EH_Alias from EH
where EH_RemoteStatus = 2006018 AND EH_Client = &$CLIENT#

You may decrease the interval, in which the status of jobs is being checked by changing the value for
JOB_CHECKINTERVAL in the system Variable UC_HOSTCHAR_DEFAULT. Be aware, that a
decrease of this value will affect server performance.

Executing File Transfers

In AE, file transfers are defined and maintained in the form of objects that include various tabs. They are
executed with the character conversions that are defined in these tabs (such as EBCDIC_00037).

For more information see: OS/400 Agent - File Transfer Support


Chapter9 AE and Target Systems | 232

Event Handling

In AE, events are defined and maintained in the form of objects that include various tabs. You can define
FileSystem events that refer to the library file system (QSYS.LIB). The OS/400 agent also supports
events of type Console.
See: User Guide - Event

Executing FileSystem Event Objects

There are some peculiarities that must be considered when you use file events with an OS/400 agent.

For more information see: OS/400 Agent - FileSystem Event Support

CallAPI

You can use the CallAPI with a utility that can be called by using a CL script, for example.
See: User Guide - CallAPI

See also

Job
Executing Objects
OS/400 Agent - File Transfer Support
OS/400 Agent - FileSystem Event Support

9.8.2 OS/400 Agent - FileSystem Event Support


There are some peculiarities that must be considered when you use file events with an OS/400 agent.

You must start OS/400 agents of version 9.00A or later as a multi-threaded process in order to use the new
file event. Doing so requires the agent's JOBD parameter ALWMLTTHD to be set to "YES".

The new file event is handled in threads which means that you can only use the following file systems:

l "Root" (/)
l QOpenSys
l User-defined
l QNTC
l QSYS.LIB
l Independent ASP QSYS.LIB
l QOPT
l Network File System
l QFileSvr.400

File Specification

IFS file system


233 | Chapter 9 AE and Target Systems

IFS (Integrated File System) is a UNIX-based file system. IFS files must always be specified with an
absolute path (starting from the root) and a final file name.
If the file specification includes a / character, the agent assumes that an IFS file is concerned.

For example:

/home/AE/test.txt

The wildcard characters * and ? can be used to process partially qualified file events. They can be used as
necessary within the path and/or file name.

In an individual file event, the path and file name are not case-sensitive. Therefore, the following two
specifications are identical:

/home/AbC.txt
/HOME/ABC.txt

Wildcard file event paths are case-sensitive. The following two specifications differ from each other:

/home/AB*
/home/ab*

(Note: An exception is QOpenSys, here wildcard file event paths are not case-sensitive.)

See also:

FileSystem Event tab

9.8.3 OS/400 Agent - File Transfer Support


There are some peculiarities that must be considered when you use file transfers with an OS/400 agent.

You must start OS/400 agents of version 9.00A or later as a multi-threaded process in order to use the new
file transfer protocol. Doing so requires the agent's JOBD parameter ALWMLTTHD to be set to "YES".

Note that IFS is only supported in combination with the new file transfer protocol.

The new file transfer is handled in threads which includes that you can only use the following file
systems:

l "Root" (/)
l QOpenSys
l User-defined
l QNTC
l QSYS.LIB
l Independent ASP QSYS.LIB
l QOPT
l Network File System
l QFileSvr.400

For the new file transfer protocol:


The OS commands CRTPF and ADDPFM are used to transfer the files. This means that you can now
directly specify the CRTPF parameters in the file transfer's attributes.
CRTPF is used when you newly create a file. ADDPFM is processed when the file already exists and you
Chapter9 AE and Target Systems | 234

only want to add a member.


An error that occurs in a file transfer that is not clear for AE (such as: "CPF0001 - Error found on ADDPFM
command"). This can refer to an error that has occurred while these commands have been processed. In
this case, you will find more detailed information in the job log which is directly stored in the OS.

File Specification

QSYS file system

The following syntax applies for file transfers:

Library name/file name(member name)

The wildcard characters * and ? can be used in file and member names. * stands for any number of
characters (even no character) and ? for exactly one character.

No member name must be indicated if wildcard characters are used in the file name.

Detailed information about wildcards is provided in the chapter that describes partially qualified file
transfers.

For example:

To transfer all file members of TEST:

AE/TEST(*)
or
AE/TEST()

To transfer all file members of TEST whose names start with the letter "A":

AE/TEST(A*)

To transfer all file members of TEST whose names consist of 3 characters, start with an "A" and end on
"B":

AE/TEST(A?B)

To transfer the file member ABC of TEST:

AE/TEST(ABC)

To transfer all files whose names start with TEST:

AE/TEST*

IFS file system

IFS (Integrated File System) is a UNIX-based file system. IFS files must always be specified with an
absolute path (starting from the root) and a final file name.
If the file specification includes a / character, the agent assumes that an IFS file is concerned.

For example:

/home/AE/test.txt

The wildcard characters * and ? can be used to process partially qualified file transfers. They can be used
as necessary within the path and/or file name.

In an individual file transfer, the path and file name are not case-sensitive. Therefore, the following two
specifications are identical:
235 | Chapter 9 AE and Target Systems

/home/AbC.txt
/HOME/ABC.txt

Uppercase and lowercase letters are distinguished in wildcard file transfers. The following two
specifications differ from each other:

/home/AB*
/home/ab*

(Note: An exception is QOpenSys, here wildcard file event paths are not case-sensitive.)

Attributes

Depending on the file system, you can specify all attributes that are supported by OS/400 for the file
transfer's destination. Note that you must separate several attributes with a comma. Invalid specifications
are ignored.

QSYS file system

The OS/400 agent is able to transfer the file types *FILE and SAVF. Other ones such as *PGM, *RPG,
*CLLE must be collected in SAVF files before they can be transferred. 

The following applies for SAVF file transfers: 

l Set the attribute reclen=528 in the FileTransfer object's source file.


l Select the code page UC_CODE in source and destination file.

For all other files, the following applies:

l If the destination file is not yet available, it will be created. The CRTPF command can be used for
this purpose. Therefore, the attributes that can be specified for the file transfer's destination are
parameters of this command.
If no attributes are specified, the file will be created with a record length of 80 bytes (default). In
wildcard file transfers, MAXMBRS(*NOMAX) is set by default (this means that the file has no
member limit). In individual file transfers, the system's default value is used for MAXMBRS.
l If the destination file already exists, its attributes can only be overwritten if the option "Keep original
file attributes" is set in the FileTransfer object. The CHGPF command is used for this purpose. You
can specify its parameters as the destination attributes in the FileTransfer object.

You can use the option Keep original file attributes in the FileTransfer object in order to transfer the
source's file attributes for the destination file(s). Doing so requires the source and destination agent to
have the same operating system (in this case OS/400) and Automation Engine version 9.00A (or later).
Otherwise, this setting will be ignored.

The following file attributes can be transferred:

l ACCPTHSIZ - Access path size


l ALWUPD - Allow update operation (ALWUPD). If on, records are not allowed to be updated in the
file (*NO).
l ALWDLT - Allow deletion operation (ALWDLT). When active, records cannot be deleted from the
file (*NO).
l CCSID - Coded character set ID
l EXPDATE - Expiration date for member
l FRCACCPTH - Force keyed access path
l FRCRATIO - Records to force a write
l LANGID - Language ID
Chapter9 AE and Target Systems | 236

l MAINT - Access path maintenance


l MAXMBRS - Maximum members
l PAGESIZE - Access path logical page size
l RCDLEN - Record length, if no DDS, DDS contains the full record format (keys, fields, relations,
etc.)
l REUSEDLT - Reuse deleted records
l SHARE - Share open data path
l SIZE - Member size, initial number of records, increment number of records, maximum increments
l TEXT - Text 'description'

The parameter order is irrelevant.

Examples:
This example creates a file with a record length of 256 bytes and enters the text 'FT File' as a description:
RCDLEN(256) TEXT('FT File')

The second example creates a file with a maximum number of members without a size limit and reuses
deleted records:
MAXMBRS(*NOMAX) SIZE(*NOMAX) REUSEDLT(*YES)

Additionally, you can use the specific parameter TRIM=YES in the Attributes field of the file transfer's
source. This option is not a real file attribute but a UC4-specific function. It automatically removes blanks
that are used at the beginning and end of each line of the files that should be transferred. This option cannot
be used in combination with the IFS file system.

Additionally, you can use the specific parameter TRIM=YES in the Attributes field of the file transfer's
source. This option is not a real file attribute but an AE-specific function. It automatically removes blanks
that are used at the beginning and end of each line of the files that should be transferred. This option cannot
be used in combination with the IFS file system.

IFS file system:

The following two original IFS file attributes can be used in the destination file(s):

l ccsid - The CCSID used for the data in the file or the extended attributes of the directory.
l codepage - The code page derived from the CCSID used for the data in the file or the extended
attributes of the directory.
l readonly - Determines whether a read only file is created.

The following example creates a file with the codepage (ccsid) 550 which has the attribute READ-ONLY:
ccsid=550, readonly=YES

IFS: You can also pass the attributes of the original file on to the target file provided that this is defined in
the FileTransfer object. The attributes "readonly", "hidden", "system" and "archive" can also be used
across platforms or from Windows files. You can also override these attributes when you specify the target
file. The attributes "ccsid" and "codepage" only apply to OS/400 files.

See also:

FileTransfer tab
237 | Chapter 9 AE and Target Systems

9.8.4 Agent - Commands


The agent is supplied with additional programs and commands. They can be used to start or end the agent
quickly and easily without creating a CL routine. A program for generating the message library is also
supplied. It is helpful if an error occurs.

Note that you must use the latest agent of version 9.00A. The library that includes the program files
must have been added to the system's library list. See: Installation Guide of the OS/400 Agent.

Starting the Agent

Supplied objects:
Program: STRUCAGENT
Command: STRUCAGENT

Command for starting any AE agent without creating a CL routine. The library that includes the agent must
be specified for this purpose. The agent's INI file must be specified either for the IFS or the QSYS file
system. It replaces the UCEX_RUN routine.

Parameters:
LIB(library)
MBR(QSYS INI file) or PATH(IFS path and INI-file name)

Examples:

STRUCAGENT LIB(UC4) FILE(UC4/INI) MBR(UCXJO41)


Starts the agent from the UC4 library by using the INI file UC4/INI(UCXJO41).

STRUCAGENT LIB(UC4) PATH('/user/uc4/ucxjo41.ini')


Starts the agent from the UC4 library by using the INI file ucxjo41.ini which is available in the IFS file path
/user/uc4/.

Ending the Agent

Supplied objects:
Program: ENDUCAGENT
Command: ENDUCAGENT

Ends the agent that has been started from a particular library either immediately or in a controlled manner.
You can use it instead of the UCEX_END routine.

Parameters:
LIB(library)
OPTION(end)

Examples:

ENDUCAGENT LIB(UC4) OPTION(*CNTRLD)


Ends the agent that has been started from the UC4 library in a controlled manner. This command has the
effect that the agent obtains an end signal which is processed soon.

ENDUCAGENT LIB(UC4) OPTION(*IMMED)


Cancels the agent that has been started from the UC4 library. This command corresponds to the ENDJOB
command. The specified agent is searched in the system and ends immediately.
Chapter9 AE and Target Systems | 238

Generating the Message Library

Supplied objects:
Program: MAKEMSL
Command: GENUCMSL

The command GENUCMSL can be used to convert an MSL file that is stored in the IFS file to a physical
message library. The agent can then use the generated message library. This procedure is not necessary
for installing the agent but it is helpful for updating or repairing the message library (if an error occurs).

Parameters:
PATH(IFS path and file name)
FILE(QSYS target file)

Examples:

GENUCMSL PATH('/tmp/uc.msl') FILE(UC4/MSL)

Converts the file uc.msl which is provided in the IFS path '/tmp/' to the file UC4/MSL. The number of
imported message records is output:
Processing completed.
Lines processed '34579'.
Imported '11607' english messages.
Imported '11607' german messages.  

9.9 AE and PeopleSoft

9.9.1 Testing the People Soft Connection


The pscitester program can be used to test the connection to the PeopleTools Application Server.
Pscitester is a PeopleSoft sample program that is supplied as a Java source. It is found in %PS_
HOME%/sdk/PSCOMPINTFC/src/java/samples. You can test it using this example if People Soft can be
accessed with the Java Object Adapter.

The building and testing process of this example program is described below.

Procedure

1. Installing the Java SDK

l Host
l Install the Java SDK on a work station (can also be another one than the PeopleSoft server).

2. Adjusting the PATH Variable

l Add the bin directory <SDK_HOME>\bin to the PATH environment variable. Enter "javac" in the
MS DOS prompt or the terminal to test if the installation was completed successfully. Javac is
output.
239 | Chapter 9 AE and Target Systems

3. Generating the Java Sources

l Select a Component Interface in the Application Designer and click Build -> PeopleSoft APIs. The
Java classes that should be build can be selected now:

CompIntfc.USER_PROFILE
CompIntfc.USER_PROFILE_IDTypes
CompIntfc.USER_PROFILE_IDTypesCollection
CompIntfc.USER_PROFILE_Roles
CompIntfc.USER_PROFILE_RolesCollection
CompIntfc.USER_PROFILE_Roles_RouteControls
CompIntfc.USER_PROFILE_Roles_RouteControlsCollection
CompIntfc.USER_PROFILE_Attributes
CompIntfc.USER_PROFILE_AttributesCollection
CompIntfc.USER_PROFILE_SYNC
CompIntfc.USER_PROFILE_SYNCCollection
CompIntfc.USER_PROFILE_Collection
CompIntfc.CompIntfcPropertyInfo
CompIntfc.CompIntfcPropertyInfoCollection
l Deactivate the checkbox for COM Type Library generation and select a folder in the field Java
classes in which the files can be generated. The Java files are generated in a selectable directory in
PeopleSoft/Generated/CompIntfc.

4. Creating the *.class Files

l Create a folder and copy the file psjoa.jar, the directory pscitester and the directory PeopleSoft to it.
The PeopleSoft directory was specified while you created the Java classes. The directory is
structured as follows:

./psjoa.jar
./pscitester/pscitester.java
./PeopleSoft/Generated/CompIntfc/CompIntfcPropertyInfo.java
./PeopleSoft/Generated/CompIntfc/CompIntfcPropertyInfoCollection.java
./PeopleSoft/Generated/CompIntfc/ICompIntfcPropertyInfo.java
./PeopleSoft/Generated/CompIntfc/ICompIntfcPropertyInfoCollection.java
./PeopleSoft/Generated/CompIntfc/IUserProfile.java
./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypes.java
./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypesAttributes.java
./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypesAttributesCollection.java
./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypesCollection.java
./PeopleSoft/Generated/CompIntfc/IUserProfileRoles.java
./PeopleSoft/Generated/CompIntfc/IUserProfileRolesCollection.java
./PeopleSoft/Generated/CompIntfc/UserProfile.java
./PeopleSoft/Generated/CompIntfc/UserProfileIdtypes.java
./PeopleSoft/Generated/CompIntfc/UserProfileIdtypesAttributes.java
./PeopleSoft/Generated/CompIntfc/UserProfileIdtypesAttributesCollection.java
./PeopleSoft/Generated/CompIntfc/UserProfileIdtypesCollection.java
./PeopleSoft/Generated/CompIntfc/UserProfileRoles.java
./PeopleSoft/Generated/CompIntfc/UserProfileRolesCollection.java
./PeopleSoft/Generated/CompIntfc/IUserProfileRolesRoutecontrols.java
./PeopleSoft/Generated/CompIntfc/IUserProfileRolesRoutecontrolsCollection.java
./PeopleSoft/Generated/CompIntfc/UserProfileRolesRoutecontrols.java
./PeopleSoft/Generated/CompIntfc/UserProfileRolesRoutecontrolsCollection.java
./PeopleSoft/Generated/CompIntfc/IUserProfileCollection.java
Chapter9 AE and Target Systems | 240

./PeopleSoft/Generated/CompIntfc/UserProfileCollection.java
./PeopleSoft/Generated/CompIntfc/UserProfileSync.java
./PeopleSoft/Generated/CompIntfc/UserProfileSyncCollection.java
l Change to this directory by using the MS DOS prompt or the terminal and set the CLASSPATH:

For Windows: set CLASSPATH=.;psjoa.jar


For Unix: export CLASSPATH=psjoa.jar:.
l Transmit the example with:

javac pscitester/pscitester.java

5. Starting the Pscitester Program

l Required is a running Application Server to which the program can connect.


l Enter the JOLT port in the test program. It is found in the file %PS_
HOME%\APPSERV\<APPSERVERNAME>\psappsrv.cfg under [JOLT Listener].
l Start the program:

java pscitester.pscitester

The following error message can be ignored:

java.lang.NullPointerException: PSProperties not loaded from file.

If this message should not be displayed, copy the file pstools.properties from the PeopleSoft server
to the current directory.

l The following output displays if all entries were made correctly:

Application Server Connect Information...


Enter The Application Server Name: wgw2ksps2
Enter The Application Server Port Number[ 9000]:
Enter PeopleSoft UserID [PTDMO]: PS
Enter PeopleSoft UserID Password: [PTDMO]: ********
Connected to Appserver...
Get on Component Interface "USER_PROFILE" succeeded
Listing Component Interface property for field "UserID"
Long Label: User ID
Short Label: User
Is Collection: false
Type: 0
Format: 6
Is Key: true
Is Required: false
Is Xlat: false
Is YesNo: false
Is Prompt: false
241 | Chapter 9 AE and Target Systems

9.9.2 Using Bind Variables


PeopleSoft processes can include bind variables. You can use AE in order to schedule these processes
and assign values to them.

The two functions PS_SET_BINDVAR and PS_RUN_PROCESS interact with each other and can be
used as described below:

l PS_SET_BINDVAR replaces a value that you can either predetermine in AE Script or retrieve via a
Run Control ID.
l Subsequently, you can call the script function PS_RUN_PROCESS in order to start and monitor a
process. In doing so, bind variable values are considered.

Using this function requires the PeopleTools database to be configured. The individual steps are explained
in the installation chapter.

Automic strongly recommends extensive tests being made for jobs that replace values for bind
variables before they are used in the production system. The values have a particular format (such as
the date format) that must be kept. Extensive testing is essential because the particular spelling can
differ and cannot be checked.

9.9.3 Changes in Run Controls


Most processes require parameters (e.g. a period) for execution. This information can be stored in Run
Controls (RUN_CONTROL_RECORDS). Processes retrieve their execution parameters from the
corresponding Run Control.

Usually, a Run Control is a single database record in the PeopleSoft database. It can also comprise
several data records. Unique Run-Control identification is guaranteed with the two keywords OPRID (User
ID) and RUN_CNTRL_ID.

Use

AE provides the function PS_MODIFY_RUNCONTROL which can be used to modify Run Controls.
Modification in this case refers to an individual data record. If several data records of Run Controls need to
be maintained, make an individual PS_MODIFY_RUNCONTROL call for each modification. The AE
procedure differs from online maintenance in PeopleSoft.

Examples

Example 1

A user wants to process the SQR report "Employee Turnover Analysis" and therefore creates the Run
Control "myRunControl". After adding the Run Control, the parameter fields required for the report are
entered and stored. The relevant fields are FROM_DATE and THRU_DATE.
Chapter9 AE and Target Systems | 242

AE can automate this modification by retrieving the user ID from the PeopleSoft job's Login object.
PS_MODIFY_RUNCONTROL RUNCONTROLID='myRunControl',RECORDNAME='RUN_CNTL_
HR',FIELDNAME='FROM_DATE',FIELDVALUE='20050306'
PS_MODIFY_RUNCONTROL RUNCONTROLID='myRunControl',RECORDNAME='RUN_CNTL_
HR',FIELDNAME='THRU_DATE',FIELDVALUE='20060306'
Example 2

The following example shows a Run Control for currency conversion. In this case, fields and values are
provided in list form (currency list).

In order to change currency values, a key must also be assigned when calling PS_MODIFY_
RUNCONTROL
PS_MODIFY_RUNCONTROL RUNCONTROLID='myRunControl',RECORDNAME='RUN_CNTL_CC2_
EO',FIELDNAME='RATE_MULT',FIELDVALUE='100',KEYNAME(1)='CURRENCY_
CD',KEYVALUE(1)='EUR'
The data of the currency list is provided in level 1. Thus, indicate the number 1 in the parameters
KEYNAME(1)= and KEYVALUE(1)=.

Risks and Limitations

Keep the following recommendations in mind when changing Run Controls:


243 | Chapter 9 AE and Target Systems

l Assigned values are only occasionally checked. Thus, wrong values can exist in the PeopleSoft
database and cause one or several components to no longer work online. This error can only be
removed with SQL commands.
l Although no inconsistency will arise in the data model, values can exist in the database which
cannot be recorded online. PeopleCode prohibits the collection of a running date from the previous
year, for example. Use the function PS_MODIFY_RUNCONTROL to enter this kind of data.
l PS_MODIFY_RUNCONTROL does not create new Run Controls because the relevant database
table fields are also filled by PeopleCode and can depend on each other. Neither AE nor the
PeopleCode interfaces for AE recognize this dependency.
l In fact, dependencies between the fields of a Run Control are not considered and can lead to
malfunctions in the PeopleSoft application.
l Run Controls can write more than one data record. For example, the component RUN_CNTL_CC_
EO (Currency Conversion) writes to the tables PS_RUN_CNTL_CC1_EO and PS_RUN_CNTL_
CC2_EO. It is the user's personal responsibility to fill the data records with the correct names.

See also:

PS_MODIFY_RUNCONTROL

9.10 Automation Engine and SAP

9.10.1 SAP Solutions and Job Scheduling with the


Automation Engine

If you are running SAP solutions and need an effective job scheduling solution, consider the Automation
Engine. Enabling the fast, seamless integration of SAP applications into enterprise scheduling, the
Automation Engine supports all SAP applications, including SAP R/3, mySAP Business Suite, and SAP
NetWeaver, as well as industry-specific solutions for telecommunications, banking and more. As a result,
IT processes in any SAP application can be centrally managed and monitored seamlessly alongside the
rest of your global operation.

Because it is specially designed as an Enterprise Scheduler, AE does not require middleware components
such as a JAVA Application Server and provides top scheduling functionality for your whole IT
infrastructure. The system is directly linked to the SAP NetWeaver component SAP Web Application
Server, accelerating the design and implementation of jobs for SAP applications. Reports, variables, and
other necessary parameters are made available via the Automation Engine's easy-to-use, intuitive
graphical user interface (GUI). Problems resulting from manual errors, typos, or outdated report lists are
effectively eliminated. Jobs are created using a simple drag & drop functionality, and visualized graphically
to ensure clarity and simplify management and control.

In addition to offering SAP users total job scheduling automation, the Automation Engine further increases
the productivity of SAP business solutions. By centrally tracking and automating background jobs and
processes of SAP solutions, the Automation Engine ensures that performance is improved by optimizing
background processing and reducing system interruptions and errors.

See also:
Chapter9 AE and Target Systems | 244

Automation Engine and SAP NetWeaver

9.10.2 SAP NetWeaver


Automation Platform and SAP NetWeaver
This documentation follows the SAP NetWeaver architecture and explains AE functions based on it.
Functions for business and custom solutions are also explained.

People Integration

This section about SAP NetWeaver is meant to support end users. This is done via user-friendly interfaces
which move responsibilities for process starts with correct parameters to the particular operating
departments.

AE functions
Integration in SAP Enterprise Portal (iViews)

Information Integration

Warehouse Management is the core of this section. Data loading processes and process chains are under
AE control and are even integrated in other platforms using superordinate processes. Automatic analysis
and display of the individual processes of a chain to the lowest level are taken for granted.

AE functions
Scheduling Data Loading Processes
245 | Chapter 9 AE and Target Systems

Scheduling Process Chains


Scheduling Queries in Batch Mode

Process Integration

This section is about integrating business processes in the SAP Exchange Infrastructure (SAP XI). Being
the Integration Broker, messages can release and re-release processes directly via the SAP XI Standard
Adapter.

AE functions
Monitoring SAP XI Communication Channels

Application Platform

The application platform is the basis of all SAP applications. AE uses ABAP and Java in order to provide
useful functions.

AE functions
ABAP:
Executing Jobs in ABAP Stack (CCMS)
Child Processes
Intercepted Jobs
Evaluating the Application Return Code of SAP Steps
Variant Management
BDC Management
Spool Management
Handling Events
Transferring SAP Jobs
Transferring SAP Calendar Definitions
JAVA:
J2EE/JMX Agent for SAP NetWeaver
JMX in SAP NetWeaver
Executing Jobs in Java Stack (JXBP)

Lifecycle Management

This section provides the means for controlling and monitoring all solutions on the basis of the SAP
NetWeaver technology. AE can access all monitored data while also supplying it own data.

AE functions
Monitoring Monitors
Chapter9 AE and Target Systems | 246

Monitoring SAP NetWeaver


Integrating AE in the SAP Solution Manager
Registering to System Landscape Directory
Switching Operation Modes
Viewing System Log and View Application Log

Application Development

AE also supports the development of applications in various ways.

AE functions
ABAP:
CallAPI for SAP
JAVA:
AE.ApplicationInterface

People Integration

Integration in SAP Enterprise Portal (iViews)

Introduction

The AE iViews for job scheduling supply current information about job scheduling to the SAP Enterprise
Portal component of the SAP NetWeaver so that critical business processes can be started by end users.

Tasks can be started and monitored directly from the SAP Enterprise Portal. End users can start important
processes and set the corresponding parameters if necessary. No knowledge about job scheduling is
required. Each user can monitor the current status of the background processing via the SAP Enterprise
Portal. Started processes are then managed and monitored by the Automation Engine. The current status
is made available to the user via the iView technology.

See also:

Starting Tasks
Monitoring Activities

Starting Tasks

With the iView "ActivateObject", users can start executable objects in AE. For that purpose, the name of
the object and the description of the task need to be specified in the personalization settings. It is also
important to indicate the system alias which must comply with the term the administrator defined in the
system settings.

Different AE systems can be accessed via system aliases.


247 | Chapter 9 AE and Target Systems

The object can now be activated with the Start button. The iView shows the run number (RunID) of the
current or last execution. Follow the link "Detail" and the Detail Window provides further information upon
start time and return code, similar to the UserInterface.

The iView generates an input mask if user input is required for the execution of an object (e.g. if the script
element :READ is used). Red stars "*" symbolize mandatory fields.

See also:

Monitoring Activities

Monitoring Activities

The iView "Activities" shows the activities of the AE system that were started by the particular user. As in
the UserInterface are task priorities, start times and states available.

Information about the activities can only be read. Changes such as canceling or editing tasks are not
possible via iView.
Chapter9 AE and Target Systems | 248

It is possible to adjust the view to your personal requirements by hiding some of the columns, for example.
Do so in the personalization settings and note that it is important to indicate the system alias. It must
comply with the term the administrator specified in the system settings.

See also:

Starting Tasks
249 | Chapter 9 AE and Target Systems

Information Integration

Scheduling Data-Loading Processes

An InfoPackage is an object which describes the selection conditions for requesting data from a source
system. This object can be scheduled and then controls the data-loading process from the source system.
InfoPackages can be externally controlled using a standard interface. AE uses this interface.

AE-JCL for SAP


Script Element Description
BW_ACTIVATE_ Schedules one or more InfoPackages for immediate start.
INFOPACKAGE
BW_GET_ Reads InfoPackages from the BW system. Available InfoPackages are
INFOPACKAGES stored in the activation report or a file.
BW_SET_ Sets selection parameters which are used for reading the InfoPackages
INFOPACKAGE_ from the BW system.
SELECTION

Scheduling Process Chains

Operations can be displayed in your BW system via process chains. A chain includes a start process,
individual application processes and collected processes. Including InfoPackages is also possible.

AE can be used to start and monitor process chains. The individual processes are then displayed in the
UserInterface's Activity Window. Process logs are stored in the report of the AE Job object.
Chapter9 AE and Target Systems | 250

AE JCL for SAP


Script Element Description
BW_ACTIVATE_ Starts a process chain, monitors its execution and stores the corresponding logs in
CHAIN the activation report.
BW_GET_ Reads process chains from the BW system. Available process chains are stored in
CHAINS the activation report or a file.
BW_RESTART_ Continues an aborted process chain.
CHAIN
251 | Chapter 9 AE and Target Systems

Scheduling Queries in Batch Mode

The transaction RSCRM_BAPI can be used to create queries for your BW system. The result is stored
either in a table or a file. Use AE to make queries either regularly or upon request.

In the first step, log on to the BW system and call the transaction RSCRM_BAPI. Schedule the query to
be automated with AE once. Each query has its own batch ID. Open the batch monitor and copy this
number.

Now create a SAP job in your AE system. Use the Form tab or write the following function directly into the
Process tab:
R3_ACTIVATE_REPORT REP='RSCRMREPORT_BAPI'
Now change to the SAP tab and enter the copied BatchID in the field Job name.
Chapter9 AE and Target Systems | 252

This Job object can now be integrated in your processing (e.g. in a Schedule object) and will process the
query at the point in time you define.

It is a SAP peculiarity that the batch monitor does not display all query executions but only the last one.

Business Objects XI R2 (Crystal Reports)

Support of Business Objects (Crystal Reports)

Business Objects can be used to create reports of any kind from your data. Parameters are used to define
the contents of these reports. With AE, you can create automated reports, send them by e-mail or store
them as files. This function is provided by an MBean which is called by the AE agent for J2EE/JMX.

A stand-alone installation (without application server) is required for the agent.


253 | Chapter 9 AE and Target Systems

Functions of the MBean "CrystalReports":

l Assigning parameters to the report


l Storing the report output as a file (Crystal Report, Excel, Word, PDF, RTF, text file)
l Sending the report output to e-mail receivers

Log on to Business Objects with the user specified in the job's Login object. The login type to be used
is "Enterprise".

See also:

Using the MBean CrystalReports

Using the MBeans Crystal Reports

The MBean "CrystalReports" is supplied with the JMX agent and must be installed.

MBean Description
Name UC4:name=CrystalReports
Attribute "StatusCheckInterval" - Interval in which the report status is checked

Default value: 3 seconds


Chapter9 AE and Target Systems | 254

Operations "executeAndMail" - Executes a report and sends its output file by mail

Parameter: Report details, report attributes, email receiver

"executeAndSave" - Executes a report and sends its output file

Parameter: Report details, report attributes

Procedure
Two steps are required to execute a report:

1. Set the parameter for the operation to be called. Use the function JMX_COMPOSITE_ADD
because a list of values is expected. The parameter for report specifications contains values such
as the Web Service's address and the report name.
2. Now call the required operation using the function JMX_INVOKE.

The MBean "CrystalReports" is automatically registered by the JMX agent. It is not necessary to call
the function JMX_CREATE_MBEAN.

Example
The "Smith" company processes a report about orders made by customer number 55355. The result (Excel
sheet) is sent to Mr. Black by e-mail.

The function JMX_COMPOSITE_ADD creates the three parameters "report", "settings" and "mail".
Several values are assigned to each of these parameters and subsequently they are assigned to the
operation "executeAndMail".
! Report details
JMX_COMPOSITE_ADD
NAME="report",KEY="URL",VALUE="http://localhost:5555/dswsbobje2/services"
JMX_COMPOSITE_ADD NAME="report",KEY="REPORT",VALUE="Main_Folder/Customer_
List/3000 - SMITH - Sales_Orders"
JMX_COMPOSITE_ADD NAME="report",KEY="FORMAT",VALUE="EXCEL"
JMX_COMPOSITE_ADD NAME="report",KEY="MAIL_SUBJECT",VALUE="Customer Number
55355"
JMX_COMPOSITE_ADD NAME="report",KEY="MAIL_BODY",VALUE="Dear Mr. Black,
Please find enclosed the report for customer number 55355.
It contains all orders made in December.

Best regards
Jack White

JMX_COMPOSITE_ADD NAME="report",KEY="MAIL_FROM",VALUE="white@smith.com"
! Report attributes
JMX_COMPOSITE_ADD NAME="settings",KEY="Customer_number",VALUE="55355"
JMX_COMPOSITE_ADD NAME="settings",KEY="Date_area",VALUE="20061201;20061231"
! Email receiver
JMX_COMPOSITE_ADD NAME="mail",KEY="black@smith.com",VALUE="TO"
! Calling the MBean
JMX_INVOKE
OPERATIONNAME="executeAndMail",MBEAN="UC4:name=CrystalReports",PARAMS="repo
rt,settings,mail"
255 | Chapter 9 AE and Target Systems

Parameters
As the above example shows, values are allocated to a keyword and then assigned to the relevant
parameter. In doing so, the JMX agent can distinguish report settings.

Parameter Description
Report Available keywords:
details
l "URL" - Address of the Web service
l "REPORT" - Name and path of the report
l "FORMAT" - File format for the report output ("CRYSTAL_REPORT", "EXCEL",
"WORD", "PDF", "RTF", "TEXT_PLAIN", "TEXT_PAGINATED", "TEXT_TAB_
SEPARATED", "TEXT_CHARACTER_SEPARATED", "EXCEL_DATA_ONLY",
"TEXT_TAB_SEPARATED_TEXT", "RTF_EDITABLE", "USER_DEFINED")
Specifically for the operation "executeAndMail":

l "MAIL_SUBJECT" - E-mail subject


l "MAIL_BODY" - E-mail message
l "MAIL_FROM" - Sender's e-mail address
Specifically for the operation "executeAndSave":

l "FILE" - Path and name of the output file


Report Specify the attributes which should be considered in the report.
attributes
Keywords depend on the report.
Email Indicate the e-mail address as the keyword. The value is either "TO" for the receiver or
receiver "CC" for the receiver who should be copied.

Return Codes
After having successfully processed the Crystal Report, the JMX job returns code "0". In the case of an
error, it supplies either "1" if an error occurs when calling the operation or "3" if an MBean program error
occurs. The report shows detailed information about the cause of the error.

The job status is also output in the report:

l "0" - Active
l "9" - Pending (the job has not yet started)
l "1" - Successfully ended
l "3" - Canceled
l "8" - Job execution has been stopped

Report execution is continuously monitored if the status is either "0" or "9".

See also:

Support of Business Objects (Crystal Reports)


Chapter9 AE and Target Systems | 256

Process Integration

Monitoring SAP XI Communication Channels

SAP XI adapters are used to exchange data with the SAP Exchange Infrastructure. They transform
messages so that they can be forwarded via communication channels.

The SAP agent provides functions which can be used to handle adapters:

l Starting communication channels


l Stopping communication channels
l Querying information about communication channels

The functions XI_GET_CHANNEL and XI_SET_CHANNEL can be used in SAP jobs. Information about
communication channels is stored as an XML document in the job report. The script elements for XML
format this data.

Communication channels can also be monitored via Event objects of type "Console". An event is triggered
whenever the status changes.

Activate the XI interface with the SAP Executor's INI-file parameters in the section [SAP_XI].

A Login object with valid login data is required for accessing the XI system. The XI user must be
authorized to control the XI communication channels. We recommend using different Login objects for
SAP and XI system if both are installed on the same host. Otherwise, the login entry is not unique.

AE JCL for XI
Script elements Description
XI_GET_CHANNEL Lists communication channels
XI_SET_CHANNEL Starts and stops communication channels
257 | Chapter 9 AE and Target Systems

Application Platform

ABAP

Variant Management

Variants facilitate processing in SAP as jobs can be processed with ready-set input values. Automic
Supports the use of variants by offering various functions for reading, copying or modifying variants.
Deleting and listing them are also possible.

It is important that variants are checked and set just before an ABAP program is processed in order to
exclude error sources.

AE JCL for SAP


Script Element Description
R3_ACTIVATE_REPORT Executes a report with a specified variant
R3_COPY_VARIANT Copies a report variant
R3_CREATE_VARIANT Creates a new variant
R3_DELETE_VARIANT Deletes a report variant
R3_GET_VARIANT_CONTENTS Shows the content of a variant
R3_GET_VARIANTS Lists all available variants in the activation log
R3_MODIFY_VARIANT Modifies a variant entry

BDC Management

Batch input is a proven technique for transferring mass data from external systems to the SAP system.

The batch input sessions used contain one or several transaction calls including transaction data. AE can
read, process and monitor these sessions until they end. AE can also directly call transactions whose data
has been defined in an AE job (call transaction).
Chapter9 AE and Target Systems | 258

AE JCL for SAP


Script Element Description
R3_ACTIVATE_ Processes batch input sessions
SESSIONS
R3_CALL_ Calls a SAP transaction
TRANSACTION
R3_GET_SESSIONS Selects batch input sessions and lists the result in the activation report or
a file
R3_SET_BDCDATA Defines BDC data

Spool Management

AE is able to handle and process job outputs. This is done via Job object specifications and script
elements.

The SAP tab in SAP jobs can be used to enter spool list recipients. All spool requests created by the job
are sent to the recipients specified in this tab.
259 | Chapter 9 AE and Target Systems

AE JCL for SAP


Many script elements have parameters which can be used to handle job outputs. The following functions
serve to handle spool requests:

Script Element Description


R3_CREATE_OUTPUT_REQUEST Creates a new output request for an existing spool request
R3_GET_JOB_SPOOL Reads the spool list of a step of type "ABAP program".

Filter specifications are possible.


R3_GET_SPOOL_REQUESTS Selects spool requests with predefined filters
R3_SEND_SPOOL_REQUEST Sends an existing spool request

Event Management

Modern business applications demand that process management is event aware. Traditional predefined
and time-based process control systems do not meet the requirements of modern complex application and
system environments and their ever-increasing interdependencies.

With AE.Event, AE offers a sophisticated solution for event-aware process management. Processing can
be performed depending on a variety of real-time system conditions and events. AE.Event offers this
functionality for a variety of OS and application platforms. Definition and modification of events takes
place centrally and is platform-independent, ensuring ease of use by the authorized user.
Chapter9 AE and Target Systems | 260

The SAP background control also provides event control. Events can trigger appropriate SAP background
processes. SAP events are enhanced with an AE implementation, enabling maximum business process
flexibility and extended management functionality.

SAP Event
A SAP event is a flag that is defined in transaction SM62. A defined event can be triggered (manually, with
an OS job or an ABAP program), causing the execution of a background process.

There are two types of SAP events:

l System events
Defined by SAP and automatically triggered if system events occur such as the activation of a new
operation mode. System events cannot be modified.
l User events
Defined by users. These events must be triggered by ABAP or external programs. For example, an
external program can signal to the SAP background processing that external data is ready to be
imported to the SAP system.

Automic Support
Automic Supports SAP events and integrates them into its centralized process management. This solution
can be helpful if the SAP background control works with a large number of defined events and a conversion
to an AE implementation with workflows and AE.Event would be too complex and time-consuming.

For most applications it makes sense to replace SAP events with the AE solution.

AE can use SAP events for its process management. The execution of objects can depend on the
occurrence of a SAP event. For example, particular processes can depend on a successful data import.

AE can trigger SAP-defined events. The full AE functionality is available for defining trigger conditions and
points in time for a SAP event. Upon the occurrence of such an event the appropriate processes in the
SAP system are started.

It is also possible to use an Event object of type "Console". The agent monitors the triggered SAP events
and forwards the information to the Console events. Filters can be used to specify SAP events which
should trigger subsequent processing or an information message.
261 | Chapter 9 AE and Target Systems

AE JCL for SAP


Script Element Description
R3_GET_EVENT Waits for a SAP-triggered event
R3_RAISE_EVENT Triggers a SAP-defined event

See also:

Monitoring SAP Events

Criteria Manager

The SAP Criteria Manager can be used to define conditions for the Event History, Event History Reorg and
job interception in the form of profiles.

You can directly access the Criteria Manager in the SAP job.

Functions: 

l Creating and deleting profiles


l Activating and deactivating profiles
l Adding, modifying and removing conditions

In the Form tab, click on the button to open the Criteria Administrator.

XBP 3.0 is required to access the SAP Criteria Manager.


Chapter9 AE and Target Systems | 262

AE JCL for SAP


Script element Description
R3_ACTIVATE_CM_ Activates a profile in the SAP Criteria Manager
PROFILE
R3_DEACTIVATE_ Deactivates a profile in the SAP Criteria Manager
CM_PROFILE

Transferring SAP Jobs

AE Job objects can be used to define new SAP jobs and also to transfer existing SAP jobs to AE. The
advantage is clear: The job must only be created once.

Jobs can only be transferred if there is a UserInterface connection to the SAP system.

Open a Job object and select the Form tab. The upper left edge shows several buttons. Click the symbol
. A window opens in which you can enter filters for SAP jobs such as name or job number etc.

Now click on the button Find. All SAP jobs that correspond to the specified filter criteria are listed.
Highlight the job to be transferred to AE and Click OK tab.

The Job object adopts the statements the job contains. Parameters such as the variant or output device
are automatically added as shown below:
263 | Chapter 9 AE and Target Systems

If jobs are transferred to AE, they are not removed from the SAP system. Job settings are read and
copied to the AE Job object.

This method of transferring jobs is very useful if only a few jobs are affected. If many jobs are to be
transferred, Automic recommends using the AE.ApplicationInterface.

If you plan to transfer masses of jobs, do so carefully and get a general idea first. In most cases, the
number of jobs has increased in the course of time; they can often be reworked, simplified or even
replaced.

See also:

Transferring SAP Calendar Definitions

Assuming SAP Calendar Definitions

SAP provides the transaction SCAL for defining factory calendars. The AE interface contains an ABAP
program which can be used to export these calendars as XML files. These files can then be transferred to
your AE system. Special calendar definitions are considered.

The ABAP program "/SBB/UC4_CALE_GET" can be opened as soon as the AE interface has been
imported (refer to the installation guide for SAP agents). Enter the factory calendar's ID and information
concerning your AE system as shown below:
Chapter9 AE and Target Systems | 264

The two checkboxes on bottom of the above form serve to determine whether the calendar definition
should be generated as a spool list or XML file. ln the latter case, a dialog opens in which the folder the can
be selected to which the XML file should be stored.

Import the XML file to your AE system. The factory calendar is now provided in the form of a Calendar
object.
265 | Chapter 9 AE and Target Systems

Script elements can also be used to assume calendars automatically.

See also:

Calendar
Importing and Exporting Objects
AE JCL for SAP

Job Management

Executing Jobs in ABAP Stack (CCMS)

AE and its functions can be used in various ways in order to support processing in SAP. Job objects are
the basis for defining statements which should be processed in the SAP system.

The Form tab is the graphical interface that is connected to the SAP system and facilitates the definition
of processing statements through the direct selection of data (e.g. variants).
Chapter9 AE and Target Systems | 266

AE facilitates the execution of:

l Jobs
l Reports
l External commands
l External programs
l Intercepted jobs
l etc.

The Activity Window in the UserInterface shows task states. Tasks can be restarted or canceled if
requested. Child processes are also displayed. When a task has ended in AE, you can access its report
which also includes SAP system messages.

It is not only the Job object which facilitates processing in the SAP system. The object type
"RemoteTaskManager" can also be used to monitor and start jobs in SAP. It is especially useful for
intercepted jobs.
267 | Chapter 9 AE and Target Systems

AE JCL for SAP


Script Element Description
R3_ACTIVATE_EXT_COMMAND Executes an external command
R3_ACTIVATE_EXT_PROGRAM Executes an external program
R3_ACTIVATE_INTERCEPTED_ Executes intercepted jobs under AE control
JOBS
R3_ACTIVATE_JOBS Executes SAP-scheduled jobs under AE control
R3_ACTIVATE_REPORT Executes the specified report
R3_GET_JOBS Selects SAP jobs and lists the result in the activation report or
a file
R3_MODIFY_JOB Modifies an ABAP step
R3_SCHEDULE_JOB_CANCEL Resets a released SAP job to the status "Planned"

See also:

Child Processes
Intercepted Jobs
RemoteTaskManager

Child Processes (JOBD)

SAP jobs can contain one or several subjobs (e.g. in process chains). AE can display these child
processes in its Activity Window. They have their own statistical records and reports.

The parent-child function can be activated in the transaction "SE38" using the program INITXBP2.
Chapter9 AE and Target Systems | 268

The object type of child processes is JOBD.

Set the parameter REPLICATE=YES in the relevant script elements to have the child processes
replicated in your AE system.

Note that child processes can also have child processes. These can be seen in the Parent column of
the Activity Window and the statistical overview.

The illustration below shows the execution of a process chain:

The item "Status text" in the Detail Window of child processes shows the SAP system's instance number.

Deactivating child processes is possible in the corresponding parent processes.

SAP jobs have a special tab called Child Post Process. It is processed when an individual child process
ends. In doing so, the result can immediately be analyzed.

A statistical record and a report are created for each child process. Both can be called via the statistical
overview of the parent process.

The report is structured in the same way as the report of the top parent process but it contains only
information about the particular process step.
269 | Chapter 9 AE and Target Systems

The job report settings are also valid for the top parent process (database, file, on error only). Additionally,
the report length can be specified using the parameters JOBLOG=, PROCESSLOG= and LONGTEXT= of
the script elements BW_ACTIVATE_CHAIN and BW_RESTART_CHAIN.

AE JCL for SAP


Script Element Description
BW_ACTIVATE_CHAIN Starts a process chain
BW_RESTART_CHAIN Continues an aborted process chain
R3_ACTIVATE_INTERCEPTED_JOBS Executes intercepted jobs under AE control
R3_ACTIVATE_JOBS Executes SAP-scheduled jobs under AE control
R3_ACTIVATE_REPORT Executes the specified report

See also:

Child Post-Process Tab

Intercepted Jobs

Filter criteria can be defined in the table TBCICPT1 of SAP jobs. These criteria include the specification of
a client, job name and user. If a user indicated in this table starts a job which meets the specified filter
criteria, the job status changes to "Scheduled" regardless of the defined start mode (e.g. "Immediately").

The Intercept function can be activated in the transaction "SE38" using the program INITXBP2.

Click the  symbol in the "Form" tab of SAP jobs to access the table and maintain its entries (XBP 2.0)or
use the Criteria Manager (XBP 3.0).

Table entries can also be changed dynamically using the script element R3_MODIFY_
INTERCEPTION.

There are two ways of executing intercepted jobs:

1. Use the RemoteTaskManager to control and monitor intercepted jobs


2. Use R3_ACTIVATE_INTERCEPTED_JOBS
3. Use R3_GET_INTERCEPTION to read the table. The result is stored to a file which can be
accessed with PREP_PROCESS_FILE.

You can specify the maximum number of jobs which can run parallel when you start intercepted jobs
individually with a group being indicated as start type.

AE JCL for SAP


Script Element Description
R3_ACTIVATE_ Executes Intercepted jobs under AE control
INTERCEPTED_JOBS
R3_GET_INTERCEPTION Reads the filter table for intercepted jobs and stores them in the
activation log or a file
R3_MODIFY_INTERCEPTION Modifies the filter table for intercepted jobs
Chapter9 AE and Target Systems | 270

See also:

Form tab

Evaluating the Application Return Code of SAP Steps

A SAP job step can also have an application return code.

You can access it as described below:

Via a Script Element


R3_GET_APPLICATION_RC can be used to check the application return code of one or several job steps
and cancel the AE job if required.

Via the Step List Report


This specific report type contains information about the steps plus the application return code. The return
code can be read using the XML script elements.

Example:
:SET &xmlreport# = XML_OPEN(REPORT,,SSTP)
! Reading the first element
:SET &job# = XML_GET_FIRST_CHILD(&xmlreport#)
:SET &name# = XML_GET_NODE_NAME(&job#)
:PRINT "First element: &name#"
! Reading the second element
:SET &child# = XML_GET_FIRST_CHILD(&step#)
! Reading the step's children
:WHILE &child# <> ""
:SET &name# = XML_GET_NODE_NAME(&child#)
! Reading the application return code
:IF &name# = "RC"
: SET &applrc# = XML_GET_NODE_TEXT(&child#)
: PRINT "Applicationreturncode: &applrc#"
:ENDIF
:SET &child# = XML_GET_NEXTSIBLING(&child#)
:ENDWHILE
:XML_CLOSE

Via the Report


Information about SAP job steps is logged in the job report. This report also informs about the application
return code if you use the AE interface.

"Appl-RC n/a" is written to the job report if a step has no application return code.

Use the script function PREP_PROCESS_REPORT to read and further process application return
codes.
271 | Chapter 9 AE and Target Systems

In the following example, the ABAP ZZ_TEST_APPL_RC is called in a job once. Its application return
code should be read.
! Select the line containing ABAP and the application return code.
:SET &HND# = PREP_PROCESS_REPORT(,,REP,"*ZZ_TEST_APPL_RC*Appl-RC*")
:PROCESS &HND#
: SET &ZEILE# = GET_PROCESS_LINE(&HND#)
! Find the exact position in a line where the "Appl RC" starts.
: SET &POS_STR# = STR_FIND(&ZEILE#,"Appl-RC")
! The application return code is located after 8 characters.
: SET &POS_ARC# = ADD(&POS_STR#,8)
! Read the application return code.
: SET &ARC# = STR_CUT(&ZEILE#,&POS_ARC#)
! Check if the step really supplies an application return code.
: IF &ARC# <> "n/a"
! The read value is a string and must therefore be converted to a
number.
: SET &ARC# = CINT(&ARC#)
! Beyond this point there are any script statements which further
process the application return code.
: PRINT &ARC#
: ENDIF
:ENDPROCESS
The application return code is not available with the XBP interface.

JAVA

J2EE/JMX Agent for SAP NetWeaver

Java Management Extensions (JMX) is a technology that provides a series of instruments for handling and
monitoring applications, devices and networks.

The Automation Engine provides a JMX agent that can be used to integrate Java applications into
enterprise-wide processes. Connections are established via an MBean Server and several functions
provide access to these MBeans.

SAP NetWeaver's standard supply contains more than 1600 MBeans that can directly be handled. Java
does not require predefined proprietary "jobs". No Scheduler is required within Java because AE takes
over this function. Due to this standard, this function is also executable on Java sources of other vendors.
A Requirements Checklist in the documentation provides information about all supported application
servers.

AE Script elements can be used to register, list and remove MBeans. MBean functions can be called, and
attributes and information can be read and set.

The Job object's Form tabprovides a graphical interface in which all functions are available.

See also:

Form (JMX) tab


About the JMX JCL
Chapter9 AE and Target Systems | 272

JMX in SAP NetWeaver

The AE JMX agent facilitates using MBeans in SAP NetWeaver.

Monitoring the J2EE Engine


The status of the J2EE Engine can be queried via JMX. The output information is also displayed in the
Visual Administrator under Server -> Services -> Monitoring.

All the Visual Administrator's functions are provided via MBeans and can also be used in AE.

Limitation: AE cannot use JMX operations or attributes that use SAP-specific classes (for example,
com.sapmarkets.bam.application.User) or complex data structures such as lists, maps, or arrays.

The AE MBean Browser in the JXM job displays a maximum of 300 MBeans. A search filter facilitates the
search for particular MBeans (right-click the tree structure -> apply filter...).

For example: The number of unsuccessful login attempt should be queried. The first illustration shows this
value below the node Security -> Aggregated Data. Therefore, you can filter for "*Security/Aggregated
Data/UnsuccessfulLogonAttemptsCount*" in the MBean Browser. Exactly one MBean is returned in the
AE environment.

Here you can select one of the following attributes: "Value", "MaxValue" or "MinValue". An AE job can be
scheduled that queries the number of error messages periodically.
273 | Chapter 9 AE and Target Systems

Starting and Stopping a Service


The Visual Administrator also configures, starts and stops services. As it also uses JMX MBeans, this
function is available via the agent.

Services are listed in the Visual Administrator under Server -> Services:

For example: The Telnet service should be started or stopped.

You can filter "*SAP_J2EEServicePerNode*" in order to have all services displayed in the MBean
Browser. The returned MBeans correspond to the corresponding services.

All services have a "start" and "stop" method. Select the entry "telnet" from the tree structure. Then select
the method "stop". Click OK to generate an AE job that stops the Telnet service:
Chapter9 AE and Target Systems | 274

The modification is immediately visible in the Visual Administrator:


275 | Chapter 9 AE and Target Systems

Executing Jobs in Java Stack (JXBP)

AE provides the following opportunities for the handling of jobs in the SAP Java Scheduler:

l Start jobs using parameters


l Cancel jobs
l Include the logs in the job reports
l Monitor jobs via filter using the RemoteTaskManager

First, the Java job definition must be deployed in the Java Schedule to make it visible to the SAP agent.
Subsequently, you can use a Job object to create an instance from an existing job definition.

A SAP Job object always belongs to exactly one Java job definition.

Create a SAP Job object for Java Scheduler jobs and select a SAP agent plus a Login object. Use the
Form tab to select the job definitions to be applied. The lower part of the tab automatically displays the
corresponding parameters.

 The Job log tab contains the following options:

l Delete after x days - The job log is deleted from the Java Scheduler after x days.
l Do not remove - The job log is not removed from the Java Scheduler.
l Use default settings - The period after which the job log is deleted from the Java Scheduler depends
on the settings made in the job definition.

The job log is always deleted together with the job instance.

Report for Java Statistics


A processed SAP Job object can also contain a report (SJJI) which includes information about the Java
job. Activate this function by checking the relevant checkbox in the area Optional reports in the Job
object's SAP tab.

Installation
Creating the external Schedulers in SAP:

1. Use the WebInterface to log on to the SAP NetWeaver Administrator.


2. Select the Job tab.
3. Click the link "Java Scheduler" -> "External Scheduler".
4. Insert a new entry in the list of registered external Java Schedulers ("Add").
5. Complete the fields. Specify "Automation Engine" for the name and the description.
6. Click on Add.

Creating a Connection object in AE:

1. Log on to system client 0000.


2. Create a new Connection object for SAP.
3. Open the Connection object and select the connection type "Internet" in the Attributes tab.
4. Switch to the Internet tab and specify the connection data for the SAP Java Scheduler. Indicate the
user that was used to add AE as an external Scheduler.
5. Store and close the Connection object.
6. Switch to the folder HOST and open the SAP Agent's object.
7. Select the Connection object in the Agent tab in the field Java Basis.
Chapter9 AE and Target Systems | 276

8. Store and close the Agent object.


9. Restart the SAP agent if it is currently running.

Special Cases
In an environment of several nodes, the Java Scheduler jobs are processed on the node on which the
Scheduler Service is active. If this node is deactivated or fails, job processing continues on a different
node. 

The agent periodically attempts to re-establish the connection to the Java Scheduler if it has been lost
during job execution. The job remains active in the AE system and obtains the status "Waiting for remote
system".

The job aborts if calling the Java Scheduler results in an error. In this case, there is no report about the
Java job's statistics. The error is logged in the Job object's report "Agent Log" and in the SAP agent's log
file. The job aborts with return code 403.

Restarts are not possible. The complete job starts in the Java Scheduler because there is no AE JCL.

Return Codes
SAP status Job return code in AE
COMPLETED 0
HOLD
RUNNING
SCHEDULED
STARTING
UNKNOWN
ERROR 501
CANCELED 502

Lifecycle Management

Monitoring SAP NetWeavers

Monitoring Monitors

SAP offers various monitors that can be used to monitor the SAP environment including corresponding
components. The function R3_GET_MONITOR reads the provided information and makes it available for
further processing.

The following example reads the monitor "All Monitoring Contexts" and stores its content to a text file:
R3_GET_MONITOR MONITOR_SET="SAP CCMS Technical Expert Monitors",
MONITOR="All Monitoring Contexts", FILE="C:\UC4_and_
SAP\AllMonitoringContexts.txt"
Use the script function PREP_PROCESS if only parts of the monitored information should be filtered.
Based on these filter specifications, the script function supplies a data sequence which can then be
277 | Chapter 9 AE and Target Systems

processed. The SAP agent lists the monitor's information in columns. The following example filters lines
with the content "Enqueue". Four columns are used for further processing:
:SET &HND# = PREP_PROCESS("SAP01","R3MONITOR","*Enqueue*","MONSET=SAP CCMS
Technical Expert Monitors","MONNAM=All Monitoring Contexts","COL=FILE","UC_
LOGIN=LOGIN.SAP")
:PROCESS &HND#
: SET &Context# = GET_PROCESS_LINE(&HND#, CONTEXT)
: SET &Name# = GET_PROCESS_LINE(&HND#, NAME)
: SET &Value# = GET_PROCESS_LINE(&HND#, VALUE)
: SET &Status# = GET_PROCESS_LINE(&HND#, STATUS)
: PRINT "&Context# --- &Name#"
: PRINT "Value: &Value#"
: PRINT "Status: &Status#"
: PRINT ""
:ENDPROCESS
The above example calls the function R3_GET_MONITOR in the background. Refer to the document that
describes the script function PREP_PROCESS for more detailed information.

The RemoteTaskManager object also provides monitoring functions in the SAP system. Depending on
the specified filter criteria, it displays jobs triggered by SAP.

AE JCL for SAP


Script Element Description
R3_GET_MONITOR Reads the data of a SAP monitor

Monitoring SAP Events

Events are significant in SAP's background processing. Event objects of type "Console" can be used to
monitor SAP events.

The agent periodically polls the SAP system for occurred SAP events and reports them to the active
Console events in an interval the administrator has defined in the variable UC_HOSTCHAR_
DEFAULT, key JOB_CHECKINTERVAL.

Filters are available which serve to define the SAP events to be monitored. The statements defined in the
!Process tab initiate further processing steps as they are processed when an agent reports a SAP event.

Use the function GET_EVENT_INFO in the !Process tab. It supplies details about the SAP event that
has occurred.
Chapter9 AE and Target Systems | 278

Several filter lines can be specified in the table in the tab's lower area. !Process is processed if a SAP
event is triggered which meets at least one filter specification. !Process is NOT processed several times if
several filter specifications are met.

Overlapping filters can occur if several Console events are used. The agent would then notify all Console
events about the relevant SAP event.

AE does not only provide Console events but also functions which can be used to handle SAP events
via Job objects. R3_GET_EVENT waits for a SAP-triggered event and R3_RAISE_EVENT can be
used to trigger a SAP-defined event.

Procedure
1. Create an Event object of type "Console".
2. Open it and switch to the Console tab. Specify the agent that is connected to the SAP system and
the filter criteria for the SAP events.
3. In the !Process tab, enter the script statement to be processed if a SAP event occurs which meets
the specified filter criteria. The script function GET_EVENT_INFO supplies details about the SAP
event.
4. If required, fill in the other tabs of the Console event and store the object.
5. Now activate the Console event in order to include SAP events in your processing.

Notes
XBP 3.0 is required in order to monitor SAP events of event type "Console". The administrator can
specify the XBP 3.0 interface in the SAP agent's INI file.
279 | Chapter 9 AE and Target Systems

If the agent loses its connection to the SAP system, SAP events can accumulate as the agent is not able
to forward them to the Console events. As soon as the connection has been re-established, the agent
checks if there are SAP events and reports them to the affected Console events.

Due to the fact that huge data amounts can be involved, the agent does not read all SAP events at
once. The administrator can define the required handling in the agent's INI-file parameter
maxEventTimeSpan= .

The agent cannot monitor SAP events if it is terminated. After a restart, it retrieves the point in time when it
last monitored SAP events and also reports SAP events that occurred during its termination.

All agents connected to the SAP system poll SAP events. This means that each agent reports all SAP
events which occurred to the Console events.

If the SAP system's time runs behind AE's system time, the first SAP events cannot be received if
they occur in the gap between the two different times.

See also:

Event Management
Sample Collection - Reaction to External Events

Analyzing System and Application Logs

AE can be used to read SAP application logs as well as the system log.

Both log types supply information about processing in general and possible error situations. AE provides
functions which serve to read the corresponding entries using filters, and store them in a report or file. The
result can be analyzed using PREP_PROCESS and PREP_PROCESS_FILE.

A particularity that applies to the system log is that aborted jobs can store their last system log lines in the
special SLOG report. This makes error analyses much easier. The number of lines to be kept as well as
other settings are defined in the SAP agent's Connection object.

AE JCL for SAP


Script Element Description
R3_GET_ Retrieves messages from the application log and prints them in report or
APPLICATIONLOG file form
R3_GET_SYSTEMLOG Reads the system log of a SAP system during a defined period of time

Integrating the Automation Engine with the SAP Solution Manager

The SAP Solution Manager is supplied with all SAP systems starting from the Web Application Server
(WAS) 6.10. It is meant to become the central monitoring software for SAP systems, but also for external
applications. This should provide for the centralization of all services within a SAP environment.

With the SAP agent, AE integrates the entire enterprise-wide process management in the SAP Solution
Manager.
Chapter9 AE and Target Systems | 280

Monitoring
The essential functionality of the SAP Solution Manager is centralized monitoring. The monitoring part
again distinguishes two main areas:

l Operations
l Business Process Monitoring

While the first one primarily deals with technical processes and system status, the area of business
Process Monitoring helps to design and monitor logical business processes in and around SAP systems.

Operations Monitoring
In the area of operations monitoring the SAP Solution Manager uses the existing monitoring infrastructure
within the CCMS (Computing Center Management Systems). The states of systems and processes are
displayed in a tree structure.

So far these monitors have been limited to SAP systems. Now SAP provides interfaces for external
applications for reporting status data to the Solution Manager and for displaying them in the monitoring
tree.

The SAP agent uses such an interface in order to access the monitor structure in the CCMS. It uses a
Connection object for ABAP Basis. Several script elements can be used to create and modify attributes or
delete nodes:

Script Element Description


R3_DELETE_NODE Deletes a node
R3_SET_LOG_ATTR Sets a log attribute
R3_SET_PERF_ATTR Sets a performance attribute
R3_SET_STATUS_ Sets a status attribute
ATTR
R3_SET_TEXT_ATTR Sets a text attribute

The Form tab of SAP jobs can be used to access nodes. A separate browser displays the monitor "All
Monitoring Contexts" of the monitor set "SAP CCMS Technical Expert Monitors". The node colors
represent the current alarm status.
281 | Chapter 9 AE and Target Systems

Business Process Monitoring


Business processes are based on individual IT processes and systems. Interdependencies can be defined
and graphically represented with the SAP Solution Manager. All data which is available in operations
monitoring can be used to model business processes.

AE centrally controls processes on all of an enterprise's systems and applications. The integration of AE in
the SAP Solution Manager provides the opportunity to represent and monitor enterprise-wide business
processes in a SAP system.
Chapter9 AE and Target Systems | 282

If an error occurs in a business process, the reason can be found immediately. The time for troubleshooting
is minimized, the business process can be restarted as quickly as possible.

Process Management
The Solution Manager will also be able to manage background processes. Currently, this function is
available using the transactions SM36 and SM37.

AE comprehensively supports this function. AE centrally manages and monitors the entire SAP
background processing. AE also combines these SAP processes with processes of all the enterprise's
other systems and applications.

Registering to System Landscape Directory

SAP's System Landscape Directory (SLD) supplies an overview of installed software components. You
can configure the SAP agent in a way that it registers at the SLD whenever it starts.

The following steps are required:

1. Log on to system client 0000.


2. Create a new Connection object for SAP.
3. Open the Connection object, click theAttributes tab and select the connection type "Internet".
4. Switch to the Internet tab and specify the SLD connection data.
5. Store and close the Connection object.
6. Switch to the folder HOST and open the SAP agent's object.
283 | Chapter 9 AE and Target Systems

7. Select the Connection object in the agent tab, field System Landscape Directory.
8. Store and close the Agent object.

The SAP agent now tries to register at the SLD whenever it starts. It can successfully start even if a
registration is not possible (e.g. due to incorrect connection parameters).

The SAP agent's log file contains a message which indicates whether the registration to the SLD was
successful.

Switching Operation Modes

SAP's operation modes support the optimal use of available system resources. Various specifications can
be defined for dialog and background processing, according to the time of day. No R/3 system restart is
required for this method of resource allocation.

AE also supports this SAP function. Use the script element R3_SWITCH_OPMODE to switch operation
modes for individual or all SAP application servers.

AE JCL for SAP


Script Element Description
R3_SWITCH_OPMODE Switches the operation mode in SAP

9.10.3 SAP Banking


Process Management and SAP for Banking
In cooperation with major European banks, SAP has developed an account management solution with
SAP for Banking. AE developers have been working on integrating this new SAP solution into the well-
proven Process Management.

The result is the AE agent for SAP AM/BCA which provides comprehensive process management power
for banking transactions. AE integrates the new SAP solution into its centralized process management
Chapter9 AE and Target Systems | 284

and secures business processes at enterprise-wide level and across all platforms.

Processes in SAP for Banking

A particular feature of SAP Transaction Banking is that entire processes can be stored in the Customizing.
The process definition corresponds to a kind of JobPlan (tabular maintenance). These processes are
mainly called end-of-day processes.

When controlling these processes you must consider the following factors:

Process network

A process network is created and monitored via a menu function from within a process definition in
Customizing. It has a unique ID which must be specified for each run. A process network contains a set of
processes. A process is an application function which technically is always processed in two steps:

1. The actual application function


2. The application's monitoring part. The monitoring part is only executed if the process has been
initiated via a process network.

The entire application (including the monitoring part) can be processed synchronously or asynchronously.

Synchronous processing

The application function including monitoring is processed synchronously from within a function module
i.e. the function module ends synchronously with the application function.

Asynchronous processing

The application function and the monitoring are both started as background jobs with the monitoring job
always following the application job.

Processes with parallelization

Paralleled processing (similar to IS-U/IS-T) is provided for particular processes (with mass data).
Unfortunately there is no basic functionality for this kind of request.

A process with parallelization creates parallel background jobs i.e. a parallel background job and a
subsequent monitoring job. If the process starts asynchronously, an additional parent job is created
(followed by a monitoring job) which is active for the entire runtime of the process.

Application Return Code and Application Log

Processes have an application return code. A normal technical status (e.g. Job ended) cannot sufficiently
ensure successful processing. The individual components of a process (function module, ABAP,
monitoring ABAP, etc.) are also written to an application log.

Starting Process Networks and Processes

Process networks are integrated in dialog functions and initiated by them. Depending on the individual
application, processes are initiated synchronously or asynchronously (jobs running a long time are always
asynchronous).
285 | Chapter 9 AE and Target Systems

Requirements for AE

An AE workflow corresponds to the processing definition in SAP's Customizing. Workflow tasks represent
processes.

SAP's basic job control does not provide the appropriate means to control processes in AM/BCA.
Standard background jobs are not suitable for controlling individual processes as the application function's
monitoring part would not start. Thus, no application return code would be created.

Adjusting all application programs in a way that the monitoring function could run implicitly would have
been counterproductive. It would have resulted in many programs and the application return code would
have been communicated via the job log.

The alternative was to create a process network with an individual ID for each task in the SAP system
from within an AE workflow. This process network always contains only one process. If this process
starts via the process network, two asynchronous batch jobs are created in the SAP system, the
application function and the monitoring function.

New script elements are available in AE for controlling such processes (BCA_ACTIVATE_PROCESS).

In order to enable AE monitoring (status checks), SAP has extended its interface by a corresponding
function.

AE Functional Description

Starting and monitoring processes

This function uses a single process in a process network, while also starting and monitoring it. When the
process ends, the process network also ends because it only contains this single process.

Analyzing application return codes

Single processes supply application return codes. AE can analyze them (e.g. in post script) and react to
them.

Analyzing application logs

Processes of a process network write to application logs. Unfortunately, there is no 1:1 relation between a
process or process network and an application log.
Thus, the AE analysis of application logs provides different information.

This AE function can be used to select application logs according to particular criteria (the results are log
numbers). Application log messages and texts can then be read using these log numbers. Text outputs are
written to a text file or report.

Integration into job networks

AE integrates processes in SAP AM/BCA into enterprise-wide JobPlans. Interdependencies with


processing in other SAP or non-SAP systems can easily be implemented and monitored.

Comprehensive statistics

Comprehensive statistics are provided for all AE-controlled processes. They can be used for later
analyses and future planning. This also applies to processes in SAP for Banking.

AE JCL for SAP

Script Element Description


Chapter9 AE and Target Systems | 286

BCA_ACTIVATE_ Starts and monitors a process which runs in a separate process


PROCESS network.

9.10.4 SAP Financial Closing Cockpit


Integrating the Automation Engine in SAP Closing Cockpit
The SAP Financial Closing Cockpit can be used to schedule several tasks that should be executed in a
particular order and at a particular point in time. Through the integration of AE, you can activate objects of
an AE system via Closing Cockpit tasks.

In order to use the SAP Closing Cockpit with FCC 2.0 Add-on, refer to the alternative installation
description.

Requirements:

AE Internal Webservice
The AE Internal Webservice can be used with the following application servers:

l Sun Glassfish
l JBoss
l IBM WAS CE
l SAP Netweaver CE

Use the installation guide to set up the required application server. Make sure to use the current version
of the AE Internal Webservice.
SAP version
SAP Basis requires a particular or a later support package version depending on the SAP release
version which is used.

Release Package name


700 SABKB70017
701 SABKB70101
710 SABKB71007

Another requirement is SAP ERP version 6.00.

Supplied Files 

Refer to the file SAP_CloCo.zip.ucc in the directory IMAGE:FRAMEWORK\SAPCLOSINGCOCKPIT


which contains the supplied files in encoded form.

Installation

1. Decoding the supplied file


287 | Chapter 9 AE and Target Systems

l Use the program UCYBCRYP.EXE for decrypting the file SAP_CloCo.zip.ucc. It is stored in the
folder IMAGE:\TOOLS\ENCRYPT of the AE CD. Now call the program via the command line using
the following parameters:

UCYBCRYP.EXE -d -f SAP_CloCo.zip.ucc -lLicense file

The license file was supplied by our support team (customer number.TXT).

l The result is the packed file SAP_CloCo.ZIP.


l Unpack the file SAP_CloCo.ZIP.

2. Loading SAP transports

Specific ABAP programs are required for the integration process. Load them to the SAP system by means
of an import. The archive SAP_CloCo.ZIP includes two corresponding files.

l KNNNNNN.SID - Information file


l KNNNNNN.SID - Data file

Copy these files to the transport directory of SAP (e.g.: /usr/sap/trans/). Copy the K file to the subfolder
"cofiles" and the R file to "data".

Log on to the SAP system and import the relevant request using the transaction STMS. Open and check
the request's transport protocol after the import process: all steps have to show the return code 0
(successfully ended) or 4 (ended with warning).

3. Configuring the HTTP RFC connection

Call the transaction SM59 and select "HTTP connections to the external server". Now create a new
connection.

Enter a name for the RFC destination (e.g.: AE_WEBSERVICE) and a description.

Tab: Technical settings:


In the field Target host, enter the host name of the application server where the AE Internal Webservice
runs. Enter the port number in the field Service number.

Tab: Logon and Security:


Select the option Basic authentication. Specify the data for accessing the AE system: in the field User,
enter the AE client, user name and the department (separated by a slash). Now enter the password and
store the RFC connection.
Chapter9 AE and Target Systems | 288

4. Defining the logical port

Start the transaction SOAMANAGER

1. Select the link "Web Service Configuration" ("Service Administration" tab)


2. Search for the object type "Consumer Proxy" which includes *UC4* as the name.
289 | Chapter 9 AE and Target Systems

3. Create a new logical port with the name UC4.


4. In the "Consumer Security" tab fields "User" and "Password", enter the login data for the
Automation Engine system:
Use the following syntax for the user name: <client>/<user>/<department>. For example:
0001/USER/DEV
As the password, use the password of the defined Automation Engine user.

5. In the "Messaging" tab, set the "Message ID protocol" field to the value "Suppress ID Transfer".
Chapter9 AE and Target Systems | 290

6. "Transport Settings" tab: In the field "URL Access Path", enter the value ""/uc4ws/uc4ws?wsdl".
Also set the computer name and the port of the Webservice's Application Server.
Use SOAP 1.1 as the "Transport Binding Type"

Store and activate the logical port.

5. Registering the ABAP report for the Closing Cockpit

Call the transaction SM30 and open the table SCMAPROGRAMS for modifications ("Maintain"). Add a
new entry with the following values:

Column Value
Program /UC4/CC_
REPORT
Application CUSTOMER

Store this new entry.


291 | Chapter 9 AE and Target Systems

6. Testing the connection

Start the program UC4/CC_REPORT via the transaction SE38 to test the connection from ABAP to the
AE system.

See also:

AE Internal Webservices
Integrating the Automation Engine in SAP Closing Cockpit with FCC 2.0 Add-on

Integrating the Automation Engine in SAP Closing Cockpit with FCC


2.0 Add-on
The SAP Financial Closing Cockpit can be used to schedule several tasks that should be executed in a
particular order and at a particular point in time. Through the integration of AE, you can activate objects of
an AE system via Closing Cockpit tasks.

You may use an alternative integration method from SAP. You may find the respective SAP website
pages at: Creating External Jobs

As of version 11, SAP Closing Cockpit may also be used with the FCC 2.0 Add-on. Below you find the
installation steps for SAP Closing Cockpit with this Add-on.

Requirements:

AE Internal Webservice
The AE Internal Webservice can be used with the following application servers:

l Sun Glassfish
l JBoss
l IBM WAS CE
l SAP Netweaver CE

Use the installation guide to set up the required application server. Make sure to use the current version
of the AE Internal Webservice.
SAP version
SAP Basis requires a particular or a later support package version depending on the SAP release
version which is used.

Release Package name


700 SABKB70017
701 SABKB70101
710 SABKB71007

Another requirement is SAP ERP version 6.00.


Chapter9 AE and Target Systems | 292

Supplied Files 

Refer to the file SAP_CloCo.zip.ucc in the directory IMAGE:FRAMEWORK\SAPCLOSINGCOCKPIT


which contains the supplied files in encoded form.

Installation

1. Decoding the supplied file

l Use the program UCYBCRYP.EXE for decrypting the file SAP_CloCo.zip.ucc. It is stored in the
folder IMAGE:\TOOLS\ENCRYPT of the AE CD. Now call the program via the command line using
the following parameters:

UCYBCRYP.EXE -d -f SAP_CloCo.zip.ucc -lLicense file

The license file was supplied by our support team (customer number.TXT).

l The result is the packed file SAP_CloCo.ZIP.


l Unpack the file SAP_CloCo.ZIP.

2. Loading SAP transports

Specific ABAP programs are required for the integration process. Load them to the SAP system by means
of an import. The archive SAP_CloCo.ZIP includes two corresponding files.

l KNNNNNN.SID - Information file


l KNNNNNN.SID - Data file
l Copy these files to the transport directory of SAP (e.g.: /usr/sap/trans/). Copy the K file to the
subfolder "cofiles" and the R file to "data".
l Log on to the SAP system and import the relevant request using the transaction STMS. Select the
import option "Ignore Invalid Component Version".

The transport request is based on SAP Closing Cockpit 7.00. Therefore the component would not
match, as the FCC 2.0 Add-on might run on 7.40.

l Open and check the request's transport protocol after the import process: all steps have to show
the return code 0 (successfully ended) or 4 (ended with warning).

3. Configuring the HTTP RFC connection

Call the transaction SM59 and select "HTTP connections to the external server". Now create a new
connection.

Enter a name for the RFC destination (e.g.: AE_WEBSERVICE) and a description.

Tab: Technical settings:


In the field Target host, enter the host name of the application server where the AE Internal Webservice
runs. Enter the port number in the field Service number.

Tab: Logon and Security:


Select the option Basic authentication. Specify the data for accessing the AE system: in the field User,
enter the AE client, user name and the department (separated by a slash). Now enter the password and
store the RFC connection.
293 | Chapter 9 AE and Target Systems

4. Defining the logical port

Start the transaction SOAMANAGER

1. Select the link "Web Service Configuration" ("Service Administration" tab)


2. Search for the object type "Consumer Proxy" which is named /UC4/CO_UC4PORT_TYPE and
select it.
Chapter9 AE and Target Systems | 294

3. After selecting the object, the following window will open. Click on "Create - Manual Configuration":

4. In the following dialog, enter "UC4" as "Logical Port Name" and activate the "Logical port is
Default" checkbox:

Click "Next" to continue.

5. Select "User ID / Password" in the authentication settings.


Enter a user name using the format <AE Client>/<USER>/<DEPARTMENT>
Enter the password for this AE user and click "Next" to continue.

6. Enter "/uc4ws/uc4ws" in the "URL Access Path" field.


Enter the host name where the web service is deployed and its port in the fields "Computer Name of
295 | Chapter 9 AE and Target Systems

Access URL" and "Port Number of Access URL" as shown below:

Click "Next" to continue.

7. Select "Suppress ID Transfer" in the Message ID (Synchronous) section:

Click "Next" to continue.


Chapter9 AE and Target Systems | 296

8. Activate "Suppress sending of IBC Identifier" and click "Finish":

5. Registering the ABAP report for the FCC 2.0 Add-on

1. Execute the program RDDKOR54


2. Enter SCMAPROGRAMS as table name and select "Execute" (F8).
3. Click on the "Create Reservation" (F5) button.
4. Enter "/UC4/*" as namespace and save the changes. The result will look as follows:

5. Call transaction sm30 and enter the table name SCMAPROGRAMS.


6. Add a new entry with the program /UC4/CC_REPORT and application CUSTOMER
7. Save this entry.

6. Testing the connection


297 | Chapter 9 AE and Target Systems

Start the program UC4/CC_REPORT via the transaction SE38 to test the connection from ABAP to the
AE system.

Add customer exits in /UC4/CC_REPORT program


Business Add Ins (BAdI) are special extensions for SAP. Detailed information is available on the SAP
website.
Below you find a description how to use a BAdI with the /UC4/CC_REPORT program.

A BAdI will be added to the /UC4/CC_REPORT program. The default implementation does nothing and
the program continues.
You may create another implementation which performs some checks based on the Automic object name
and user (SY-UNAME)

Create a BAdI implementation

The enhancement spot is called /UC4/AUTH_CHECK:

l Select "Create BAdI Implementation" from the context menu.


l The implementation class must implement the /UC4/IF_CC_START_ALLOWED interface.
l This interface has one method called "CHECK" and a parameter UC4OBJECT.

Example

This BAdI can be used to implement a permission check based on a table with user names and job names.
Chapter9 AE and Target Systems | 298

If the user is 'ANG' and the object name is JOBP.TEST1, the program will show a message box with user
and object name and exit.

See also:

SAP - Custom Solutions

Activating Objects with SAP Closing Cockpit


The integration of AE in the Closing Cockpit is the key to the activation of executable objects via tasks in
the SAP Financial Closing Cockpit. The corresponding installation guide is provided in the chapter
Installing the SAP Financial Closing Cockpit Integration. This document describes the general mode of
operation and use.

After a successful AE Internal Webservice installation and Closing Cockpit integration, you can assign
executable objects to the Closing Cockpit templates. The required steps and the execution behavior are
described below.

Configuration

Log on to the SAP system and call the transaction CLOCOC. Open a template (Edit) and select the
command "Add task" via the context menu from any location in the organization structure. Specify all
required values in the displayed dialog. Select "Program" for the option Type of task and enter /UC4/CC_
REPORT in the corresponding field. Now select or create an appropriate variant.

This variant stores the name of the object to be executed. All other fields are optional and will be passed on
to the activated object as additional values via the read buffer.
299 | Chapter 9 AE and Target Systems

Call the input assistance (F4) for the field Name of a object to display all executable objects of the client
that was specified in the particular RFC connection. Name, type, title and path of the objects are
displayed.
Chapter9 AE and Target Systems | 300

The additional fields in the variant dialog can be used to pass additional values on to the activated object.
The names of the script variables that are provided for the object in the input buffer are listed below:

Parameter/Field Name of the AE Script variable


Controlling area KOKRS
Period PERIO
Fiscal year GJAHR

The additional parameters can be used to write self-defined values to the read buffer. The column variable
defines the name of the read buffer variable.

The values of this script variable can be read using the script element :READ in the script.

Example:
:READ&KOKRS#,,'KOKRS',
Store the variant and the task. Now create a task list from the template.

Execution

Use the transaction CLOCO to execute task lists of the Closing Cockpit. Open a task list that includes
object activating tasks. Include these tasks and check their states.
301 | Chapter 9 AE and Target Systems

If a task has been executed and its status is shown in SAP as "Completed", then it ended with the status
ENDED_OK in the AE system. Every other AE status causes the output "Error" in the Closing Cockpit.

To display the AE job report, open the spool of the relevant task in the Closing Cockpit. This spool includes
all AE report types (ACT, REP, LOG,...) and the RunID of the executed AE task.

In the configuration of the Closing Cockpit (CLOCOC), you can also define dependencies for tasks that
start programs or transactions. Do so by opening a template or task list and calling the view
"Dependencies". Tasks can be inserted in this Dependency area via drag and drop. This function is also
supported in tasks that call objects. A dependency can be used to determine that a task can only start
when a particular task has ended.

See also:

AE Integration in SAP Closing Cockpit

9.10.5 SAP Solution Manager


SAP Solution Manager Integration
You can use the SAP agent to access an AE system with the SAP Solution Manager and read various
information or manage processes in the AE system. This document explains the configuration process and
the details of this integration.

Some functions are not directly available in the Solution Manager but by setting up a specific
integration, you can call the UserInterface directly from the Solution Manager and quickly access these
functions. For further details about the affected functions and how to configure the integration, see
Setting up the UserInterface Integration.

Configuration

To use the SAP Solution Manager for AE, you must define the settings for the SMSE (Solution Manager
Scheduling Enabler) inferface in the agent's Connection object. Then restart your SAP agent.

Note that you need a separate SAP agent for the SAP Solution Manager Integration.

In the Connection object of the SAP agent that should be used for the integration, start off by configuring a
connection to the SAP system (CONN object: General -> Connection Parameter). Then complete all fields
in the CONN object's Interfaces -> SMSE section:
Chapter9 AE and Target Systems | 302

l Click Activate to enable the fields that should be edited.


l In AE User, specify the client, name, department and the password of an existing AE User object.
You can also define the AE client in the SAP Solution Manager. Note that in this case the user who
is specified in the Connection object must also exist in this client.
l In RFC Server, you define the SAP Gateway and the RFC connection. The RFC destination will
automatically be created when the SAP agent starts. The program ID and the name of the RFC
connection are freely selectable.

Restart the agent and call the transaction EXTSDL in your SAP system. The RFC connection that you
have defined in the Connection object should be listed and marked as the default connection. By clicking
Connection Test, you can test whether you can successfully establish a connection to the Automation
Engine.

Functionality

When you have successfully completed the configuration process, you can run the following AE functions
with the SAP Solution Manager:

Function Description
Reading clients This provides a list of all an AE system's clients and their
descriptions.
Canceling tasks The available commands are cancel, stop, stop (recursive), go,
go (recursive).
Retrieving the states of tasks This queries the status of a certain activity.
303 | Chapter 9 AE and Target Systems

Reading folders This supplies a list that includes the ID, the folder name, the
folder title and the name of the superordinate folder.

If the name of the folder or the parent folder exceed a length of


80 characters, they will be truncated. The title has a maximum
length of 255 characters. Special folders such as the Recycle
Bin, Transport Case, <No Folder> etc. are not part of the list.
Retrieving a list of SAP systems This retrieves the name and the description of a certain client's
SAP agents. The additional description contains the basic SAP
version and the agent's Automation Engine version.
Querying a list of queues This queries the object name, the title and the max. slots of the
queues.
Retrieving the executable object This retrieves a list that includes the types and a description of
types the executable objects (such as CALL - notification).
Retrieving the executable objects This retrieves a list that includes the names and the object types
of the executable objects.

You can specify a certain folder whose objects should be listed.


You can also filter for the name or the object type.
Retrieving the status filter This retrieves a list of status groups that are used to filter
activities (such as ANY_OK or ANY_ABEND).
Querying a list of activities This queries the content of the Activity Window of the particular
client.

You can define a status filter and a sorting order (ascending or


descending) in order to limit the results.

The time and date fields (such as the start time) are converted to
UTC and displayed. The system assumes that the actual time
zone in AE complies with the local time zone.
Retrieving a task's list of reports This provides a list that includes all a task's reports and outputs.

This lists contains the report type (such as REP or ACT) and the
output type ("L" = job log, "S" = spool list, "A" = application log,
"O" = other).
Reading a report content This retrieves the report content of a task.
Retrieving the user of a task This retrieves the name and the department of the user who has
started the task.

It is read from the statistical details. If the name exceeds a


length of 40 characters, it will be truncated.
Reading the prompt parameters of an The following parameters can be read:
object definition
-) The name of the PromptSet object
-) The reference variable
-) The type of the PromptSet element ("N" = number, "D"
= timestamp, "S" = all other types)
-) The value of the PromptSet element
-) The property "Value required" ("X" = the option is set, " " = the
option is not set or not known)
-) Whether an input assistant is available ("X" = yes, " " = no or
not known)
Chapter9 AE and Target Systems | 304

Reading the parameters of a task This reads the name and the value of an activity's object and
PromptSet variables (detail - object variables).
Creating or delete BAE events in AE This creates or deletes BAE events as AE Sync objects.

The AE Sync objects that represent BAE events have the value
"SMSE" as their archive key 1. This includes that you can
search and filter for these specific objects. The Sync objects
have only two states: CLEARED (initial state) and RAISED.
Reading BAE events from AE This retrieves the Sync objects that represent BAE events
(object type = SYNC, archive key 1 = SMSE).

You can filter for the object name.


Retrieving the status of BAE events This is the current status of a Sync object that represents a BAE
event. The Sync Monitor is read for this purpose. The object title
is returned as a description.

Possible values: R (RAISED) or C (CLEARED)


Querying BAE event instances This is a list of the tasks that wait for a Sync object that
represent a BAE event. It is also read from the Sync Monitor.
Reading notifications This reads the monitor of active or ended Notification objects.

The following details will be returned:


-) Subject
-) Possible answers
-) Message text
-) Activator (RunID)
-) Start time
-) Status (depending on the notification type. Alarm or request:
"Q" = active, "R" = ended. message: "N" = active, "R" = ended)
-) Object type of the triggering object.
Reading the message text of This retrieves the message text of an active notification.
notifications
Input parameter: The RunID of the notification.
Confirming a notification You can accept or reject an active notification.

Input parameter: The RunID of the notification.


Scheduling, changing and starting The following actions are possible:
tasks
-) to activate the task once or recurrently
-) to restart a task
-) to restart a task from its last restart point
-) to reschedule the task. If you change the activation of a task
from recurrently to once, it will be rescheduled (new RunID).

These functions (except for "Reading clients") refer to the AE client that has been specified for the
SMSE interface in the Connection object.
305 | Chapter 9 AE and Target Systems

SAP Solution Manager - Use Cases


This document describes typical use cases for the SAP Solution Manager Integration.

SAP Solution Manager integration allows you to access functions of the Automation Engine. You can even
schedule AE tasks from the job scheduling workcenter in the SAP Solution Manager.
You can either schedule them directly or out of a SAP job documentation. In doing so, you can integrate
the Automation Engine in the SAP Change Management or the Service Desk.

For information about configuring and testing the integration, see the chapter SAP Solution Manager
Integration.

For the following use cases, start the job scheduling workcenter (SOLMAN_WORKCENTER transaction)
of the SAP Solution Manager.

Use Case 1: Searching an AE Job Out of the Solution Manager

1. In the SAP Solution Manager Workcenter, Job Monitoring section, select the entry External Job
Scheduler.
2. You can now define filters according to criteria that should be used for searching AE jobs. The
Isolation group stands for the AE client.
3. Click Apply to have the jobs that were found listed in a table.

Use case 2: Scheduling Tasks from a Job Documentation

The following steps are required in order to schedule objects in the Automation Engine out of a SAP job
documentation:

1. Open a SAP job documentation and select a system in the Systems tab.
2. Click the Scheduling tab to see the interface in which you can schedule your tasks.
3. Set the required parameters such as the AE client (Separation Group field), the RFC connection,
Queue object, priority and the name of the object that should start (Job Definition field).
Chapter9 AE and Target Systems | 306

An input assistant is available for selecting the object that should start (Job Definition). All
executable objects of the specified AE client will be listed. You can filter for the folder (ID of an
application), the object type (Definition Type) or the object name (Job Definition).
307 | Chapter 9 AE and Target Systems

4. Click Schedule/Change Externally in order to schedule the task in the Automation Engine. The
AE RunID of the activated task will then appear in the upper window area.

5. By clicking External Notes, you can add comments to an execution.


Chapter9 AE and Target Systems | 308

6. External Logs will show the task's AE reports. Note that no external reports are available.

Use case 3: Directly Scheduling Tasks

When you open the Job Scheduling Workcenter, you can use the menu item Schedule Jobs in order to
schedule objects directly in the Automation Engine.

1. In the Scheduler section, select the entry SMSE for the Automation Engine.
2. Now select the RFC connection with the corresponding AE client. Note that the AE client is shown
in the Separation Group section. This means that when you directly schedule tasks for AE, the
Separation Group must always be a number (such as 1010). You can ignore the RFC entry for
Separation Group GLOBAL.

3. Set the required parameter for the object that should start (RFC connection, Separation Group,
queue, priority and object name). Specify the name of the object that should start in the Job
Definition field (you can also use the input assistant for this purpose).
As in use case 2, you can now schedule this task in the Automation Engine by clicking
Schedule/Change Externally.

For the start conditions, the Automation Enginegenerates temporary Calendar objects.
309 | Chapter 9 AE and Target Systems

Setting the option Schedule Stopped has the effect that the scheduled task will remain in the
Automation Engine with the status "Waiting for manual release" until it is manually released.
You can also change existing schedules subsequently by adjusting them to your requirements
and clicking Reschedule in order to update your Automation Engine

Setting Up the UserInterface Integration


Some AE functions are not directly available in the SAP Solution Manager but by using a specific
configuration, you can open the UserInterface directly from the Solution Manager at the required position.
By doing so, you can quickly access these functions.

The following functions are not directly available in the SAP Solution Manager:

l Creating and editing Job objects


l Listing the existing Job objects
l Creating and editing workflows

To set up the UserInterface integration, follow the steps below. For a general description of the
configuration process, see SAP Solution Manager Integration.
Chapter9 AE and Target Systems | 310

Supplied Files

The UserInterface is supplied as a Web application that must be integrated in a Tomcat Application
Server. A Tomcat Application Server of version 7 is required for the installation process.

The Web application is supplied in the following directory: IMAGE:\AGENTS\SAP\_SOLMAN\

Procedure

1. Setting up the UI Web application

l Host
l Copy the file UC4WEBSTART.WAR to the "webapps" folder that is stored in the program directory
of the Tomcat Application Server.
l Restart the Application Server.
l The new sub-folder UC4WEBSTART will be created in the webapps directory.

Do not delete the WAR file because if you do so, Tomcat will also remove the folder UC4WEBSTART.

2. Adjusting the configuration file

l Host
l This step determines the AE system to which the UserInterface should connect.
l Note that you can configure only one connection for the UserInterface.
l Open the configuration file:
<Tomcat directory>/webapps/uc4webstart/WEB-INF/web.xml
l Adjust the following parameters to your system environment:
l Server name: The name or the IP address of the computer on which the AE system runs.
l System name: The name of the AE system.
l Port number: The port number of the CP to which you want to establish a connection.

An example of the relevant part of the file web.xml that must be adjusted:
<init-param>
<param-name>Server name</param-name>
<param-value>SAPHOST01</param-value>
</init-param>
<init-param>
<param-name>SystemName</param-name>
<param-value>UC4</param-value>
</init-param>
<init-param>
<param-name>Portnr</param-name>
<param-value>2217</param-value>
</init-param>
3. Configuring the Agent

l Agent computer
l Open the INI file of the SAP agent for which you have configured the SAP Solution Manager
Integration.
311 | Chapter 9 AE and Target Systems

l Enter the URL of the UI Web application as the value for the parameter WebStartURL= ([SMSE]
section).
l Save the INI file and restart the agent.

For example:
[SMSE]
webStartURL=http://saphost01:8080/uc4webstart
4. Calling the UserInterface

The URL that you have specified in the agent's INI file opens when you call one of the described functions
in the Solution Manager.

The Web browser displays a page that includes the link "Start AE UserInterface". Click it to open the
UserInterface's login dialog. Log on to run the selected function in the UserInterface.

For example: When you create a new job in the SAP Solution Manager, the UserInterface and the dialog
open that request you to enter a name for the new Job object.

9.10.6 Custom Solutions


Archiving Data in SAP Systems
Data archiving in SAP systems removes mass data from the database that is no longer required in the
system but should remain available for future analyses. The Automation Engine provides for centrally
controlled data archiving.

Data to be archived is pooled in "archiving objects" (e.g. the archiving object SD_VBAK contains all data
concerning sales records). Archiving runs are integrated using the Archive Development Kit (ADK). ADK
provides the technical basis for the archiving transaction (SARA).

Usually, a separate program flags data to be archived based on configurable residence periods. Flags are
often used in two steps: After the end of residence period 1 (e.g. 6 months), a deletion annotation is set and
after the end of residence period 2, the deletion annotation becomes a deletion flag. Now the object can be
archived.

The archiving process is basically divided into four steps:

1. Pre-run (deletion annotation):


Flags data that should be archived. A pre-run can also be performed regardless of the time frame
specified for the archiving run.
2. Creating archive files:
During the archiving process, the data to be archived is sequentially written into newly created
archive files.
3. Starting the deletion program:
Based on the generated archive files, the deletion program removes the archived data from the
database.
4. Storing the archived files:
The newly created archive files can finally be stored in a filing system or manually stored on tape.
The storing process can be initiated automatically or manually.

Transaction SARA provides for a manual or a semi-automatic (deletion, storage) archiving process. AE
fully automates archiving runs in all SAP releases.

For archiving data outside transaction SARA please adhere to the following notes:
Chapter9 AE and Target Systems | 312

l 458670 Data archiving with an external job scheduler


l 133707 Data archiving outside transaction SARA

Controlling with AE

From the technical point of view and regardless of the object to be archived, archiving runs in SAP
systems always consist of four steps:

1. Writing program (WRI)


The write program deals with pre-runs and the creation of archive files. It is capable of running in the
background, parameters can be set using a variant.
2. Deletion program (DEL)
The writing program automatically creates a deletion (DEL) job for each archiving file, if this has
been specified in the relevant archiving object's customizing. The DEL job contains the deletion
program.
3. Storing the archived files (STO)
The deletion program creates a storing (STO) job. The STO job contains the storing program.
4. Possible post processing (END)
Post processing jobs are also automatically created. They are not available for all archiving objects.

Requirements in the SAP System

1. Automatic deletion program


Specify in the archiving object's customizing that the deletion program starts automatically.

2. DEL, STO and END jobs must not start automatically in SAP.
For controlling these jobs with AE, their automatic start in the SAP system must be prevented. The
function "Job Interception" serves this purpose as of release 4.6C. Activate it with the ABAP
program INITXBP2. The interception table must contain the job names of the DEL, STO and END
jobs of all archiving runs.

Objects

The entire process is handled with a workflow which contains 3 steps:

1. Starting and monitoring the writing program


The AE function "Submit ABAP program" creates a WRI job in SAP and monitors it until it ends.
313 | Chapter 9 AE and Target Systems

2. Starting and monitoring deletion jobs


The AE function "Select and start intercepted jobs" starts and monitors DEL jobs created by the
WRI job.
3. Starting and monitoring storing jobs
The AE function "Select and start intercepted jobs" also starts and monitors storing jobs created by
the DEL jobs.

Procedure

1. Workflow activation
Use the :READ mask to query the name of the archiving object.
2. Workflow Monitor
Select or specify the archiving object and the workflow automatically starts and is displayed in the
monitor. It only ends when all processing steps ended successfully.
3. Monitoring and control
The entire procedure can be traced within Automation Engine and SAP. AE provides all logs for
automatic analyses. In SAP, the procedure can also be traced in the administration function of the
relevant archiving object (transaction SARA).

Conclusion

SAP data archiving is easily implemented using AE's standard functions and offers various advantages:

l Complete automation
The entire SAP system management can be automated using the Automation Engine for controlling
the data archiving processes. Manual interference is not necessary. Mutual dependencies to other
processes are easily implemented.
l Cost reduction
Archiving data on a regular basis provides for optimized database dimensions, improves
performance and saves memory. With AE, these advantages are centrally controlled and
automatically processed without the accumulation of additional costs.
l Optimum resource balance
Resources can optimally be used due to the central and automated control, thereby avoiding
conflicts and shortfalls. Smooth SAP operation is guaranteed.
Chapter9 AE and Target Systems | 314

l High reliability
Automation considering all system parameters significantly reduces the number of possible error
sources.
l Work relief for staff
SAP experts are relieved from cumbersome manual tasks and can apply their expertise in areas of
significant benefit: in improving systems and service levels.
l Central control and overview
All processes in the SAP system are centrally monitored and controlled. Potential problems are
immediately noticed which reduces troubleshooting times to an absolute minimum.

Monitoring SAP Programs Update Requests


SAP programs may request asynchronous updates that are executed in different processes and
transactions. Details you may find on SAPs website. With the following workflow solution you may
monitor these requests.

Monitoring Workflow
Create a workflow containing two SAP Job objects. The first Job shall schedule update requests and the
second one shall wait until all update requests have been executed.

The status of the workflow will be ENDED_OK, if all update requests have finished without errors.

Below you see a possible version of such a workflow.

The second SAP job contains only one command:


R3_ACTIVATE_REPORT REPORT="Z_WAIT_FOR_UPDATE"
The example program Z_WAIT_FOR_UPDATE uses the function module UPD_CHECK_LOCAL_
QUEUE to periodically get the status of update requests. It completes, if no update requests are
active.

Workflow status example: The first Job is executed, while the second Job waits until all update requests
have been processed:
315 | Chapter 9 AE and Target Systems

For this information in FCC 2.0 you may use external Jobs. Details on external Jobs may be found on
SAPs website.

See also:

Integrating the Automation Engine in SAP Closing Cockpit with FCC 2.0 Add-on
Compare Values in SAP Spool Lists

Compare Values in SAP Spool Lists


SAP Spool lists show print jobs that have not yet been transferred to a device. The data needed for printing
or output on a device is temporarily saved to an intermediate format until they will be called. The values for
such spool requests in the respective lists may be compared by using Automation Engine SAP jobs.

Comparing Spool Request Values - Workflow


Create a workflow with two SAP Job objects. Each Job produces a spool list. A third Job object will be
used to compare the numbers of the spool list values.

When both Jobs have been finished, the values will be extracted from the spool lists and be passed to the
third Job in the workflow.

The status of the workflow is set according to the comparison:

Numbers are equal ==> ENDED_OK

Numbers are unequal ==> ENDED_NOT_OK


Chapter9 AE and Target Systems | 316

Transferring Spool List Content to Job Report


Below you find an example of one of the two SAP Jobs in the workflow, each of them consisting of two
steps:

In the first step the program is executed and in the second step the content of the spool list is added to the
report.

The report of this job look like this:


317 | Chapter 9 AE and Target Systems

It contains the Job log from SAP followed by the spool list.

Extracting Values
Job 1:

To extract the value from the spool list the following UC4 Script is used in the post process tab of the Job.

This script is executed after the Job has finished. It processes the report and extracts the values:

The PREP_PROCESS_REPORT function filters all rows which contain a "|" character.

This returns these values only:

| USD 123.456.789,01 1.234.567,89 |


| BEF 12.345.678.901 123.456.789 |
| KUD 123.456.789,01 365.413.243,87 |

l The last row then is stored in the variable &RET#


l STR_LNG is used to get the length of the row. The function SUBSTR is then used to remove the
trailing "|" character. With STR_TRIM the trailing spaces are removed.
l The result is stored in the variable &RET# and is now:

| KUD 123.456.789,01 365.413.243,87


Chapter9 AE and Target Systems | 318

l The STR_FIND_REVERSE function is used to get the position of the last space character in this
row.
l Finally the function SUBSTR is used to get "365.413.243,87" and store it in the variable &RET#

With PSET the object variable &JOB1_SUMME# of the Workflow is updated.

The workflow also contains a second variable &JOB2_SUMME# which is set by the second SAP Job.

Job 2:

The report of the second Job looks like this:


319 | Chapter 9 AE and Target Systems

UC4 Script is also used in this case to get the value:

This script filters for all rows containing the word "SQ".The result is one row:
|SQ| 26|28.02.1995|365.413.243,86 | |DC-10-10| 380 | 2 |1.684,00 | 0 | 0 |
0 | 0 |
The character "|" is defined as separator of columns. Therefore the value 5 (variable &column#) can be
used directly get 365.413.243,86 from the report.

STR_TRIM is used to remove spaces. The result is published as &JOB2_SUMME#

Compare Jobs
Both Jobs must have finished before the compare job may be started:

It has access to the variables &JOB1_SUMME# and &JOB2_SUMME#.

This Job has the setting "Generate at runtime" activated on the "Attributes" tab.

In this example it starts an SAP program with parameters that depend on the result of the comparison.
Chapter9 AE and Target Systems | 320

The simple program Z_INFO uses MESSAGE of the I or type E depending on the SUCCESS parameter:
REPORT Z_INFO.
parameter text1 type string.
parameter text2 type string.
parameter text3 type string.
parameter success type c.
if success is initial.
MESSAGE I002(SY) WITH text1.
MESSAGE I002(SY) WITH text2.
MESSAGE E002(SY) WITH text3.
else.
MESSAGE I002(SY) WITH text1.
endif.

The workflow can be set to ENDED_NOT_OK when the compare jobs fails:
321 | Chapter 9 AE and Target Systems

Comments

The special parameter value (REPORT,REP) for the FILE parameter in the R3_GET_JOB_SPOOL
command is not documented, but exists since v9.
Normally the R3_GET_JOB_SPOOL command can only write files. However the SAP Agent cannot
read them. An OS Agent would be required to extract the values with PREP_PROCESS_FILE and
delete the old files when they are not needed anymore. This would also be a possible solution, but more
complex than the one described here.

See also:

SAP - Custom Solutions

Mass Processing
IS-U is SAP's business solution for the utility industry.

IS-U's accounting system for utility and service industries has been specially designed for the specific
requirements of these sectors. By integrating IS-U utility industry with the neutral R/3 standard
components and interfaces to external systems, SAP offers an integrated enterprise-wide solution for the
utility industry's operational data processing.

The transaction volume of utilities with several million customers, various types of utilities and perhaps
billing on a monthly basis is mainly handled in background operation.

Examples:
Chapter9 AE and Target Systems | 322

l Creating reading records


l Requests for advance payment
l Accounting/billing
l Dunning runs
l Payment runs
l etc.

Definition

AE is able to automate these background requirements. We developed a special type of background


"mass processing" in order to optimally deal with huge data amounts.

Characteristics of mass processing:

l A master job splits into a dynamic number of partial jobs.


l Each mass processing run requires a parameter set which is identified by date and RunID.

One specific requirement is that a particular order must be kept (e.g. accounting must be finished before
billing starts; both are mass processing runs).

Technique

Mass processing includes a dispatcher which generates parallel split jobs through the definition of
parameters.

When scheduling mass processing, the dispatcher forms the master job of background processing. When
it is processed, it generates a dynamic number of split jobs (the number depends on the defined parameter
settings).

Controlling is handled by AE. Scheduling can be handled by AE or SAP.

SAP R/3 Client Copies


Like the Automation Engine, SAP R/3 is a client-capable application. The individual clients are completely
separate units. In some cases, periodical data exchange between clients is necessary. AE can be used to
automate these processes.

The "client" is the top-level hierarchy in R/3 applications. Settings on client level apply to all structures in
the R/3 enterprise organization. The client is a self-contained unit in technical, economical and
organizational terms.

This client concept can be used for:

l Managing many data center customers in one R/3 system.


l Setting up several clients with different tasks on one R/3 System. For example:
l Standard client (client 000)
l Customizing client (001)
l Test client
l Quality assurance client
l Production client

In such an environment it is often required to supply a QA or test client with consistent data. The most
suitable way to obtain this data is copying the production client. Regularly copy this client in order to
establish a realistic test environment.
323 | Chapter 9 AE and Target Systems

Client Copies in SAP R/3

Copying clients in SAP R/3 involves some effort, especially the creation of periodical copies for supplying
test systems with current data.

SAP R/3 supports the online copying and transportation of clients. These transactions are not suitable for
periodical execution (SAP Release 4.0 to 4.6D).

The R/3 background job control cannot perform such periodical transactions because dynamic variants are
used.

Problem Definition

Huge amounts of data are transferred when a client is copied. A client without application data allocates
about 500 MB database memory. The copying process can therefore take several hours with one or more
dialog processes being busy during this process.

Users should not use the source and target client during the copying process. Active users in other clients
consume additional resources and extend the time required for copying.

A test run should be performed before starting the copying process. In doing so, you can determine which
tables need to be modified and the available database memory is also checked.

The target client is often deleted before a client is copied, thus deleting all master user data. Therefore,
only the user SAP* can log on to the target client.

R/3 Client Copies with AE

Using AE for the periodical creation of client copies makes this process easier and more secure. Test run
and copying process can be automated and the normal operation is not interrupted.

The copying process starts depending on test results and resource availability. AE informs the operator
immediately if an error occurs.

The SAP system must meet the following requirements before AE can create client copies:

l Master user data must not be deleted before the copying process
AE uses a normal user account for logging on to SAP. It cannot use the SAP* user. In SAP, it is not
possible to delete the target client before copying it. Alternately, you can use custom ABAPs in
order to delete large tables (see SAP Service Marketplace, note no. 365304).
l The report RSCLXCOP must be modified in order to enable the maintaining of report
variants.
A job for copying clients obtains its information from a variant. This variant is overwritten with data
from the source client or deleted during the copy process. During a client export the number of the
copy is entered in the variant, thus causing problems with periodical scheduling. Identical variants
(using identical names) for the report RSCLXCOP must therefore be created in source and target
client. Detailed information is provided in note no. 303007 of the SAP Service Marketplace.

If all the above requirements are met, you can create an AE job for copying clients. Dependencies can be
represented within a workflow. Test run and the actual copy process can run in automated form. AE
ensures sufficient system resources. Periodical client copies can so be created in an easy and secure
way.
Chapter9 AE and Target Systems | 324

SAP Dialog for Automation Engine


The SAP Dialog for AE is a graphical interface for SAP R/3 users and serves to trigger processing in the
AE system. SAP-defined tasks are transferred to the AE system via the CallAPI for SAP.

The transaction "/sbb/uc4dc" shows the end user's interface. It contains an overview of tasks. Users see
only tasks for which they have authorizations. Tasks can be grouped in classes and named accordingly.
Click the list to select them. Depending on the specified settings, you can query variables and attributes or
maintain variants. Each task activation is logged in the statistics.

l Activation by entering freely definable attributes


Attributes are freely definable and can be transferred to AE using :PUT_READ_BUFFER .

l Direct connection to standard variant maintenance


A direct connection to SAP's variant maintenance is provided if standard ABAPs are used. Only
predefined variants can be maintained.

l Mapping Workflows
Workflows can be mapped using variables. In doing so, you can decide which components of a
predefined procedure should be processed. Communication to the AE workflow is exclusively
made by setting variables.

l Statistics and status tracing


Users have statistics in which all activations can be traced. Tasks can explicitly be canceled or
current states be adjusted.

The SAP Dialog for AE cannot completely replace the UserInterface. It supports users who exclusively
work with the SAP GUI and whose background tasks (jobs, JobPlans) should be controlled by AE from
within SAP.

The SAP Dialog for AE is a consultant solution and not part of the product. Thus, it is not maintained.

Automated System Copy for SAP


This AE solution allows you to create a SAP system copy by fully automated means. You can adjust all
the individual steps according to your requirements.

AE Automated SystemCopy for SAP is a consulting solution and is not subject to maintenance.
Documentation is available in the form of an external document.
325 | Chapter 9 AE and Target Systems

9.10.7 Technical Connection


Automation Engine and SAP
An agent serves to establish a connection between Automation Engine and SAP. Its INI file contains the
connection data to a particular AE system. Connection data to an SAP system is stored in Connection
objects. The agent requires at least one Connection object which contains the CPIC user including his or
her login data.

AE jobs require the indication of an agent and a Login object with the login information determining the SAP
client in which the job will be processed.

The Form tab is very useful for creating AE jobs. It provides a graphical interface in which you can easily
enter scripting lines. You can also retrieve particular data from the SAP system (such as the available
variants) with the SAP agent establishing the required connection to the SAP system. User name,
password and client are taken from the Connection object for "ABAP Basis".

See also:

Form tab

Multiple SAP Systems


The following description explains the appropriate configuration of several SAP agents which run on
different SAP systems.

Other SAP Agents

 1.  Edit ServiceManager Definition File AE.SMD. 

Enter the additional agents in the ServiceManager Definition file according to the following example.
Ensure that the name of the *.INI file is separated by a blank and specified after the start path of the agent.
! Comment lines begin with an exclamation mark
!
! Now, sub-services are defined
!DEFINE Automation Engine;*OWN\UCServer.exe;*OWN
DEFINE UC4 C11-Agent;*OWN\C11\UCXJR3X.exe -i*OWN\UCXJC11.INI;*OWN
DEFINE UC4 XYZ-Agent;c:\uc4global\bin\XYZ\UCXJRX3.exe -
ic:\uc4global\bin\XYZ\UCXJXYZ.INI;*OWN\XYZ

Alternately, these entries in the file AE.SMD can also be duplicated and adjusted with the ServiceManager
Dialog.

 2. Creating *.INI files

Create a UCXJ*.INI file with the name you have specified in AE.SMD for every additional agent.  Automic
recommends copying the file of an already existing agent (such as UCXJR3X.INI to UCXJC11.INI).

Check or edit the created UCXJ*.INI files.

 3.  Editing SAPRFC.INI (only when using the SAPRFC.INI)


Chapter9 AE and Target Systems | 326

Add the additional chapters in the SAPRFC.INI (so far SIDEINFO) as specified in the UCXJ*.INI files in
accordance with the following example:
DEST=UC_C11
LU=R33
TP=sapdp00
GWHOST=R33
GWSERV=sapgw00
PROTOCOL=I
DEST=UC_XYZ
LU=R33
TP=sapdp01
GWHOST=R33
GWSERV=sapgw01
PROTOCOL=I
 4.  Opening and closing the ServiceManager.

Close the ServiceManager and restart it. After that, the additional agents should be available. Create the
user for the RFCLOGIN in the relevant SAP system.

SAP Security Objects


SAP authorizations required for AE jobs depend on the particular installation and on the range of functions
used in AE. What is shown below are authorization objects which are necessary for the CPIC user in order
to provide maximum functionality.

For understanding the following table, knowledge of SAP authorization concepts is assumed.

Authorization Object Connection to AE Field name Values


S_RFC When the Profile Parameter ACTVT RFC_ *
auth/rfc_authority_check is NAME RFC_ *
set, SAP checks if the RFC TYPE *
user is allowed to call the given
function group.
S_BTCH_JOB AE creates SAP jobs JOBACTION *
Batch Processing: dynamically and needs the JOBGROUP *
Operations on batch authorization to plan, monitor
jobs and release jobs. In addition,
AE creates jobs in order to
process BDC sessions,
thereby using the standard
ABAP program RSBDCBTC.
327 | Chapter 9 AE and Target Systems

Authorization Object Connection to AE Field name Values


S_BTCH_ADM In order to run existing SAP BTCADMIN Y
Background jobs, AE must change the
Processing: respectiveJo bs. The AE and
Background standard interfaces use the
Administrator standard function module BP_
JOB_MODIFY to run jobs.
This requires batch-
administrator authorization.
This type of authorization is
also required for retrieving the
Spool List of a job in case the
CPIC user is not the job
creator.

Attention: S_BTCH_ADM
allows the client-independent
selection of existing jobs. If the
AE JCL statement R3_
ACTIVATE_JOBS is
processed with a CPIC user
having this authorization, AE
possibly starts jobs in several
SAP clients, depending on the
specified selection criteria
(such as the same job name in
2 SAP clients)
S_BTCH_NAM In order to create and run jobs BTCUNAME *
for any other SAP user, the
CPIC user must be authorized
to specify the user name.
S_SPO_DEV In order to specify the printing SPODEVICE *
Spooler: Device parameter 'print immediately'
Authorization within a job step, the CPIC
user must be authorized to
access the corresponding
printing device.
S_TMS_ACT In order to transfer the cover STMSACTION *
page of a Spool List back to STMSOBJECT *
AE, it is helpful to see the STMSOWNER *
parameters of the variant
which was used to run the
ABAP. This information is part
of the cover page.
S_XMI_PROD This object is used to log on to EXTCOMPANY *
the Standard Interface. Before EXTPRODUCT *
Calling functions of an INTERFACE *
External Interface, the
External Application has to Log
on to the Interface.
Chapter9 AE and Target Systems | 328

Authorization Object Connection to AE Field name Values


S_XMI_LOG Not necessary for AE, but - -
when using the standard
interface, entries into the XMI
log are created (Online
Transaction Code RZ15). This
authorization is required to
view them or to clear the log.
S_WFAR_OBJ AE allows the specification of ACTVT *
ArchiveLink Archive Parameters (object OAARCHIV *
Authorizations for type, document type...). This OADOCUMENT *
accessing Documents includes that the printing list of OAOBJEKTE *
an ABAP program can be
transferred to an optical
archive immediately. This only
makes sense if an optical
archive system is installed for
the SAP system.
S_WFAR_PRI In order to create printing lists ACTVT *
ArchiveLink within an optical archive, the OAARCHIV *
Authorizations for CPIC user must have the OADOKUMENT *
accessing Print Lists corresponding authorization. OAOBJEKTE *
PROGRAM *
S_PROGRAM AE needs this authorization P_ACTION BTCSUBMIT,VARIANT
ABAP: Program run object to schedule ABAP P_GROUP *
checks programs that are assigned to
authorization groups
(Authorization field P_ACTION
= BTCSUBMIT) and to
manage variants
(Authorization field P_ACTION
= VARIANT).
S_SPO_ACT In order to transfer Spool Lists SPOACTION BASE,DISP
Spool: Actions not created from the CPIC SPOAUTH *
user, the field SPOACTION
has to allow the actions BASE
and DISP for the
corresponding users.
S_ADMI_FCD In order to transfer Spool Lists S_ADMI_FCD SP0R
System Authorizations not created from the CPIC
user, the field S_ADMI_FCD
has to allow the actions at
least the action SP0R.
S_RS_ISRCM Only needed if the Business RSAPPLNM *
Warehouse Function BW_ RSOSOURCE *
ACTIVATE_CHAIN is used. RSISRCOBJ *
ACTVT *
329 | Chapter 9 AE and Target Systems

Authorization Object Connection to AE Field name Values


S_RS_ISOUR Only needed if the Business ACTVT *
Administrator Warehouse Function BW_ RSAPPLNM *
Workbench - ACTIVATE_INFOPACKAGE RSISOURCE *
InfoSource (Flexible is used and Flexible Update is RSISRCOBJ *
Update) used.
S_RS_ISOUR Only needed if the Business ACTVT *
Administrator Warehouse Function BW_ RSAPPLNM *
Workbench - ACTIVATE_INFOPACKAGE RSISOURCE *
InfoSource (Direct is used and Direct Update is RSISRCOBJ *
Update) used.
S_DEVELOP ABAP Only needed if the Business ACTVT *
Workbench Warehouse Function BW_ DEVCLASS *
ACTIVATE_CHAIN is used. OBJNAME *
OBJTYPE P_ *
GROUP *
S_RS_ICUBE Only needed if the Business ACTVT *
Administrator Warehouse Function BW_ RSICUBEOBJ *
Workbench - InfoCube ACTIVATE_CHAIN is used. RSINFOAREA *
RSINFOCUBE *
S_RS_ADMWB Only needed if the Business ACTVT *
Administrator Warehouse Functions are RSADMWBOBJ *
Workbench - Objects used.
S_RS_DS Only needed if the Business
Warehouse Functions are
used.
S_RS_DTP Only needed if the Business
Warehouse Functions are
used.
S_RS_ODSO Only needed if the Business
Warehouse Functions are
used.
S_RS_PC Only needed if the Business
Warehouse Functions are
used.
S_RZL_ADM Releasing intercepted jobs ACTVT 01
(RemoteTaskManager, R3_
activate_intercepted_jobs)
S_TABU_DIS For using SAP Forms ACTVT 03
DICBERCLS SPFL
- No specific SAP
authorizations are necessary
for additional AE functions, as
there is no security risk.

*) Automic recommends creating your authorizations in accordance with your naming conventions.
Chapter9 AE and Target Systems | 330

For using minimum AE functionality, it is necessary to provide the RFC user with a user profile that
contains the authorization object S_BTCH_JOB. It must contain the standard authorization S_BTCH_ALL
or an authorization where the fields are filled in as follows:

Activities in jobs: DELE, PLAN, PROT, RELE, SHOW


Summarizing jobs for a group: *

Consideration of Job Attributes


The host-specific tab in SAP jobs contains some attributes that affect several script elements. The table
shown below lists them all. Those SAP-specific script elements that are not included in this list do not use
attributes.

Script element Login language Job Job Target Start Delete in Spool list
name class system type CCMS recipient
BCA_ACTIVATE_
PROCESS
R3_ACTIVATE_EXT_
COMMAND
R3_ACTIVATE_EXT_
PROGRAM
R3_ACTIVATE_
INTERCEPTED_JOBS
R3_ACTIVATE_JOBS

R3_ACTIVATE_
REPORT
R3_ACTIVATE_
SESSIONS
R3_CALL_
TRANSACTION
R3_GET_EVENT

R3_GET_JOB_SPOOL

R3_MODIFY_JOB

R3_RAISE_EVENT

See also:

SAP tab in SAP jobs


331 | Chapter 9 AE and Target Systems

Interfaces

Interfaces

General Information

Agents communicate with the SAP system via SAP's RFC (Remote Function Call). Functional modules
are called in this process. The agent can use the standar interfaces but also the AE interfaces which
allows using additional functionalities.

This documentation addresses the two types of interfaces as shown below:

l The AE interface
is based on functional modules that have been developed by AE.
l The standard interfaces are based upon functional modules that are provided by SAP. AE uses
several of these interfaces for various purposes. The interfaces are subdivided:
l XMB (eXternal Monitoring Basics)
l XAL (eXternal ALerting)
l XBP (eXternal Batch Processing) *)
l XMW (eXternal Monitoring Write)
l BW-STA (Business Warehouse - data STAging)

*) The XBP 2.0 interface must be activated using the program INITXBP2. This is part of the XBP
2.0 installation. Otherwise, you cannot use parent-child relations and intercepted job functions.

In order to be able to us all SAP functions it is required you use XBP 3.0.

The Automation Engine supports the SAP NetWeaver XBP 2.0 and XBP 3.0 interface. Therefore, you
can use SAP modules that use this interface (such as SAP 4.7, NetWeaver Stack 2004s, ECC5,
ECC6).

The XBP interface version is not relevant for the Kernel version. SAP ensures compatibility by
supporting a particular number of new Kernel versions that still support the old interface when a new
interface version is released.

The AE interface requires BABP XBP V2.0. Check the version in your SAP system and install an up-
to-date support package.

Functional Differences

The following table provides an overview of SAP script elements which require the AE interface (script
element). Script elements which have specific parameters which require the AE interface are also checked
(Parameter).

Script Elements and Corresponding Interfaces


AE Interface required
Chapter9 AE and Target Systems | 332

Script Statements Description Script Parameter


Element
R3_ACTIVATE_ Activates a profile in the SAP Criteria
CM_PROFILE Manager
R3_ACTIVATE_ Execution of an external command
EXT_COMMAND
R3_ACTIVATE_ Execution of an external program
EXT_PROGRAM
R3_ACTIVATE_ Carries out intercepted jobs
INTERCEPTED_
JOBS
R3_ACTIVATE_ Executes already planned jobs
JOBS
R3_ACTIVATE_ Executes an ABAP program
REPORT
R3_ACTIVATE_ Processes Batch Input Sessions
SESSIONS
R3_CALL_ Calls an SAP transaction
TRANSACTION
R3_COPY_ Copies the variant of a report
VARIANT
R3_CREATE_ Creates a new output request to an existing
OUTPUT_ spool request
REQUEST
R3_CREATE_ Creates a new variant
VARIANT
R3_DEACTIVATE_ Deactivates a profile in the SAP Criteria
CM_PROFILE Manager
R3_DELETE_ Deletes a node in the SAP monitor
NODE architecture.
R3_DELETE_ Deletes the variant of a report
VARIANT
R3_GET_ Checks the application return code of one or
APPLICATION_RC several job steps.
R3_GET_ Retrieves messages of the application log
APPLICATIONLOG and writes them into report or file
R3_GET_EVENT Waits for an event to be triggered in SAP
R3_GET_ Reads the filter table for intercepted jobs and
INTERCEPTION saves them in the activation report or a file
R3_GET_JOB_ Reads the spool list of an "ABAP program"
SPOOL step
R3_GET_JOBLOG Retrieves the job log of an SAP job from SAP
and writes it to the report
R3_GET_JOBS Selects SAP jobs and lists the result in the
activation report
333 | Chapter 9 AE and Target Systems

R3_GET_ Reads data from an SAP monitor


MONITOR
R3_GET_ Selects batch input sessions and lists the
SESSIONS result in the activation report or in a file
R3_GET_ Selects spool requests with pre-defined filters
SPOOLREQUESTS
R3_GET_ Reads the system log of an SAP system over
SYSTEMLOG a specified period of time
R3_GET_ Reads the variant catalog
VARIANTS
R3_GET_ Shows the content of a variant
VARIANT_
CONTENTS
R3_MODIFY_ Modifies the filter table for intercepted jobs
INTERCEPTION
R3_MODIFY_JOB Modifies an ABAP Step
R3_MODIFY_ Modifies a value in a variant
VARIANT
R3_RAISE_EVENT Triggers an event defined in SAP

R3_SCHEDULE_ Resets an already released SAP job to the


JOB_CANCEL status "Scheduled"
R3_SEND_ Sends an existing spool request
SPOOL_REQUEST
R3_SET_ Defines BDC data
BDCDATA
R3_SET_FREE_ Defines a free selection
SELECTION
R3_SET_LOG_ Sets a log attribute in the SAP monitor
ATTR architecture
R3_SET_PERF_ Sets a performance attribute in the SAP
ATTR monitor architecture
R3_SET_PRINT_ Sets default values for print parameters
DEFAULTS which are used when executing reports
R3_SET_SELECT_ Defines a selection criterion
OPTION
R3_SET_STATUS_ Sets a status attribute in the SAP monitor
ATTR architecture
R3_SET_TEXT_ Sets a text attribute in the SAP monitor
ATTR architecture
R3_SWITCH_ Switches the operation mode in SAP
OPMODE

See also:

About AE JCL for Applications


Chapter9 AE and Target Systems | 334

Transporting the Automation Engine Interface

General

In order to take advantage of the functionality of the AE interface, function modules must be transported to
the SAP system.

Function modules are developed as ABAP development objects. These components are supplied with the
"Correction & Transport System " package of the SAP System:

l KNNNNNN.SID information file, for example K000046.T45


l RNNNNNN.SID data file, for example R000046.T45
l ENNNNNN.txt export protocol, for example E000046.txt

Name ranges are transported along with function modules in separate transport requests. A list of all
currently valid transport requests is found in the file TRANSPRT.TXT. All transports must take place when
a new installation is made. With an update installation, it is only the function modules (AE interface)
because there is no change of the name ranges.

The names of the development objects are described in Terminology.

Throughout this document, the following codes are used:

l NNNNNN for the transport job number of the delivery system and
l SID for the system names of the delivery system.
l TID is used for the system name of the target system (to which the function modules are imported).

File Names
SAP can be installed in various environments (UNIX, Windows...). Therefore, it is important to consider
the specific features of the system when you name the files.

In this document, the file names that refer to a SAP environment are written in UNIX language ("/"). For
Windows environments, the names are the same with the exception that thy use a "\" character.

Importing Function Modules in SAP


If the functionality of the AE interface is used, function modules must be transported to the SAP system.

Requirements:
All activities that concern the transport system must be made by a SAP administrator (SIDadm).

The transport system must be properly installed and set. This takes place during the installation of the
SAP system.

In this case, importing requires that at least 2 batch work processes (BTC) are running.
Control: Tools - Administration - Monitor - System Control - System Overview (Transaction SM50).

To import development objects, the Transport demon must be planned for in client 000 (background job
"RDDIMPDP") and cleared for the SAP system. Control: see below

The functionality can be checked as follows:


cd usr/sap/trans/bin........ Change to the SAP transport directory.
tp checkimpdp TID........... Verify that the Transport demon RDDIMDP is active in SAP.
tp connect TID.............. Test the connection to the SAP system.
335 | Chapter 9 AE and Target Systems

The transport system is described in the SAP online documentation in the chapter BASIS - TRANSPORT
CONTROL.

Note that the import process requires the option "Ignore Non-Matching Component Versions" to be set.

Procedure:
Import the supplied transport files to the SAP transport environment:

l On the SAP computer:


l Change to the appropriate subdirectory (for the SAP version) in IMAGE:AGENTS\SAP\_TRANS:
l Copy the files from there to the following directory:

KNNNNNN.SID by /usr/sap/trans/cofiles
RNNNNNN.SID by /usr/sap/trans/data

If SAP is installed under UNIX, the files are usually transferred via FTP. Be sure to enter "bin" for
binary transfers.

l The file ENNNNNN.TXT on the CD contains the complete export log and can be used for analysis.

Importing the delivery into the SAP system:

l On the SAP computer (use the SAP administrator (SIDadm) to register).


l  The imported transport files (RNNNNNN.SID and KNNNNNN.SID) must not be write protected
(be careful when you copy them from the CD).
l If needed, you can create a directory that includes all objects of the transport job:

cd usr/sap/trans/data....... Change to SAP transport directory.


r3trans -l RNNNNNN.SID...... Create a file trans.log (List of transported objects).

l Create a buffer entry for the target system.

cd usr/sap/trans/bin........ Change to SAP transport directory.


tp addtobuffer SIDkNNNNNN TID [pf=<Profile name, Default TPPARAM>

l If needed, you can check the buffer entry:

tp showbuffer TID [pf=<Profile name, Default TPPARAM>

l Before you start to import, decide upon the unconditional modes (u) that should be used:
l 4....valid only for SAP Release 3.x: guarantees that the target system name (TID) that is
used for the export does not correspond to the actual target system name. This mode must
be used because the actual target system is not known.
l 1....must be entered when the import should be repeated.

l Start the import using one of the following commands:

tp import SIDkNNNNNN TID u4 client123] [pf=<Profile name, default TPPARAM>] or


tp import SIDkNNNNNN TID u14 client123] [pf=<Profile name, default TPPARAM>]

The unconditional modes are distinguished by TP version and can be checked in the SAP
Documentation if needed.

l  Note for the import process:


l This process requires that at least 2 batch tasks are running.
l Although the transport job does not include client-specific data, it can happen that a client is
required. In this case, enter a valid client=nnn (client 010 is used for the export).
Chapter9 AE and Target Systems | 336

l The import can take a few minutes, especially if the Transport demon RDDIMPDP is
planned not to be event-triggered but rather time-controlled.
l Message "no profile used ":

No profile is specified if you call an internal program on "sapevt". That is the reason why this
message occurs with any call on sapevt. Usually, it can be ignored.

l Other messages can occur. Only the return code is crucial (see below - Control).

Control:

l Because of the SAP transport system's and the SAP environment's complexity, thorough error
diagnosis and correction can only be handled by an expert who is familiar with installation
environments.
l A general assessment as to whether the import was successful should be possible for a non-expert
with the following tips:
l Importing creates logging files.
l These are in the directory /usr/sap/trans/log and are called SIDsNNNNNN.TID
l s means transport step:

G... Report and screen generation


H... R3TRANS import Dictionary
I... R3TRANS main import
l In these three log files the exit code (=return code) has to be checked (it always occurs at
the end of the file). It cannot exceed "4"!

l The expert can also check the log files in the SAP system.

Testing the Automation Engine Interface with ABAP Workbench

1. Starting the development environment and opening the function modules

Start the development environment (ABAP/4 Workbench) and open the function modules to the function
group /SBB/UC4_JOB with the object browser:

Tools > ABAP/4 Workbench >Overview > Object Navigator, select Function Group /SBB/UC4_JOB,
select Function Modules, position the cursor on the object and click Test in the context menu.

The name of the function modules always has the prefix AE.

2. Testing the function module UC4_JOB_OPEN

Parameters that must be specified:

JOB NAME - Any name (such as TEST).


JOBCLASS - A, B or C
337 | Chapter 9 AE and Target Systems

The parameter JOBCOUNT is supplied. This value must be noted or copied to the clipboard.

3. Testing the function module UC4_JOB_SUBMIT

Parameters that must be specified:

JOBCOUNT - Enter the value or import from the clipboard.


JOBNAME - As with function module UC4_JOB_OPEN,
REPORT_ID - 'RSM04000' or 'RSM04000_ALV'.
Chapter9 AE and Target Systems | 338

Make sure after the execution that no exception has occurred. Although parameters are supplied, they
are not necessarily required for testing.

4. Testing the function module UC4_JOB_CLOSE


339 | Chapter 9 AE and Target Systems

Parameter to be specified:

JOBCOUNT - enter value or import from the clipboard,


JOBNAME - as with function module UC4_JOB_OPEN.

After the execution, verify that no exception has occurred.

The job has now been started and can be displayed by using a standard transaction SM37 (System
>Services > Jobs > Job Overview). When the job has ended okay, this indicates that the function modules
within the SAP system work properly.
Chapter9 AE and Target Systems | 340

Agent for SAP BW

General

The Automation Engine supports the components SAP Business Information Warehouse (SAP BW) in the
same way that it supports an operating system. Technically, this cooperation is set up so that function
modules are called via SAP's RFC (Remote Function Call) within the SAP system. The communication
for the SAP system is carried out exclusively via RFC and is therefore independent of the environment
where SAP BW is installed.

The setting of the connection parameter is carried out in the Connection object of the agent. Furthermore,
this agent can be set for all AE-supported SAP BW versions.

The agent for SAP BW can also process jobs in the SAP basis system (regular background jobs).

The following table shows which SAP Version and SAP Basis correspond to an agent for SAP BW.

BW Release SAP Basis Agent for SAP BW


1.2B 4.5A Not supported
2.0B 4.6C Available first with Automation Engine version 2.63C
2.1C 4.6D Available first with Automation Engine version 2.63C
3.0B 6.10 Available first with Automation Engine version 2.63D
>3.0B 6.x Available first with Automation Engine version 2.63D

Support Packages for SAP BW

For the operational use of the agent, Automic recommends installation of the following support packages
from SAP BW.

SAP BW Release Support Package Level


2.0B 32
2.1C 24
3.0B 14
3.1C 08
>3.1C Support Package Level unknown
341 | Chapter 9 AE and Target Systems

If the agent is used with a lower support package level, the following messages can appear. Further
information is found in the given SAP notes.

SAP Note Number Message


488588 short dump "DYNPRO_SEND_IN_BACKGROUND"
426047 Message E089(RSM1) "Job not (yet ?) started"
488808 BAPI_IPAK_CHANGE ignores InfoPackage Parameter

Status Check

The Automation Engine presumes that the technical status that is submitted when the function status
check is called is a "final status". The Interface Repository gives the following description:

The parameter TECHSTATUS is the request's technical status. It always contains one of the following
values:

l G - green (request handling successful)


l Y - yellow (request is being processed)
l R - red (request incorrect or canceled)

Obviously, these states are not "final states". A status can change to "red" for a short time and then to
"yellow" or "green" after a while. AE accounts for this fact. For status checks, a time delay can be
activated so that it can be checked n times if the status "red" actually remains in this status, for example.
The INI file of the SAP agent contains the parameters maxruntime= and repeat_check= [SAP_BW]) for
this.

Another function is available which checks the states of process chains. It supplies the following values:

l "R" - cancel
l "G" - normal end
l "F" - normal end
l "A" - continue checking
l "X" - cancel
l "P" - continue checking
l "S" - cancel (but only after the process chain has been restarted)
l "Q" - continue checking
l "Y" - continue checking
l " " - continue checking

AE then converts these states into return codes:

Return code Status SAP status


0 ENDED_OK G or F
4 ENDED_NOT_OK R
8 ENDED_NOT_OK X
12 ENDED_NOT_OK S
Chapter9 AE and Target Systems | 342

Archive Parameters with R3_ACTIVATE_REPORT


The archive parameters which can be specified by a user in R3_ACTIVATE_REPORT correspond to the
entry fields displayed in the figure below. The dialog field is displayed in the SAP System if "Archive" has
been selected as the mode in the printing parameters.

Parameters in SAP Parameters for R3_ACTIVATE_REPORT


Obj. type ARCHIVE_SAPOBJECT
Doc. type ARCHIVE_OBJECT
Information ARCHIVE_INFO
Text ARCHIVE_TEXT

See also:

R3_ACTIVATE_REPORT

ERROR/ERRORLEVEL with R3_ACTIVATE_SESSIONS


When processing R3_ACTIVATE_SESSIONS, AE first retrieves a list of sessions which should be
processed from the SAP system. Each of these sessions will be processed with an individual SAP job. In
this document, these jobs are referred to as Replayers. A Replayer uses the ABAP program
"RSBDCBTC" to process sessions.

ERROR

Refers to the result (status) of the Replayer. The status can be "A" for abend or "F" for finished
successfully.
343 | Chapter 9 AE and Target Systems

ERROR=IGNORE

The next session of the list will be processed in any case. The result of the previous Replayer is
ignored.

ERROR=ABEND

Processing of sessions stops immediately if a Replayer ends with status "A". The AE job abends.

ERRORLEVEL

Always refers to the session itself and is checked when the Replayer has ended. ERRORLEVEL
defines the number of incorrectly processed transactions in % within a session. If the session value
has been exceeded, the processing of the AE job is canceled. No further sessions of the session
list are executed. No check is made for successfully processed transactions if no ERRORLEVEL
has been specified.
Chapter9 AE and Target Systems | 344

Troubleshooting

Checking Errors

This document contains information that will support you in recognizing the source of errors which cause
the agent to function improperly or individual tasks to be executed incorrectly.

Job Report

The first source to be checked is the activation log of the AE job for SAP. It provides information about the
actions the agent has taken in connection with the SAP system and how the particular actions ended.

Attributes of Executable Objects

Sometimes the error cause is easily found in the attributes of an executable object (such as a wrong client
or user). Check the attributes of the particular object.

CPIC User

An SAP user (client, name or passport) must be defined in a Login object to be able to establish a
connection to the SAP System. This user must also be available with the same password in all an SAP
system's clients in which tasks are executed. Check the Login object and the users in the SAP system.

Within the SAP system, the agent is represented by the CPIC user. This user requires the appropriate
rights such as operator rights for background processing, for example. Check the rights of the SAP
system's CPIC user.

Helpful Transactions

Through job logs and spool lists, the transaction "SM37" provides information about job executions. The
XMI log which can be called using "RZ15" also supplies helpful records.

Log Files

Agent and Server log files provide exact information about the relevant point in time when the error
occurred. These files' contents are also provided in the System Overview. The initial section shows the
complete INI file including the parameters which have been specified for the agent and server. This section
is followed by a chronological list of all executed actions.

SAP's System Log

Error situations occurring in the SAP system are logged in SAP's system log. Use the SAP transaction
"SM21" to view the system log. In particular cases (such as when the agent fails to schedule a job step),
the SAP system log is automatically copied to an own tab in the AE report.
345 | Chapter 9 AE and Target Systems

Traces

Traces provide even more detailed information than log files. They contain all messages which were sent
from and to agent and server or agent and SAP system (RFC trace). Traces can be activated in the agent's
INI file or the System Overview. Trace contents are stored in files in the agent's working directory or an
individually defined directory.

Traces are required for the support or development team's analysis process. Always include this
information in your support message.

An activated RFC trace create files on agent side but also on SAP's application server computer.
Automic recommends activating traces only for a short period of time in order to reduce the hard disk's
memory consumption. Set gw/accept_remote_trace_level to 0 if no trace files should be created in the
SAP system.

Further information about RFC trace is available in the SAP note number 532918.

Problems by Importing Function Modules

Program Tp Does Not Terminate

Symptom
While importing the development objects, the program tp does not terminate (normally it runs a few
minutes). After canceling with (Ctrl-C), the following message is displayed in the SLOG file.
Background job RDDIMPDP could not be started or terminated abnormally

Cause
The import of development objects is executed by job RDDIMPDP. This is usually event-controlled and
triggered by the event "SAP_TRIGGER_RDDIMPDP" of the program tp. In this case, starting the job with
the event does not work - tp consequently waits infinitely.

Solution
Verify that the event "SAP_TRIGGER_RDDIMPDP" has been defined (SM64).

Verify that the entries for the event control are correctly set in TPPARAM.

Search for possible information in the SAP Service Portal with the headword "SAP_TRIGGER_
RDDIMPDP"

If necessary, use  the 5-minute RDDIMPDP, which can be scheduled with SE38 via ABAP RDDPUTPP.
Chapter9 AE and Target Systems | 346

SAP Jobs End with ARCHIVE_INFO_NOT_FOUND

Symptom
SAP jobs canceled with the following message:
U2004001 RFC Return code: ARCHIVE_INFO_NOT_FOUND

Cause
ARCHIVE_INFO_NOT_FOUND is an exception of the function module "GET_PRINT_PARAMETERS".
This function module is a standard function module of the SAP System.

ARCHIVE_INFO_NOT_FOUND does not necessarily refer to the info field of the archive parameters.
ARCHIVE_INFO_NOT_FOUND refers to the entire archive parameters. These are currently:

l ARCHIVE_O[BJECT]= Document type


l ARCHIVE_S[APOBJECT]= Object type
l ARCHIVE_T[EXT]= Text
l ARCHIVE_I[NFO]= Info field

ARCHIVE_INFO_NOT_FOUND can have various reasons such as:

l The specified document type or object type has not been defined in SAP.
l The document type is assigned to a non-existing archive in SAP (Content Repository).
l The user has no access (see authorization object S_WFAR_PRI in SAP).

Provided that the parameters are correctly transferred from AE to the function modules, the reason for an
exception is mostly found in SAP.

Solution
Use RFC Trace to check whether the AE parameters are correctly transferred to the function module.
Check your customized settings "Business Documents" and "ArchiveLink" and the authorizations of the
CPIC user in the SAP system.

See also:

R3_ACTIVATE_REPORT
Archive Parameter with R3_ACTIVATE_REPORT

Stability Problems with SAP Instances Occurred When Many SAP Agents (RFC
Connection) Were Used On One Server

Symptom
The external RFC/CPIC server cannot open additional connections.

The system issues the error message:


347 | Chapter 9 AE and Target Systems

LOCATION CPIC (TCP/IP) on local host ERROR max no. of 100 conversations
exceeded

Reason
The number of parallel connections that can be kept in the library is set to 100.

Solution
By setting the environment variables CPIC_MAX_CONV, the library can handle multiple connections at
the same time.

Windows: set CPIC_MAX_CONV=<n>


For example, set CPIC_MAX_CONV=500 (for 500 connections)

Unix: setenv CPIC_MAX_CONV <n> ( csh )


For example, setenv CPIC_MAX_CONV 500 (for 500 connections)

Unix: export CPIC_MAX_CONV=<n> ( ksh )


For example, export CPIC_MAX_CONV=500 (for 500 connections)

iSeries: ADDENVVAR ENVVAR(CPIC_MAX_CONV) VALUE(<n>)


For example, ADDENVVAR ENVVAR(CPIC_MAX_CONV) VALUE(500) (for 500 connections)

Problem with Password Assignment to SAP

After Updating to SAP NetWeaver 2004s and Later, CPIC User Could No Longer Log On

Symptom
Password-based logon attempts (to ABAP systems as of Release 7.00 / NetWeaver 2004s / SAP ERP
2005) fail, although the user has entered a supposedly correct password in a front-end component or in a
destination (of another system). However, a (direct) SAPGUI logon with the same password is
successful.

Reason
ABAP systems as of NetWeaver 2004s (7.00) support passwords of up to 40 characters and differentiate
between uppercase and lowercase. In earlier ABAP Releases (prior to 7.00), passwords could only be
comprised of a maximum of 8 characters, whereby lowercase letters that were entered were automatically
changed to uppercase letters.

If, in a newer ABAP system (as of Release 7.00), a downwardly incompatible password is unknowingly
granted (see below), and if the front-end or middleware components are not able to process such
passwords correctly, logon problems inevitably occur.

This is usually due to the (invisible) automatic conversion from lowercase to uppercase letters. The
Chapter9 AE and Target Systems | 348

problem is that the password entered by the user does not arrive at the server in the same form, but is
changed either during input or during the transmission (in which many components are involved).

Term definitions

l Password: downwardly compatible / downwardly incompatible

A (plain text) password is downwardly compatible if it consists of a maximum of 8 characters and


contains no lowercase letters.

A (plain text) password is downwardly incompatible if it consists of more than 8 characters or


contains at least one lowercase letter.

Older ABAP systems support downwardly compatible passwords only. In newer ABAP systems
(as of Release 7.00), downwardly incompatible as well as downwardly compatible passwords can
be granted. Since lowercase letters that you enter are now no longer changed to uppercase letters,
the passwords granted in newer ABAP systems are normally downwardly incompatible.

l Hash password procedure / Code versions

ABAP systems do not save passwords in plain text, but instead calculate a hash value and save
this together with the meta information using the hash password procedure ("code version"). This
information is stored in the user master record and is analyzed during the password check: A hash
value is determined, using the code version specification (from the user master record), from the
plain text password to be checked and is compared with the reference hash value (from the user
master record).

The quantity of the hash password procedure supported is release-dependent, whereby newer
releases always support all procedures of preceding releases. This ensures that a password logon
is also possible after a release upgrade.

Only the hash password procedures available as of Release 7.00 also support the processing of
downwardly incompatible passwords. Older hash password procedures support downwardly
compatible passwords only.

Whether downwardly incompatible passwords are supported or expected during a password logon
depends primarily on the specifications (code version) saved in the user maser record.

Solution
l When using the technical user (in RFC destinations):

We strongly recommend that you use the SYSTEM user type on the server (or also SERVICE,
provided a SAPGUI capability is required), since the password has unlimited validity only for these
user types (see SAP note 622464). If the password should be entered in an RFC destination of an
older system (= RFC client), it must be granted as a downwardly compatible password on the
server. For users of the SYSTEM or SERVICE type, this is always possible, even if the password
rules of the system normally compel the use of downwardly incompatible passwords (for example,
by login/min_password_lng > 8 or login/min_password_lowercase > 0).
349 | Chapter 9 AE and Target Systems

l When using older front-end or middleware components and password logon of "normal"
users (DIALOG type):

In this case, it is not practical to change the passwords of the (numerous) users affected (as in the
above case with technical users). Instead you must replace the obsolete front-end or middleware
components. SAP note 792850 describes as of which version level certain front-end or middleware
components support the interaction with downwardly incompatible passwords. In addition, you may
need to update other software components (attached to these components), as well as those of
external providers. This is particularly the case if these components have their own password input
dialog and are not able to support downwardly incompatible passwords (according to the above
definition of the term).

For the moment, you can set the profile parameter login/password_downwards_compatibility on the
server to the value 2 or 3 for test purposes. In this case, the server checks if the client has sent a
matching downwardly compatible password for the expected downwardly incompatible password
(that is, a password that is 8 characters long and converted to uppercase). If this is the case, it is
logged in the sys log (for error analysis purposes), and the logon is assessed as successful (for
value 3). Using transaction RZ11, you can change the profile parameter dynamically, that is,
without restarting the system.
Chapter9 AE and Target Systems | 350

9.10.8 Certificates
351 | Chapter 9 AE and Target Systems

Overview
All functions we provide for SAP are certified.
Chapter9 AE and Target Systems | 352

The following table lists all certifications:

Solution Interface Software SAP Interface


AE.agent for SAP BC-XBP 6.10 - Background Processing, Job Scheduling 6.10 (Vers.
2.0)
BC-XBP 7.0 - Background Processing, Job Scheduling 7.0 (Vers. 3.0)
JAVA-JXBP 7.1
AE.agent for SAP BW BW-SCH 3.0 - Scheduling for SAP BW 3.0
AE.agent for J2EE/JMX JAVA-EE-STD 7.1

See also:

SAP Partner
SAP Developer Network (SDN)

9.11 AE and Siebel

9.11.1 Starting and Monitoring Tasks


The Siebel agent uses the command-line interface of the Siebel Server Manager for executing tasks. Enter
the directory in which it is found in the INI file of the Siebel agent in the section [VARIABLES].

Example:
[VARIABLES]
UC_SIEBEL_SRVRMGR=C:\siebel\srvrmgr.exe

Commands that should be executed in Siebel can be specified in the Script tab of a Siebel job. Do so with
the specific script statement SI_START_TASK. The Siebel command is transferred with the parameter
CMD=:

SI_START_TASKCMD="Siebel command"

Each script line with "SI_START_TASK" is a separate task in Siebel. In order to enable task monitoring
(such as canceling or restarting tasks), it is essential that the Siebel command starts with "start task". If
"run task" is used, the Siebel job is canceled and an error message is printed.

Two log files are available after the execution of the task:

1) Log file of the Siebel Server Manager call


2) Log file of the task

Define in the section [VARIABLES] of the INI file of the Siebel agent where these log files are stored.
Thus, the log files can be transferred from the Siebel agent to AE in the form of reports.

Example:
[VARIABLES]
UC_SIEBEL_SRVRMGR=C:\siebel\srvrmgr.exe
UC_SIEBEL_LOGPATH=C:\siebel\siebelLOGS\
353 | Chapter 9 AE and Target Systems

Note that report contents can be read with the script element PREP_PROCESS_REPORT. Report type
"LOG" stands for the log file of the Siebel Server Manager call and report type "REP" for the log file of the
task.

See also:

Tab for Host Attributes - Siebel

9.12 AE and UNIX

9.12.1 Authentication of Login Data


Jobs and file transfers must log on to the OS before they can be processed. Login data is stored in Login
objects.

The agent provides two methods of authenticating user name and passwords.

1. Local user authentication


2. Pluggable Authentication Modules (PAM)

PAM authentication is only supported for the agent on AIX, Linux and Sun Solaris (SPARC).

The method to be applied is specified in the agent's INI file. The section [MISC] includes the parameter
authentication= to which you can assign the value "local" or "PAM".

Example:
[MISC]
authentification=local

If you opt for PAM authentication, also specify the library name.

Example:
[PAM]
Libname=libpam.so

Store the path for the library in the environment variable LD_LIBRARY_PATH if it is not stored in the
default directory.

The agent must have root privileges.

See also:

Login Object
Chapter9 AE and Target Systems | 354

9.12.2 Shell and Shell Options


A shell under which a particular job should run can be specified in the Unix tab which is available for Unix
jobs. Options can also be specified for calling this Shell. If no shell is defined, the default shell from the
passwd file is used.

Shells selected in the Unix tab are maintained in the variable UC_SHELL_UNIX of client 0000. The
following shells are available by default:

l bash
l csh
l ksh
l sh
l tcsh

You can add additional shells in the variable UC_SHELL_UNIX. Additionally, a shell-specific script line
must be inserted in the Include "TRAILER.UNIX". The following format should be used:

##UC4[Shell]Shell specific command

Determining the Shell Path

1. If a path string has been defined in the configuration file (section STARTCMD, parameter "shell_
pfad"), this path is used.
Format Path String: <Path name1>[:<Path name2>]...
Format Path name: /<dir1>[/<dir2>]...

2. If the parameter "shell_pfad" has not been specified, the environment variable PATH is read and
used.

3. If no PATH environment variable is available, the "/bin" directory is used.

The shell file name is composed of the retrieved shell path and the selected shell (Host Attributes tab)
and checked for the availability of the right to execute. If this file must not be executed or cannot be found,
an information message is output. The user's default shell which has been defined in the passwd file is
then used. If no shell has been specified in the passwd file, the bourne shell from "/bin/sh" is used.

Determining Shell Options

If shell options have been specified in the Host Attributes tab, these are used.

Shell options may be defined in the configuration file (section STARTCMD, variables "Bourne_Shell_Opt",
"Korn_Shell_Opt" and "C_Shell_Opt")

As of version 11 the options will be left empty, if you do not select one of the shells mentioned above
and also do not enter a value in the options field.
355 | Chapter 9 AE and Target Systems

9.12.3 User ID for the UNIX Agent


The agent for UNIX must be installed under a user ID which must fulfill the following requirements:

l The subdirectory "temp" must be defined in a way that it can be read from any other user ID. For
this, its not sufficient to only supply this directory with read rights. All directories from the root
directory on must have read rights.
l The subdirectory "out" must be defined in a way that it can be written to from any other user ID. For
this, all superordinate directories must have at least read rights (see above).

9.12.4 UNIX Agent - File Transfer Support


When defining a FileTransfer object, you can also specify additional options in the FileTransfer tab, File
Attributes field.

Under UNIX, there are no file attributes. Therefore, all specifications are ignored, except for the options
reclen and nl. Note that several options need to be separated with a comma.

Sender's File Attributes:

l reclen - Record length specified in bytes


l nl=mixed -a CR character used at the end of a text file's line can corrupt the file in some systems.
The value "mixed" automatically removes this character.

Receiver's File Attributes:

l nl - character for inserting line breaks


Allowed values: "crlf", "lf" (default value) and "none"
"crlf" - carriage return and line feed
"lf" - line feed
"none" - no line break is made

Example: nl=crlf

9.12.5 Rights for Deleting Source Files in File Transfers


In file transfers, you can define that the relevant file will be deleted after it has been transferred. Several
rights must be checked if the source is UNIX. The following flow chart explains the process details.

Flowchart details

User UID = UID of the user who has been specified in the Login object of the source (FileTransfer tab,
From area).

Deletion right = The right "wx" to access the folder in which the file is stored.

When checking User GID=Folder GID, the system verifies that the user is a member of the same group as
the folder.
Chapter9 AE and Target Systems | 356

9.12.6 Querying the Unix File System


An example will demonstrate how to use the AE utility UCXE???F to query the Unix file system.

The following files should be listed:

l those which are located in the home directory of the signature AE and in all subdirectories,
l those which have last been modified between 10.1.1999 00:00 and 10.7.1999 23:50 and
l those which have a file size between 1 and 9999 bytes.

The creation, the forming up and the processing of a data sequence is a complex process in which script
functions and statements as well as special objects cooperate closely. The following example shows the
357 | Chapter 9 AE and Target Systems

necessary definitions for the involved objects and the corresponding script statements and their
references. The example is intentionally kept small and clear to show the principles.

The AE utility UCXE???F offers wider query possibilities compared to the traditional operating system
command ls. It has to be installed on the host. The question marks in the program name are
placeholders for System ID and Version of the Unix derivative.

Job: SC.PROCESS.UNIXFS

The script of the job calls the function PREP_PROCESS, which prepares the processing of the data
sequence. The following parameters are passed:

l Name of the computer on which an event job is to be executed - in this case: SOLARIS.
l Type of the event job to be executed - in this case UNIXFS.
By specifying UNIXFS, the job EVENT.UNIXFS will be executed.
By default the event jobs EVENT.BS2000.CMD, EVENT.BS2000UCON, EVENT.UNIXCMD,
EVENT.UNIXFS and EVENT.WINCMD are supplied with client 0000. They can be used as they
are or as a template for your own event jobs.
l The third function parameter specifies which lines produced by the command should be taken into
account. By using the wildcard character "*", all lines will be accepted.
l With the keywords PATH and FSPAR, you specify additional parameters containing the actual
queries of the Unix file system. Following the keyword FSPAR are other keywords as well as value
assignments for the modification time frame, the file size and the inclusion of subdirectories. The
definition of the modification time frame clearly shows the following particularities: The beginning is
specified without a time. This automatically sets the time to 00:00. The end is made up of date and
time specification, separated by a blank. Because blanks separate each specification within the
parameter, the date and time specification has to be between quotation marks.
l The Login object AEADMIN is used.
Chapter9 AE and Target Systems | 358

The job SC.PROCESS.UNIXFS will then be started.

Job: EVENT.UNIXFS

This is the job EVENT.UNIXFS from client 0000. It is supplied by default.


359 | Chapter 9 AE and Target Systems

It is important that the check box "Attribute dialog" is checked in its Notification tab That way the Include
object ATTRDIA.BS2000 is read which normally causes the start of the Attribute Dialog.

Include: ATTRDIA.UNIX

All attributes listed in the script of the Include can be supplied. The script variable &UC_USERID receives
the value AE. The Attribute Dialog is not displayed because the passing of the variable contents is done
internally.

Job: EVENT.UNIXFS
Chapter9 AE and Target Systems | 360

At the start of the job EVENT.UNIXFS, the script variables &PATH and &FSPAR are supplied with
values. These values are defined in the parameters of the script function PREP_PROCESS of the job
SC.PROCESS.UNIXFS. The AE utility is called with these specifications. It retrieves the requested
information on the Unix file system. It is not necessary to replace the question marks in the program name.
The utility can be called in this way after a correct installation.

The outfile is transferred to the Automation Engine via file transfer and is then available as a data
sequence. The execution of the job EVENT.UNIXFS is then completed.

Job: SC.PROCESS.UNIXFS
361 | Chapter 9 AE and Target Systems

The function PREP_PROCESS returns a value that is a handle for information on the data sequence that
will be processed.

This value is passed to the statement :PROCESS as a start parameter, :PROCESS and
:ENDPROCESS then form a processing loop which, in this case, will be cycled until the end of the data
sequence is reached. During each iteration a new line of the data sequence is fetched from memory. The
function GET_PROCESS_LINE can - by using the current value - retrieve the content of the current line.

In the example, the current console line is written to the activation protocol.

The :STOP statement interrupts the execution and displays this activation report.

9.12.7 PREP_PROCESS - Querying the UNIX File System


AE supplies the utility UCXE???F which can be used to query the UNIX file system. The question marks
are placeholders for the UNIX system's system ID and version number.

Using this utility extends the query options compared to the usual OS command "ls". To obtain information
about the UNIX file system, you must specify the parameters of the script statement PREP_PROCESS
in a specific syntax.

In one of this script function's parameters, you can specify the file name including the path. This parameter
starts with the keyword PATH. To specify the file name, you can use the wildcards "*" and "?". "*"
represents any number of characters, "?" represents exactly one. The current directory is used if neither
path nor file name are specified. Relative path indications are not yet supported.

A different parameter starts with the keyword FSPAR. It stores the specifications for querying the file
system. These specifications consist of a keyword and a value. Several additional specifications must be
separated with a blank. Enclose a value in double quotation marks if it includes a blank (for example,
ATIME="980101 1000").
Chapter9 AE and Target Systems | 362

Keyword Value/Description
PATH (or: This is the parameter keyword for the file-name specification, including its full path
PFAD) description.
FSPAR This is the parameter keyword for the file-system query.
TYPE The specification of a file type:

- for a regular file


D for a directory file
L for a symbolic reference (not applicable in POSIX.1 or SVR4)
B for a block-oriented device file
C for a character-oriented device file
P for a Pipe or a FIFO
S for a Socket (not applicable in POSIX.1 or SVR4)

Default value: all file types.


SIZE The selection criteria for the file size.
OWNER The name of the owner of the files (User), not the User ID.
GROUP The name of the owners of the file (Group), not the Group ID.
ATIME The time of the last access.
MTIME The time of the last modification of the file system.
STIME The time of the change of the file status.
MODE When you specify "RECURSIVE", the subordinate directories will also be checked.

Comments

SIZE can only be specified for regular files. If SIZE has been defined, the TYPE definition is internally set
to a regular file. The file size is specified in bytes.

For example:
SIZE=100, Files as of 100 bytes
SIZE=100 Files up to 100 bytes
SIZE=,100 Files up to 100 bytes
SIZE=100,4000 Files between 100 and 4000 bytes

The following date and time formats can be used to specify ATIME, MTIME and STIME. The following
abbreviations are used: "Y" for the year, "M" for the month and "D" for the day. If no time is specified, AE
uses the value "0000".

YYYYMMDD,
"YYYYMMDD HHMM",
YYMMDD,
"YYMMDD HHMM".

For example:
ATIME=19971231 All files until this date
ATIME=,19971231 All files until this date
ATIME=19971231, All files as of this date
ATIME=19970101,19971231 All files as of the first date to the second date
363 | Chapter 9 AE and Target Systems

Examples

All home-directory files with the ID AE which were last accessed between 6 October 1997, 12:00 and 31
December 1998, 23:50 and which have a file size between 1 and 9999 bytes are listed. All subdirectories
of the home directory are considered.

:SET &HND = PREP_PROCESS('SOLARIS','UNIXFS','*','UC_LOGIN=AE','PATH=./*',


'FSPAR=ATIME="19971006 1200","19981231 2350" SIZE=1,9999 MODE=RECURSIVE')

See also:

Querying the UNIX File System

About Scripts
Script Elements - Alphabetical Listing
Script Elements - Ordered by Function

9.12.8 AIX Process Abort Due to Lack of Memory


Programs on AIX can abort if the memory allocated to a process is not sufficient for the ongoing
processing.

On AIX systems, 256 MB are allocated to each process by default. This memory limit can be increased to
a maximum of 2 GB using the environment variable LDR_CNTRL.

This variable must be set before starting a Automation Engine on AIX.

Execute the following commands:


LDR_CNTRL=MAXDATA=0x80000000
export LDR_CNTRL

Value 8 stands for 8x256MB (max. value) => 2 GB

Using this parameterization, up to 2 GB memory can be allocated even from a 32-bit agent. Aborts due to
insufficient memory can occur during the transfer or processing of huge spool lists or reports.

For jobs which require more than 2 GB memory, the user must increase the limit in the job using the
command ulimit (authorization required). It is also possible to define that there is no memory limit. This
can be defined in the job using the command ulimit -d unlimited.

9.12.9 Enlarging Core Files


It is important to have a complete Core file in order to be able to analyze problems if errors occur. By
default, AIX only generates minimum Core files. Therefore, specify the value "true" for the system
environment variable "fullcore" .

Start off by querying the variable. "sys0" stands for the device name.
lsattr -El sys0 | grep fullcore

The default result is:


fullcore false Enable full CORE dump True
Chapter9 AE and Target Systems | 364

There are several ways that can be used to set the variable fullcore to the value "True". The easiest one is
to call the tool "smit" with the root user using the parameter "chgsys".
smit chgsys

Use this tool to set the variable "Enable full CORE dump" to the value "true". By doing so, the variable
"fullcore" is activated on a system-wide basis.

Two other parameters can also be used to specify the maximum file size (which includes the Core file's
size). Query the specified values with the command "ulimit":
ulimit -a

Possible output is shown below:


file(blocks) 2097151 <-- !
coredump(blocks) 2097151 <-- !

The command "ulimit" can be used to change values. The option "-f" indicates the maximum file size in
blocks of 512 bytes.

Example:
ulimit -f 4096 # 4096 * 512 Bytes
ulimit -f unlimited

The option "-c" defines the maximum size of Core files in blocks of 512 bytes or unlimited.

Examples:
ulimit -c 4096 # 4096 * 512 Bytes
ulimit -c unlimited

9.12.10 Return Codes for UNIX Jobs


The agent logs all occurring errors in the job's activation report.

Depending on the job's execution, it also sets one of the following return codes:

Return code Description


0 No error occurred.
1-200 OS error codes
201 setgid() - The agent does not have the required privileges.
202 initgroup() - The agent does not have the required privileges.
203 setuid() - The agent does not have the required privileges.
205 chdir() - Change directory for job user does not exist.

206 The job report file cannot be opened.


208 dup2(STDOUT) - Standard output cannot be assigned.
209 dup2(STDERR) - Standard error output cannot be assigned.
210 execle() error - Job file cannot be started.
365 | Chapter 9 AE and Target Systems

You can define the return code as of which the job should abort in the Job object's Runtime tab.

9.12.11 Activating Job Messenger Traces


The following guide describes the activation of a trace output for UNIX and VMS Job Messengers. Doing
so is possible per job, per client or for the whole system.

The agent writes Job Messenger traces to the job report (REP). These outputs are found at the report's
beginning (start messenger) and its end (end messenger). They contain information about the messenger's
connection status. Trace output is automatically activated if an error occurs in combination with the
messenger program.

Activate the output as follows:

Use the parameter TRC= when calling the Job Messenger program in the Trailer and/or Header Include
(see: job includes). It is automatically included in the Unix job includes. The predefined script variable
&UC_MD_JOB_TRC will be assigned to this parameter. Thus, you can activate ('1') or deactivate ('0')
trace output by using this variable.

Trace activation is possible to the following extent:

l For all of an AE system's jobs


Setting in the Header / Trailer - Includes in system client 0.
We do not recommend using this setting because it will significantly increase the report size of
all UNIX and VMS jobs and prolong runtimes.

l For all of a client's jobs


Create and adjust the Header / Trailer Includes in the client's folder <No Folder>.

l Per job (recommended)


Set the script variable in the PreProcess tab.

By default, the activation of Job Messenger trace outputs is provided in the Header Include of UNIX jobs.
Open the Include object HEADER.UNIX in the system client. It contains the definition for the variable
&UC_JOB_MD_TRC. This variable's value will be passed on to the parameter TRC= when the Job
Messenger is called (JCL line).
Chapter9 AE and Target Systems | 366

You can activate the trace output for a particular UNIX job by inserting the following scripting line in the
PreProcess tab:
:SET &UC_JOB_MD_TRC = '1'
367 | Chapter 9 AE and Target Systems

See also:

Agent's Job Messenger


Logging/Trace

9.12.12 Solaris: Separating Jobs from Agent Processes


When you start the agent under Solaris by using SMF, all the processes (jobs) that this agent starts will run
in the same contract. The effect is that when this agent crashes, ends or is restarted, all its processes will
also end. To solve this problems, you can separate the jobs from the agent contract so that they can run
without being affected by the agent processes.

The following steps are required for this purpose:

Step 1: Create the two shell script files chk-AE-start.ksh and chk-uc4.ksh with the following contents:

chk-AE-start.ksh:
nohup /usr/local/bin/sudo -u mgws /var/tmp/chk-uc4.ksh&

chk-uc4.ksh :
while true
do
echo "$(date) $0" >> /var/tmp/chk-uc4.log
sleep 10
done
Chapter9 AE and Target Systems | 368

Step 2: In the job script, call the shell script chk-AE-start.ksh with the utility "ctrun" and at the beginning of
the job script, insert the following line:
ctrun -l child /var/tmp/chk-AE-start.ksh

9.12.13 Resource Limitation by Using Ulimit


You can use the UNIX command "ulimit" in order to limit OS resources per OS user. In doing so, you
ensure that users do not create too many resources which could negatively affect the performance of your
system.

Automic recommends that you do not define any limit for the user under which components start. It can
occur that a component that is affected by such a limit cannot work as required (for example, the agent
cannot open the report) or it rare cases, it can even happen that the program crashes.
Automic recommends removing or not using limits or when necessary, defining very high values for them.

These recommendations for limits affect all components that run under UNIX, which includes the UNIX
agent, the utilities, the UserInterface, and also the Java and ERP agents.

You can use the resource concept of the Automation Engine in order to save OS resources.

9.13 AE and VMS

9.13.1 VMS Agent - FileTransfer Support


When defining a FileTransfer object, file attributes for its destination can additionally be specified in the
FileTransfer tab.

Possible attributes

Attribute Attribute description Possible Description


values
alq Allocation quantity;
= number ignored if an allocation
XAB is present.
bls = Device block size
number (applies to files of
sequential organization
only)
deq = Default extension
number quantity
fop File processing options ctg Contiguous: indicates that the space for a file is to be
= value, allocated contiguously.
value, ...
cbt Contiguous-best-try.
369 | Chapter 9 AE and Target Systems

cif Create if nonexistent.


dfw Deferred write: writing back to the file from the
modified buffer is deferred. Applies to relative and
indexed files and sequential files opened for shared
access.
dlt Delete file on close.
mxw Maximize version number.
nef Not end-of-file.
pos Current position.
rck Read check compare operation.
rwc Rewind file on close.
rwo Rewind file on open.
scf Submit as command file on close.
spl Spool to system printer on close.
sqo File can only be processed in a sequential manner.
sup Supersede.
tef Truncate at end-of-file.
tmd Temporary delete.
tmp Temporary (no file directory).
wck Write check compare operation.
fsz = Fixed header size.
number
gbc = The requested number
number of global buffers for a
file.
mbc = Multiblock count.
number
mbf = Multibuffer count.
number
mrs = Maximum record size.
number
rat Record Attribute cr Carriage-return control.
= value,
value, ...
blk Disallow records to span block boundaries.
ftn Fortran print control.
none Explicitly forces no carriage control.
prn Print file format.
rfm = Record Format fix Fixed length record format.
value
stm RMS stream record format.
Chapter9 AE and Target Systems | 370

stmlf Stream format with line-feed terminator.


stmcr Stream format with carriage-return terminator.
udf Undefined.
var Variable length record format.
vcf Variable length record with fixed control.
rop = Record processing asy Asynchronous I/O.
value, Operations
value,...
cco Cancels Ctrl/O (used with Terminal I/O).
cvt Capitalizes characters on a read from the terminal.
eof Positions the record stream to the end-of-file for the
connect operation only.
nlk Do not lock record.
pmt Enables use of the prompt specified by "pmt=usr-
prmpt" on input from the terminal.
pta Eliminates any information in the type-ahead buffer
on a read from the terminal.
rah Read ahead.
rea Locks record for a read operation for this process,
while allowing other accessors to read the record.
rlk Locks record for write.
rne Suppresses echoing of input data on the screen as it
is entered on the keyboard.
rnf Indicates that Ctrl/U, Ctrl/R, and DELETE are not to
be considered control commands on terminal input,
but are to be passed to the application program.
rrl Reads regardless of lock.
syncsts Returns a success status of RMS$_SYNCH if the
requested service completes its task immediately.
tmo Timeout I/O.
tpt Allows put/write services using sequential record
access mode to occur at any point in the file,
truncating the file at that point.
ulk Prohibits RMS from automatically unlocking records.

wat Wait until record is available, if currently locked by


another stream.
wbh/nowbh Write behind.
371 | Chapter 9 AE and Target Systems

9.13.2 Return Codes of VMS Jobs


Return codes in VMS differ from those in AE. Value "1" in VMS signals that a job has successfully been
processed. "0" stands for warnings. In AE, it is the opposite way round. Return code "0" stands for a
successful execution and values other than "0" signal errors.

If the agent sends return code "0" to the AE system, this equals code "1" in AE.

Warnings and successful job executions cannot be distinguished. Automic strongly recommends
analyzing the variable $severity whenever a VMS command has been processed. It contains the return
code of the last command. Further job processing can then be handled via script.

Use an Include object for analyzing the variable $severity. In doing so, the relevant script lines must
only be maintained in one object and can be included in any job.

Example for an Include object:


$ RETCODE = $severity
$ if (RETCODE .EQ. 0)
$ then
$   RETCODE = 3
$   goto RETURN
$ endif
The system checks whether the returned code is a warning. If so, job execution is continued in the Trailer.
"goto RETURN" leads to the Include object "TRAILER.VMS" which is processed when a job has ended.

See also:

Job - Includes

9.14 AE and WebSphere MQ

9.14.1 Automation Engine Connector for WebSphere MQ


Queue Manager
The AE Connector is the link between WebSphere MQ Queue Manager and the Automation Engine.
Chapter9 AE and Target Systems | 372

The AE Connector reads a request, a message in XML format, from the request queue (SIQ) and forwards
it for processing to the Automation Engine. An internal format is used for this. The AE Connector waits for
the Automation Engine to verify processing and notify the end of the process. Here an internal format is
also used. The answer is assigned to the request from the AE Connector and written in XML format into
the reply queue (CIQ).

XML Request Message

XML element Description


<apiscriptexec> Start of API request.

XML element must be present.


<uc-env request="ID" The ID identifies the request.
release="1">
The "request=" attribute must be entered. The AE Connector refers to
this ID in its messages. This ID is also written in the reply message.

The "release=" attribute is not required. If it is still entered, at the


moment only the value "1" is allowed. On the future this attribute will
serve as the version entry.

XML element must be present.


<requestname name="any Name of the request.
name"> Attribute "name=" is not required.

XML element must be present.


<control> XML element must be present.
<timeout  Request runtime limit.
unit="sec">10</timeout>
Runtime starts before establishing connection with the Automation
Engine and ends when AE accepts execution or an unrecoverable error
occurs. The "unit=" attribute is used to define the runtime unit.

Allowed values: "1" - "31999"


Default: "10"

XML element is not necessary.


<control Not yet supported by current version.
unit="sec">20</control>
XML element is not necessary.
</control> Element termination <control>

XML element is not necessary.


<login> Start of element for login information.

XML element must be present.


<system>Automation Engine Name of Automation Engine.
name</system>
The name is used for checking the connection to the Automation
Engine. The contents correspond to the name= parameter in the INI file
of the Automation Engine to which the AE Connector has established a
connection.

XML element must be present.


373 | Chapter 9 AE and Target Systems

<client>client number</client> Client number for logging on to the Automation Engine.

XML element must be present.


<name>user name</name> User name for logging on to the Automation Engine.

XML element must be present.


<department>user's Designation of user's department for logging on to the Automation
department</department> Engine.

XML element must be present.


<passw>password</passw> User password for logging on to the Automation Engine.

XML element is not necessary.


<language>E/D/F</language> Choice of language in which messages are to be output.

If no language is specified, massages are written according to the


setting in the INI file of the AE Connector.

XML element is not necessary.


<clienttype>C</clienttype> Clients type.

If the type is to be specified, currently only "C" is allowed.

XML element is not necessary.


<clientvers>client Version of AE Connector.
version</clientvers
Allowed values: Current Version

XML element is not necessary.


</login> Termination for XML element <login>.

XML element must be present.


<script><![CDATA[Script Script statements to be executed in AE.
content]]></script>
XML element must be present.
</request> Termination for XML element <request>.

XML element must be present.


</uc-env> Termination for XML element <uc-env>.

XML element must be present.


</apiscriptexec> Termination for XML element <apiscriptexec>.

XML element must be present.

Example of Request

<apiscriptexec>
<uc-env request="ID1" release="1">
<request name="apiscriptexec">
<control>
<timeout unit="sec">10</timeout>
</control>
<login>
<system>UC4</system>
Chapter9 AE and Target Systems | 374

<client>97</client>
<name>NAME01</name>
<department>DEPARTMENT01</department>
<passw></passw>
<language>D</language>
<clienttype>C</clienttype>
<clientvers>11.0.0</clientvers>
</login>
<script><![CDATA[:SET &RUNNR = ACTIVATE_UC_OBJECT
(JOBS,EXAMPLE1)]]></script>
</request>
</uc-env>
</apiscriptexec>

XML Reply Message

XML Element Description


<apiscriptexec> Outer message frame.

XML element is always present.


<uc-env request="ID" The provided ID is removed from its corresponding request.
release="1"> The "request=" attribute is always output.

XML element is always present.


<result name="Reply"> XML element is always present.
<status>reason</status> Reason for this reply to a request.
Currently the reply is always "completed".

XML element is always present.


<complcode>code</complcode> Completion code supplied by the AE Connector for the executed
request. All possible codes are described in the message manual.

XML element is always present.


<compltext>![CDATA[completion Description text for completion code.
text]]</compltext>
XML element is always present.
<returnvalue>value</returnvalue> Return value from components which were present during
processing (Automation Engine, XML Parser, etc.).

XML element is always present.


<returntext>![CDATA[return Description of return value.
text]]</returntext>
XML element is always present.
</result> Termination for XML element <result>.

XML element is always present.


</uc-env> Termination for XML element <uc-env>.

XML element is always present.


</apiscriptexec> Termination for XML element <apiscriptexec>.

XML element is always present.


375 | Chapter 9 AE and Target Systems

9.15 AE and Windows

9.15.1 Starting Programs on Windows


Attributes
The following parameters are important when you start jobs on Windows:

Domain

Windows domain in which the user is defined.

User Name

The Windows user name.

Password

The user's password.

BATCH (login type)

You can allow a user to use particular login types. The login types interactive and batch can be
used. For example, if a user is only allowed to log on via batch, this user can start jobs only in batch mode.
The parameter BATCH must be specified in this case.

DESKTOP

This option should be specified if the job that should start expects particular user inputs. The
process is then visible for any user who is logged in. This user can enter the required user inputs.

If this option is not specified and the process requires an input, the job hangs and can only be
removed by using the task manager.

Attributes are defined in the attribute cards of the job.

Attention

l Attributes are defined in the attribute cards of the job.


l All parameters except for the password are defined in the job attributes.
l The password is read from the Login object.
l These new options (compared to version 1.10) are only available if parameter "logon=1" is specified
in the agent's INI-file section [GLOBAL]. This parameter should be set if the agent starts as a
service.
Chapter9 AE and Target Systems | 376

System Dependencies
Depending on the operating system and the agent's start type, there are the following dependencies that
apply:

Agent INI File User BATCH DESKTOP


Agent on desktop  logon=0 1. 1. 1. 
Agent on desktop  logon=1 2. 2. 2. 
Agent as a service  logon=1 3. 3. 3. 

1. Irrelevant, the system starts on the desktop using the user's name and rights.
2. Is used - The desktop user must have the appropriate privileges (such as a system user).
3. Is used.

Note the following peculiarities:

l Difference between an interactive login and a Win32 agent login:


The agent does not load the job's user profile to the registry database. That means that a
program that stores user-specific data in the registry (for example, the AE Dialog stores the
latest logon) cannot access a this data through an AE job.
l Start path:
The start path is a CreateProcess and CreateProcessAsUser parameter. It is not an
obligatory AE parameter. If it is not specified, the agent passes it on to the AE job.
It is important to know that you can specify a start path in the user definition. This start path
is used if a normal interactive logon is made. Note that it cannot be analyzed when you start
the job using AE.
Automic recommends always specifying the start path.

Strategy for Jobs on Windows


Windows distinguishes four program types.

1. Programs with a graphical UserInterface (32-bit and 16-bit GUI programs).


2. 32-bit console programs.
3. Old DOS programs.
4. Operating system commands (not a real program, for example, DIR, SET etc.).

Types 1 and 2 (GUI and console programs) should be started from the command line if possible. The
advantage is that AE can retrieve the correct program exit code.

Type 3 and 4 (DOS programs and OS commands) can only be started through a BAT file. The job ends
correctly or incorrectly using the Job Messenger mechanism.

Automic recommends testing the BAT file or the command line on the target system before you start the
job via the AE. Use the user who should later execute the AE if possible.

Using  graphical programs can always cause unexpected user dialogs (message box). Automic
recommends using the option DESKTOP for test runs.

Job report: The program output after STDOUT and STDERR is the job report of a Windows job. Usually,
only 32-bit console programs and most DOS programs create a job report.
377 | Chapter 9 AE and Target Systems

9.15.2 Test Programs for the Windows Agent

Purpose

There are various ways of starting Windows jobs or programs. Therefore, AE supplies a number of test
programs which in the various modes in Windows.

Files

The programs are found in the subdirectory EXAMPLE of the Windows agent
(IMAGE:AGENTS\WINDOWS...).

The following programs are supplied:

UCYBTX86C - 32Bit Console Program (DOS-Window)


UCYBTX86G - 32Bit GUI Program (Visual C++)
UCYBTX86V - 32Bit GUI Program (Visual Basic)
UCYBTIA64C - 64Bit Console Program (DOS-Window)
UCYBTX64C - 64Bit Console Program (DOS-Window)

Operating the Test Programs

The test programs do not have an actual function. their execution can be controlled through parameters in
the startup options.

/w<n>  Wait <n> seconds 


/d  Run Dialog (e.g. file selection) 
/m  Message (message box) 
/o<n> Output <n> lines in this standard output (=Jobreport)
/r<n>  Set return code to <n> 

The parameters are executed in the order of their appearance.

Not every parameter is possible with every program:

Program /w<n> wait /d Dialog /m Message /o<n> /r<n>


Box STDOUT Retcode
UCYBTX86C  Yes Yes Yes Yes Yes 
UCYBTX86G  Yes Yes (file selection) Yes Yes Yes 
UCYBTX86V Yes (Loop) Yes (file selection) Yes No Yes 
UCYBTIA64C Yes Yes Yes Yes Yes
UCYBTX64C Yes Yes Yes Yes Yes

Example

UCYBTX86G /w10 /d /r4


Chapter9 AE and Target Systems | 378

The 32Bit GUI program is started. It waits for 10 seconds, executes the file dialog without effect, sets the
return code to 4 and closes itself.

9.15.3 Windows Job Object


The execution of Windows jobs initiates processes such as program starts.

A Windows Job object combines all the processes of a Window job and provides the following
advantages:

l CPU-time measuring includes all sub-processes,


l the Windows job does not end before all sub-processes have ended,
l when a Windows job is canceled, all sub-processes are also canceled

In the host tab of a Windows job, you can specify whether it should run in a Windows Job object or not.
You can also specify this setting in the Windows agent's INI file. This setting is then used as the default
value and is used for all Windows jobs.
[GLOBAL]
;...
useJobObject=1

Refer to the report of a Windows jobs to see if it has run with a Windows Job object.

Examples

The setting "Job Object - Yes" has been checked in the host tab of a Windows job. The Process tab
contains the command Start "New Window" which starts a new process. This Windows job only ends
when you quit the new window using the "exit" command. It is displayed in the Activity Window until then
as the following illustration shows.

The Windows are only displayed when the option Show job at the desktop is activated in the host tab
or when the Windows agent does not run as a service.
379 | Chapter 9 AE and Target Systems

9.15.4 Reports of Windows Jobs


The reports of Windows jobs have some special features.

Generating Job Reports Through Script

Use the host specific Windows tab to specify when the job report should be stored in the database and/or
in a file. It is also possible to define that a report should only be stored in case of an error.
Chapter9 AE and Target Systems | 380

The option Is generated by script serves programs whose outputs are supplied in files. If this
specification has been activated, the job reports contain the program outputs.

With each job execution, an extra file is created for the job report. Use the attribute "FILENAME_
SYSOUT" to retrieve these files' names which are composed of the individual run numbers (RunID). The
path for the job report can be set with the variable "UC_EX_PATH_JOBREPORT" and read with the script
function GET_VAR. Finally, the retrieved information can be assigned to the program.

For example:
:SET &job_report_path# = GET_VAR(UC_EX_PATH_JOBREPORT)
:SET &job_report_filename# = GET_ATT(FILENAME_SYSOUT)

isqlw -S PC1\SQL2000 -d TEST_DB -U sa -i c:\temp\test.sql -o &job_report_


path#&job_report_filename#

Windows Job Object

Reports of Windows jobs show whether a particular job used a Windows Job object. The end of the AE
Job Messenger then supplies different information:

For example: Without a Job object:


UCMDJP: *******************************************************************
UCMDJP: ** JOB 26181380 (ProcID:0000005796) ENDED AT 22.07.2004/15:02:10 **
UCMDJP: ** ------------------------------------------------------------- **
UCMDJP: ** USED: @ CPU **
UCMDJP: *******************************************************************

For example: With a Job object:


UCMDJP: *******************************************************************
UCMDJP: ** JOB 26181383 (ProcID:0000001416) ENDED AT 22.07.2004/15:03:09 **
UCMDJP: ** ------------------------------------------------------------- **
UCMDJP: ** USED: 0.188 CPU **
UCMDJP: ** 1154 PAGE FAULTS **
UCMDJP: ** 3 PROCESSES **
UCMDJP: *******************************************************************

See also:

Report for Executable Objects

9.15.5 User Account Control in Windows 2008 and Vista


If you intend to open programs via AE jobs that require "Elevation" (a higher authorization), you can do so
by selecting the option log on as batch user.

No automatic elevation is possible if the batch mode is not activated. The Windows user under which the
Job is executed requires the right to log on as batch job (System Control - Administration - Local Security
Policy).

The relevant Job will automatically be elevated if it requires more authorization. Therefore, the user who is
specified in the Login object must have the required authorizations. Note that all processes of the affected
AE Job will be executed with these rights. If the relevant user does not have one or several of the required
381 | Chapter 9 AE and Target Systems

rights, the agent cannot execute all processes. Windows then aborts with the error 740 (elevation
required).

On Windows 2012 you should also change the relevant entries in the registry. It is not sufficient to
change the UAC privileges by using the control panel in Windows 2012.
For further details please refer to and observe Microsoft's information on registry setting changes.
Follow this link to Microsoft's own site for information on the registry settings, find the description of the
key "EnableLUA" and set it to "0".

Comment

The Windows-UAC displays a message asking users to confirm execution of functions and programs,
according to permissions that have been set for the respective user.

This behavior cannot be controlled via the Automation Engine. You should set the relevant permissions
according to the notes on installation in the Automation Engine documentation relevant to Agents, Jobs,
etc.

9.15.6 Retrieving the CPU Number


The number of CPUs of the computer on which the agent runs is output in the log file and in the System
Overview.

Hyper-threading

For technical reasons, the Windows agent cannot retrieve the correct number of CPUs for all supported
Windows versions if the computer runs with hyper-thread turned on. In such a case, the agent supplies a
lower number of CPUs than is actually available. The following table lists the Windows versions for which
the number of CPUs is correctly retrieved:

Windows version x86 x64


Windows 2003 Yes Yes
Windows XP As of Service Pack 3 As of Service Pack 3
Windows Vista Yes Yes
Windows 2008 Yes Yes

9.15.7 Libraries in Windows 7


This is an important note for using AE for Windows 7 in combination with the new function "Libraries".

Libraries in Windows 7 are "virtual folders" which can be used to combine contents that have been stored
in different locations. In other words, they are a collection of different directories.

These virtual directories can be accessed via the path "Libraries" (e.g. "Libraries\Documents"). This is a
"relative path" because it does not indicate the actual storage location. Thus, it cannot be used in
combination with AE.

This note is of special importance when you use agents for file transfers which run on Windows 7.
Chapter9 AE and Target Systems | 382

The absolute path is required to access Libraries using AE. Under Windows 7, Libraries are stored in the
following directory:
C:\Users\%Username%\AppData\Roaming\Microsoft\Windows\Libraries\

9.15.8 Windows Agent - File Transfer Support


When defining a FileTransfer object, you can also specify additional details in the FileTransfer field.

These details can be file attributes of the operating system or additional options which are only evaluated
by the agent. Note that several attributes and options need to be separated with commas.

Windows File Attributes

File attributes can be specified for the file transfer's destination.

You can also override the original attributes. This means that even if the option Keep original attributes
has been activated, the attributes that should be passed on to the target should be overwritten (e.g.,
setting a read-only permission for all destination files).

The value "YES" sets an attribute, "NO" removes it.


Example: ARCHIVE=YES, HIDDEN=NO

Attribute Description
ARCHIVE Archive (file has changed since the last backup was made)
COMPRESSED Compressed file
ENCRYPTED Encrypted file
HIDDEN Hidden file
READONLY File is read only
SYSTEM System file

Additional Options

You can specify particular options in addition to the operating system's file attributes in the File attributes
field. They affect the formatting of the file content, but are not file attributes. These options are also
available for UNIX agents.

Options for the sender's file attributes

l reclen - record length specified in bytes.


l nl=mixed - a CR character used at the end of a text file's line can corrupt the file in some systems.
The value "mixed" automatically removes this character.

Options for the receiver's file attributes

l nl character for inserting line separation.


Allowed values: "crlf", "lf" (default) and "none"
"crlf" - carriage return and line feed.
"lf" - line feed.
"none" - no line break.
383 | Chapter 9 AE and Target Systems

Example: nl=crlf

9.16 AE and z/OS

9.16.1 Agent - Interaction Between the Automation Engine


and z/OS
The z/OS agent works together with the AE system via a TCP/IP interface.
It communicates within z/OS exclusively with JES2 or JES3.

The z/OS agent provides the following functions:

l Jobs processing
l Execution of file transfers
l Event handling
l CallAPI

Job Processing

In the AE, jobs are defined and maintained in the form of objects that include various tabs. The JCL is
stored in the Process tab. Its logic can be very complex if you make use ofthe AE's script elements.
See: User Guide - Job and Job - Execution

In the AE, you can start jobs either manually or via control mechanisms such as Workflow objects or
Schedule objects. The Automation Engine then generates an executable job and sends it to the MPE agent
via a file transfer.
See: Inside AE Guide - Executing Objects

In z/OS, the job is read and put to the Internal Reader. The Internal Reader starts the job. Monitoring takes
place through SSL.

The job notifies the agent about the beginning and end of an execution. The agent then passes this
information on to the Automation Engine.

The agent monitors the job's status in regular intervals. This ensures that an abnormal end can be
determined if a job vanishes  ABEND or CANCEL). The job's return code is available in AE.

The job report (MSGCLASS) which includes the JES statistics and the complete job output is stored in a
file that is specified by the Automation Engine. If specified in the job, the agent transfers the report to the
Automation Engine which stores it in the AE database. Because JES requests the job output, you must
use a MSGCLASS with the status HOLD.

Executing File Transfers

In the AE, file transfers are defined and maintained in the form of objects that include various tabs. They
are executed with the character conversions that are defined in these tabs (such as IBM_3270_
INTERNATIONAL).
See: User Guide - FileTransfer
See: Knowledge Base AE and z/OS - Agent - FileTransfer Support
Chapter9 AE and Target Systems | 384

Event Handling

In the AE, events are defined and maintained in the form of objects that include various tabs.
The z/OS agent also supports events of type FileSystem and Console.
See: User Guide - Event

CallAPI

You can use the CallAPI with a utility that can be called by using a job.
See: User Guide - CallAPI for z/OS

9.16.2 z/OS Agent - File Transfer Support


The z/OS agent supports all file transfer functions such as the transfers of text and binary files or file
transfers with wildcard characters. The z/OS agent can extend sequential files (PS, but not the members
of a library.

While defining a FileTransfer object, you can define additional file attributes for the file transfer's
destination in the FileTransfer tab. This definition overrides the system's default allocation. 

You can assume the attributes of the source files if the source and destination platform comply with each
other. Use the option "Keep original file attributes" in the FileTransfer object for this purpose. Note that in
z/OS, you cannot override these attributes. With this option being activated, an error will occur if you
define additional attributes.

The following two formats can be used to specify file attributes in file transfers that use z/OS as the
destination platform.

Language Environment Format

The "Language Environment Format" is the usual format. The file attributes for file transfers of older
Automation Engine versions have already been specified in this format. Several file attributes are
separated by commas, values are assigned using the character '='.

You can specify the following file attributes:

l recfm= (all 27 record formats of OS/390 plus * and A are valid)


l lrecl= (0, any positive number up to 32,760 and X for each Reclen)
l blksize= (0, any positive number up to 32,760)
l space= ([CYL,TRK],(prim,sec,directory))
l nl= (crlf (default setting in the Windows agent) -> records are separated by <cr><lf> (=0d0a);
lf (default setting in the Unix agent) -> records are spearated by <nl> (=0a);
none (no line separator is inserted between records).

Examples

recfm=fb,lrecl=1024,blksize=2048,space=(CYL,(1,1,0))
recfm=fb,lrecl=80
385 | Chapter 9 AE and Target Systems

Allocate Format

Starting with version 9.00A, you can set the attributes for file transfer files using the ALLOCATE
command. Several attributes are separated by using blanks and the values are written in parentheses
directly after the attribute name. The '=' character is not required.

This spelling can only be used with the new file transfer protocol (source and destination agent are of
version 9.00A or later).

The following attributes are supported:

l DATACLAS
l EXPDT
l MGMTCLASS
l RETPD
l RLSE
l STORCLAS
l UNIT
l VOLUME
l RECFM
l LRECL
l BLKSIZE
l SPACE (only in combination with CYLINDERS, TRACKS or BLOCK)
l DSORG
l ROUND

For a detailed description refer to the IBM documentation of the TSO command ALLOCATE.

Example
ALLOCATE RECFM(FB) LRECL(1024) BLKSIZE(2048) EXPDT(2010100) SPACE(1,1) CYLS
DIR(10) UNIT(3390) VOLUME(DSK30D,DSK30E)

9.16.3 Message Classes


The job log of a z/OS job is stored in a JES spool which is divided into message classes. Each of these
classes has a single figure description consisting of the characters A to Z or the letters 0 to 9. You can
decide how the job log is structured and in which message classes it should be routed.

The agent can:

l Write the job output to the message class specified in the Job object
l Include the JES statistics (JESMSGLG, JESJCL and JESYSMSG) in the job log in addition to the
job output
l Read message classes and include them in the job log
l Route the job log to message classes
l Release the job log for printing and delete it

The relevant settings can be defined as a default setting in the agent's INI file or in the Job object. Job
object specifications overrule the INI-file values. All settings can also be defined in the script via job
attributes. Automic recommends specifying the configuration that is used most in the INI file and jobs
differing from this specification directly in the object or via script.

The following table contains all possible specifications for message classes. The entries of the column
Job object correspond to the fields in the interface of the z/OS tab.
Chapter9 AE and Target Systems | 386

Job log Job object INI-file Job attribute


handling parameter
Complexity With additional output completeJobout= MVS_
COMPLETEJOBOUT
Job output Msg Class Not available MVS_MSGCLASS
Identification Obtain the following message getMsgClass= MVS_
class/classes GETMSGCLASSES
Redirection Route message class/classes to routeMsgClass= MVS_
ROUTEMSGCLASS
Release for Release relMsgClass= MVS_RELMSGCLASS
printing
Deletion in JES Purge jobPurge= MVS_JOBPURGE
spool

It is possible to enter a message class on step level within a job in order to route particular messages
and filter them.

Using an Output Management System

Some parameters must be specified if using an Output Management System such as BETA92:

1. Enter the message class in which the job output is stored.


2. It is important that this message class is read (perhaps other ones as well).
3. Define the message class which is assigned to the Output Management System and route the job
log to it.

 In some Output Management Systems, the Msgclass must be a write class - otherwise, it
cannot be processed. Also, an external writer should not be connected to this class as the output
would be processed from this writer.
4. The job log must not be deleted in the JES spool.

 Use an extra message class for AE.

How the job-log routing is specified directly in the job is shown in the following illustration. The job writes
its output in message class "B". This message class and class "A" are read. The order is significant when
message classes are routed. Message class "A" is routed to "K" and "B" to class "J".
387 | Chapter 9 AE and Target Systems

See also:

z/OS - Job
z/OS - Attributes

9.16.4 Event Monitor


AE handles events in the form of objects which include several tabs. z/OS agent events of type "Console"
facilitate the monitoring of Console outputs. The event is immediately triggered if all conditions specified in
the Console tab are met.

This requires the Event Monitor UCXEM25 to be installed and started. Type "FileSystem" checks via SMF
whether the condition is met and, if so, the event is immediately triggered.

Event Monitor as Independent Task (Started Task)

The Event Monitor can also be operated in the form of a started task. In this case, an extra INI file is
required and the parameter start= in the agent's INI file must be commented. Start the Event Monitor as a
started task and it tries to establish a TCP/IP connection to the agent. The Event Monitor only connects to
the Console of its own LPAR. It loads the SMF Exit to use the SMF-based functions. If it is not possible to
establish a connection to the agent, or if the connection is lost during operation, an attempt to reestablish
the connection is made in the specified interval (parameter connect= in the section TCP/IP in the INI file).
Chapter9 AE and Target Systems | 388

The Console command "MODIFY ..., EX=<addr>,:<port> facilitates that a reconnection can quickly be
established. In this case, the attempt to reconnect to the specified agent is made immediately. A
connection is also established if the Event Monitor has an existing connection to another agent. A new
connection is established in this case. The old connection is ended if the new connection is
successfully established.

The Event Monitor supports logging and trace functions. If the trace buttons are dynamically modified at
runtime, these modifications are sent to the Event Monitor. The Event Monitor's logging is not written to
the AE database.

Each Event Monitor requires two files:

VSAM file

This file serves as event memory; the filtered events are stored. Only after the Server has acknowledged
that the event has been processed does the Event Monitor delete it from this file. This ensures that the
Event Monitor does not lose events and that they are kept even if the Event Monitor had been ended and
restarted.

Sequential file

This file contains filter definitions - the Event Monitor memorizes the filter which it has received from the
Server. The whole file is rewritten if something is changed in the filter definitions. If the Event Monitor is
restarted, it uses these filters (even without the agent). The Event Monitor can obtain additional filters or
existing ones can be deactivated as soon as the connection to the agent has been established.

The Event Monitor can be ended via the Console command "STOP" or "MODIFY END". "MODIFY
SHUTDOWN" is available in the agent. In this case, the agent ends all Event Monitors that are
connected to the agent via TCP/IP and then the agent ends itself.

Ending the Event Monitor 

Use the following commands to end the Event Monitor and/or the SMF Exit manually:

Command Description
MODIFY Name of the Event Ends the Event Monitor, the SMF Exit remains active
Monitor,END
STOP Name of the Event Ends the Event Monitor and the SMF Exit
Monitor
MODIFY Name of the Event
Monitor,SHUTDOWN
MODIFY Name of the Ends all Event Monitors including SMF Exits which are connected to
agent,SHUTDOWN the agent. The agent then ends itself.

The SMF Exit always remains active when an Event Monitor is canceled.

SMF Exit

An Event Monitor forwards events to the Automation Engine only when it is active. The SMF Exit stores
them if the Event Monitor ends or aborts in order to ensure that no event is lost.

See file:
389 | Chapter 9 AE and Target Systems

GET_CONSOLE, GET_EVENT_INFO Reads message data of an occurred Console or File System


event

Event
INI File of the z/OS Agent (Event Monitor as Sub-Task)
INI File for the Independent Event Monitor

Agent - Combining AE and z/OS


Installing the Agent for z/OS

9.16.5 External Job Monitor


The external Job Monitor (EJM) can be used to identify jobs that were started by a scheduling system
other than AE (e.g., OPC, CA7). You can react to these jobs in the AE system using the Event Monitor and
the AE agent.

The external Job Monitor runs as an independent started task.

Function of the External Job Monitor (EJM)

A reaction to external events is possible through the Event Monitor.

The Event Monitor identifies Console events, automatic FileSystem events and the end of z/OS jobs. The
Event Monitor can also be used to react to the generation of external files. As soon as the external Job
Monitor identifies an external job end, it creates a file, thereby enabling a reaction through the Event
Monitor. The Event Monitor communicates with the AE system via the agent and triggers an Event object.

Not every job end requires an action. You can use a filter file to determine the jobs or steps that require a
reaction. If the end of an affected job has been identified, the EJM creates a temporary file. This file is only
required for the generation of an SMF record to which the Event Monitor can react. It can be deleted
afterwards.

Note that the creation and deletion of files leads to entries in the dataset catalog. Make sure to
reorganize it regularly.
Chapter9 AE and Target Systems | 390

It is possible to identify external jobs within a Sysplex if an external Job Monitor and an Event Monitor
instance run on each LPAR (local partition). Each LPAR has its own SMF subsystem which is not
sysplex-able. The agent does not require SMF and can be used sysplex-wide. There is no direct
connection between EJM and EM. The EJM signals to the EM that a job has ended by generating a file.
The EM sends the data to the z/OS agent across LPARs.
391 | Chapter 9 AE and Target Systems

SMF Exit

Events and information concerning the external Job Monitor should be written to the CADS via an SMF
Exit (same procedure as in EventMonitor). Doing so requires a new SMF Exit (AEEXJM). This Exit
behaves similarly to the Event Monitor SMF Exit with the exception that it only collects type 30 records.
The SMF Exit module will automatically be loaded when the external Job Monitor module starts. The SMF
Exit continues collecting events even if the EJM has been ended. A message is written to the log file if a
job that has been specified in the filter file finishes in the meantime.

You can use the existing program CADSDEL as emergency recovery for the EJM.

Problems can occur if you use a filter file of the same content in several LPARs. For example, jobs of
the same name can end on different LPARs at the same time. In this case, the system attempts to
generate files of the same name in parallel which eventually leads to an error. As this error hardly ever
occurs, the utility only writes an error message to the log file and continues.

Filter File

The EJM filter file is necessary to select the relevant ending jobs. The individual filter criteria are
immediately checked whenever an event occurs.

Example: A filter file contains a condition referring to a particular Step/ProcStep. The ending of this Step is
immediately identified and not only when the job has ended. The filter file contains the following selection
criteria:

l Job name (partially/fully qualified)


l Step name (partially/fully qualified)
l ProcStep name (partially/fully qualified)
l Job end
l Return code
Chapter9 AE and Target Systems | 392

The filter file must include the DCB attributes RECFM (record format)=FB, LRECL (record length) =85 and
BLKSIZE (block size) =5120. The filter file includes an 85-character line for each filter.

Use the following command to reload the filter file manually:

MODIFY <Name of the STC>, RELOAD


(STC = started task)

Filter criterion Digits Description


Job name 1-8 (Length 8) Filter for the job's name in z/OS.
The wildcard characters "*" and "?" are
allowed.
Step name 9-16 (Length 8) Optional
Filter for the job's step name in z/OS.
The wildcard characters "*" and "?" are
allowed.
ProcStep name 17-24 (Length 8) Optional
Filter for the job's procedure step name in
z/OS.
The wildcard characters "*" and "?" are
allowed.
Job end 25 (Length 1) " " -> Check immediately at Step/ProcStep
end.
"X" -> Check at job end. No RC verification.
"N" -> Check at job end and when the job
ends normally (i.e. with a return code
between 0 and 4095).
"A" -> Check at job end and when the job
ends abnormally (i.e. with a return code
between 4096 and 12287).
Job return code 26-41 (Length 16) Optional
Filter for the job's return code (condition
codes, user abends and system abends).
Several return codes can also be specified;
separate them with the character ";" or ",".
Ranges can be defined using the character "-
".
File name 42-85 (Length 44) File name of the temporary file to be
generated for redirection.

The example shown below illustrates the usage of a job filter dataset:
JOBTEST STEP3* 0-100;S0C4 JOB.ZUC800A1.EJM.TRIGGER.TEMP01
JOBF* STEP01 N0,4,8,12-16 JOBF.ZUC800A1.EJM.TRIGGER.TEMP02
JOBTEST2DUMMY 0-4096 JOB.ZUC800A1.EJM.TRIGGER.TEMP03
JOBTEST2DUMMY2 N0-4096 JOB.ZUC800A1.EJM.TRIGGER.TEMP04

The individual filter lines are connected through an OR relation. Thus, the lines are processed and checked
in sequences. If a selection applies, the particular file will be created.

See also:
393 | Chapter 9 AE and Target Systems

Event Monitor
Structure of the External Job Monitor's Configuration File

9.16.6 SMF Exit


The SMF subsystem collects and logs information about the system and its jobs.

The z/OS agent and its Event Monitors use SMF records in the following areas:

l Automatic File-System Events


l Support of Generation Data Groups
l Recognizing and Assessing Job Ends

A requirement for SMF usage is that your z/OS system accepts the relevant system exits and that the
SMF module logs particular entries. The INI files of the agent and Event Monitors contain some settings
for SMF. Detailed information about the exact configuration is provided in the documentation about the
above functionalities.

General

The Event Monitor monitors Console and FileSystem events and forwards them to the Automation Engine.
You can react to them via Event objects. Events are only monitored when the Event Monitor is active.
Events are collected on the basis of SMF records via an SMF exit. This Exit is able to buffer events even if
the Event Monitor is not available and transmits the collected events to the Event Monitor after a restart.
No SMF records are lost unless the buffer is full (its size is definable).

The System Management Facility (SMF) is also used in other fields. It recognizes job ends and GDGs,
for example.

The following illustration shows the interaction of agent, Event Monitor and SMF Exit.
Chapter9 AE and Target Systems | 394

The SMF Exit stores events in an Area Data Space (CADS). The z/OS Console shows the CADS filling
level colored:

l 25%, 50% and 75% in white


l 80%, 85%, 90%, 95% and 100% in red

The SMF Exit cannot store events if the CADS is full. The oldest event entry is not overwritten. Events
are stored in the CADS again as soon as memory has become available. This is the case when the
SMF Exit transmits events to the Event Monitor.

The default value for the CADS is 10 MB which is sufficient for storing about 65000 events.

Events occurring during a startup, shutdown or IPL stage are not collected. Events are processed as
soon as the Event Monitor has started.

Configuration

Start the SMF Exit as shown below:

l Make sure in your z/OS system that the SMF subsystem logs all SMF records of type 14, 15, 30
and 64 and that the exits IEFU83 and IEFU84 are active.
l The SMF Exit can run as a subtask of the agent or Event Monitor which requires their INI files to be
adjusted as shown below:

Enter a description for the SMF Exit in the section (CONSOLE), parameter ModulName=.

Define the CADS size in the section (CONSOLE), parameter SMF_Buffersize=. The default size is
10 MB.

l Start the Event Monitor.


395 | Chapter 9 AE and Target Systems

Starting the Event Monitor

Use the following command to start the Event Monitor including the SMF Exit:

START Name of the Event Monitor

Ending the Event Monitor

Use the following commands to end the Event Monitor and/or the SMF Exit manually:

Command Description
MODIFY Name of the Event Ends the Event Monitor, the SMF Exit remains active
Monitor,END
STOP Name of the Event Ends the Event Monitor and the SMF Exit
Monitor
MODIFY Name of the Event
Monitor,SHUTDOWN
MODIFY Name of the Ends all Event Monitors including SMF Exits which are connected to
Agent,SHUTDOWN the agent. The agent then ends itself.

The SMF Exit always remains active when an Event Monitor is canceled.

Warm Start

The SMF Exit remains active when the Event Monitor is ended manually ("END") or aborts. As soon as the
Event Monitor has been restarted, it connects to the SMF exit again and processes the events which have
accumulated meanwhile.

INI-file modifications in the parameters ModulName= and SMF_Buffersize= have no effect. Values are
only read when the SMF Exit is started again.

Exceptions

Usually, the SMF Exit ends when the Event Monitor is ended with "SHUTDOWN". The CADS is
automatically deleted. Manually ending the SMF Exit is also possible:

SET PROG,EXIT,DELETE,EXITNAME=Name of the SMF Exit,MODULNAME=Name of the UC4


module

The CADS is not deleted if the SMF Exit is ended manually.

Use the utility CADSDEL to delete the CADS content:

Open the Event Monitor's log file. The following log line contains the parameters STOKEN and
TCBTOKEN which are required for ending the SMF Exit:
-UC4 STOKEN=8000160200001328;TCBTOKEN=00000004000000010000000000FD2300

The AE system name and an eyecatcher name must also be specified. Both values are defined in the
Event Monitor's INI file:

l system= contains the name of the AE system


l CADSEyeCatcher= contains the eyecatcher name
Chapter9 AE and Target Systems | 396

Call the utility CADSDEL using the above four parameters:


//CADSDEL JOB ####,PROGRAMMER,NOTIFY=&SYSUID,MSGLEVEL=(1,1)
//CADSDEL EXEC PGM=CADSDEL,
// PARM='8000160200001328 00000004000000010000000000FD2300 UC4PROD
UC4EYEC'
//STEPLIB DD DISP=SHR,DSN=<UC4.LOADLIB>
Verify that the CADS has been deleted with the z/OS command D A,*MASTER*.

Scenario

There are two LPARs in Sysplex:

l The first one includes an agent and an Event Monitor. Both run as independent tasks. The SMF Exit
is a subtask of the Event Monitor.
l The second one also includes an Event Monitor with an SMF Exit running as a subtask.

LPAR1 LPAR2
Agent: MVS01
Event Monitor: EM01 Event Monitor: EM01
SMF Exit: SMFE01 SMF Exit: SMFE01

The following configurations are required in LPAR1:

l Install an agent in LPAR1 as described in the Installation Guide. The complete section (CONSOLE)
in the agent's INI file must be commented out because the Event Monitor should run with the SMF
Exit as an independent started task.

;(CONSOLE)
;start=
;buffersize=
;smfwrite=
;ModulName=
;smfStepFilter=
;smfJob=
;SMF_Buffersize=
;ABENDNUM=

l Install the Event Monitor as an independent started task in LPAR1. The corresponding description
is also found in the Installation Guide. The section (CONSOLE) in the Event Monitor's INI file must
be adjusted because the SMF Exit is a subtask of the Event Monitor:

(CONSOLE)
smfwrite=1
ModulName=SMFE01
smfStepFilter=0
SMFJob=0
SMF_Buffersize=10

The following configurations are required in LPAR2:

l Install the Event Monitor as an independent started task in LPAR2. Adjust the section (CONSOLE)
in the Event Monitor's INI file because the SMF Exit is also a subtask of the Event Monitor:

(CONSOLE)
smfwrite=1
397 | Chapter 9 AE and Target Systems

ModulName=SMFE01
smfStepFilter=0
SMFJob=0
SMF_Buffersize=10

See also:

Event Monitor

9.16.7 Automatic File-System Events


The z/OS agent supports the monitoring of file systems and file closings. The event is triggered when a file
is closed according to the defined conditions.

In an Event object, you can either filter by the file name or specify a series of filter criteria. The latter
include the name of the file, the job which has processed the file and its return code.

!Process is processed when the event has been triggered. The script function GET_EVENT_INFO
supplies information about the file.

The administrator must set the parameter smfwrite=1 in the INI file of the agent or Event Monitor. Make
sure in your z/OS system that the SMF subsystem allows the system exits IEFU83 and IEFU84. The
entries 14, 15, 30 and 64 must be logged.

Automatic FileSystem events on PDS members are not supported.

Procedure 

1. Create an Event object of type File System.


2. Open it and switch to the File System tab.
3. Select a z/OS agent.
Chapter9 AE and Target Systems | 398

4. The section Timer control now shows the additional menu item "Automatically". Select it.

File Name as Filter

1. Enter a file name in the field Path. Use wildcard characters if you intend to monitor several files or
specify the exact name if a particular file should be monitored.
2. The option Startup Event serves to check the file's existence when the Event object is activated.
An event is triggered if the file exists.
3. Enter the script statements to be executed when the event is triggered in the !Process tab. Use the
script function GET_EVENT_INFO.
4. Store the Event object and start it at the time when the file should be monitored.

Several Filter Criteria

1. Create a file containing the filter criteria on the LPAR on which the agent runs. This file must have a
particular format which is described in the table below.
2. Specify the filter-file name in the field Path. Use the following format: *file(DSNAME)
Example: *file(SGD.PROD.MASSFILTER)
Wildcard characters are not allowed in DSNAME.
3. Enter the script statements to be executed when the event is triggered in the !Process tab. Use the
script function GET_EVENT_INFO.
 Note that "Process" is not processed if the filter file contains the specification of an object that
should be started.
4. Store the Event object and start it at the time when the file should monitored.

Filter criteria

The Event Monitor is able to consider several filter criteria upon the notification of a file closing. In this
case, the event is only triggered if a particular job has used the file or if a specific return code occurs.
399 | Chapter 9 AE and Target Systems

Filter criteria are stored in a separate file which contains one filter definition per line. If several filter
definitions apply in an event (e.g. because they overlap), an event is triggered per applicable line.

The filter file must have the DCB attributes RECFM=FB, LRECL=512 and BLKSIZE=5120.

Each filter-file line is limited to 307 characters. The following areas are available:

Filter Digits Description


criteria
File 1 to Filters for the file name
name 81
DS names including PDS members and GDGs are supported. Wildcard characters
can be used.
Job 82 to Filters for the name of the z/OS job which has closed the file
name 89
The wildcard characters "*" and "?" are allowed.
Job 90 Waits for the job end
end
Allowed values: " ", "X", "N" or "A"

" " - File closing immediately triggers the event. The job end is not waited for.
"X" - File closing only triggers the event when the job ends. The return code is
irrelevant.
"N" - The event is triggered when the job ends normally (return code 0-4095).
"A" - The event is triggered when the job ends abnormally (return code 4096-12287).

Use the filter criterion "Job return code" to define the expected return codes.

When analyzing the job end, the agent either refers to the job end's SMF records
or it also considers the records of the STEP ends. Normal and abnormal job ends
can be distinguished if only the job end's SMF records are considered. The
analysis is more detailed if STEP ends are also considered. In this case, the
Event Monitor retrieves the maximum value.

The administrator can determine whether only the job end or also STEP ends
should be considered when checking the return code. Specifications are made in
the Event Monitor's INI file using the parameter smfStepFilter=.
Job 91 to Filters for the job's return code (Condition Codes, User Abends and System Abends)
return 106
Values can be specified as in z/OS or using the AE-specific syntax.
code
If you intend to specify several return codes, separate them with ";" or ",". Areas are
defined using "-".
Action 107 Action which should follow the event

Allowed values: "Y" and "N" (default value)

"Y" - The object specified in the following area is processed instead of !Process.
"N" - The object (if specified) is not processed.
Object 108 to Name of the object to be processed
307
You can store a Job object here.

Note that the content of !Process is NOT processed. Instead, the object specified
here is activated.

For lack of space the following example does not show all 307 characters and the full number of digits:
DEV.DS1 JOBA A
DEV.DS1 JOBB A S806 Y CALL.ADMIN
Chapter9 AE and Target Systems | 400

UC4.D*.*LIB TEST2 N 0-12;16-18 Y MM.CLOSING


SYS1.PARMLIB
TEST.S62*.T* TEST1 X 11-17;S806

When the Event object starts, the agent reads the filter file and automatically notifies the Event Monitors.
Changing filter criteria requires the affected Event object to be restarted or the filter file to be reloaded using
the statement MODIFY.

Syntax:

MODIFY Name of the Agent-STC,FEVNT=Name of the filter file

Example:
MODIFY UC600T1,FEVNT=UC600T.FILTER1

Optionally, you can define an object which should be activated in reaction to the occurred event. In this
case, the agent stores all information in the input buffer which can be read in the Event object with the
script function GET_EVENT_INFO using keywords. Thus, the activated object can retrieve data using the
script statement :READ. Use the keywords as variable names.

Example:
:SET &FILENAME# = GET_EVENT_INFO (FILENAME)
:READ &FILENAME#,,

See also:

GET_EVENT_INFO
Event Monitor

9.16.8 GDG Support


The Automation Engine also supports Generation Data Groups (GDG). This type of file management can
be used in FileSystem event objects and the script element GET_EVENT_INFO.

FileSystem Event
A standard function of this object type is to check file-system values. It is also possible to trigger an event
if a GDG generation is closed. Enter an z/OS host in the File System Event tab and select the option
Automatically in the timer control of the Event tab in order to use this function.

The closing of a new generation is waited for if GDG(+1) has been specified, which is normally the
case. If you specify GDG with +/-0 (+0, +00, +000, -0, -00, -000), the closing of the current generation
is waited for.

Example:
PAYROLL Name of the GDG
DSNAME=PAYROLL(0) This week's generation data set
DSNAME=PAYROLL(-1) Last week's generation data set
DSNAME=PAYROLL(-2) Generation data set of two weeks ago

Script element GET_EVENT_INFO

This script function retrieves the name of a generation which can then be processed.

Extract of an example:
401 | Chapter 9 AE and Target Systems

:SET &FILENAME# = GET_EVENT_INFO (FILENAME)


:SET &HND# = PREP_PROCESS_FILE ("MVSHOST", &FILENAME#)

Configuration

Some specifications are required in order to use GDG in your AE system:

l Activate the parameter smfwrite= in the INI file of the z/OS agent.

(CONSOLE)
start=UCXEM25
smfwrite=1

l Activate the exit modules IEFU83 and IEFU84.


l The entries 14, 15, 30 and 64 must be logged.

See also:

FileSystem Event
GET_EVENT_INFO

9.16.9 Recognizing and Assessing Job Ends


The agent can also use SMF records in order to recognize job or STEP ends.

Activate this function in the INI file of the agents or the Event Monitor if it runs as an independent started
task:
(CONSOLE)
SMFJob=1

By default, the Job Messenger is used to recognize job ends. Therefore, the agent variable UC_EX_JOB_
MD must be adjusted in the agent's INI-file section (Variables). Replace the component "UCXJM25M " by
"UC4START" and restart the agent.
(VARIABLES)
UC_EX_JOB_MD=UC4START

The advantage of using this function is that jobs can be assessed on the basis of the return codes the
job steps supply. You can specify in the Job object whether the highest return code or the last one to
occur is considered for the job end.

Make sure in your z/OS system that the SMF module logs the entries 30.

Each LPAR must run an EM if the jobs are distributed in the SYSPLEX with WLM, as otherwise
recognition does not work.

Note that changing between the two Job Messenger types TCP/IP and SMF does not affect active or
generated jobs. Do not change the Job Messenger if jobs are active or have been generated.
Otherwise, these jobs obtain the end status ENDED_VANISHED. Despite this end status, these jobs
ended successfully; it is only the end message which could not be sent to the agent. Thus, all of a
system's jobs should have ended before the Job Messenger type is changed.

See also:
Chapter9 AE and Target Systems | 402

Event Monitor

9.16.10 Return Codes of z/OS Jobs


The agent logs all errors in the job's activation report and sets a return code depending on the job
execution. The value as of which the job should be canceled can be defined in the Job object's Runtime
tab.

You can also define value ranges for the steps instead of individual return codes. The agent compares
the result of a step execution with the defined step list.

z/OS distinguishes three types of return codes: Condition Code, User Abend and System Abend. The
agent uses number ranges each of 4 KB in order to assign the return codes.

Type of return code z/OS AE


Condition Code 0 to 4095 0000 - 0FFF (0 to 4095)
User Abend U0000 to U4095 1000 - 1FFF (4096 to 8191)
System Abend S000 to SFFF 2000 - 2FFF (8192 to 12287)

The return code of a Job object must be specified as a decimal number. Thus, User and System
Abends must be converted to decimal numbers.

Example:

Return code SB37 indicates a full volume while a file is being written. The corresponding decimal number
is 11063.

See also:

Runtime tab

9.16.11 JCL Exit


JCL Exits are available when processing z/OS jobs. These exits are supplied in the form of a module
which can be used to modify the generated job before it is processed.

Create a z/OS job in the AE as usual. Its start causes the generated job to be sent to the agent which
completes it and executes the job in the target system. When using the JCL Exit, the agent calls the
specified module before executing the job. In doing so, the JCL in z/OS can be changed subsequently.
You can add, change or evaluate JCL lines, thereby preventing the start of particular programs, for
example.

You can either create the JCL Exit module in Assembler code or in the programming language C. The
module is specified in the agent's INI-file section JCL Exit. Note that there are different INI-file parameters
for the Assembler-based and the C-based JCL Exit (see configuration instructions below).
The agents only loads one JCL Exit module. By default, the system uses the c-based JCL Exit if it has
been specified.

The supplied CD contains a folder for z/OS agents. It includes a sample module in the file uc4jcle.asm
(Assembler) which inserts comment lines. It also contains a description about how the module is used.
403 | Chapter 9 AE and Target Systems

The JCL Exit module can be individually activated for each z/OS agent. The module is loaded when the
agent starts.

Configuring the C Module

l The agent always uses the c-based JCL Exit module provided that is has been specified.
l Enter the name of your JCL Exit module and the various functions in the INI file of the z/OS agent.
You use the following parameters for this purpose:

(JCL-Exit)
ExitModul=Module name
ExitFunction=ExitFunction name
InitFunction=InitFunction name (optional)
CloseFunction=CloseFunction name (optional)

l Now restart the agent.

Configuring the Assembler Module

l This module is used when you have not specified a c-based JCL Exit.
l Enter the name of your JCL Exit module in the z/OS agent's INI file and specify the size of the
output range.

(JCL Exit)
name=Module name
maxJclRecords=1000

l Copy this module either to the AE Load library or add the STEPLIB definition for the agent to the
library with the JCL Exit.
l Now (re)start the agent (this includes the loading of the module).

See also:

INI file

9.16.12 Include MVS.JOBMD_DEFINITIONS


In order to enable the Job Messenger to establish a TCP/IP connection, the appropriate DD statements
need to be included in the Include object. Otherwise, jobs would switch over to the status ENDED_
VANISHED.

The Include object MVS.JOBMD_DEFINITIONS does not have to be adjusted unless the MVS or
Language Environment Resolver work incorrectly.

This situation can be avoided by creating an Include object with the name MVS.JOBMD_DEFINITIONS in
the system client 0000. In it, you can enter the particular DD statements. The whole statements are found
in the started task of the TCP/IP.

Example:

//SYSTCPD DD DSN=TCPIP.SYSTSMS.TCPPARMS(DT20OEDA),DISP=SHR
//PROFILE DD DSN=TCPIP.SYSTSMS.TCPPARMS(DT20VIPA),DISP=SHR
Chapter9 AE and Target Systems | 404

The Include is called in the Header upon the execution of a job. The Header is an object called
HEADER.MVS which, by default, is supplied in the system client 0000.
:INC MVS.JOBMD_DEFINITIONS ,nofound=ignore
405 | Chapter Glossary

Glossary
This glossary lists all specific technical terms in alphabetical order.

ABCDEFGHIJKLMNOPQRSTUVWXYZ

A
l ARA Client
Refers to a computer on which a ARA/Deployment Manager/Automation Engine user works.
l admin computer
Admin computer refers to the computer that is used by an administrator for e.g. Automation Engine
or database administration purposes.

C
l configuration
A set of constituent components that make up a system. This includes information on how the
components are connected including the settings applied.

D
l Download Center
The Download Center (http://downloads.automic.com/) is the place where you find everything you
need to know about your Automic solution to make sure you are using our products to their fullest
potential.
l database
A database is an organized collection of data including relevant data structures.
l department
Department name to which the Automation Engine user belongs.

G
l graphical user interface
A graphical user interface (GUI) is a human to machine interface based on windows, icons and
Chapter Glossary | 406

menus which can be operated by a computer mouse in addition to a keyboard. In contrast to


command line interface (CLI).

I
l ILM
Stands for Information Lifecycle Management, which refers to a wide-ranging set of strategies for
administering storage systems on computing devices.

J
l Java work process
The Java work process, implemented in Java, is used to host special services, which have been
developed in Java.

P
l package module
A package module is a group of related package types, e.g. Feature, Change Request, or Bug. It
defines how the packages are displayed in the GUI and the features enabled for each package type.
l password
A secret combination of characters for a Automation Engine user.

R
l RichClient
Deprecated Term. Replaced by: UserInterface
l rollback scope
The scope of a workflow to roll back. For a rollback on a job the scope is this single task while for a
rollback on a workflow the scope is this workflow and all sub-workflows in arbitrary depth.
407 | Chapter Glossary

S
l Service Manager
The Service Manager serves to start, stop and access components such as the Automation Engine
processes or agents from a central point.

T
l token
A token is used for authentication within a session between a client and a server. A (soft) token is a
unique identifier which is generated and sent from a central server to a client software. The client
uses the token to authenticate each request.

U
l user name
Name of the Automation Engine user.

V
l vSphere
vSphere is a virtualization platform for building cloud infrastructures by VMware.

W
l web application
A web application is an application that is accessible over a network (Internet or intranet) and is
typically coded in a programming language like Java or JavaScript, combined with a markup
language like HTML. Web applications are provided on web servers and web browsers are used as
GUI on client computers.

You might also like