PMDF Programmer's Reference Manual


Previous Next Contents Index


Appendix A
Error Codes

Each of the error codes returned by the API are described below. Note that the codes returned by the API follow the OpenVMS convention of success codes having and odd value and error codes having an even value. Thus, programs can test the low bit of a return value to see if an error occurred.

PMDF__ADDRERRS

One or more illegal envelope "To:" addresses prevented a message from being sent with PMDF_send.

PMDF__ALLADDRBAD

A message to be sent with PMDF_send contained no legal "To:", "Cc:", or "Bcc:" addresses.

PMDF__BAD

Bad parameter value supplied. An illegal value for the property parameter to the address property routines was specified, or an illegal value for the database parameter to the database routines was specified.

PMDF__BADCONTEXT

An bad context variable was specified.

PMDF__BADITEMADDR

An illegal ITEM_ADDRESS was present in an item list passed to PMDF_send.

PMDF__BADITEMCODE

An illegal (undefined) ITEM_CODE was specified in an item list passed to PMDF_send.

PMDF__BADITEMSIZE

An illegal ITEM_LENGTH was specified in an item list passed PMDF_send.

PMDF__CANOPNDAT

The specified database could not be opened or does not exist. If it does exist, then it can be incorrectly protected or formatted.

PMDF__CANTUPDAT

An attempt to update the database failed. That is, an attempt to add or remove an entry failed. It can be that the database doesn't exist or is incorrectly protected or formatted. In the case of a failed entry addition, it can be a disk quota problem or lack of free disk space.

PMDF__DONE

PMDF__DONE is actually a success code and not an error. It is returned by PMDFoptionRead to indicate that no option file existed.

PMDF__DUPENTRY

Entry could not be added to the database as it would otherwise duplicate an existing entry. Specify a value of true for the replace argument to PMDFdatabaseAddEntry in order to override the existing entry.

PMDF__ENTWONFIT

Entry is too long to fit in the specified database. See the description of PMDFdatabaseAddEntry for a discussion of maximum database entry lengths.

PMDF__EOF

The interpretation of this error code depends upon which dequeue processing routine returned it.

PMDF__ERRFDLPROC

PMDF_send encountered an error while attempting to process an OpenVMS file descriptor for an input file.

PMDF__ERROPENINP

PMDF_send was unable to open an input file.

PMDF__ERRPROCINP

PMDF_send encountered an error while processing an input source.

PMDF__FATERRLIB

A call to LIB$SCOPY_R_DX failed owing to a fatal internal error in the OpenVMS Run Time Library. This has prevented the API from writing data into a string passed by descriptor to an API routine. Consult the description of the particular routine returning this error in order to determine what processing, if any, was accomplished.

PMDF__FCRT

PMDFenqueueMessage or PMDF_send was unable to create a message file in the message queue directories. Usually, this means that the process lacks sufficient privileges to create a file in the PMDF message queues. However, it can indicate other problems (e.g., disk full, quota exceeded,etc.).

PMDF__FILOPNERRS

PMDF_send encountered an error while attempting to process an input source.

PMDF__FOPN

PMDFinitialize or PMDF_send was unable to load PMDF configuration information. One or more PMDF configuration files could not be accessed. This usually means that one or more PMDF configuration files are incorrectly protected; however, it can also be caused by missing or corrupted files.

PMDF__HEANOTKNW

An unknown header line type was specified to PMDFaddHeaderLine or PMDFdeleteHeader line. To proceed with the operation anyhow, recall the procedure specifying HL_OTHER as the header line type.

PMDF__HOST

An illegal or restricted address was passed to PMDFaddRecipient or PMDF_send. In the case of PMDFaddRecipient, call PMDFgetErrorText to determine the nature of the problem; in the case of PMDF_send, the error, on a per address basis, will be described in the string associated with each address by a PMDF_ERROR_TEXT item code. In either case, the text of the error will be one of the following:

PMDF__INCOMPITMS

PMDF_send was passed an item list containing incompatible item codes.

PMDF__INSUFPRIV

Calling process must have the same (real) UID as either the root or pmdf account in order to specify with the PMDF_USER item code a user name different than that of the current process.

PMDF__INSVIRMEM

A call to LIB$GET_VM made by LIB$SCOPY_R_DX has failed owing to insufficient virtual memory. This has prevented the API from writing data into a string passed by descriptor to an API routine. Consult the description of the particular routine returning this error in order to determine what processing, if any, was accomplished. The process probably needs to have its page file quota increased or the system's virtual page count can need to be increased.

PMDF__INVSTRDES

An invalid string descriptor was passed to an API routine. The API routines require that all string descriptors be passed by reference.

PMDF__MISGNSTART

In an item list passed to PMDF_send, a PMDF_FAX_* or PMDF_PRT_* item code was used without first specifying a PMDF_FAX_TO, PMDF_FAX_CC, PMDF_FAX_BCC, PMDF_PRT_TO, PMDF_PRT_CC, or PMDF_PRT_BCC item code to start a FAX or printer address specification.

PMDF__NAUTH

An address passed to PMDFaddRecipient can not be used by the sending address --- it is a restricted address or mailing list. Further information can be obtained by calling PMDFgetErrorText.

PMDF__NO

The interpretation of this error code depends upon which routine returned it.

PMDF__NOOP

A message enqueued with PMDFenqueueMessage or PMDF_send had no envelope "To:" addresses and was therefore simply deleted.

PMDF__NOADDRESSES

An item list passed to PMDF_send contained no "To:", "Cc:", or "Bcc:" addresses.

PMDF__NOCHANNEL

Either the channel name to associate with the executing program could not be determined, or once determined the channel could not be located in the PMDF configuration file. On OpenVMS systems, the channel name is generally specified with the PMDF_CHANNEL logical which should translate to the name of the channel to use.

PMDF__NOMAPPING

The specified mapping table could not be loaded. Check to see that the mapping file exists. If it does exist, check to ensure that the mapping table name is correct.

PMDF__OK

Successful, normal completion.

PMDF__PARSE

An address passed to PMDFaddRecipient had bad or otherwise illegal syntax. An address passed to PMDFgetAddressProperty contained no legal addresses (i.e., either contained no addresses or had one or more syntactically illegal addresses).

PMDF__STRTRU

A string passed to an API routine was not large enough. The data written to this string by an API routine was truncated to fit. Depending upon the application, the truncated data can or cannot be usable.

PMDF__STRTRUERR

A string passed to an API routine was not large enough and truncating the data to be written to the string would only result in an error (i.e., the data is not usable when truncated).

PMDF__USER

A bad or illegal user name was specified in a local address passed to PMDFaddRecipient.

SS$_NOWORLD

OpenVMS WORLD default privilege required to specify with the PMDF_USER item code a user name different than that of the current process.


Previous Next Contents Index