Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

Printer Queue Page Counting

 
nitram_1
Occasional Visitor

Printer Queue Page Counting

I'm new to VMS Admin and need to get an accurate count of pages printed through a specific print queue. Tried using accounting but single page jobs are not being counted as a page - would anyone have a script or any advice on how best to get the correct count.
Working in OpenVMS V7.3
Thanks in advance for any assistance.
12 REPLIES 12
Craig A
Valued Contributor

Re: Printer Queue Page Counting

Nitram

Can you specify the ACCOUNT command that you are using, and the result of:

$SHOW ACCOUNT

Craig
nitram_1
Occasional Visitor

Re: Printer Queue Page Counting

Command is:
acc /que=pq_et_cast_4h1/summary=user/report=(pages,records)

Show account
Accounting is currently enabled to log the following activities:

PROCESS any process termination
INTERACTIVE interactive job termination
LOGIN_FAILURE login failures
SUBPROCESS subprocess termination
DETACHED detached job termination
BATCH batch job termination
NETWORK network job termination
PRINT all print jobs
MESSAGE user messages
Craig A
Valued Contributor

Re: Printer Queue Page Counting

Are you running a cluster?

Are you pointing to the correct ACCOUNTING file?

If the print execution queue is on NODEA but you are on NODEB then you need to ensure that you access NODEA's ACCOUNTING file (unless you are sharing).

What is the output from $ SHOW LOG ACCOUNTNG

This command works for me:

$ acc/type=print/since/report=(pages)/summ=(user,queue)
nitram_1
Occasional Visitor

Re: Printer Queue Page Counting

Not running a cluster in this case, yes I believe I have the correct accounting file, the queue and accounting file are on the same server.
Show log accounting returns: no translation for logical name accounting

Your command works but returns same erroneous information for queue I'm looking at - it just includes every other print queue also.

The command I use:
acc /que=myprintque/summary=user/report=(pages,records)
returns:
Username Pages Total
Printed Records
-------------------------------
USER7_DEV 8 7
USER5_DEV 0 6
USER5_TST 4 6

I have tested this out and found that a single page job increases the Record total - but will not add to the page count. Thus in the example above USER5_DEV has actually printed 6 pages. If all jobs were only one page I could use the record count but as in the case of USER5_TST 2 jobs were two pages and the other four were singles so total pages should be 8.
Volker Halle
Honored Contributor

Re: Printer Queue Page Counting

nitram,

welcome to the OpenVMS ITRC forum.

The Pages printed in the accounting file is only an attempt to report what the print-symbiont may guess as the number of real pages sent to the printer.

This may also depend on the print-symbiont used. If you check with SHOW QUE/FULL myprintque - what is reported as /PROCESSOR=xxx

Volker.
nitram_1
Occasional Visitor

Re: Printer Queue Page Counting

$ sho que PQ_ET_CAST_4H1 /full
Printer queue PQ_ET_CAST_4H1, idle, on E2ADVS::"TCPIP$QUEUE:PS_CAST_H",
mounted form LANDSCAPE_WIDE (stock=DEFAULT)

/BASE_PRIORITY=4 /DEFAULT=(FEED,FORM=PORTRAIT_NORMAL (stock=DEFAULT))
/LIBRARY=HPVMS_DEVCTL Lowercase /OWNER=[SYSTEM] /PROCESSOR=TCPIP$TELNETSYM
/PROTECTION=(S:M,O:D,G:R,W:S) /SCHEDULE=(NOSIZE)
/SEPARATE=(RESET=(HP_NOBLANK))
$ sho que /full PS_CAST_H
Server queue PS_CAST_H, idle, on E2ADVS::, mounted form DEFAULT

/BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) /LIBRARY=HPVMS_DEVCTL Lowercase
/OWNER=[SYSTEM] /PROCESSOR=TCPIP$LPD_SMB /PROTECTION=(S:M,O:D,G:R,W:S)
/RETAIN=ERROR /SCHEDULE=(NOSIZE) /SEPARATE=(RESET=(RESET))
David Jones_21
Trusted Contributor

Re: Printer Queue Page Counting

