10 Replies Latest reply on May 2, 2014 3:42 PM by Steven English

    SNMP Device Status check

    Wally Strzelec Adventurer

      I am using Uniprint 8.4

       

      I am attempting to stop users from releasing their print job from a release station if the printer is jammed or the paper tray is out. I am using a Pharos Technote named "TechNote Checking Device Status.pdf" dated Nov 2012.

       

      It says that the rules for determining online or offline state can be altered to allow for devices which respond differently from the standard expected results. An override file is installed with the Secure Release Service. This override file is an xml file and is installed into the system application data location: <applicationdata>\PharosSystems\AssetManagement\

       

      A PharosSystems.AssetManagement.PrinterAvailabilityRules.xml file already existed and so I added a the following new rule to C:\Programdata\PharosSystems\AssetManagement\PharosSystems.AssetManagement.PrinterAvailabilityRules.xml

       

      <rule><hrDeviceStatus>3</hrDeviceStatus><hrPrinterStatus>3</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0080</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

       

      Which I believe to be that if the Device status is Warning (3), Printer Statis is Idle (3) and error state is that he input tray is missing (0x0080), report device as offline.

       

      And restarted the Secure Release Service and the pharos administrator.

       

      And when I run a state check, or print to the device, Pharos still see the device as online. Doing a network trace, the SNMP that is being queried is:

       

      .1.3.6.1.2.1.25.3.2.1.5.1 .1.3.6.1.2.1.25.3.5.1.1.1 .1.3.6.1.2.1.25.3.5.1.2.1

       

      The SNMP that is being returned is:

       

      .1.3.6.1.2.1.25.3.2.1.5.1=3 .1.3.6.1.2.1.25.3.5.1.1.1=3 .1.3.6.1.2.1.25.3.5.1.2.1=00_80_00_00

       

      So, do I have the rule messed up, in the wrong file, or is something not working right?

       

      -Wally

        • Re: SNMP Device Status check
          Scott Olswold Guide

          Wally,

           

          You have the rule correct. However, please note that rules within the XML file are processed top to bottom, so if you have a rule higher up that is causing the device to come up ONLINE, then your change has no effect. Therefore, if you want your custom rule to apply no matter what, you should make it the first rule line in your file.

           

          Note that when you edit this file, you must restart the Secure Release Service service.

           

          Regards,

          Scott

            • Re: SNMP Device Status check
              Wally Strzelec Adventurer

              Below is the complete file. My new rule is the first rule and restarted Secure Release Service service. Pharos still reports device as online.

               

              -Wally

               

              <PrinterAvailability>

              <rule><hrDeviceStatus>3</hrDeviceStatus><hrPrinterStatus>3</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0080</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

              <rule><hrDeviceStatus>5</hrDeviceStatus><hrPrinterStatus>1</hrPrinterStatus><hrPrinterDetectedErrorState>NULL</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

              <rule><hrDeviceStatus>5</hrDeviceStatus><hrPrinterStatus>1</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0800</hrPrinterDetectedErrorState><Availability>ONLINE</Availability></rule>

              <rule><hrDeviceStatus>5</hrDeviceStatus><hrPrinterStatus>1</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0200</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

              <rule><hrDeviceStatus>4</hrDeviceStatus><hrPrinterStatus>ANY</hrPrinterStatus><hrPrinterDetectedErrorState>ANY</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

              <rule><hrDeviceStatus>3</hrDeviceStatus><hrPrinterStatus>5</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0200</hrPrinterDetectedErrorState><Availability>ONLINE</Availability></rule>

              <rule><hrDeviceStatus>3</hrDeviceStatus><hrPrinterStatus>NOTNULL</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0200</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

              <rule><hrDeviceStatus>NOTNULL</hrDeviceStatus><hrPrinterStatus>NOTNULL</hrPrinterStatus><hrPrinterDetectedErrorState>NOTNULL</hrPrinterDetectedErrorState><Availability>ONLINE</Availability></rule>

              <rule><hrDeviceStatus>NULL</hrDeviceStatus><hrPrinterStatus>NULL</hrPrinterStatus><hrPrinterDetectedErrorState>NULL</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

              <rule><hrDeviceStatus>ANY</hrDeviceStatus><hrPrinterStatus>ANY</hrPrinterStatus><hrPrinterDetectedErrorState>ANY</hrPrinterDetectedErrorState><Availability>ONLINE</Availability></rule>

              </PrinterAvailability>

                • Re: SNMP Device Status check
                  Steven English Guide

                  Wally,

                   

                  My testing shows the same and I have a ticket open with Pharos.  I even tried just having a single line that would in essence disable printing (instructing running and idle printers to report as offline).  When I entered a malformed or truncated rule I was able to get a couple of different errors depending on what I had messed up), but that only confirms that the file is being parsed since it is not being properly observed for either of us.  My system is 8.4 as well - including the recent RAW 9100 print server and SRS hotfix.

                   

                  Regards,

                  Steven

                   

                  UPDATE:  The problem I was encountering was actually a misunderstanding of how the Uniprint code is processing for a rule match.  You cannot simply create a rule to match whatever is being returned by SNMP, it must be one on the list that Pharos is looking to match.  Anything not on that list needs to be matched up with a "wildcard" (i.e. NULL, NOTNULL, ANY).  See attachment for list of error states.

                    • Re: SNMP Device Status check
                      Paul LaFollette Guide

                      So would this be the same documentation that can help me correct the tendency of my Uniprint 8.4 deciding a printer is unavailable for reason of "low toner"?

                       

                      Since bringing our 8.4 system online mid April, I've had a lot of printer unavailable conditions when the only potential issue is "low toner" (or other "warning" type status) and the alert description lists that "warning" status condition.   Seems a bit aggressive on the printer status condition.

                       

                      Thanks,

                      - Paul L.

                        • Re: SNMP Device Status check
                          Steven English Guide

                          Paul,

                           

                          That is correct.  Just a reminder, based on what I experienced, Pharos is only looking to match what is listed in the document.  I was trying to make a rule that would return devices as being offline if everything was normal (just to test the that the rules were working as expected).  Since the 0x0000 code is not one that Pharos looks for, the rule was essentially ignored.  Also, keep in mind that the rules are applied from the top of the document down which allows for utilization of lower priority rules as a catch-all.

                           

                          Regards,

                          Steven

                      • Re: SNMP Device Status check
                        Wally Strzelec Adventurer

                        Working with Steven English, he was able to help me detect the following SNMP

                        .1.3.6.1.2.1.25.3.2.1.5.1=5 .1.3.6.1.2.1.25.3.5.1.1.1=1 .1.3.6.1.2.1.25.3.5.1.2.1=88_04_00_00

                        with the rule:

                        <rule><hrDeviceStatus>5</hrDeviceStatus><hrPrinterStatus>1</hrPrinterStatus><hrPrinterDetectedErrorState>NOTNULL</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

                        I get:

                        [343870832] :: [2014/03/07 14:32:33.648 P2180 T003 d PharosAdministrator] [2014/03/07 14:32:33 P2180 D002 T003 i ] [ApplyRules] Printer state [hrDeviceStatus=Down, hrPrinterStatus=Other, hrPrinterErrorDetectedState=Ok] matched rule [hrDeviceStatus=5, hrPrinterStatus=1, hrPrinterErrorDetectedState=NOTNULL]; Availability is 'Offline'

                         

                        But, it would appear that the hrPrinterDetectedErrorState SNMP field coming from Xerox (00_80_00_00) is not being interpreted

                        .1.3.6.1.2.1.25.3.2.1.5.1=3 .1.3.6.1.2.1.25.3.5.1.1.1=3 .1.3.6.1.2.1.25.3.5.1.2.1=00_80_00_00

                        with the rule:

                        <rule><hrDeviceStatus>3</hrDeviceStatus><hrPrinterStatus>3</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0080</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

                        I get:

                        [343964794] :: [2014/03/07 14:37:19.797 P2180 T003 d PharosAdministrator] [2014/03/07 14:37:19 P2180 D002 T003 i ] [ApplyRules] Printer state [hrDeviceStatus=Warning, hrPrinterStatus=Idle, hrPrinterErrorDetectedState=Ok] matched rule [hrDeviceStatus=NOTNULL, hrPrinterStatus=NOTNULL, hrPrinterErrorDetectedState=NOTNULL]; Availability is 'Online'

                        It appears like hrPrinterErrorDetectedState is interpreted as OK every time.

                         

                        The hrPrinterDetectedErrorState SNMP field coming from one of my HP printers does work

                        .1.3.6.1.2.1.25.3.2.1.5.1=5 .1.3.6.1.2.1.25.3.5.1.1.1=1 .1.3.6.1.2.1.25.3.5.1.2.1=0a

                        with the rule:

                        <rule><hrDeviceStatus>5</hrDeviceStatus><hrPrinterStatus>1</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x0800</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

                        I get:

                        [343246895] :: [2014/03/07 13:44:14.405 P2CF78 T003 d PharosAdministrator] [2014/03/07 13:44:14 P2CF78 D002 T003 i ] [ApplyRules] Printer state [hrDeviceStatus=Down, hrPrinterStatus=Other, hrPrinterErrorDetectedState=Offline, DoorOpen] matched rule [hrDeviceStatus=5, hrPrinterStatus=1, hrPrinterErrorDetectedState=OR 0x0800]; Availability is 'Offline'

                         

                        -Wally

                          • Re: SNMP Device Status check
                            Daniel Johns Tracker

                            The problem seems to be with interpretation of the new 4-bute hrPrinterDetectedErrorState (1.3.6.1.2.1.25.3.5.1.2.1) values comking from the Xerox devices.  In the past, the value has been an octet string with one or two entries.  00_80_00_00  is evidently not being interpreted as meaning 0x0080.  Perhaps it is instead being interpreted as meaning 0x00800000.  If so, then a possible work-around would be to try the rule:

                            <rule><hrDeviceStatus>2</hrDeviceStatus><hrPrinterStatus>3</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x00800000</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

                              • Re: SNMP Device Status check
                                Wally Strzelec Adventurer

                                No luck. It appears that 88040000 does not seem to match 88_04_00_00 as returned from the Xerox Phaser 5550 printer.

                                 

                                Rule:

                                Rule<rule><hrDeviceStatus>5</hrDeviceStatus><hrPrinterStatus>1</hrPrinterStatus><hrPrinterDetectedErrorState type="OR">0x88040000</hrPrinterDetectedErrorState><Availability>OFFLINE</Availability></rule>

                                 

                                Network trace

                                  .1.3.6.1.2.1.25.3.2.1.5.1 .1.3.6.1.2.1.25.3.5.1.1.1 .1.3.6.1.2.1.25.3.5.1.2.1

                                  .1.3.6.1.2.1.25.3.2.1.5.1=5 .1.3.6.1.2.1.25.3.5.1.1.1=1 .1.3.6.1.2.1.25.3.5.1.2.1=88_04_00_00

                                 

                                Log file

                                D002 T003 i ] [AssetDataCollectorProfile] (Collect) Single : Successfully collected asset data from 'Asset: SNMP = EndPoint: 128.194.240.22:161, Hostname: lssprint.tamu.edu, Community: oal-lss'

                                D002 T003 i ] [ApplyRules] Printer state [hrDeviceStatus=Down, hrPrinterStatus=Other, hrPrinterErrorDetectedState=Ok] matched rule [hrDeviceStatus=NOTNULL, hrPrinterStatus=NOTNULL, hrPrinterErrorDetectedState=NOTNULL]; Availability is 'Online'