RPM Development Roadmap

RPM Remote Print Manager

This page lists the features added and issues resolved in each RPM Remote Print Manager® ("RPM") build, beginning with version 4.5.0.1 and continuing through the current RPM version.

Features and improvements are customer-driven. Please get in touch with us for any feature enhancement ideas or needs

6.2.0.560 on 2024-01-08 (Release)

  • We discovered an edge case would result in a stuck job, under the following circumstances:
    • you are using a shared device with "admin only" access
    • you use credentials for a local user without admin privileges
    • RPM now records an appropriate error message and moves on to the next job.
  •  If you were using the diagnostic log with "device-mgr" we found an incompletely formatted message

6.2.0.559 on 2024-01-02 (Release)

  • We added error messages so the user interface can more easily show what went wrong rather than simply note a failure. This is a work in progress and will become more evident over time.
  • We no longer keep message log entries or new job metadata in memory so that RPM memory usage won't increase.
  • We worked to eliminate double backslashes from stored path data, which prevented the UI from opening a job file in some instances.
  • When we create incoming jobs, we no longer put the data file in a staging directory and later move or copy that file to a spool folder (for a specific queue). We now create the data file directly in the spool folder. This streamlines job creation and prevents most copy or move errors.
  • We also streamlined the job creation process, resulting in fewer steps.
  • The LPD, telnet, and app socket protocols now fully support immediate changes to the protocol settings in the UI. For instance, if you change the job name template for a telnet job, those changes are reflected immediately in the subsequent jobs. You can now add, change, and remove protocol ports, and the changes will be reflected immediately in the RPM service without restarting.
  • We also discovered that RPM sometimes resets the LPD protocol settings to a default. It no longer does this; LPD will remain setup the way you wanted it.
  • LPD, telnet, and app socket now load on RPM startup any jobs left over from the last time RPM ran.
  • The LPD protocol will record in the event log when someone assigns port 515 to a protocol other than LPD and when other ports use LPD.
  • The CopyQueue action now writes the new job directly to the spool folder for the new queue, similar to the protocol changes mentioned above.

6.2.0.558 was merged into 6.2.0.559

6.2.0.557 on 2023-10-27 (Release)

  • Implemented several changes to optimize the bulk reading of small config files, such as job metadata, and to address error messages
  • Queue folders no longer tries to import zero-length files as a job
  • When LPD parses job metadata, we now ensure that all the fields are either plain ASCII or UTF-8. Other binary characters are removed. What that means is:
    • we had a customer receiving jobs from a mainframe, which inexplicably added the hex character 3 to the jobname; trying to create a file with this name was unsuccessful
    • we then updated RPM to strip out non-ASCII characters
    • this failed when we sent a foreign language filename because many characters in UTF-8 are non-ASCII
    • we refined this operation to check for ASCII first, then for UTF-8, and finally scrub any text data that didn't fit either of those (referring to filenames, not data content)
    • this all refers to the LPD protocol conversation between RPM and the print client
  • We changed the way ASA logs the data it's parsing so that (a) it doesn't generate a blank line in the diagnostic log and (b) all control characters and other special characters are represented in the log
  • Added the job ID to the diagnostic log for transforms and actions that didn't already include it
  • Email manager no longer generates a critical event when it tries to alert the user but doesn't have a setup
  • When a queue is created by an incoming print request, a critical event is no longer reported.  An event message is logged instead
  • We now perform verification on jobs when they are added to the system, to ensure that all parts are present before we make them eligible to process
  • Write and append file operations may be a little slower but Windows now ensures that all the data is written to disk, first

6.2.0.555 on 2023-10-03 (Release)

  • For LPD jobs with more than one data file, we are now a little more strict on where and when we close the data file; previously we were getting "can't open this data" and it was still owned by RPM
  • We are now a little more strategic on closing files in general including retries if necessary
  • We are now a little more strict with the way we parse LPD jobs with multiple control and data files
  • Added a diagnostic logging tag "msglog-execute" for messages that were already being created anyway

6.2.0.554 on 2023-09-29 (Release)

  • Added the means to see if a file is open by another process before we attempt to open it. If it is, we log the file path and the path to the other program.
  • Improved several diagnostic messages in the data extraction transform to help troubleshoot line and column results
  • fixed an unfortunate side effect in the text banner transform which could make the data file repeat in the output results
  • made needed updates to the way we interpret data you wanted to insert or append
  • improvements to the "remove file" logic for files that can't be removed immediately
  • upgrades to Copy Queue messages when using dynamic queues

6.2.0.553 on 2023-09-11 (Release)

  • Queue Folders has been substantially rewritten to address occasional bottlenecks that caused the directory monitoring to freeze
  • Addressed a potential concern that message log entries could be stored in the database out of order, which would not be helpful
  • When we are moving or copying a file to another folder, on some user systems it was complaining that the source didn't exist, or other unexpected situations. We now retry various steps along the way for up to ten seconds for situations where the file system doesn't seem to be keeping up.
  • Database queries and updates seem to work but still (very rarely) generate an event log message, which does not make sense. There are no errors referenced in the communications log. We attempted to resolve the way the responses are parsed to eliminate this very erratic "false positive"

6.2.0.552 on 2023-08-28 (Release)

  • We were sporadically gettiopeningn error on open, or read, on a file we had just written to but could verify that it was closed. We circumvented this problem.
  • The append operation in the Archive action now does an exclusive open
  • Attempted to improve performance in the actions when dealing with very large files, and a transform, in order to keep smaller jobs from waiting
  • The IP print and LPR print actions were not completing following recent updates

6.2.0.551 on 2023-08-21 (Release)

  • The PCL to Image Format transform was using incorrect resolutions resulting in a document that was too big for the page.  This is resolved.
  • Added checks to guard against reading files that were already open
  • Some temp files were being left behind.  These are now removed.
  • Multiple actions and transforms were updated to use the new way of reading and writing files

6.2.0.550 on 2023-08-03 (Release)

  • Update archive action to remove validations that the folder exists and that the object is a folder.  These failed intermittently for some customers even if the folder did exist.
  • Fixed json parsing for strings with multiple backslashes.  This fixed an issue reportedly in string translations, but could exist in other features as well.
  • Added option to disable automatic check for updates when the UI is opened.

6.2.0.549 on 2023-07-20 (Release)

  • When copying files from one location to another, the read operation was occasionally cut short resulting in a 0-byte destination file.  This is fixed.

6.2.0.548 on 2023-07-19 (Release)

  • Fixed issues with FTP client; Implicit FTP connections remain untested and the option is now labeled "beta", but regular SSL with encryption and no encryption settings should both work now if you happen to be connecting to an open FTP server
  • Resolved issue with filter action where the queue had at least one transform

6.2.0.547 on 2023-07-17 (Beta)

  • Resolved issue reprinting jobs
  • Upon job completion, the job params were being overwritten with the string 'null'; now the params should be preserved
  • Added additional detail to some diagnostic log messages in network and socket manager

6.2.0.546 on 2023-07-14 (Release)

  • In an effort to eliminate the uninformative "Error 0" on occasional file write operations, we replaced the file library we were using with a new one.
  • Windows no longer supports the service pack for the current version of Windows, so we eliminated that from the logging. The precise Windows version is also no longer available so we get that from the file version of one of the system DLLs
  • Tracked down an unreported fault in TextPrint
  • Stopped reporting "file remove error" since at that point we had already made arrangements to remove the file later
  • The Microsoft print client uses an enormous value for the data size, which we ignore, but we managed to set it to zero nonetheless. That's fixed.

6.2.0.545 on 2023-07-05 (Release) [blog]

  • We learned that one of the libraries we've been using is not thread-safe. This seems to cause odd crashes, which are usually inconsistent. The library has been removed.
  • Control file issues:
    • Resolved an issue that prevented some control file values to not be substituted properly when naming files such as in archive action
    • Some of the more obscure LPD control file lines were not making it into the database; this is now working as expected
    • Resolved an error when saving files if a control file attribute was a very large integer
  • Resolved an issue running a filter action with "use stdin" disabled
  • User interface (UI):
    • Updated UI to allow users to add values above 39 in PCL tray mapper
    • The user interface displays "Unlimited" now to represent unlimited devices instead of a very large integer
  • Eliminated unnecessary items from the Stop() logic; RPM now shuts down more reliably
  • Working to eliminate the "Error 0" on file write and other mysterious phenomena
  • The Queue Folders module now ignores zero-length files, at a point where presumably anything that needs to be written, will have been written

6.2.0.544 on 2023-06-22 (Beta)

  • Launcher:
    • no longer seeks to validate a device associated with a new job, unless the action for that device is enabled; this was causing unnecessary device testing on customer sites
    • we now check for a new print job as soon as the print task goes out of scope, for whatever reason; this cures the delay which makes job processing when there are volumes of jobs, seem to go in 15-second "spurts" if jobs are time-consuming
  • LPD: the data size could be wrong if the control file came first
  • Added diagnostic logging in a number of modules
  • It shouldn't be possible for a network protocol to not have default parameters, but it happened so we now provide default settings
  • The job manager now removes expired jobs on startup, and the timer manager now removes expired times on startup. One customer reported that RPM exited consistently roughly 30 seconds after startup. We discovered this while using their database.
  • Restored data retention by time period, to the job manager
  • The network sockets now use "socket failure" logic to signal the unknown Windows socket error on write. This usually means the connection was broken but we're not able to be sure. Each protocol now has "socket failure" logic as well. The LPD protocol adds the queue name to the event log message.

6.2.0.543 on 2023-05-25 (Release)

  • Remove non-ASCII characters from the control file; this was preventing the job from being submitted
  • Various adjustments to get the data file size to display correctly when the datafile was sent first
  • "control file data" was being stored as a text string, not as a binary element; this was confusing the UI
  • We were mistakenly trying to validate a device associated with actions that were not enabled when a job was added

6.2.0.542 on 2023-05-10 (Release)

  • Resolved an issue in queues with multiple actions, jobs were marked complete before all the actions had processed the job. We were able to reproduce this when the number of actions in the queue exceeded the number of print tasks, but customers reported it on queues with as few as two actions.
  • Resolved Text Markup to PDF conversion issue where the job would fail if the user-specific fonts folder was not found in the Registry
  • The text printer action could cause RPM to crash in certain circumstances.  This is resolved.
  • Transform error handling is more robust:
    • Worked on an issue with transforms errors not preventing further processing
    • The Launcher will now suspend a queue when an error transforms in the setup phase, and toggling "suspend" off will clear errors for transforms in that queue
    • The Filter transform now checks the working directory to both exist and to be a folder, not a file
    • If the transform has an error, the error text is now displayed in the job error column

6.2.0.541 on 2023-03-27 (Release)

  • Jobs in a queue due to job retention would reprint on startup. This is fixed.

6.2.0.540 on 2023-03-21 (Release) [blog]

  • We are very pleased to announce this release!
  • Please see the blog post in the header to learn what is available in this release
  • The blog post summarizes the changes from all the beta versions, since the last release, to the current day 

6.2.0.538 on 2022-12-15 (beta)

6.2.0.537 on 2022-11-15 (beta)

  • Please see the blog post on 6.2.0.537 for a list of the changes

6.2.0.536 on 2022-11-07 (beta)

  • Added exception cases to JSON string parsing

6.2.0.535 on 2022-10-27 (beta)

  • These changes are included in the 6.2.0.540 release

6.2.0.534 on 2022-10-12 (beta)

  • In a fairly rare scenario, the regular expression option of string translation was chopping off the end of a buffer which led to output data corruption

6.2.0.533 on 2022-10-07 (beta)

  • These changes are included in the 6.2.0.540 release

6.2.0.532 on 2022-08-08 (beta)

  • We put the startup code for Timer manager in its own thread, in case it has to read thousands of stored time events (such as the time to remove a job)

6.2.0.531 on 2022-06-30 (Beta)

  • please see this blog post for the summarized version of updates and changes

6.2.0.526 on 2021-03-22 (Release)

  •  Fix alignment issue with overstrike text in Text Markup to PDF transform.
  • Text print was aligning overstrike text at the beginning of the line instead of in the correct position.
  • Improve underline position and allow for a thicker underline for bold text in Text Markup to PDF transform.

6.2.0.525 on 2021-03-14 (Update)

  • Resolved obscure issues that could cause the archive-to-folder action to write two files to the output folder.
  • The archive-to-folder action now works better with Unicode filenames.  Previously, in the case of a file collision, RPM would not generate a unique filename, and the write operation would fail.
  • Queue Folders now supports files with a Unicode filename.

6.2.0.524 on 2021-02-08 (Release)

  • The From address in email actions was intended to support variables.  This is now working as expected.
  • Created separate dialogs to build file templates and filter arguments and use them in all the actions and transforms that support this feature.
  • Installers are no longer signed with sha1 certificates, which were only necessary for Windows versions we have already stopped supporting.
  • Fix the issue allowing all emulations to be removed, rendering Appsocket unusable without querying an existing Jetdirect printer.
  • Set more reasonable minimum and maximum values for image size.  It now ranges from 0.001 to 2.

6.2.0.523 on 2020-10-07 (Release) [blog]

  • Resolved issue parsing email addresses in which capital letters were being discarded
  • Added handling to prevent security scanners from tanking the service with messages that are NOT legitimate LPD requests

6.2.0.522 on 2020-08-20 (Release)

  • Resolved an exception in print accounting, which caused the text print action to fault
  • Fixed text in message log records

6.2.0.521 on 2020-08-17 (Release)

  • Resolve startup issue caused after upgrading very old versions which did not have protocol id values in the database
  • In the license manager, add text to indicate the activation button is grayed out due to lack of permissions since it was not obvious

6.2.0.520 on 2020-07-29

  • Some jobs retained after an upgrade or added via queue folders did not contain necessary parameters and would cause a crash

6.2.0.519 on 2020-06-29 (Release)

  • Resolved issue in PCL to PDF when UseOverlay is enabled, but no overlays are selected
  • If the "terminate idle process" setting was on, the process monitor was ignoring the timeout rather than killing the process as expected
  • When checking on a process, we were mistakenly favoring those who had child processes
  • Added functions to report the Windows product name and server status extracted from the registry
  • Remove the job from the job manager cache after creation and let the launcher load it again