The print pipeline makes getting an accurate page count out of postscript printers is problematic. DCPS adds postscript to the job to query the printer for starting ending page counts, but the postscript processor doesn't includes page images internally queued to the print engine. I've seen the count be off by as much as 6 pages. What we resorted to was making a custom gateway daemon that transparently relays data to/from the printer but stalls at the end-of-job until the page count returned stabalizes. If users typically queue several jobs at once, it can slow the time to completion considerably.
I'm looking for marbles all day long.
nitram_1
Occasional Visitor

Re: Printer Queue Page Counting

Typically there are around 290 - 300 jobs sent to this printer in 48 hours. Other than the single page mis-count the total appears to be correct, based on actually monitoring the printed pages. Since I know the accounting file has the correct number of records and records with zero pages should be one - how could I extract this from the accounting file and add a page for each zero page record?
RBrown_1
Trusted Contributor

Re: Printer Queue Page Counting


Check out HELP ACCOUNTING /BINARY. Then check $ACCDEF in SYS$LIBRARY:STARLET.MLB / FORSYSDEF.TLB / SYS$STARLET_C.TLB / etc. I see an ACC$L_PAGCNT in there. You will have to write some code.

There is probably some documentation that describes all this, but I am too lazy to keep looking until I find it.
David Jones_21
Trusted Contributor

Re: Printer Queue Page Counting

The accounting file format is described in appendix C of the System Management Utilities Manual 1 (A-L). I believe later versions of VMS moved it somewhere else.
I'm looking for marbles all day long.
Paul Anderson_7
Frequent Advisor

Re: Printer Queue Page Counting

DCPS has a problem with the way many printers respond to the PostScript request for "pages printed". Many printers respond with how many pages have actually dropped into the output bin, which is not going to provide the correct information. This is because your job might start and end before any pages actually leave the printer because of other jobs printing, or the printer warming up from power-save mode, for example.

So what you really want is the number of pages _interpreted_ by the PostScript interpreter at both the beginning and end of the job. Subtracting those two numbers, as DCPS does, results in the correct answer.

The way many printers (including HP printers) do it is give you the number of pages physically printed during the interpretation of your job. That number is not interesting and not correct.

Standard OpenVMS symbionts such as PRTSMB or LATSYM, having no knowledge of PostScript, attempt a page count by counting form feeds or by counting lines. Since there are no form feeds in PostScript files, and the number of lines of PostScript code has nothing to do with how many pages print, this number is a big approximation.

I can't speak for the TCP/IP Services LPD or Telnet symbionts, but they have no knowledge of PostScript either, so the only accurate page counts they provide would be for text files.

Paul
Jon Pinkley
Honored Contributor

Re: Printer Queue Page Counting

Paul Anderson>>"So what you really want is the number of pages _interpreted_ by the PostScript interpreter at both the beginning and end of the job. Subtracting those two numbers, as DCPS does, results in the correct answer."

From a "cost" point of view, printing an 8 page document with the following commands will use varying amounts of sides imaged "clicks" and sheets of paper.

$ print /que=dcps1 /param=(number_up=4,sides=2) doc.txt ! uses 2 imaging clicks and 1 sheet of paper

$ print /que=dcps1 /param=(number_up=4,sides=1) doc.txt ! uses 2 imaging clicks and 2 sheets of paper

$ print /que=dcps1 /param=(number_up=2,sides=2) doc.txt ! uses 4 imaging clicks and 2 sheets of paper

$ print /que=dcps1 /param=(number_up=1,sides=2) doc.txt ! uses 8 imaging clicks and 4 sheets of paper

$ print /que=dcps1 /param=(number_up=1,sizes=1) doc.txt ! uses 8 imaging clicks and 8 sheets of paper

Since accounting has only one field for "pages printed", your description implies that all the above print commands will report 8 pages printed.

DCPS could "compute" the sides imaged or sheets used based on the pages interpreted.

Does DCPS allow you to set a definition of pages printed to one of (pages,clicks,sheets)?

It would also be possible for the DCPS symbiont to use the GETs from source (ACR$L_GETCNT) and QIOs to printer (ACR$L_QIOCNT) fields for clicks and sheets based on DCPS settings. Some customers may find sides imaged and sheets used more valuable than the number of GETs and number of QIOs. This would be done using the accounting parameter to the SMB$SEND_TO_JOBCTL routine when sending the SMBMSG$K_TASK_COMPLETE message.

Jon
it depends