next up previous contents
Next: Disk Group Up: GET-Funktionen Previous: Processor Group

Printer Group

Die Printer Group wird durch das Modul 'printer.c' implementiert. Um alle Variablen korrekt implementieren zu können, war es notwendig an der ursprünglichen MIB ([3])einige Änderungen vorzunehmen. Die neue Modellierung der Printer Group enthält eine 'printer table', eine 'queue table' sowie eine 'job table' innerhalb der 'queue table'.

Innerhalb der 'printer table' konnten die Variablen 'printerAvStatus, 'printerAction' sowie 'printerError' nicht implementiert werden, da diese Informationen mit den uns zur Verfügung stehenden Möglichkeiten nicht ermittelbar waren.

Die Variablen 'printerName' bzw. 'printerLocation' werden aus der globalen Variable 'Printers' bzw. aus der Konfigurationsdatei gelesen.

Die Variablen 'printerOpStatus', 'printerUsStatus' und 'printerAvStatus' wurden zunächst unter Zuhilfenahme des UNIX-Kommandos '/usr/etc/lpc' implementiert. In der Testphase hat sich aber herausgestellt, daß diese Art der Implementierung zu Performanceverlust bzw. zu Timeouts zur Laufzeit des Subagenten führt. Aus diesem Grunde mußten wir eine andere Möglichkeit suchen, um an die gewünschten Informationen zu gelangen.

Jedem Drucker ist eine Queue zugeordnet, die über ein entsprechendes Spool Directory verfügt, indem bestimmte Konfigurationsdateien verwaltet werden. Eine davon ist die Datei 'lock', die unter anderem dazu verwendet wird, den Status des Druckers zu ermitteln. Zur Bestimmung von 'printerOpstatus' bzw. 'printerAvStatus' betrachten wir das 'execute' Bit des Users oder der Gruppe für diese Datei. Ist das 'execute' Bit des Users oder der Gruppe nicht gesetzt, so ist der 'printerOpstatus' 'ENABLED'. Ist das 'execute' Bit des Users nicht gesetzt, so ist der 'printerAdStatus' 'DISABLED'. Die Variable 'printerUsStatus' wird weiterhin unter Zuhilfenahme des 'lpc'-Kommandos implementiert.

Innerhalb der 'queue table' konnten alle Variablen implementiert werden. Bei 'queueStatus' wird dabei genauso vorgegangen wie bei der Implementierung der Variable 'printerOpstatus' bzw. 'printerAvStatus'. Die Variable 'queuePrinterLocation' zeigt an, ob es sich um einen lokalen oder remote Drucker handelt. Die Variablen 'queuePrinterIndex' bzw. 'queuePrinterName' liefern den Index des Druckers in der 'printer table' bzw. den Namen des Druckers (in der Form: 'HOSTNAME:PRINTERNAME'), dem die Queue zugeordnet ist, falls es sich um einen remote Drucker handelt oder einen leeren String, falls der Drucker lokal ist.

Die 'job table' enthält Informationen zu Druckaufträgen, die in einer Queue gespoolt werden. Hierbei konnten nur die Variablen 'queueJobID', 'queueJobOwner' sowie 'queueJobSize' implementiert werden, da nur diese vom BSD Print System unterstützt werden.


next up previous contents
Next: Disk Group Up: GET-Funktionen Previous: Processor Group
Copyright Munich Network Management Team