Copy queue fix, add job improvements & more

This post refers RPM Remote Print Manager® (“RPM”) update 6.2.0.496, available January 1, 2019.

Copy queue with data extraction

A customer reported a bug where, if you used a data extraction transform with a copy to queue action, the job would stall. We were able to reproduce and correct this problem.

We also made sure that the new job has a copy of the "overrides" data which was produced by the Data Extraction transform. 

Add job improvements

RPM can now receive jobs much faster than it can add them. So, since we decoupled those processes, it became possible that the service might be interrupted before all the spooled jobs were in the database. With this update, RPM now cleanly adds all "leftover" jobs.

As part of this process, we were able to reduce the number of database steps to add a job. Although it is an unintended consequence, that process is now noticeably faster than it was before.

Also, when RPM is adding the "leftover" LPD or telnet jobs, the service should be able to handle other requests. Both the Telnet and LPD modules display the number of jobs added and the elapsed time in the event log.

License status update

We fixed an issue with the license status code in the event log. If the license was in trial mode, the status message incorrectly showed an infinite number of days. It now correctly indicates the end of the trial period.

License status - 2019-01-08 00:01:25.177
RPM is in trial mode for 2 days ending 2019-Jan-10. Please contact sales@brooksnet.com or 800-523-9175 for assistance. 6875-975-s792 for OSPREY-181219 / Brooks Research, Inc., licensed for 10 devices. QueueFolders is not licensed

License read error

We occasionally encounter a situation where the license DLL has a read error. You might face this when a virtual machine is forced closed and then moved and started on a new host.

The next time RPM starts, it will encounter the license read error, and the user interface will crash. While it's a simple matter of launching the license manager to resolve the issue, it is not common knowledge and leaves some users unsure about what to do next.

We added logic to the service to run the license manager automatically with the “silent” switch to fix the license DLL in this instance. We also added a critical event to notify you that this happened.

Critical event tied to database maintenance

We added a check on the job ID. If it is an even multiple of 100,000, then we add a critical event notifying the admin that it’s time to perform database maintenance. Taking this extra step should help volume users keep their RPM installation running smoothly.

Critical event handling update

We noticed that the email generated for critical events led to an exception, which was noted in the event log but did not cause an overall issue (beyond not getting the email notification). We corrected this problem.

LPD changes to queue status

We made two changes to the way the LPD module handles the following requests.

  1. If we get a request to print on a queue that doesn’t exist, and "auto-create" is turned off, then we refuse the job with an error.
  2. Similarly, if we get a request to print on a queue that DOES exist, but it is disabled, then we refuse the job with the same error.

We have tested both of these scenarios with the Microsoft LPR client and confirm they work as described.

Random crash

I was sending around a hundred thousand jobs through RPM to observe some behaviors when it exited without a message. I was able to track this down to the code that buffers message logs for later insertion in the database. The reason message logs are buffered is that it gives database operations which support job processing priority over logging about those operations.

I was able to track down the cause of this problem and correct it. I’ve since sent over 300 thousand jobs through RPM without an issue.

More identifying information in job parameters

If you right click on a job in the user interface and select Properties, you can see a list of current job properties including "Params." We have added more identifying information to this field, including how we got the job, the originating IP address and hostname of the client computer, among others.

We also added the source job and queue IDs for jobs created using the Copy Queue action.