6.2.0.518 on 2020-06-10 (Release)

  • If you open the Log Settings in the UI, then click OK without doing anything, the service triggered an error. This is fixed.
  • The UI now checks for updates when opened and will show if any updates are available.  It also displays the current version and a note ensuring users that the link is for download and will not kick off the upgrade process prematurely.

6.2.0.517 on 2020-05-29 (Release)

  • Resolved errors by pre-loading the queue and device ids in the PRIORITIES table; this was preventing the 32-bit version from working, although the 64-bit version was unaffected

6.2.0.516 on 2020-05-21 (Release) [blog]

  • Reverted a change that prevented removing and reinstalling the service when upgrading, which left RPM partially installed if the upgrade was aborted due to locked files.
  • Preserve the disabled status of actions and transforms on import
  • Fix the issue setting "logon as batch user" when that user was not an administrator; this happens while adding credentials to an action or device
  • Swap out a parameter in Process Monitor for one supporting limited access so we can still get process stats when impersonating
  • Continue waiting for processes to end even if RPM can't open the process handle for the process we launched

6.2.0.515 on 2020-05-20 (Release) [blog]

  • Modified how dbshm and dbpipe access the crash handler
  • During crash reporting, dbshm and dbpipe now return the right program name instead of RPM
  • GetConfig in dbshm and dbpipe now return whether the crash reports are sent or not
  • Updated CpuStat so if it is unable to process stats, keep checking until the process is no longer running
  • CpuStat no longer aborts if we can't find the first process; instead, it returns the list of processes
  • Updated logging for the command line in PCL to PDF transform
  • Network Manager enhanced to return just the current MAC address the serial number depends on
  • The mac address is not logged to license.csv in addition to the serial number
  • Network Manager now generates a critical event and event log message if the MAC address is mismatched
  • Prevent the Priority Manager from loading the priorities at all, which is not necessary
  • Improved CpuStat logging
  • Clarified that the file error was a POSIX error and not a Windows error
  • Updated diagnostic logging for dbshm and dbpipe
  • Resolved crash and subsequent crash report in dbpipe and dbshm
  • Improved diagnostic logging for Queue Folders

6.2.0.514 on 2020-04-27 (Release) [blog]

  • In the spool manager, we are more robust about adding critical folders, such as jobs. This is based on a customer experience where they moved RPM to a different drive without creating any of the hierarchy, including the jobs folder, among others. We now attempt to create the entire directory path if needed.
  • We also attempt to log the user account running RPM in case it is not the system account (which is typical)
  • We now add log messages for when users log in and log out.
  • Significantly updated the diagnostic logging in the PCL to PDF transform.
  • We were able to reproduce and address a situation where Windows incorrectly reports information about running processes. At the time, we were trying to find the process tree for a program RPM had launched; the inevitable symptom is that RPM would stall. We now account for the wrong data returned from Windows. This seems to have resolved the stalling issue.
  • If you never once opened the form to update the LPD protocol in the user interface, the RPM service was not following all of the same defaults shown in the form. This is corrected.
  • User interface changes:
    • Now reports when Firebird SQL has been removed. RPM will not work without Firebird SQL.
    • In the log viewer, removed "Category" from "order by" when there are a large number of log entries
    • If the user is removing less than 25 jobs, suppress the progress dialog as it takes longer to open than it does to remove the jobs
  • The installer will now remove a trial license if it's for a different edition of RPM

6.2.0.513 on 2020-03-10 (Beta) [blog]

  • Extensively revised and streamlined the job retry logic to eliminate a "burst" where sometimes you'd have jobs retrying as fast as possible; the settings for the maximum number of job retries is carefully observed as well
  • Added exception handling in the normal app shutdown process to make sure everything shut down properly
  • Updated and consolidated error handling in a number of modules
  • Updated certain actions to call "job.error" instead of "action.error" if it was related to the job data and not to the action setup
  • In the Copy to Queue action, we now handle the case where we are supposed to move the job dynamically to a queue (based on job data) but we don't have permission to create the queue
  • When selecting which database interface to use, named pipes or shared memory, we didn't actually have a default if neither were specified (for instance, an upgrade might have this behavior)
  • Based on customer experience, we added an index to the events database to eliminate slowness if there were a very large number of events; we also reduced the message retention from 30 to 7 days
  • The user interface now supports setting diagnostic logging options in programs other than RPM
  • The user interface also notifies the RPM service when a job is reprinted, so the service can reset the number of times the job has been retried

6.2.0.512 on 2019-11-27 (Release) [blog]

  • Fixed issue where Queue Folders was waiting for locked files, which caused a delay in adding other ready files.
  • Resolved an issue where the upgrade removed the license unnecessarily
  • Added a command-line option to purge the log and fixed a minor issue with the log export.
  • Fixed issue opening the About dialog if the registered company name contained only numeric characters.

6.2.0.511 on 2019-11-19 (Release) [blog]

  • The biggest single change in this release is that we have added a new database interface program. The existing program, dbpipe, used a Windows feature called named pipes. For the majority of users, named pipes are very reliable. However, for some users, it was causing problems with their local "security" software. The new program is called "dbshm" and uses Windows shared memory. For more information, see the associated blog post linked above.
  • When the license manager provides the support expiration date to RPM, it comes in text format. Unfortunately, the date was a US format, not internationalized, which caused RPM to use a wrong estimate for the number of remaining support days in the event log.
  • RPM periodically purges the message log of old messages. We take care to leave messages associated with jobs that still exist, for instance, due to job retention or a suspended queue.
  • The user interface includes an option to remove jobs at or below a certain size. We have updated telnet, appsocket, and the folder watcher to honor this setting and log when it happens. The LPD protocol already did this.
  • The spool manager now updates the temp folder path when you change that setting in the user interface. You no longer have to restart the service for this to take effect.
  • We discovered that if one module had an error on startup, RPM would not process the rest of the modules. This is fixed.
  • On startup, the job launcher will mark devices as ready if they are associated with jobs that are ready to process. This should help prevent situations where jobs that should be running, don't start after a service restart.
  • User interface updates:
    1. no longer allow multiple critical event dialogs to open
    2. shuffled columns in the critical events dialog to hopefully increase clarity
    3. prevent the RPM temp folder from having the same path as the Windows temp folder
    4. limit log retention to 31 days
    5. the spin control in the log retention dialog now spins by ones, not tenths
    6. added an explanatory note in the Critical Events dialog
    7. fixed default sizes for critical events and diagnostic logging dialogs
    8. allow space bar to toggle diagnostic logging and log options options
    9. dependent services option cannot be enabled if there are none
    10. added icons for telnet and appsocket in the status bar, when they are activated, to the right of the license text
    11. If our setup installs Firebird, it will modify the display name shown in the uninstall utility to indicate it is required by RPM
  • When you activate the PCL to PDF module, we were displaying 4 event log messages. These were merged into one.
  • We occasionally get reports of incomplete print jobs. In order to help track the problem, we have added another log message which shows the name of the incoming protocol and the data file size.
  • The network manager in RPM now logs the local IP address interfaces. You can find this in the "report.txt" file in the RPM install folder.
  • RPM uses "Local IP" in the naming template used widely in the user interface. We found this was not working as expected.
  • We added a critical event notification for attempts to create a new queue in RPM, whether it was allowed or blocked. We include the client IP address to aid tracking and blocking.

6.2.0.510 on 2019-09-16 (Beta)

  • We resolved a problem with the way we start the database interface program, dbpipe. It would stop as expected, then RPM would restart it as RPM exited. This is resolved. You would only notice this if you had enabled diagnostic logging in dbpipe.
  • In certain situations, the program that sends data asynchronously to a printer would signal an error if it experienced a timeout. This would cause a job to be reprinted. If there was no error code associated with the timeout, we suppress the error now.
  • We added the job ID to the diagnostic output of the programs that send LPR and IP traffic to printers, to help troubleshoot in case many such actions are running at the same time.
  • The "text markup to PCL" transform now includes the username in the PJL commands.

Please note that we have wrapped up these beta notes in the blog post for the following release, 6.2.1.511.

6.2.0.509 on 2019-08-21 (Release) [blog]

  • The appsocket protocol now populates the "format" job property with the "enter language" PJL command, if applicable.
  • In some rare situations, the data extraction transform was not completed in time for subsequent transforms or actions. This is now fixed.

6.2.0.508 on 2019-07-24 (Release) [blog]

  • Added support for bi-directional printing, AppSocket; this reads and utilizes PJL commands in the job including responses
  • Updates to licensing code for smoother results for some users; updates to diagnostic logging for license
  • Fixed a problem importing RPM 5.1 settings for telnet protocol, the queue was not updated and jobs could not be added
  • The user interface now hides the beta version if the release version is newer

6.2.0.506 on 2019-06-07 (Release)

  • Resolved string translation issue introduced in build 504, which causes a parsing issue if a backslash is found in search or replace strings, which is nearly everyone using regex.

6.2.0.505 on 2019-06-04

  • Added additional diagnostic logging to dbpipe due to a customer having issues with it not starting.

6.2.0.504 on 2019-05-22 (Release) [blog]

  • Update to the string translation transform: we now support copying UTF-8 text and pasting it into "Search" and "Replace" fields directly. These strings will be stored as Unicode values and converted to UTF-8 strings before using them in "search and replace". If you need to use character sets other than ASCII or UTF-8, please continue to use the hex notation as described on the string translation page
  • Fixed an unintended side-effect of adding additional font support to the PDF converter. We again support fonts that don't have bold or italic variants.
  • The setup program now refuses to install on Vista/Server 2008 unless SP1 is installed. The Microsoft Visual C++ 2017 Redistributable requires an update that requires SP1 to be installed.
  • UI enhancements:
    • Resolved issue where a remote UI would not open the Queue Settings or About dialogs
    • The Edit Queue XML dialog now opens again
    • Resolve issue where the UI gets moved behind other windows after the busy indicator closes
    • Prevent queue states from being modified by a remote UI that doesn't have those permissions
    • Set the toolbar buttons enabled or disabled properly for a remote UI based on the permissions settings
    • Removed administrator permissions, which never really worked quite right, from the General Settings dialog
    • Enhance reprint capabilities by calling the procedure to add tickets if they are missing
    • Add a progress dialog when reprinting jobs which is suppressed when reprinting a small number of jobs

6.2.0.503 on 2019-04-22 (Update) [blog]

  • LPD updates:
    • We helped a client track down a rogue print setup that was sending a print data file directly to the LPD printer port. We did this by adding a "client-ip" field to the capture file so anyone can identify where the job is coming from
    • We also added a critical event to the LPD protocol, if we get an invalid command byte when we're looking for print commands. We tested this with a PCL file
  • Queue Folders updates:
    • Changed the behavior for tracking files: when we see a zero byte file, we'll keep looking at it until the I/O is complete rather than "removing" from the list of files we are watching.
    • We will also continue to monitor file size as long as the file is growing. When the I/O seems to stop based on file size, we'll transmit the file to RPM
  • Removed some unnecessary API calls in the text print action which caused multiple text prints launched at the same time, with the same job (for example, two text print actions in a queue) to occasionally fail

6.2.0.502 on 2019-04-03 (Release) [blog]

  • Resolve count-based data extraction issue and optimized position and regex extractions for large files
  • Archive actions once again support data extraction overrides

6.2.0.501 on 2019-03-26 [blog]

  • Changes to Queue Folders (the directory watcher) to cut down on retries when files are not yet available to add to RPM
  • If Queue Folders finds the file it is adding as a print job no longer exists, it stops trying to add rather than retrying for a period
  • If you added a folder to watch while RPM was running, and the folder contained files, they were not being added automatically as intended; this is fixed
  • The archive action now writes to a temp file which is moved into place all at once, rather than during the normal threaded job processing; this is to better support third party folder watchers
  • When the archive action appends a job to an existing file, it now opens it with exclusive access to both wait on other processes, and to prevent interference
  • Message logs are now correctly written to disk if RPM shuts down normally, and the logs have not all been written to the database; also read and added on startup
  • Added a count function to the data extraction transform; you can now record the number of instances of a string or regular expression in a metadata variable
  • The text markup to PDF transform can now use TrueType fonts besides those with regular and bold attributes
  • Refactored the XML input and output in the diagnostic log code in an effort to prevent XML document errors

6.2.0.500 on 2019-02-20 [blog]

  • Made device tester messages more clear, easier to track down exactly which device had an issue
  • Some device tester messages made it hard to determine the actual problem, merely identifying where something happened, but not what
  • Added critical event to transform error handler
  • Since we have determined that we were firing LPD jobs off at the wrong time, resulting in occasional file issues, we made the "file wait" module a no-op

6.2.0.499 on 2019-02-02 [blog]

  • Raw printing to printer setups using a class driver now works. We no longer need to recommend to customers that they substitute "Generic / Text"
  • The RPM and Queue Folders diagnostic logs accumulated over time due to the same case sensitive glitch fixed in 6.2.0.498
  • If you have critical events when the UI starts, the form now appears automatically. Also, the Category, Message, and Encountered columns are now activated by default. You can select any columns you like by right-clicking on any of the columns headers in the form.
  • We fixed an issue extracting the font name which seemed to affect non-Microsoft True Type fonts, but the problem appeared inconsistently
  • We added Server 2019 support to the function that gets the operating system version. This way the correct version will be displayed in the logs
  • Corrected a diagnostic log error for status on fonts

6.2.0.498 on 2019-01-31 [blog]

  • Windows update to version 1809 broke the diagnostic logging code; if you run a version of RPM earlier than .498 on Windows version 1809 you would no longer get diagnostic logging. This is fixed.
  • If the user selects a font not compatible with "text to PDF", it now reverts to 'Courier New' rather than crashing
  • Moved and reorganized logging-related activities under the Log menu, including UI log and Diagnostic log
  • Resolved a minor issue where some job retention labels were not grayed-out when the option was disabled
  • Commit critical events dialog

