jessieloo
jessieloo

Reputation: 1872

How to reload printers in coldfusion without restarting service?

This is my basic understanding of how to make a printer available to use in ColdFusion.

  1. Remote into the server running CF using the account that the CF service is running under.
  2. Open the windows control panel and add the printer.
  3. Restart the CF service.

My question: is there any way to reload the printers without restarting the CF service?

This is the issue we are trying to troubleshoot. CF error detail:

Error: Printer \\(server)\(printerName) is not available. Available printers are: , şៈ᠘, , , , 凙ᜀᚈ, , 疠쐵䚏, , .

Restarting the CF service fixes this but it seems to be happening pretty often lately. I am wondering if there is some java code to reload the printers so it can be done automatically. We are using CF9.

Upvotes: 41

Views: 1459

Answers (3)

user4415984
user4415984

Reputation:

Yes, a sudo would sort it out... Or, the sysadmin setting the synch to a shorter interval (but that would increase the CPU time allocated).

Upvotes: 0

Anurag
Anurag

Reputation: 1036

To use a network printer ColdFusion is going to need to be running under a domain account that has permissions to network resources. The default user that the ColdFusion Windows Service runs under is localSystem. This user account normally has lots of permissions to the local system but no permissions on the network. The usual solution is to create a domain account for this purpose and then set the ColdFusion Windows service to run as that user in the Services Control Panel.

I recently installed a printer on my server machine, and it was detected right away without any issues. I am using CF10 on a Windows 7 64-bit system. So the following code listed my printer without any restart of the service at all:

<cfdump var="#GetPrinterInfo()#">

Hope this would help.

Upvotes: 1

Padrus
Padrus

Reputation: 2078

I have worked with Java and printers and as stated by daveloyall in the comments the problem might come from Java. Tests have shown that when you launch a java application, it takes a snapshot of the current printers list and never updates it so the only way to refresh the printer list is to restart the application.

Upvotes: 0

Related Questions