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 may 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 may be that the database doesn't exist or is incorrectly protected or formatted. In the case of a failed entry addition, it may 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 PMDF_option_read 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 PMDF_database_add_entry in order to override the existing entry.PMDF__ENTWONFIT
Entry is too long to fit in the specified database. See the description of PMDF_database_add_entry 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_get_message: a PMDF__EOF indicates that there are no more messages to process.
- PMDF_get_recipient: the entire envelope To: address list has been read.
- PMDF_read_line: the end of the message has been reached; there are no more lines to be read from this message.
- PMDF_read_text: the end of the message has been reached; there are no more lines to be read from this message.
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
PMDF_enqueue_message 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 may 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
PMDF_initialize 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 may also be caused by missing or corrupted files.PMDF__HEANOTKNW
An unknown header line type was specified to PMDF_add_header_line or PMDF_delete_header 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 PMDF_add_recipient or PMDF_send. In the case of PMDF_add_recipient, call PMDF_get_error_text 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 (shown incomputer type):
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__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 may 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 PMDF_add_recipient may not be used by the sending address --- it is a restricted address or mailing list. Further information may be obtainted by call PMDF_get_error_text.PMDF__NO
The interpretation of this error code depends upon which routine returned it.
- PMDF_address_get, PMDF_address_get_property: value for the index parameter was out of range.
- PMDF_enqueue_message: a temporary processing error occurred; the message enqueue was not successful.
- PMDF_get_address_property: specified address contained more than one address. Use PMDF_address_parse_line and PMDF_address_get_property instead.
- PMDF_get_recipient: the message file was corrupt and should be deleted by calling PMDF_dequeue_message.
- PMDF_initialize: the site's PMDF configuration file needs to be recompiled with PMDF CNBUILD or the site's character set tables need to be recompiled with PMDF CHBUILD. After recompiling either set of tables, they need to be reinstalled.
- PMDF_get_channel_stats: After ten attempts, each one second apart, PMDF_get_channel_stats was unable to obtain an lock on the channel statistics cache.
- PMDF_mapping_load: PMDF_initialize has not yet been called. PMDF must be initialized before loading any mapping tables.
- PMDF_rewind_message: there is an inconsistency in the message file.
- PMDF_send: same as PMDF_initialize.
- PMDF_start_message_envelope: 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__NOOP
A message enqueued with PMDF_enqueue_message 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 PMDF_add_recipient had bad or otherwise illegal syntax. An address passed to PMDF_get_address_property 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 may or may not 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 PMDF_add_recipient.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.