6.2.0.497 on 2019-01-30 [blog]

  • The license status text now correctly reflects the license is expired, and RPM takes the appropriate action
  • The JobFinish message in the message log was missing the job name because it had already been removed; this is fixed
  • The message log entry for purging a queue was missing the queue name; this is fixed
  • The device ID has been added to message log records where appropriate
  • LPD protocol 'on close' is now logged to the message log so you can get an estimate of the time to transmit the job
  • The file path is added to basic file operations in the message log
  • The 'printing text pages' log message now has the job name, job id, and printer name as well as page count
  • If the email job had an error, we were generating more errors based on the error text; this is fixed
  • Updated diagnostic logging for all the actions; the Init() log now contains more information which will help track jobs if many of the same types are launched at once
  • Corrected a socket initialization error on Windows Server 2019 Essentials (pre-release)
  • On Server 2019 when installing the RPM service, the process was taking an access error when installing failure actions, which we eliminated
  • RPM was generating a false positive error when you uninstall the service; this is fixed

6.2.0.496 on 2019-01-08 [blog]

  • A customer reported that the copy to queue action failed if there was a data extraction transform in the same queue. This has been fixed. We've also made sure the "overrides" pulled from the print job by data extraction were included in the new job when it's created.
  • We extensively refactored the way we add jobs to the database and speed that process up considerably. This was while we were making sure leftover jobs from previous runs of RPM are recovered and added properly.
  • If the license was in trial mode, then the license status message in the event log showed infinite time. This now shows the end of the trial period, as expected.
  • If there was an error reading the license DLL, the user interface would not be able to start. RPM now recognizes this error and launches the license manager to correct the problem. RPM also generates a critical event.
  • RPM now generates a critical event every 100,000 jobs, reminding the admin to do database maintenance and provides a link.
  • One of the critical event handlers in RPM generated an exception for the database maintenance situation mentioned above. No one has ever seen this, but it was fixed.
  • We revised how the LPD module handles two situations:
    1. when the user sends a print job to a queue that doesn't exist, and "auto-create" is false
    2. when the user sends a print job to a queue that does exist but is disabled

    In both cases, RPM generates an error for the client. We tested this with the Microsoft LPR client, which acknowledged the error.

  • We were able to generate occasional crashes in RPM. We traced this to the module which buffers message log entries. Once that was fixed, we sent over 300K jobs to RPM without incident.
  • We included more identifying information in the job parameters field (see job properties in the user interface). We also included information from the copy to queue action which would help identify the origin of a particular job.

6.2.0.495 on 2018-12-13 [blog]

  • We stumbled upon a way to increase database performance when you are processing a large number of jobs. Every 5000 jobs we add, we do a database sweep. We've been doing this every night at midnight. The preliminary results are very encouraging.
  • We also uncovered a job scheduling problem that may explain some of the file problems people have experienced but which are difficult to reproduce. It seemed to happen more frequently with larger jobs. Please refer to this blog post for more details or the installation page with specialized instructions for this update.

6.2.0.494 on 2018-12-10 [blog]

  • In order to stem infrequent but recurring file errors, we have now introduced the following changes to RPM:
    • when we write a file, we now wait until the file actually shows the same number of bytes on disk as the amount we actually wrote, so that the file system won't under-report the file size
    • when we copy a file to the spool folder, we watch the result file until it shows the right number of bytes
    • we have updated some of the message log entries accordingly

6.2.0.493 on 2018-11-26 [blog]

  • In the user interface, we changed the default template for archive jobs from using a ticket id to using the job id; in the future, we hope to make the copy number available as well
  • When a device test fails we now set the device status to the Windows error message; printer devices were being set to "open printer" without an explanation of the problem
  • The device tester now extensively uses critical events, and overall, we've attempted to improve the error messages when devices fail for any reason
  • We track a list of device IDs that are scheduled to test but failed to remove them when the test passed
  • Added a critical event when user credentials fail for any reason

6.2.0.492 / 2018-11-26 [blog]

  • Created critical events:
    • Critical events contain a category and a message; we will display these in the user interface soon
    • Added a critical event handler to record to the database or the event log if the database table is not present
    • Added a critical event handler to send an email if the alerts are set up
    • Added a critical event for PCL to PDF errors
    • Added critical events for database updates and queries
    • Added critical events for a number of license errors
    • If the license is in the trial on startup, we'll monitor the license status hourly and generate a critical event if the trial expires
    • Added a critical event if the MAC address changed from the last time RPM was run
  • Added ActionInit log entries for actions that did not have them; some actions had their own custom messages which we suppressed

6.2.0.491 / 2018-11-20 [blog]

  • In the LPD manager, we changed the filename it was looking for on startup to the one we ended up using. Now the LPD manager recovers any LPD jobs which were not included, should the service terminate for any reason.
  • The raw print action wasn't logging the fact that it completed to the message log.

6.2.0.490 / 2018-11-15 [blog]

  • Eliminated the 'erase socket' message as it's essentially meaningless.
  • The Queue Folders module may report an exception if you remove a queue that was not configured in Queue Folders.
  • Added a file wait operation to our file "open for read" operation because apparently, we can't depend on Windows to actually create the file we just created.
  • Fixed an issue getting the list of aliases for a code page when one of the aliases contained a delimiter character

6.2.0.489 / 2018-11-05 (Release) [blog]

  • Added exception handling to the device tester
  • Improved device tester log messages by adding the device ID
  • Resolved Text Markup to PDF issue where Windows 10 reports "file not found" accessing the HKey_Current_User registry hive
  • Resolved issue parsing code page aliases

6.2.0.488 / 2018-10-19

  • The ticket ID is now being passed to the transforms so they can create unique filenames during processing.

6.2.0.487 / 2018-10-11 (Release)

  • Fixed issue in the LPD protocol object improperly checking for blank metadata files. These metafiles are used to recover jobs if RPM crashed between finishing the connection with a print client and before adding the job.
  • Resolved exception when Queue Folders was attempting to log when closing.
  • Identified and resolved one more boost::filesystem::file_size error.

6.2.0.486 / 2018-10-04 (Release)

We made 6.2.0.486 a release because it has the potential to fix several problems that have been issues for several customers. See the notes for 6.2.0.485 immediately below.

  • The Print IP action was tested successfully sending tens of thousands of jobs, but when the remote computer (printer) failed to allow connections, the action errored the device but not the job. The symptom was that the worker tasks were tied up waiting for the job to finish, requiring a reboot. This is fixed.
  • The Purge Database function in the user interface was not working correctly; this is fixed.
  • Fixed an issue importing an XML configuration; the wrong information was placed in some of the database columns, which caused Queue Folders to exit on startup.

6.2.0.485 / 2018-10-02

  • added a component that waits until Windows can actually find a file we just created, throughout the project; this should eliminate a variety of missing file, zero-length file errors when there is no real problem
  • the UI now verifies that the database path is local before moving it
  • the UI also refreshes the queue pane whenever you toggle enable, suspend or hold for one or more queues
  • added a new PDF trial watermark
  • a customer had upgraded, but dbmigrate hadn't migrated their database properly; the UI now comes up correctly in this unexpected situation
  • fixed an error that resulted in an event log "socket exception" message while handling an lpstat command, although there was no real issue
  • when you add an action to a queue that had none, the UI will now ask the user if they want to resume the queue, on closing the dialog, thus avoiding one more delay to processing after you have worked on RPM setup

6.2.0.484 / 2018-09-12

  • added program name, company name, version, etc. to many of the programs we ship with RPM
  • Queue Folders 2.0 officially replaces Queue Folders 1.0

6.2.0.483 / 2018-09-10

  • UI updates:
    • Removed the "save control file" setting in the queue as it wasn't working anyway
    • Removed the "full validate" option from the database maintenance form; we now force the regular validate code to do a full validate
    • We added a dialog that collects the results from all the database maintenance operations; it copies to the clipboard automatically so you can easily paste the results into an email
    • Fixed the database maintenance progress dialog to go away when it's finished, before the results are displayed
  • To support the new Queue Folders, updated the job manager to be able to copy non-ASCII source file paths
  • Identified why we get the occasional exception when dealing with certain kinds of file errors, resolved that so we can message instead
  • In Queue Folders we can now successfully add non-ASCII job names; they still need to be UTF-8, though, not a native codepage

6.2.0.482 / 2018-08-30

  • Started version 2 of Queue Folders
  • Yet another adjustment to the LPD protocol to handle "probes" which are not part of the LPD protocol anyway
  • Increased level of detail in license logging at startup, to document the various licenses we track
  • Added a fairly comprehensive license status message in the event log on startup, and nightly; among other things we tell you what the support expiration date is and how many days away that is
  • UI update to improve the job retention settings; also add watch folder settings to queue setup
  • Unfortunately, the message log was not being cleaned up every hour as we thought; that is now fixed
  • Eliminated more tracebacks from the message log
  • Added messages to the message log for submitting jobs using LPD, Telnet, and Queue Folders; you should now be able to distinguish how a job was submitted
  • UI updates:
    • Display enhancement to keep current column widths when you refresh with the F5 key
    • The watch folder settings have been added to the configuration export and import
    • Removed the Addon modules menu and Queue Folders form since queues are now configured individually
    • Reorganized the job retention settings, made the form more readable
    • The "move database" option was moved from the menu to the General Settings form; you can also see the current location and click to get the folder in Explorer
    • Added the serial number to the status bar
    • Added user, company and serial number in copyable fields to the About box

6.2.0.481 / 2018-08-02

  • Addressed a data error purging jobs in the UI
  • In preparing jobs to execute we now focus on the enabled actions, not the entire list of actions for a given queue
  • Added performance statistics to actions which we can access through RPC
  • the Copy to Queue action was reporting zero bytes in some instances
  • Added performance statistics to protocols, accessible via RPC, like we did the actions
  • Attempting to address potential performance bottlenecks with some configurations
  • Updated the way we address leftover jobs on startup
  • The Telnet job manager now successfully imports leftover jobs even if the specified queue no longer exists, creating a queue if necessary; we also track configurations by the port to ensure the jobs go to their correct destination
  • Major performance enhancement: LPD now creates jobs in the background, after the job is received; this dramatically speeds up job receipt, lower overall transmission time. You'll also notice that the UI continues to add jobs to the queue after the client is done sending if you happen to send a large number of jobs at once
  • Improved the diagnostics emitted by the text and raw print testing programs so we can collect more information on problems if needed
  • Substituted a version of the telnet send program which is asynchronous and supports timeouts rather than waiting indefinitely to send to a host that can't communicate
  • We added a timeout setting in the IP Print configuration
  • Added a program to test an IP print connection, which also uses timeouts
  • Forced the lpstat handler to include column headers if there was any data to return at all
  • On systems with very busy disk drives, perhaps a virus scanner, customers were sometimes experiencing "file not found" on a file RPM just created; developed a way to wait for that file to show up in the file system for up to a given number of seconds

6.2.0.480 / 2018-07-16

  • Updated the LPD protocol handler to not remove "illegal" characters from the data file name used in the control file and datafile argument; a customer was using Red Hat Linux Enterprise, and they were running into problems. We now clean that up less aggressively

6.2.0.479 / 2018-07-16

  • Version release, 6.2

6.1.0.478 / 2018-07-02

  • Completely rewrote the LPR and IP send actions. Among other things, they now finish quickly and support our office printers as well as other print servers. We can now run tens of thousands of jobs without issue
  • Fixed positional data extractions; empty lines in the source file was throwing off the line number logic
  • Text print logging now includes the printer name, which in some instances it did not
  • The device tester now includes a device name or path in more logs
  • In the LPD protocol, the size of the control file would override the size of the data file in the reported job data if the control file came last
  • We were briefly sending print jobs to the host they came from and not the configured host
  • The diagnostic log now shows if we have to trim bytes from the control or data file due to nulls being added

6.1.0.477 / 2018-05-30

  • Major rewrite on the transforms; now we evaluate each job we schedule for whether it needs transforms processed first or not. In the case of multiple actions or multiple copies, we hold off processing subsequent jobs until we write the transforms to disk. This has greatly increased reliability, and in some cases, the processing is much faster.

6.1.0.476 / 2018-05-29

  • Suppress a blank printer in the listing of printers for Raw Print
  • In the filter dialogs, we now verify the user isn't using both stdin and the %s argument, or stdout and the %o argument
  • RPM no longer installs on Windows XP though Vista and later are supported

6.1.0.475 / 2018-04-23

  • fixed a problem parsing super long integer strings
  • if the QUEUES table is corrupted we can't get job IDs for new jobs; added checks to make sure on startup that the QUEUES table has no issues
  • taking steps to better support the most recent versions of Windows, which unfortunately eliminates some much older versions of Windows; we now target Server 2008 rather than Server 2003 but we should work well on versions as late as Server 2016 and beyond
  • the copyright date was still showing 2017
  • worked with our logic to use the local system code page to convert local filenames to Unicode
  • in the UI we no longer remove queues which are the destination for a telnet protocol, or a copy queue action
  • we had adopted a new way to copy job files but this was problematic in Windows 10 when your destination folder is on a different drive than RPM's spool folders, so we backtracked to the previous method

6.1.0.474 / 2018-04-03

  • Queue Folders now validates that it's a local folder
  • added the path for the GhostScript executable, if you have it on your system, even though we're not doing anything public with it yet
  • the Watch module is no longer re-initialized on each update
  • the upgrade process no longer allows version 4.5
  • we now set 4 values to "true" in the diagnostic log on a new install; these help us know what starts and what stops in RPM if there is a customer problem
  • used an XML module to update an existing "log.xml" file to turn on those 4 diagnostic log settings for existing installs
  • working to resolve a race condition first reported for very large files, like 100MB or more, on Windows 10 systems

6.1.0.473 / 2018-03-23

  • fixed a text print problem where certain overlay settings would always result in a blank first page
  • fixed a UI problem with the text banner form; you can now save the settings without specifying the template file
  • when RPM starts up it will look for empty and abandoned telnet data files from previous runs, and remove
  • the PCL Resource transform will now log trays and bins in PCL6 print jobs if you selected logging
  • trays and bins are listed at the end of the job for PCL5, rather than each time they are encountered
  • the job name and ID are now logged for PCL5 jobs if we are using any transform on them
  • the logging for "missing macro call" in PCL5 jobs is now saved to the end, rather than each time
  • the Queue Folders parent folder now must be a local folder; network folders are no longer supported

