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__ADDRERRSOne or more illegal envelope "To:" addresses prevented a message from being sent with
PMDF__ALLADDRBADA message to be sent with
PMDF_sendcontained no legal "To:", "Cc:", or "Bcc:" addresses.
PMDF__BADBad 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__BADCONTEXTAn bad context variable was specified.
PMDF__BADITEMADDRAn illegal ITEM_ADDRESS was present in an item list passed to
PMDF__BADITEMCODEAn illegal (undefined) ITEM_CODE was specified in an item list passed to
PMDF__BADITEMSIZEAn illegal ITEM_LENGTH was specified in an item list passed
PMDF__CANOPNDATThe specified database could not be opened or does not exist. If it does exist, then it can be incorrectly protected or formatted.
PMDF__CANTUPDATAn 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__DONEPMDF__DONE is actually a success code and not an error. It is returned by
PMDFoptionReadto indicate that no option file existed.
PMDF__DUPENTRYEntry 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
PMDFdatabaseAddEntryin order to override the existing entry.
PMDF__ENTWONFITEntry is too long to fit in the specified database. See the description of
PMDFdatabaseAddEntryfor a discussion of maximum database entry lengths.
PMDF__EOFThe interpretation of this error code depends upon which dequeue processing routine returned it.
PMDFgetMessage: a PMDF__EOF indicates that there are no more messages to process.
PMDFgetRecipient: the entire envelope "To:" address list has been read.
PMDFreadLine: the end of the message has been reached; there are no more lines to be read from this message.
PMDFreadText: the end of the message has been reached; there are no more lines to be read from this message.
PMDF_sendencountered an error while attempting to process an OpenVMS file descriptor for an input file.
PMDF_sendwas unable to open an input file.
PMDF_sendencountered an error while processing an input source.
PMDF__FATERRLIBA 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_sendwas 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_sendencountered an error while attempting to process an input source.
PMDF_sendwas 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__HEANOTKNWAn unknown header line type was specified to
PMDFdeleteHeaderline. To proceed with the operation anyhow, recall the procedure specifying HL_OTHER as the header line type.
PMDF__HOSTAn illegal or restricted address was passed to
PMDF_send. In the case of
PMDFgetErrorTextto 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:
Unknown host or domain: the address references a host or domain which is not recognized by the site's PMDF configuration.
List is currently reserved and locked: the address is for a mailing list which is currently locked and cannot be used.
You are not allowed to use this list: the address is for a restricted mailing list which does not accept postings from the specified "From:" address.
No addressees in: the address translates to an empty address or address list.
Channel size limit exceeded: message size exceeds size limit imposed one or more destination channels. This limit was imposed by the postmaster and set with a channel keyword.
Channel line limit exceeded: message size exceeds line count limit imposed one or more destination channels. This limit was imposed by the postmaster and set with a channel keyword.
You are not allowed to use this address: the combination of source channel, "From:" address, destination channel, and "To:" address is not permitted by site imposed access restrictions.
PMDF_sendwas passed an item list containing incompatible item codes.
PMDF__INSUFPRIVCalling process must have the same (real) UID as either the
pmdfaccount in order to specify with the PMDF_USER item code a user name different than that of the current process.
PMDF__INSVIRMEMA 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__INVSTRDESAn invalid string descriptor was passed to an API routine. The API routines require that all string descriptors be passed by reference.
PMDF__MISGNSTARTIn 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__NAUTHAn address passed to
PMDFaddRecipientcan not be used by the sending address --- it is a restricted address or mailing list. Further information can be obtained by calling
PMDF__NOThe interpretation of this error code depends upon which routine returned it.
PMDFaddressGetProperty: value for the index parameter was out of range.
PMDFenqueueMessage: a temporary processing error occurred; the message enqueue was not successful.
PMDFgetAddressProperty: specified address contained more than one address. Use
PMDFgetRecipient: the message file was corrupt and should be deleted by calling
PMDFinitialize: the site's PMDF configuration file needs to be recompiled with
pmdf cnbuildor the site's character set tables need to be recompiled with
pmdf chbuild. OpenVMS only: After recompiling either set of tables, they need to be reinstalled.
PMDFgetChannelStats: After ten attempts, each one second apart,
PMDFgetChannelStatswas unable to obtain an lock on the channel statistics cache.
PMDFinitializehas not yet been called. PMDF must be initialized before loading any mapping tables.
PMDFrewindMessage: there is an inconsistency in the message file.
PMDF_send: same as
PMDFstartMessageEnvelope: there is an error in the site's PMDF configuration. Either the specified channel does not exist or there is an error in the PMDF configuration file.
PMDF__NOOPA message enqueued with
PMDF_sendhad no envelope "To:" addresses and was therefore simply deleted.
PMDF__NOADDRESSESAn item list passed to
PMDF_sendcontained no "To:", "Cc:", or "Bcc:" addresses.
PMDF__NOCHANNELEither 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__NOMAPPINGThe 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__OKSuccessful, normal completion.
PMDF__PARSEAn address passed to
PMDFaddRecipienthad bad or otherwise illegal syntax. An address passed to
PMDFgetAddressPropertycontained no legal addresses (i.e., either contained no addresses or had one or more syntactically illegal addresses).
PMDF__STRTRUA 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__STRTRUERRA 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__USERA bad or illegal user name was specified in a local address passed to
SS$_NOWORLDOpenVMS WORLD default privilege required to specify with the PMDF_USER item code a user name different than that of the current process.