6.1.0.472 / 2018-03-20

  • some filter action arguments were being "quoted" when we didn't want them to, so added tighter control for that process
  • adding support to report on jobs by ticket, which gets us past the "multiple action" problem with the UI
  • eliminated a frequent call to check server listening ports, which occasionally fails for no known reason and results in RPM reporting that it's own program path is using that report, requiring a system reboot

6.1.0.471 / 2018-02-21

  • adding realtime logging support for job execution
  • installer update: don't remove the service and re-add it during the upgrade; cuts down on customer reboots
  • added a command-line option for the user interface to set the "queue filter" field to narrow down the queues automatically displayed
  • if the UI is stopping the service for database maintenance, proactively check that the service is not still running
  • the code page transform was missing from the UI list although it could be used indirectly from a number of other transforms
  • the message log now works in its own thread, so you can turn on high detail logging and still retain performance
  • added support for regular log cleanup; it was being done on each log record, which seems excessive
  • RPM now removes the resources needed to execute client "queue status" commands proactively
  • for queue status, suppress the column headers if no jobs are returned
  • for queue status, return the various queue states
  • added code to test for Windows OS version, since RPM changed the way you are supposed to check that
  • added support for reporting OS version for Windows 10 and Server 2016

6.1.0.470 / 2018-02-02

  • added logic to the new LPD protocol module to handle "end of data" from extremely large files when TCP/IP delays in sending the end
  • replaced some of our file I/O logic with code that seems to perform more reliably under stress
  • fixed a problem where the filter transform may not read the specified output file

6.1.0.469 / 2018-02-02

  • added performance statistics for actions and transforms; look in the file "report.txt" when you stop the service
  • added support for Microsoft LPR ports with "byte counting" not enabled, which is the default
  • fixes to the data extraction transform so that values not found are still properly initialized
  • resolved an unusual problem where the end of text markup was not correctly reported
  • dbmigrate will now migrate the database if a db file exists in the default location but we are not upgrading

6.1.0.468 / 2018-01-19

  • resolved issue with data extraction overrides in the text banner transform

6.1.0.467 / 2018-01-18

  • add fixes to new LPD module for control files arriving from systems using a foreign language (foreign from the default Windows code page)
  • resolve an issue where transform errors are logged repeatedly and prevented the job from being declared unsuccessful
  • QUEUESEQ table was not populated after an upgrade successfully from significantly older versions which prevented RPM from listening for new traffic correctly
  • in two instances where RPM used an encrypted password, the memory is now cleared immediately after it is no longer needed
  • fixed recently encountered issue with Data Extraction transform if extracting a string of only digits; further fixes to data extract include concatenating capture groups as it did previously
  • the text banner and filter transforms now support data extraction override values
  • resolved memory leak by removing the external JSON library
  • update internal DataTree object to prevent overflowing integer data type
  • added PCL6 and copies support to PCL Resource transform
  • improved PCL5 output by including the job name variable in PJL and specify PCL5 in the PJL enter language command
  • RPM now removes the data file when a job is discarded for a small size threshold
  • this is the first release that uses the new LPD module

6.1.0.466 / 2017-12-19 (Release)

  • added database logic to remove devices, queues, and such from the priorities table when they are removed in their respective tables
  • corrected "data size" in the new LPD module to be "bytes expected" in most instances, since often we get extras
  • fix to diagnostic logging to ignore whether incoming messages contain newlines
  • made a lot of adjustments to logging to either improve the quality of the message or change the log level
  • added support for using values from data extraction in command lines
  • fixed a problem where if a file was completely white space, text printing it would seem to "never end"

6.1.0.465 / 2017-12-02

  • added capture to the new LPD module so we can troubleshoot print clients without remoting in, and without exposing actual print data
  • updated the JetPCL add-on software with a new version from the vendor
  • better support in the device tester for associating queue names with a device being tested
  • addressed print errors when overlays are included with the job but not otherwise configured
  • for telnet print, produce a default job name if the configuration produces a blank name
  • in the UI:
    • prevent the port configuration from adding a duplicate RPC port
    • force the telnet port configuration to have a job name and queue destination
    • modify the wording of the job discard option to be more clear
    • added 'capture' support to the LPD protocol settings
    • prevent queues from being deleted with keyboard shortcuts if the user does not have permission to remove queues
  • restored the 'suppress blank page' function in text print

6.1.0.464 / 2017-11-15 (Release)

  • Eliminated code specific to Windows 2000 and earlier
  • Reduced dependency on knowing the operating system version considering Windows is cutting support for that
  • Fixed an issue where the first line of text could print above the configured top margin, based on incorrectly parsing certain parts of the rf5
  • Updated the status bar in the UI with a new connect icon, and removed the task availability numbers since they were usually wrong

6.1.0.463 / 2017-11-07

  • Addressed a one-off glitch where if you installed the current version of RPM on a clean database, the telnet manager would fault due to an incorrect assumption about getting an id from the database. Functionality was not impaired and the message occurred only once, but it was still disconcerting

6.1.0.462 / 2017-11-06

  • In the text markup transform, the "autocalc" function was getting the wrong line length when the line contained overstrikes
  • In the new LPD module, completed the work on the LPD stream version of the protocol, and added support for jobs with multiple control files as well as multiple data files; this is basically multiple jobs sent on a single connection
  • Added support in the new LPD module for AS/400 specific LPD subcommands, one of which is essentially an LPD stream
  • Added support in the new LPD module for LPD stream timeout
  • Fixed a problem wherein the string translator, using regular expressions, if the pattern contained a NULL and spanned a buffer boundary, it would register correctly as a partial match but we were not picking up on the current string length due to the NULL byte

6.1.0.461 / 2017-10-26

  • lpstat now seems to work with the Windows client and others as well.
  • addressed an issue where a string translation transform followed a "remove markup" transform

6.1.0.460 / 2017-10-25

  • Windows was reporting an error in the EndPage API when in fact there was none; removing that logic made jobs print without incident

6.1.0.459 / 2017-10-12

  • Added a "max retries" default to the code in case one is not explicitly set
  • On startup RPM now checks for jobs with the "REMOVE_AT" time set and removes anywhere that value is in the past
  • Addressed a glitch that arose from not using the result of the "duplicate job" and "job finish" database commands; the latter was sometimes an issue with knowing that jobs with multiple actions were complete
  • Added job pump notification to reprint
  • When the user reprints a job, RPM will reset the retry count for that job
  • If a job is under the minimum size threshold, it might be left with an "xfer" status rather than being removed. This is now strictly enforced.

6.1.0.458 / 2017-10-02

  • The timer module was cycling every 15 milliseconds instead of waiting for the next event
  • Added "max retries" setting to General Settings and updated import manager to accommodate

6.1.0.457 / 2017-09-26

  • Working with an open-source print client, we discovered that when sending multiple jobs it took some shortcuts which we needed to account for
  • Fixed an incompatibility with the Windows "lpstat" command and the Ubuntu equivalent
  • Fixed some issues raised when 'write' and 'close' events appear together
  • Upgraded the way we retrieve and store unsigned character blocks in the database
  • Performance and reliability improvements with the database interface, overall
  • Refactoring the database code to better return errors and the SQL which caused it
  • Began work on a new LPD module and supporting services; aiming for better reliability, fewer bugs, better performance
  • Upgrades to job retry including a retry count for each job, maximum retries, and a delay between retries. This way RPM can attempt to retry a job without consuming enormous resources if the job were to fail continually for reasons which may change, like a printer being reconnected to the network
  • Upgraded the way we store and use port properties, partly in support of the new LPD module
  • Made UI changes to eliminate functions that don't make sense when you are connected to a remote instance of RPM
  • Fixed an issue with a remote FTP server connection closing too quickly due to inactivity
  • Fixes to eliminate the occasional "job-id 0"
  • Starting to fold in some changes to file I/O to make writing less problematic under heavy system load
  • Fixed reprint issues where jobs appeared to remain active forever if one or more actions for that job were disabled
  • Eliminated or cut back on a number of redundant logging
  • After making substantial changes to the text print module, restored the image overlay function
  • Overlay images now no longer print on the first page, regardless of setting; also some text fixes to those option descriptions
  • Added support for a connection id used in network logging to help us track down which host a request came from

6.1.0.456 / 2017-08-18 (Release)

  • Fixed an impressive slowdown when trying to resolve a hostname from a computer that is not in DNS
  • Add support for undocumented, but valid, two-character commands in Remove PCL transform
  • Fixed bug in positional data extractions which clobbered the first character
  • Resolved issue creating PDF files when a badly malformed font file exists on the system
  • Fixed obscure Registry import issue when sequence number was used in a filter queue
  • See RPM 6.1 Release 2017 for more information on this release

6.1.0.454 / 2017-07-19

  • Updated URL shortcuts in the RPM program group
  • Resolved issue with an expired license
  • The job pump forces scheduling to FIFO on RPM Select

6.1.0.453 / 2017-07-12

  • Removed unused network event messages and switched up the close strategy so it reads but does not write
  • Prevent deleting queues in use

6.1.0.452 / 2017-07-05

  • Fix issue writing alias to the aliases.conf file and added additional safeguards to prevent losing the database path
  • Added the process ID to the log message for the process that is using our TCP/IP port

6.1.0.451 / 2017-06-22

  • Cleaned up an issue that sometimes delays closing a file we've written to, and the resulting log messages
  • Added a 'Jobs' folder to the spool folders
  • The UI now notifies the service when the user manually reprints a job
  • The service now notifies the UI when it reprints a job for any reason
  • Eliminated some tests and messages which falsely said a job file was missing or empty, when in fact it wasn't
  • Sending a crash report is now optional, configured in the UI; this functionality works in both the UI and the service
  • Every program that uses diagnostic logging now has it's own "XML" configuration file based on the program name; RPM still uses "log.xml"
  • Much work in the database interface program to make sure database exceptions are passed as messages back to RPM, where they can be logged
  • Removed the bi-directional print setting from the telnet set up in the UI
  • The RPM installer now adds a different database interface program; dbpipe replaces dbmgr. Dbpipe uses named pipes, which is something Windows uses internally and provides better stability and performance than the shared memory message queues we were using earlier (which sometimes required an entire system reboot)
  • We now proactively attempt to check incoming job metadata, like an LPD control file or the data in an RPC command, to make sure it's UTF-8 since the database stores UTF-8 in many fields
  • Refactored the way we add or update job metadata in the database in order to avoid a database exception in some instances with long non-ASCII job names
  • RPM now removes at startup job files associated with jobs in the 'xfer' state; this should cut down dramatically on the number of "File found" messages being logged

6.1.0.450 / 2017-04-26

  • Added support for transforms to the message log
  • Attempt to better handle LPD "probes" where they pretend to submit a print request to a queue but then abort so no data is sent; this is some kind of test, no need for us to create a bunch of log messages
  • The service can now initiate its own job reprint the same way the UI does it; reprint when we modify an action
  • When the device tester is testing an LPR device, do an "lpstat" command on queue "lp"
  • The data extraction transform now happens internally to RPM, rather than running an external program; so what was taking up to five seconds is now nearly instantaneous
  • The overrides generated by data extraction are now better supported throughout RPM
  • Complete rewrite of the telnet protocol module; among other things, the "quiet print" logic now works correctly. The new module does not support bi-directional printing since as far as we know, no one was using it
  • Add indent and width as job attributes you can use in data extraction

6.1.0.449 / 2017-04-07

  • Refactored text printing to properly support page ranges
  • If the license is expired, do not add print protocols; this will keep us from acting like a job receiving engine even with an invalid license
  • Increased the number of log messages for actions as we were primarily logging network activity
  • If we fail on an LPR print, use device error not job error
  • Add a program to test network connections by port and simulate an lpq request if we are using LPR
  • configuration export now includes copy queue actions
  • Improvements to the device tester module to test connectivity to an IP device, not simply ping it
  • Simplified reporting by showing just the last line of a traceback, in some instances
  • Put much work into making sure user events, that is user actions in the UI, would schedule any potentially eligible jobs immediately
  • If a device errors, reduce the current use count
  • In some instances, if a job errors, we were keeping it around in such a way that eventually jobs that were not otherwise affected would not schedule
  • If the user updates an action, we now attempt to schedule jobs for that action immediately
  • Fixed a condition where we didn't seem to know when outgoing LPR and IP print jobs actually finished and thus eliminated a lengthy delay

6.1.0.448 / 2017-03-08

  • When resolving names from an IP address, check all DNS servers listed until we get a match, or fail
  • Updated code signing certificate
  • Fixed import issue with export files created before dynamic copy to queue actions were implemented
    Should import queue descriptions from 5.x config files
  • Always discard empty files sent by LPD, and add a log message to report it
  • The stdout path was being passed to the object which runs programs for us; split out stdout and output file path
  • Be more careful to ignore user ID if it's invalid
  • Added support for individual spool folders for printers, if the system has defined them
  • Working on support for not adding zero-length jobs
  • No longer looking for external program 'jobpump.exe' since that function is internal now
  • Only update 'config.xml' if the RPC port is different from what is listed in the file
  • More proactive regarding user events kicking off print jobs that were held or suspended or in an error state of some kind
  • Restored the job-hold function to the UI, so if the service releases a job, the UI shows it immediately
  • The UI now notifies the service when the user holds a job
  • Resolved a page range issue on text print
  • Better UI refreshing on job hold
  • The message log seemed to focus more on networking than on action events, upgraded the action logging
  • Reconfigured job hold logic in the service to accommodate UI changes
  • The copy queue action now fires an event which makes the new job launch ASAP
  • Attempt to remove the queue if we get an LPD request on a queue that doesn't exist, promising a job that never arrives
  • Disabled page range on raw print
  • Added support for 'escaping' the percent sign in filter command lines, for programs that need the percent
  • Added a variable for filter commands to specify filename only, not the path
  • In the string translator, don't pre-process unprintable characters if we're using regular expressions
  • The setup program can now migrate database settings when the database is in a non-standard location
  • Added support in the service for the Overrides column in the jobs table, since we put data extraction values there

6.1.0.447 / 2016-11-17

  • Attempt to restart rpmftp.exe after it closes for lack of activity
  • updated to use all DNS hosts in reverse DNS, and to not use the task for name lookup

6.1.0.446 / 2016-11-14

  • fix issue where rpm crashes intermittently with pcl to image format transform

6.1.0.445 / 2016-11-09

  • The validator for the General Settings dialog was not being called
  • Fixed issue where IP and LPR actions would not recover after the helper programs shut down for lack of activity
  • Improved the method for finding Firebird programs used during database maintenance
  • Added code to potentially set service recovery options just after the service is created
  • Added hostname validator to allow wildcards in some instances
  • Changed default device tester option to prevent blank "Tester" jobs from piling up in the Windows queue
  • Added command-line export options to control whether jobs, overlays, and/or directories are exported to the file
  • Force the queue display to refresh when a queue is added externally, like in the service
  • Force the actions and transforms list to refresh as well
  • New jobs were not being processed correctly until service restart

6.1.0.444 / 2016-10-18

  • Diagnostic and scheduler settings are now exported and imported; some were left out previously
  • Add option to prevent active jobs from being held on startup
  • Non-admins now get a user-specific config.xml file to allow server switching
  • Create new default XML file if required values are blank
  • If the monitored parent folder is an empty string, Queue Folders now closes

6.1.0.443 / 2016-09-23

  • Fixed issue importing devmodes
  • Added additional code pages to Unidata.db

6.1.0.442 / 2016-09-21

  • Fixed issue adding strings to the sqlite database which could have crashed the UI
  • Force the job pump to check for ready jobs when a job is received over the network

6.1.0.441 / 2016-09-06

  • Some UTF-8 characters were removed during the conversion which is no longer the case

6.1.0.440 / 2016-09-02

  • Using a better approach to convert path names correctly
  • Recognize Windows 10 correctly
  • Fix display bug where jobs were not disappearing when moved
  • Fix issue with the option to allow or prevent spaces in filenames

6.1.0.439 / 2016-08-10 (Release)

  • If a job fails using the email action, the job is now placed in an error status preventing that worker task from ever being used again.
  • If using the balanced scheduler, and a new queue is added, jobs in that queue should start to process without requiring a service restart.
  • Reset UI Persistent Settings in the Help menu now clears the allowed cache. This resolves an issue one user encountered where this file became corrupted and prevented the ability to add or edit settings.
  • Now the UI checks the Registry to see where Firebird is installed.
  • Log messages for jobs that have not been removed yet from RPM are now retained longer for diagnostic purposes.
  • Added fix and shrink scripts for manual database maintenance and testlpr script for easier testing.

6.1.0.438 / 2016-06-23 (Release)

  • Fixed issue in Archive to Folder action if the ticket Id was used in naming mask.
  • Resolved issue with generating unique filenames during file collisions.

6.1.0.437 / 2016-06-20

  • Add pylpr.exe and testlpr.bat files to the installer. This will make testing RPM much quicker.
  • Reintroduced the old fixdb.bat and shrinkdb.bat files with improvements for use with the latest version. This allows for running database maintenance in those rare instances where the RPM GUI fails to start.
  • Changed default minimize option so it no longer minimizes to the tray by default.
  • Resolved bug which prevented a successful settings export when job export option was enabled.

6.1.0.436 / 2016-06-16 (Release)

  • Fix issue validating remote clients. This may resolve other unreported issues where JSON arrays need to be accessed.

6.1.0.435 / 2016-06-10 (Release)

  • Resolve issue where file collisions could occur unnecessarily. The issue was with multiple copies, but will positively affect other configurations or heavily used systems as well.
  • When a job or device produces an error, the use counter should now be adjusted so that max use setting works again.
  • Added a job list filter. You can enter a search string, and the jobs list will be filtered showing only jobs whose attributes or status contain that word or phrase. The attributes you can select include the source file name, title, job name, user, and originating host.
  • Added descriptions to the queue filtering feature.
  • Fixed issue where the queue list was not refreshed when a new queue is added through the Telnet dialog.
  • Additional GUI improvements including better default column widths and sorting the queue list during the creation of a new queue.

6.1.0.434 / 2016-05-24

  • Resolved filter command-line parsing issue when backslash was the last character.

6.1.0.433 / 2016-05-16 (Release)

  • Fixed issue running certain filter programs with 'terminate idle' enabled that may cause the service to crash.
  • Starting with this version, the RPM binaries will now be signed with both SHA-1 and SHA-256 certificates preventing some browsers from reporting the signature is corrupt or invalid.

6.1.0.432 / 2016-05-09

  • Additional improvements for supporting multiple copies with various configurations.
  • Resolve issue creating multi-page PDF files introduced in build 430.
  • Improved error handling added to the job pump to prevent a recently discovered stalling issue.

6.1.0.431 / 2016-05-03

  • Removed JetPCL from installer; available now only from our website
  • Add ticket id to temp filenames in watermark transform for uniqueness
  • Found a better way to keep transform temp files unique
  • Added support for multiple actions and copying
  • Improved copies support which is now set when job data is fetched from the database

6.1.0.430 / 2016-04-27

  • Resolve SCS handling issue with certain complex SCS files
  • Prevent race condition in RPC startup
  • Removes redundant logging for LPR errors
  • Include port number in LPR action description
  • Better support for font size changes in PDF

6.1.0.429 / 2016-04-18

  • Added database procedure to improve job error handling
  • Prevent duplicated queue sequence numbers
  • Prevent duplicate rows in queue sequence number choking UI

6.1.0.428 / 2016-04-13

  • Resolve issue in IP/LPR actions where errors might 'consume' a thread
  • Timed wait with Timeout instead of Hard Wait

6.1.0.427 / 2016-04-12

  • If a job is moved or copied to another queue, set Last Job column
  • Prevent VeryPDF registration from hanging at the usage screen
  • Do not attempt to create PDF from an empty text markup input file
  • Held jobs now display the hold icon rather than the icon for the current status

6.1.0.426 / 2016-04-07

  • Add option in General Settings to prevent jobs in error from retrying automatically
  • Prevent stall due to action errors
  • Add "Last Job" column which will show the last time a queue received a job
  • Now using Visual Studio 2012
  • Modules menu entry now reads "Addon Modules" to clarify they are not part of the base product
  • Fixed Queue Folders issue of queue and folder comparison

6.1.0.425 / 2016-03-18 (Release)

  • Resolve Remove PCL bug where the first character of a line could be removed incorrectly.

6.1.0.424 / 2016-03-01 (Release)

  • Added internal ticket id to naming variables

6.1.0.423 / 2016-02-19

  • Resolved an export issue in certain instances with overlays
  • Improved underline support in Text Markup to PDF transforms

6.1.0.422 / 2016-02-10

  • Fixed issue when code page is not set which occurred initially on older versions but carried over in exported XML files
  • Improved logic when pdfgen-based transforms are set to and from error status.
  • event log messages reflect local time now rather than UTC

6.1.0.421 / 2016-02-05

  • Improved aesthetics in line-based data extraction
  • Double-clicking a data extraction item now allows edit
  • Show values extracted by Data Extraction in Job Properties
  • RPM now remembers the size of more dialogs and preserves that across GUI restarts
  • Improvements to line-based data extraction. Indexing for the horizontal and vertical position is now 1-based and the user now enters the count of characters to extract rather than end position.
  • Copy to Queue action now supports values obtained via Data Extraction

6.1.0.420 / 2016-02-01

  • The values obtained from Data Extraction are now supported in the Archive to Folder action.

6.1.0.419 / 2016-01-28

  • Resolved issue parsing control files containing -Z
  • Email action now supports data extraction transform results
  • Added additional logging
  • Resolved issue where multiple actions tried to use the same filename
  • The installer now includes the Firebird 2.5.5 build 26952
  • Added new features to Copy to Queue action dynamically choosing destination queue
  • Set defaults in Copy to Queue action dialog
  • Add option to create dynamic queues that don't already exist. Disabled by default.
  • Fixed issue where jobs entering retry logic automatically had all tickets retried. Only retries non-completed actions for the failed jobs
  • Resolved an issue holding or releasing jobs from the Job Properties dialog
  • When certain transforms fail, event messages should now contain diagnostic information
  • Fix buffer overrun issue in non-regex string translation

6.1.0.418 / 2016-01-26

  • Initial addition of a new data extraction transform which is able to extract information from a print job's data file for use in naming output.

6.1.0.417 / 2016-01-22 (Release)

  • Errors that occur in later stages of transform processing are now job errors
  • Solved issue where RPM was looking for the result file from filter transforms while they were still running
  • Added ticket id when checking for duplicate work in PDFGen which occurs when multiple actions are used
  • Improved error status checking in transforms and actions and halt further processing if either occurs
  • Transform errors are now cleared by the Clear Error State
  • Added feature to drag transforms and actions from the master lists onto the Configure Queue dialog
  • When transforms read from a file, they now enter the process function which is necessary
  • Resolved issue in Check for Updates to allow hiding the beta version when the release version is newer
  • Resolved action issue which could cause a service crash when certain errors were triggered in the open stage

6.1.0.416 / 2016-01-11 (Release)

  • Additional fixes to prevent stalling in the Text Markup to PDF transform
  • Resolved exception during the cleanup process for jobs that did not finish processing due to an error

6.1.0.415 / 2016-01-11 (Release)

  • Address a stalling issue when pdf jobs go active but have a blank callback tag and never process
  • Eliminate the "spin-up" time required before all configured worker tasks begin processing a job

6.1.0.414 / 2016-01-08

  • RPM Elite x64 should be faster because it now uses more than one worker task as it should
  • Email alerts now work and we made cosmetic improvements to the dialog for configuring them
  • Improved the Job Status dialog so it now shows the individual tickets including the ID, status, and the device path
  • Improvements to error handling for both transforms and actions

6.1.0.413 / 2015-12-28

  • Fix issue where users could not affect changes to a job if the id column was not the left-most column
  • The ASA and SCS transforms should now honor the gutter option
  • Resolved issue where certain situations caused progress dialogs to not go away
  • Now shows the correct dialog when a database query fails displaying useful troubleshooting information
  • A service restart is no longer required after changing the job retry interval
  • Text Printer actions now support customized page ranges configured on overlays similarly to PDF transforms
  • Added an option in General Settings to disable automatic reprinting of jobs that failed
  • Improved validation for combo boxes

6.1.0.412 / 2015-12-15 (Release)

  • Now removes blank temporary files on transform error with Archive to Folder actions
  • Updates to config.xml handling
  • Resolved overlay handling when specific page ranges are specified
  • Updates to FTP dialog when adding new FTP servers

6.1.0.411 / 2015-11-25 (Release)

  • The User Interface will no longer change the state of Managed queues (3rd Party Integration support)
  • Changes to stop repeated device testing.
  • Prevent an infinite loop when a permissions error is encountered creating temporary files for filter actions.
  • Corrected implementation for interactive Filters / Users. Interactive filter actions will now run under any logged-in user flagged as interactive.

6.1.0.410 / 2015-11-11 (Release)

  • Addressed an issue where renaming queues caused problems submitting jobs via LPR.

6.1.0.409 / 2015-11-10 (Release)

  • Addressed an issue where the FTP Client did not come back online after shutting down while idle.
  • User Interface aesthetics - dialog default sizes, values, etc.

6.1.0.408 / 2015-10-29 (Release)

  • improved vertical tab support in the Remove PCL transform

6.0.0.406 / 2015-10-09

  • cleanup on RPC sequence counter
  • as the printer test programs no longer use standard output, refactored the device test logic and the test programs themselves
  • if you toggle suspend on a queue off and on, it no longer prevents job processing
  • periodic device check, for devices involved in processing jobs
  • fixes to “dot matches newline” in the string translator regex support
  • fix to the raw printing page range reporting option

6.0.0.405 / 2015-09-21

  • timers cleanup
  • cleanup connection based events

6.0.0.404 / 2015-09-17

  • updated the internal support for running programs, not filter actions, which was basically working but had a few issues

6.0.0.403 / 2015-09-16

  • improve backslash handling in job paths, some had double backslashes
  • eliminate a database round trip for certain job status updates
  • replace handling of standard input, output and error handles with a process that manages that; this seems to have solved the job stalling problem
  • added command shell execution when our filter is a batch file
  • not all timer-events need to be added to the database
  • user interface diagnostic logging now uses a list rather than the somewhat awkward table
  • make sure telnet output files are fully written to disk before marking the job as eligible

6.0.0.402 / 2015-09-09

  • attempt to isolate job stalling problem
  • upgrade margins in Text Markup to six decimal places to accommodate users working with millimeters
  • integrated job pump back into the service
  • updated Copy Queue action to eliminate redundant file copying
  • better retry support when we have a database deadlock

6.0.0.401 / 2015-07-01

  • fixes to the Remove Until and Remove After transforms to use non-printing characters correctly
  • don’t need to restart the Firebird database on product upgrade
  • attempt to remove empty PDF files if the generating process errors
  • attempt to remove empty result files from running transforms

6.0.0.400 / 2015-06-30

  • attempt to unstick any stuck jobs every five minutes
  • fix Tray icon “open display” option when user interface is minimized
  • fixes to configuration export and cleaner log export
  • fixes to user interface progress dialogs
  • user interface fix displaying jobs in queues with job retention
  • cleanup of job error handling and reporting
  • fixes to large number of socket connections; seems stable
  • added both event pane and message logging to diagnostic logging
  • attempt to prevent export from hanging when database is offline
  • added option to the export logfile from the command line
  • hostname matching is now case insensitive in RPC authorization
  • if the program we run from the service issues a traceback, use only the last line of the traceback in the job error column in the user interface
  • changed support operating system from Server 2003 to Server 2008
  • added support for enabling EUDC fonts

6.0.0.399 / 2015-05-06

  • updated support for canceling jobs that are “too small”, a configurable option
  • improvements to startup/shutdown diagnostic logging
  • improvements to FTP Server setup; add rotating logs for FTP processing
  • improvements to job completion logging, tracking down the stalling issue

6.0.0.398 / 2015-04-24

  • addressing database deadlocks mostly around job modifications

6.0.0.396 / 2015-04-23

  • sequence number updates when importing RPM 5 to RPM 6
  • wait less time if we can’t start dbmgr from the service
  • in the telnet protocol, if the target queue does not exist, we now create it
  • send job pump exceptions to event pane on startup
  • updated the way we watch for child processes to finish
  • updates to diagnostic logging

6.0.0.395 / 2015-03-30

  • upgrades to LPD logging
  • add option to discard small files below “x” bytes
  • diagnostic log files now include date/time; old log files, empty log files, automatically removed
  • added message logging support to dbmgr
  • added high detail logging for filter process completion

6.0.0.394 / 2015-03-17

  • addressed the socket issue, which turned out to be related to very busy RPC traffic
  • add user interface warning when flagging an action or device as interactive
  • updates to job retry logic
  • refactored startup logic to identify what was causing an error on a customer system
  • improve job retry logging so the user knows when it happened and when it’s complete
  • added information missing in lpstat/lpq response
  • changes to limit VeryPDF to one instance in the PCL to Image Format transform

6.0.0.393 / 2015-03-03

  • added diagnostics for socket issues
  • move queue sequence numbers into a separate table to alleviate deadlocks

6.0.0.392 / 2015-02-24

  • identifying and fixing occasional startup exceptions
  • better import support
  • user interface fixes for code pages, including identifying and finding aliases
  • updated the version of JetPCL we include for evaluation

6.0.0.391 / 2015-02-17

  • fixes to license file support

6.0.0.390 / 2015-02-03

  • fix to regular expression support in string translator

6.0.0.389 / 2015-01-23

  • improvements to action restart
  • cleanup on some database operations
  • fixes to reprint, stuck in active state issue
  • for actions that rely on an external program, error the action if the executable is missing
  • added a diagnose project in order to do some local system testing; called only manually
  • improved tracking for actions and transforms in an error state; don’t schedule jobs that use those
  • show the name of a process using a TCP/IP port, if possible
  • added more database checks
  • adding support for license diagnostics
  • long error text was overflowing job error column in UI
  • improved font support for PDF creation

6.0.0.388 / 2015-01-09

  • more cleanup for service shutdown errors
  • upgrades to action error reporting, handling, and recovery
  • allow the user to override space replacement in Archive to Folder

6.0.0.387 / 2015-01-05

  • added queue XML edit dialog to the user interface
  • adding support for more than 64 simultaneous connections

6.0.0.386 / 2014-12-17

  • better support for busy RPC traffic
  • added a report module, text file rather than the event pane; we can show a lot more interesting data that way

6.0.0.385 / 2014-12-05

  • support for removing timers based on action id in case the user deletes an action that is going to be retried
  • prevent log export from hanging if entries are deleted mid-export

6.0.0.384 / 2014-12-01

  • improvements to error reporting
  • cleanup on action restart

6.0.0.383 / 2014-12-01

  • fixes on timers, race conditions on startup

6.0.0.382 / 2014-11-20

  • improvement to handling unlimited devices
  • fixes for color striping support in PDF, backward compatibility
  • invalid times in events pane do not choke the user interface
  • cleaner formatting and display of high value IDs
  • improved spool folder cleanup when removing queues
  • quote Email Recipients so spaces don't cause errant splits
  • added child processes to improve parallel PDF watermarking
  • use template mask for FTP File Name, that is, upload target based on job info

6.0.0.381 / 2014-11-10

  • fixed queue list sizing in user interface
  • fixed Windows error messages in non-ASCII locales
  • added codepage display to the user interface

6.0.0.380 / 2014-10-31

  • added support for quotes and ticks in queries

6.0.0.379 / 2014-10-21

  • improvements to the way we authorize an RPC connect as some commands were being dropped
  • improvements to code that manages services that depend on RPM, notably custom development projects
  • don’t attempt to clean up job and title fields when receiving a job
  • a job error situation no longer prevents more jobs from being scheduled
  • added job abort logic

6.0.0.378 / 2014-10-15

  • added process id to dbmgr log filename in order to keep more logs

6.0.0.377 / 2014-10-10

  • in the spool folder we now use the job ID as the file name, no longer attempting to use the job name, due to difficulties from international language sets
  • attempt to “unstick” jobs by calling action-finish again
  • LPD protocol was looking at what Windows reported as the number of bytes written, now using its internal count
  • added diagnostic logging support to user interface
  • include more job information in log if available, such as transform id, job id and others

6.0.0.376 / 2014-10-08

  • improvements for version upgrade from RPM 5 to 6
  • fixed a menu bug in RPM Select
  • add eligible job check to job pump when action is finished, driving job processing more consistently
  • add ‘service offline’ warning to job drag & drop
  • prevent filename escaping in email body
  • changed our address in the license
  • fixed partial matching on non-regex string translations

6.0.0.375 / 2014-09-22

  • add support to get VeryPDF version, use when building PDF
  • fixed raw print copies bug, applied multiple times

6.0.0.374 / 2014-09-18

  • improvements to message log handling
  • improvements to PCL parsing
  • changes to prevent “not authorized” errors with respect to actions and transforms
  • show Queue Folders module only for RPM Elite
  • removed unnecessary file close, fixed an issue from Adobe PDF Printing

6.0.0.373 / 2014-09-04

  • folder devices aren’t supposed to be interactive
  • added a job pump process to better manage selecting jobs for execution; many job launcher changes as a result
  • improvements to error processing and reporting
  • improvements to job completion logic
  • logging changes
  • cleanup for RPM shutdown processing
  • some fixes to job copies logic
  • improvements to the message log in the database
  • improvements to the diagnostic logging
  • improvements to handling situations where dbmgr exits
  • fixes to registry import, that is importing old RPM configurations
  • add spool cleanup to Job menu in the user interface
  • added support for retrying actions (in the job processing) when they fail

6.0.0.372 / 2014-07-16

  • addressed an issue with nested quotes

6.0.0.371 / 2014-06-24

  • improvements to the event pane logger
  • more careful checking of job names, some are not valid Windows file names
  • added column reordering to user interface
  • improvements on some printing operations

6.0.0.370 / 2014-06-17

  • fixes to job held logic
  • fixes to job name rendering; give priority to N from control files, then J or T
  • add job columns to Job Properties dialog
  • add Managed checkbox

6.0.0.369 / 2014-06-10

  • tweaks to the job pump processing efficiently
  • user interface display improvements
  • fixed invalid database query
  • fixes for device testing

6.0.0.364 / 2014-05-21

  • tweaks to job scheduling, make sure device counts are considered, and don’t accidentally schedule the same job twice

6.0.0.362 / 2014-05-20 (Release)

  • added “Scheduled Jobs” to Ineligibility Reasons
  • add Current Use to columns in device list

6.0.0.361 / 2014-05-19

  • fixes to job pump, if it exits, start another; addresses a very occasional problem causing job processing to stall

6.0.0.360 / 2014-05-16

  • fixes to action-modify RPC
  • added Explore option to UI to locate data files for queues & jobs

6.0.0.359 / 2014-05-13

  • improvements to the way job name and title are handled, eliminating unexpected control characters
  • UI improvement to the way device reservation is displayed

6.0.0.358 / 2014-05-12

  • better synchronization between queue suspend and the way jobs are marked for eligibility; suspending a queue will have a more immediate effect now
  • tweaks to timing on PJL responses, bidirectional printing in telnet (JetDirect)
  • UI improvements
  • updates to UI-only installer and language installers
  • improvement to Queue Folders, allow clearing monitored folder to turn it off
  • fix to text markup, adding a extra form feed

6.0.0.357 / 2014-05-02

  • fixed PCL echo response, bidirectional telnet printing
  • fixed race condition getting license in UI only install
  • improvements to UI menus
  • fixes to French and Portuguese language packs
  • improvements to testing Windows printer devices; can now test for online vs. offline

6.0.0.356 / 2014-04-29

  • introduced UI-only installer.
  • certain text files and page range settings could make for pages to be overwritten in text printing; this is fixed.
  • improved support for removing errored jobs, depending on retention policy

6.0.0.355 / 2014-04-18

  • RPM now depends on Windows XP and Server 2003; Server 2000 support is now officially eliminated
  • added support for Windows 8.1
  • updates to language packs
  • introduced new transactional logging; our techs can configure detail logging on site
  • RPC improvements for converting IP addresses to local hostnames
  • added support for non-standard Firebird database port
  • fixed device limit log message
  • improvements to string translator multi-line support, including reliably detecting sub-patterns whether we’re doing regular expression or not

6.0.0.354 / 2014-04-11

  • added option to disable driver version tracking because some print drivers don’t seem to report their version correctly
  • added user notes to actions, displayed in Master List

6.0.0.353 / 2014-04-08

  • additions to some dialogs in UI
  • cut down on certain non-optional logging

6.0.0.352 / 2014-04-04

  • added support in string translator for partial match of regular expression patterns and normal patterns
  • fixes to handling zero length jobs; also changed the way we detect this. It’s only a problem on very busy Windows systems.
  • improvements to using job meta-data on command line.
  • UI changes to string formatting for Chinese language packs.
  • Added Chinese Simplified.

6.0.0.351 / 2014-03-27

  • fixed an issue with job retention and job-order processing
  • fixed issues with new line preservation and bold text in text printing
  • added gutter percent when only chars per inch or page were specified
  • speed-ups for IP printing
  • faster startup for IP and LPR printing
  • COR font now more proportional in edge cases
  • fixed file name processing bug; spaces and underscores

6.0.0.350 / 2014-03-21

  • fixes to copies support, some actions were not processing specified copies. Also, job was sometimes removed after first copy is processed.

6.0.0.349 / 2014-03-20

  • introduced static linking on Microsoft runtimes in an effort to help certain customers.
  • improvements to RPM shutdown, should take much less time now.
  • the way some print clients were sending multiple jobs confused RPM, delayed waiting for more data.

6.0.0.348 / 2014-03-13

  • allow remote UI to export configuration.

6.0.0.347 / 2014-03-10

  • adding UI only installers
  • Job name and title should show correct results for UTF-8 now
  • allow user to create a new folder when browsing for “CFdir”

6.0.0.346 / 2014-03-06

  • added reporting features to database manager, more autonomy, differentiating fatal errors from everything else.
  • added support for non-unicode code pages for job attributes

6.0.0.345 / 2014-03-05

  • added support to terminal services module for monitoring logins and logouts
  • if you point the UI to an invalid RPM server, the UI will still open.
  • added more job monitoring support to RPC
  • refactored the way RPM waits for programs it launches to finish; under heavy load, things were getting lost
  • improved database performance, the service can now send multiple requests in parallel

6.0.0.344 / 2014-02-20

  • smoother “job complete” handling
  • telnet file name now supports local IP; thanks to Bits&Bytes for requesting this

6.0.0.343 / 2014-02-14

  • suppress output if input job file is empty
  • improvements to job canceling
  • added support for a filter transform to change the job name, and have that name change register in the actions

6.0.0.342 / 2014-02-05

  • improvements to incoming jobs if their filenames are UTF-8, that is, Unicode but not ASCII
  • automatically restart dbmgr unless we’re shutting down
  • improvements to device release logic
  • if we’re very busy with jobs, reduce the impact on disk by not asking for available disk space continuously; occasionally we’d get “zero” which is a bit misleading

6.0.0.341 / 2014-01-30

  • improvements to the way a new database is installed
  • improvements to recognizing and handling very long RPC commands
  • improvements to the way we recognize when an action is finished
  • improvements to the way dbmgr reports fatal errors
  • added job name to FTP action
  • dbmgr will now watch for RPM to exist; if it exits, dbmgr will also exit
  • no longer holding jobs if they error
  • fix to trailing blank page for text print
  • better integration between device status and jobs that use that device
  • if the device errors, don’t error the action as well. That way when the device recovers we’re ready to try the job again.
  • disk space problems will set device error now, not error the job
  • improve list display under high load

6.0.0.340 / 2014-01-10

  • improved XML support
  • faster job refresh; improved performance for large job volume
  • addressed some 64 bit issues
  • telnet bidirectional printing is now active by default
  • after a fatal database error we will retry the last database statement, so that is not lost
  • PCL to image can now rotate result
  • Traditional Chinese installer

6.0.0.339 / 2013-12-13

  • fixes to COR processing
  • various improvements to database traffic, including built-in sweep support
  • better support for actions which included number of copies
  • disabled queue was giving the wrong message as if it were suspended
  • moving database from RPM server to a separate process for robustness
  • improved support for remote user interface doing database maintenance
  • improvements to RPM startup

6.0.0.337 / 2013-11-14

  • The UI won’t try to load the license status if it’s a non-admin user
  • improvements in tracking filter actions (user programs)

6.0.0.336 / 2013-11-12

  • adding support for queue folder watcher
  • move LPR support in RPM from once-per to long running program, improve speed of LPR print actions considerably
  • added explanatory text to Raw Print action dialog
  • adding support for an FTP action
  • UI permissions now checked on every UI connection
  • upgrade Firebird from 2.1 to 2.5

6.0.0.334 / 2013-10-25

  • restored the logic to use number of copies from control file, not dialogs only
  • adding support for LiveTrial in license, full features in the evaluation period
  • detect Windows 8.1 and Server 2012 R2
  • removed “Licensed under Patent” text

6.0.0.333 / 2013-10-11

  • improved handling for stored device modes (printer setup)
  • improvements to import process
  • fixed remote user interface binding issues

6.0.0.332 / 2013-10-08

  • tighten up exception handling for database processing
  • improvements to PDF creation process

6.0.0.331 / 2013-10-02 (Release)

  • added gutter percentage (space between lines) to ASA and SCS transforms
  • added line gutter percentage configuration
  • adding support for PJL processing (bidirectional printing in telnet)
  • keep user interface open on database error

6.0.0.330 / 2013-09-12

  • fixes to user interface menus and some default values

6.0.0.329 / 2013-09-12 (Release)

  • improvements to job launch scheduler database processing
  • fixes to importing registry files from old versions of RPM

6.0.0.328 / 2013-09-03

  • improvements to 64 bit support

6.0.0.327 / 2013-08-29

  • fixes for problematic registry file imports
  • support for limiting # of VeryPDF processes we run at once
  • added action retry option

6.0.0.326 / 2013-08-15

  • more cautious handling for removing queues that don’t exist
  • added log filtering for action and transform master lists
  • add support for enabling and disabling actions and transforms
  • improved support for switching the UI from one server to another, changes reflected in menus and options
  • improvements to setting error and retrying individual actions
  • default scheduler policy is now FIFO
  • RPC ports have better security in UI
  • improvements to balanced scheduling
  • improvements to detecting non-admin users attempting to create users

6.0.0.324 / 2013-07-25 (Release)

  • added German language pack
  • disabled max idle CPU on “PCL to PDF”, we were quitting too soon sometimes

6.0.0.323 / 2013-07-11

6.0.0.322 / 2013-07-05

  • improved service shutdown; improvements to the way we handle service not shutting down
  • improvements to null column handling in queries
  • work around for a 64 bit UAC issue
  • RPM lists can now be refreshed with F5

5.1.1.99 / 2011-02-15 (Release)

  • The GUI now handles imports where you have devices not defined, queues already defined [see below]
  • The devices in the Device tab are numbered to help you see how many you have defined. The Devices tab also has a "reserved" column to show which ones are currently in use.
  • The status bar shows how many devices supported by this license. Remember, this number represents the total you can use at one time. You can define as many as you want; we don't limit you there.
  • We have added considerable logging. We're moving away from the Windows Event log, using an SQLite database as a "local events log". We are also logging much more there than we were before.
  • The "local events log" described above is copied to a CSV file (text, compatible with spreadsheets and databases).
  • We've added details on the operating system, software version, and licensing to the "local events log" to facilitate support.
  • RPM also creates an external configuration file for certain items called "config.xml".
  • RPM also creates an external CSV file with license information, such as serial number, etc. This file will assist users who need to relicense but don't know what their old serial number was.
  • Let's say you import a configuration. What do you do with the queues if they already exist? RPM was making a new queue called "le wi;Copy of ...". Now we have three ways to handle this:
    • Overwrite, the existing queue is removed and the new one is put in its place
    • Rename, the existing queue is renamed to "queue"_bak, which will be bad news if that queue name already exists
    • Ignore, don't import a queue if the name is in use.
  • Devices are now imported.
  • If the import needs to prompt for login credentials, we now depend on a check box to specify "prompt for all credentials" or "all devices use the Local System account".
  • Actions are now created regardless of whether the device exists on the system. It's easier to add a device than to recreate all the other settings for an action. We do warn you when this happens, though it should not cause a problem since RPM can already handle missing devices when printing jobs.
  • Error lists are now text areas, so you can note for yourself what needs to be fixed.
  • the insert file transform was limiting print jobs to 131K at most. The transform will now handle files of any size.
  • RPM Elite recognizes a license with "unlimited devices" correctly.
  • The device list in the GUI now works for many devices, whereas before it would work well only for around a dozen. You can now edit devices in the GUI even if you have hundreds.
  • Files with numerous backspaces or carriage returns were throwing off the "autocalculate" feature in Text Markup; for instance lines that were meant to be 80 columns could turn out to be 140.
  • Several fixes to the raw print action, in particular, page ranges now work well. It should print whatever range you want, and if the file doesn't contain pages in that range the job will be errored so you can see in the Jobs tab just what happened.
  • RPM correctly removes jobs whose files no longer exist, and files without jobs, from the spool folder.

5.1.0.96: / 2011-01-11

  • Fixed a bug that prevented RPM from processing files over 64K bytes. If you have a previous version, more specifically 5.1.0.95, please update immediately.

5.1.0.95: / 2011-01-06

  • Fixed a bug that causes the Append Bytes and Insert Bytes transforms not to work correctly when used together. The Append Bytes transform didn't append in this instance. Generally, this should work for any transform combination now.
  • The Text Markup to PDF transform now expects the input to be UTF-8, rather than trying to detect. The responsibility is back on the administrator to recognize the input data types correctly, as automatic code page recognition is still not a best practice.
  • The email action now correctly reports a wrong user login or password.
  • If you minimized the UI then restored it, it wouldn't always talk with the service as expected.
  • Transforms that use the Edit Bytes dialog, for instance, Insert Bytes and Append Bytes, were having JSON encoding issues with some byte sequences.

5.1.0.93 / 2010-12-23

  1. A bug was introduced in the 5.1.0.91 version, which prevented RPM from archiving to shared folders. The file was created removed immediately. Thank you to the customers who pointed this out to us.
  2. You can no longer set the temp folder to be the same as the spool folder. We never considered anyone would do this, but now we prevent it.
  3. Drag & drop is now available for non-administrative users.
  4. Several user interface "trace messages" have been resolved. These were non-critical runtime errors.

5.1.0.91 / 2010-12-14

  • Lines ending in form feed that also had an embedded carriage return (not at the end but meant as an overprint operator) were not handled correctly. The symptom was that the portion of the line following the carriage return would be removed, but only on lines ending with a form feed.
  • We no longer use the data file size in the LPR print request to "reserve" disk space. The Microsoft client misreports this, and was causing too many problems. We now have a system that dynamically watches available disk space and works across both LPR and telnet protocols, as well as queue copy, archive and filter actions.
  • If the print client sends a full file path in the file name field, we now allow it and don't report an RFC 4637 encoded string in queue status requests.

5.1.0.90 / 2010-12-03

  • The Text Markup to PDF transform now supports underlay for the watermark. This is the default.
  • In the GUI, if you close the Log tab, the GUI no longer requests log records from the service. If you have a large log this is a noticeable performance improvement.

5.1.0.89 / 2010-11-03

  • Control file: specifying a folder to save control files was having no effect. This functionality is restored.
  • Interactive text print was briefly broken in version 5.1 when we changed the way we do landscape if the print job requires landscape and the printer definition is set to portrait.
  • Job status email: the folder path or device path was a JSON encoded string, but is now a regular string.
  • Elite only:
    • the PDF watermark was resulting in a zero length PDF file. This now works.
    • the service was not accepting host access templates with wild cards, like *.brooksnet.com for example. This now works. The problem was related to partial matches in the regular expression code.

5.1.0.88 / 2010-10-19

  • Support for multibyte (Chinese, Japanese, Korean) folder names, printer names, and font names. The GUI for both versions and the web interface for Elite is also updated.
  • The text markup to PDF transform now supports UTF-8. We no longer need to consider the output format for PDF; specify the appropriate font and the file should display correctly.
  • The text markup to PDF transform can now use either Windows fonts or native Adobe fonts for Asian print jobs. Note that we also support Windows font catalogs which are used for many Asian fonts.
  • RPM Elite now includes a transform for converting PCL to PostScript, JPEG, TIFF and Windows bitmap files.
  • The text markup option that automatically calculates the best layout for the data is now optimized to use the longest line length if the data has irregular lengths. You can still use the weighted average as before, but the longest line is the new default.
  • You can now use hostname wildcards and IP address wildcards to gain access to the web interface. Previously, you could only use IP addresses.
  • Numerous improvements to database performance and stability. You can also optionally use the Firebird SQL server if it is already installed on your system.
  • On LPD print jobs, if a job is received from a host and your network can't resolve the hostname in a timely manner, the job is no longer delayed. RPM will use the IP address and resolve the hostname on its own time. You would see this if your network was configured to use WINS for name resolution rather than DNS, and if the IP address wasn't correctly registered.
  • Duplex now works correctly in the text markup to PCL transform.
  • The GUI now runs only a single instance.
  • The RPM GUI and web interface now support a queue description, an optional text which can be updated at any time.
  • Jobs with multiple actions are no longer shown as processing when they were, in fact, complete; this occasionally happened under high load
  • If you imported a configuration that included jobs, the jobs would reprint. They no longer reprint.
  • The ASA transform now deals correctly with blank lines in the input. ASA requires a character in the first position to tell it what to do.
  • If you run the GUI as a non-privileged user, you would see a menu option for queue status display, but the queue status panel would not display. Now you see the queue status, but you can't change the settings, as is appropriate with non-privileged users.
  • Transforms are no longer reordered with insert operations always happening first, and append always happening last. The previous behavior was planned but was inconvenient for most users, so we took it out.
  • If a printer recovers from its error, and you have archive folders defined, RPM no longer lists the disks containing the archive folders as recovering from an error.
  • There was a problem with the idle time handling for filter programs where the program would sometimes be reported as done, when in fact it wasn't. This is fixed.
  • The log export in the RPA wasn't showing messages related to printing; queue and network messages were available. This is fixed.
  • Added "Job ID" to the list of job data you can use for file naming. Note that the queue sequence number is unique for each queue, but job ID is unique for the installed life of the application. Unless you reinstall with a new database, you will not get duplicate job IDs with RPM.
  • The PCL removal transform was not removing font definitions in some cases; this is fixed.
  • Changed the way that printer output is rotated in the Windows (text) printing action if we had to force landscape output, and the printer setup was portrait. The old method did not work reliably on some print drivers.
  • Added "job total" to the GUI, so you can see for each queue how many jobs it has processed overall. Also added ability to reset this to zero. This is on a per-queue basis.
  • On a system with no printers configured, you were unable to add actions because printers could not be enumerated. This is fixed. You will now see the non-printer related actions. This was also a problem if the Windows spooler was stopped.

5.0.70.6 / 2009-12-28

  • RPM Elite version 5.0 is now released! Please see the RPM Elite comparison page for information on what has been added
  • Speed improvements for very large jobs
  • RPM now performs disk space checks prior to receiving and printing jobs and other disk operations
  • We've added auto-calc layout to the text markup transform. This eliminates the requirement to include a text markup transform before you text print, create PDF, and many other situations. The text print action, the PDF transform and several others will automatically include a text markup transform if the incoming data appears to be plain text. Instead of defaulting to 6 lines per inch, the text markup transform will examine the incoming data and attempt to determine a good fit for line length and page length. This setting is also available in the text markup dialog.
  • The filter action now supports tracking process idle time (for the entire process tree) and terminating filter programs which have hung; and saving the standard error log
  • Added search for log entries
  • Improvements to importing registry files from previous versions of RPM, including recognizing printer pools
  • The ASA transform was not specifying the font name
  • PCL code removal bug on buffer boundaries, some codes were not removed
  • If RPM warns about unrecognized control file lines, it now tells you what the unknown character is, though it still does not affect printing
  • We refactored how RPM processes LPR control files, which resolves some unusual bugs
  • The duplex setting in the PCL transform now works correctly
  • Scheduler fixes includes:
    • If you had many held jobs and released them all at once, some wouldn't print. This was due to a race condition between scheduling the job and setting the "held" attribute to zero.
    • If you released very large numbers of jobs, randomly some would not print.
  • Text markup to PDF changes include:
    • Very large PDF files were truncated. It turns out that if you need to make more than 8191 pages, you need to set this at the beginning.
    • Improvements to memory usage for very large files
    • Word wrap was not working correctly in the PDF transform.
  • Telnet protocol changes include:
    • Added support for the job user
    • The job format control now lists job data relevant to telnet, not the entire LPR list
    • You can now edit the default "quiet print" setting
    • Changed the way telnet timeouts are logged; basically, they aren't
  • GUI changes include:
    • The queues list now shows queues without actions with an empty (black and white) printer icon.
    • The job properties dialog how supports start and end page
    • The jobs list now includes a column for the error message
    • The device properties dialog now supports setting the maximum use count, and manually resetting device error
    • The device panel now includes the maximum and current use counts
    • The PCL banner transform can now act as a page separator by drawing from an input tray, and by printing a blank page instead of job data
    • certain controls hung on Windows 2000; these were refactored
    • added support for moving jobs from one queue to another as opposed to copying
    • in the string translator, regular expression support is now optional
    • increased resolution for margins and line settings in the text markup dialog
    • if you selected many jobs in the job list, then deleted, or reprinted, or held (anything you can do to multiple jobs) RPM would frequently complain about an empty list of jobs failing. This now works as expected and fairly quickly.
    • Added a queue description to the Queue Status panel
    • Swapped actions and transforms in the Queue Status panel, and labeled them more clearly

5.0.70.4 / 2009-03-17

  • All files in the temp folder are removed on startup.
  • All files in the spool folder which are not associated with jobs are removed on startup.
  • When printing raw, if RPM can't open the printer with full access, we try the partial "print-only" access. Some users don't have full access to their printers; they won't be able to set the print job user name or document name for the Windows spooler, but they'll be able to print.
  • Added a script and a program to shrink the database after making a backup. The service will be stopped during this operation.
  • Added a script and a program to scan the database and make repairs if needed. The service will be stopped during this operation.
  • Certain errors in actions weren't showing up in the device or the job, so you'd see an error status, but not know why. This has been improved.
  • Device errors are logged once, rather than multiple times.
  • If you drag a job onto the UI, or add jobs by importing the old RPM registry file, the jobs wouldn't print if the queue was suspended and you resumed it.
  • Added more logging so if you reprint a job and nothing happens, you'll be able to determine the reason.
  • Added logging so you could see the progress of the device tester, which works on devices in the error state.
  • Fixed the JOBATTRS index problem that occasionally shows up in the Windows event log.
  • In the email action, if you had two or more recipients in the same domain, they could receive duplicate emails. This may be related to Exchange. At any rate, it's now fixed.
  • RPM was giving incorrect results for lines that contained only space, bold and underscore. This is now fixed.
  • Replaced the PCL removal transform with one that is more lenient regarding incomplete or unexpected PCL sequences.
  • Added a log message for text printing which shows the actual hardware margins; also added socket info to some of the LPD messages.
  • Added a test so if the database copy on startup failed to write the correct number of bytes, this action would prevent us from opening the database.
  • Certain unexpected LPD errors were causing a "bad lexical cast" error. This situation is now logged and handled cleanly.
  • You can now specify a numeric font id for PCL fonts, in the user interface. This way you should be able to select any font your printer supports.
  • Added font spacing support to PCL. If you are using a fixed font like Courier, you can leave the spacing at the default, which is "fixed". If you are using a proportional font, you must change the spacing in order to get your requested font. This applies to the "text markup to PCL" and the PCL banner transforms.
  • Fixed a bug where, if you had multiple actions and "copies" were set to 1, when the first action completed the job would be marked as "complete".
  • Fixed issue with EBCDIC code page IBM1140 which would log an error and not complete.
  • EBCDIC code page CP011 has also been added as a French Canadian variant on IBM037.
  • If RPM prints landscape to a text printer that is set to portrait, the "top" (right) margin is now set correctly. It was too large.
  • Another landscape related issue: if your print job was using characters per line, or lines per page, the text print action was using the wrong metrics. This is now fixed.
  • Added more detailed logging to track down port-related errors.
  • If we run into "device limit exceeded", this is now logged once per device, not for each time the device is considered for a job (which could be a lot). Also, the device status is set to "Device limit exceeded".
  • If the installer finds rpmcfg.reg, a configuration file from RPM 4.5, it now waits for the service to start before continuing, and renames the file afterward so the file is not imported again during an upgrade.
  • The email action now supports the print job as the message body as an option, instead of attaching. Only plain text and HTML are supported for this.
  • You can now use job data in the subject line of an email message. You'll notice it has the same "Format" button that the attachment uses. The default subject is "<subject>" which you'll probably want to change.
  • We fixed a bug in text printing where underlined text could be moved to the end of the line.
  • RPM now gets the MAC address(es) defined on your computer on startup, and checks them with what it has seen before. If the primary MAC address has changed, then most likely the licensing will also be affected. This will let you know when we detect this change. Changes in the IP address(es) are also noted.
  • In the user interface import of registry files, if the "queue type" was raw and you had an SCS action, we now add a "strip markup" action. This is in keeping with the old RPM's behavior. If you would rather print PCL to a printer than plain text, you might want to remove that strip markup transform and add a PCL transform.
  • If Terminal Services is not running, or if the RPM process can't query it, we'll let you know that interactive processes will not run until this is corrected.

5.0.70.3 / 2009-01-14

  • The user interface now starts reliably. You should no longer see "license.get()" or related messages. If the service truly is not running, you'll still see a message about that.
  • If you sent a very large telnet job, it would fail with "Bad allocation" and start a new job. That is fixed.
  • If you had a queue with a number of archived jobs, suspend the queue, send more jobs, then resume the queue, the archived jobs would reprint, not just the new jobs. That is fixed.
  • If a queue had two or more copy actions, the filenames they used to copy to would be identical and occasionally an error "file exists" would happen. This is fixed. The filename now has the action instance id, which is unique. The other job properties are unaffected.
  • The telnet protocol is supposed to direct jobs to a queue; if this queue was removed, the telnet protocol would signal an error. It now creates a queue named "telnet_" followed by the port number, and uses that. The queue will remain suspended until it is configured in the UI.
  • The email job action is now more robust in handling multiple "to" addresses; also, addresses can be separated by comma or semicolon.
  • The install program now handles the case where the currently installed version is the same as what you are trying to install; you can decide whether or not to go forward.
  • Importing a configuration from the old RPM could result in an internal error in the UI. The symptom was that only some of the queues were created. This is resolved.
  • Addressed contention due to parallel updates in the RPM database, for instance, two completed print jobs updating the device
  • The "archive to folder" action is now logged at normal detail.

5.0.70.1 / 2008-12-12

  • When deleting a queue, all settings for every transform were removed, not just for the specific queue.
  • When upgrading to the same version, the window would immediately disappear without performing the upgrade.

5.0.70.0 / 2008-11-10

  • The database and the spool and temporary folders are now located under the "All Users" application data directory
    • The old database will be automatically copied (the first time) from the programs folder to the new location.
    • Print jobs are not moved as the entire path is stored in the database. Do not move or delete the existing spool folder without deleting the jobs from RPM first.
    • User interface settings are found under the logged on user's application data directory.
  • Added support for additional character sets
  • Now supports several hundred commonly used characters
  • Output now changes the line spacing if specified in the source file
  • Tab support in PCL is improved
  • Saving text markup to plain text now supports languages such as Thai where vowels print over consonants, which affects spacing in columnar output
  • Now supports a combination of horizontal positioning commands and overprinted text.
  • Now supports a login and password for your SMTP server, if required.
  • Added a column for the device status in the Devices tab
  • If a job errors, you can see the text in the Job properties window.
  • If you send a job that is not in text markup to actions (like text printing) or transforms (like PCL) that require it, the job will fail. Previously the job could fail silently or produce incorrect results.
  • When archiving a job to a folder, RPM no longer tries to create the folder if it doesn't exist. Now it sets "device" status (that is, on the folder) to "error"; you can take corrective action by creating the folder, then opening the action in the UI.
  • Tab support is improved in text printing, PCL, and HTML
  • On some files PCL generated an extra page.
  • Null characters were not being removed
  • Text printing could be off on succeeding pages if the last line of a page was empty, or the first line of the next page.
  • If you printed interactively, and set the printer port to write to a file, and canceled the file dialog, the "textprint" program would crash. Now it logs an error.
  • Certain errors would not clear. For instance, if you inserted a file, then removed the file, the job error would not clear even if you replaced the insert file.
  • One customer reported that the event log had messages about the JOBATTRS table. This is resolved.
  • Long lines, for instance over 132 characters, could have a space character in the 132nd column.
  • If you tried to save files to the root of a shared folder, the file would be saved to the wrong folder on the local computer.
  • If you were logged in as an unprivileged user, or on Vista you did not run the UI elevated, and attempted to add login credentials to an action, the UI would exit. Now it displays a dialog box.
  • If you tried to import a configuration file from previous versions of RPM and the font was corrupt, the UI would exit when you opened the "text markup" dialog. Now it substitutes Courier New size 12 instead.
  • Some users reported that the UI would exit when making a list of network printers for the raw print action.
  • Turning off the "admin required" feature was not completely implemented.
  • If you had a suspended queue, with jobs that were not held, changing the "suspend" setting would not cause the jobs to print.
  • The top printed line of a PDF page was off by one if the last line of the preceding page was blank.

5.0.67.0 / 2008-08-15

  • The email message body was blank; that is fixed
  • RPM is now using horizontal positioning hints for SCS files. If the print file includes AHPP commands, we use those with text printing. This affects languages such as Thai where a line of text may be shorter than the number of characters it contains, which throws spacing off.
  • We have dropped the requirement that the logged in user must be an administrator, in order to change things in RPM. However, you can still enforce that requirement if you want. You have to be logged in as an admin user in order to set that.

5.0.66.0 / 31-07-2008

  • In the character set conversion transform, if you were converting to UTF-8, the transform would occasionally show an error and incorrectly report it for the input code page. Both problems were fixed.
  • Substantial work was done in the SCS transform to handle wide characters.
  • A problem with the user interface preventing actions from importing was resolved.
  • The text print action was not working correctly with the output of the COR transform in some cases. COR was fixed.
  • Fixed issue where the log would incorrectly show that the device didn't exist while adding or changing login credentials.
  • A recent change prevented the characters per inch setting in the text markup action and SCS, ASA, and text markup dialogs from working. This was resolved.
  • It was reported that RPM could fail to archive a file on a shared drive, writing it on the root folder instead. We were unable to reproduce this but attempted to resolve it.
  • The UI incorrectly displayed a setting in the Job Archive dialog. This has been resolved.
  • RPM now logs filter commands at normal detail, and options such as stdin on high detail.
  • Resolved issue with the filter transform not reporting the control file location correctly. Forward slashes were used instead of backslashes.

5.0.65.0 / 2008-07-14

  • Fixed issue adding ports. The ports dialog was not accessible.
  • Resolved SCS issue where, depending on the SCS command used to move to the next line, the buffer could have been lost.
  • Added code page IBM-Thai (IBM838).

5.0.63.0 / 2008-07-3

  • In the UI, you could not enter 1.0 as the value of any margin. The dialog now uses a more intuitive input field.
  • Fixed issue where data that did not end in a new line or form feed character would cause the string translator to drop the last line.
  • Raw printing no longer truncates output.

5.0.62.0 / 2008-06-12

  • Security checking now supports wildcards in hostnames or IP addresses
  • Fixed socket issue which occasionally caused RPM to output too many jobs
  • Some transforms improved to support byte level regular expressions (\xNN) properly
  • Email validator now allows the period (.) to be used as part of an email address

5.0.59.0 / 2008-05-27

  • Drag and drop files into RPM queues
  • Drag and drop print jobs between queues
  • Easily duplicate queues with copy and paste operations
  • Import queue configuration from any RPM version
  • Select multiple queues or jobs simultaneously
  • View contents of print files with included hexadecimal viewer
  • More intuitive host access configuration
  • Improved log window with sortable columns
  • Better file naming options
    • More intuitive configuration
    • The append to file feature can create new files yearly, monthly, daily, and hourly
  • Improved LPD support:
    • Better handling of multiple print jobs on a single connection
    • Increased speed while receiving print jobs
    • Support for a wider variety of print clients
  • Page count estimate is displayed on incoming print jobs
  • Multi-threaded output
  • Security: each action can have its own login credentials, no longer need to run the server as a privileged user
  • Fully customizable print job workflow
  • Improvements to existing actions: text, raw, filter, and archive
  • The text printing action fully supports UTF-8
  • Specify number of copies when raw printing
  • Added ability to email print jobs
  • Added the ability to perform multiple actions on incoming print jobs (save and print, broadcast print)
  • Print job archiving
  • Reprint jobs
  • Added a number of data filtering options
  • Supports PDF, PCL, and HTML output
  • PDF supports international character sets including Asian languages
  • String translations
  • Supports variety of custom banner pages
  • Computer Output Reduction (COR) adds the ability to automatically rotate from portrait to landscape and scale the font size
  • Added support for more SNA Character Set (SCS) commands
  • Supports a wider variety of code pages, including double-byte character sets (DBCS)
  • Added support to break lines at a configurable width
  • Specify page range on each queue
    • Limit the maximum number of pages on incoming print jobs
    • Eliminate banner pages created on the host system
  • Customize the location of the Spool folder

4.5.1.12 / 2008-02-02

  • Resolved a buffer overflow security vulnerability during the receive data file LPD subcommand. This issue was originally report by Luigi Auriemma here.

4.5.1.11 / 2004-11-12

  • RPM now installs and uninstalls correctly on systems running Windows XP SP2
  • The setup program has been signed with a digital certificate
  • Remote Print Administrator for RPM Elite is signed with a digital certificate for better integration with Windows Server 2003
  • The EBCDIC table has been updated (character 0x9F is converted to 0x80 [euro])

4.5.1.9 / 2003-10-23

  • Corrected a problem upon startup when the license was validated.
  • Improved communication between the user interface and the service.

4.5.1.8 / 2003-09-17

  • Resolved issue with text queues where banner page overwrote the first page of the print job.
  • Corrected a problem with the translate LF to CR/LF function where extra carriage returns were added in the print job.
  • RPM now saves the windows that were opened previously; the same windows come up next time RPM is started.
  • When calling a filter program and %s is not specified in the command line, RPM now inserts the path to the data file as documented.
  • Resolved an issue when specifying an alternate location to save control files.
  • RPM now determines the largest available buffer size per TCP/IP connection and uses it, improving speed when receiving large files.
  • Some files with embedded null characters were printed incorrectly; this was also causing ASA translation issues.

4.5.0.4 / 2002-11-12

  • Remove PCL codes option has been enhanced to remove all PCL codes, including graphics.
  • Batch files are now shown by default when browsing for filter programs.
  • Some files and folders were not properly removed during uninstallation.
  • Users can now successfully specify a range of pages to print.
  • RPM Elite could not be upgraded to unlimited printers.

4.5.0.3 / 2002-10-08

  • Queue List window can now be sorted on the title column; before it would not sort properly.
  • RPM installation failed on Windows NT with service pack 5 or earlier during dll registrations.
  • Queues were not always listed in the Queue List window after upgrading from previous versions.
  • Print jobs and queues with uppercase letters were not displayed properly in the Queue List window.
  • Some escape sequences that were not true PCL, but similar, were improperly removed.
  • When renaming and deleting a queue, the Queue List window was not properly refreshed.
  • The license manager and RPM user interfaces could not be opened by anyone other than a member of the Administrators group.
  • Export configuration was not properly handling file paths, either during uninstallation or when called from the File menu.
  • When receiving multiple copies of a print job, not all copies were printed and RPM logged warning messages.
  • From the Brooks License Manager (BLM), copying to clipboard and printing license information would not work properly, and license information was not displayed properly in the BLM user interface for non-English languages.
  • You can now specify the folder for saving control files on a per queue basis as well as globally.
  • The printer limit during trial was increased from 2 to 5 on RPM Select.
  • Printer module shows actual printers instead of additional printers. The module quantity can now be increased during trial as well, but is reset to the appropriate amount during licensing or after the module expires.
  • Brooks License Manager now allows editing of proxy settings; before it silently used the proxy information defined in Internet Explorer if a normal connection could not be made.
  • RPA can now be accessed securely using secure socket layers (SSL).
  • Various issues with upgrading from RPM 2.3/3.0 NT versions were resolved.

4.5.0.1 / 2002-08-14

  • Remote Print Administrator added to allow RPM to be configured remotely; this requires IIS on the RPM host and a browser at a client computer.
  • Software license manager enhanced for relicensing software and connecting through proxy servers.
  • Queue Status window would not display job names longer than 16 characters. It has now been increased to 40.
  • Many default settings modified in text queues and filter queues to support recent changes in many operating systems.
  • Added support for importing and exporting configuration. This is done from the File menu.
  • Support for specifying the destination folder of the control file information.
  • Added banner page support for all queue types. Previously was only allowed in raw and text type queues.
  • When printing a banner and inserting files or bytes, the file or bytes were inserted only after the banner. RPM now provides a way to select where the information is inserted.
  • The Report2Web style was updated to support the most current version of Report2Web. All versions are supported, but must be modified for previous versions.
  • Opening the Queue Status window after it was closed manually caused too many spaces between print job information.
  • When configuring RPM to preserve more than 7 days of log files, only 7 logfiles were saved.
  • Some tabbed dialogs were not using the system colors, but instead were forced to a gray color.
  • Some blank pages were printed whether the suppress blank pages setting was selected or not.