Appendix D - LexLink Bridge Log Messages
Introduction to LexLink Bridge Log Messages
This appendix is intended as an aid to troubleshooting problems with the LexLink Bridge Service (LBS). It contains a minimal description of the internal software architecture of the service, and a list of log messages that can be generated by the service.
Lexmark network printing adapters use LexMark's proprietary LexLink protocol. VINES print services support network printing via Banyan's proprietary PCPrint protocol. The LexLink Bridge Service translates between these two protocols.
A LexLink Bridge Service also performs all of the duties and activities of a typical VINES service. It interacts with the core VINES services (Server Service, StreetTalk, Vines Security Service), and uses Banyan's Remote Procedure Call (RPC) mechanism to interact with client software used to configure and monitor the service.
The LexLink Bridge Service software is based on an object-oriented architecture. This means that the software within the service is partitioned into software objects of various types. Some of these software objects correspond to physical objects; some simply represent a concept which is significant to the task of managing connections between LexLink devices and VINES print services.
Understanding what some of these objects are and what they do can be very helpful to understanding log messages. Many log messages are prefixed by a string that identifies the object that issued the message.
The following sections describe the most important types of objects.
There is one PCPrint Agent object for each enabled connection between a print service and a LexLink adapter port. Each PCPrint Agent object acts very much like a copy of PCPrint running on a VINES client workstation. When such an object is created or reset, it goes through a series of actions in order to establish a PCPrint connection with a print service.
Each PCPrint Agent object is associated with one LexLink Port object (described in "LexLink Ports" ). As data is received by the PCPrint Agent from a print service, it is passed on to the LexLink Port object.
At any given time, a PCPrint Agent is in a particular state. There are many different states, most of which are related to the various steps that are required to establish communications with a print service. Setting the service log level to 2 will cause all PCPrint Agent state changes to be logged. These messages are useful when the service configuration software shows a connection's status as Source Failed, indicating that the PCPrint Agent is having difficulty connecting to a Print Service (which is the source of print data for a connection).
Table D-1 lists states for PCPrint Agent objects.
A LexLink Port object is a software object which represents a port on a LexLink adapter. The first time any enabled connection refers to a particular port, a LexLink Port object is created to manage communications with that port. Several connections (and therefore several PCPrint Agent objects) can refer to the same port.
LexLink Port objects:
Receive print data and requests to begin and end jobs from PCPrint Agents. Receive various indications about LexLink protocol activity from LexLink Device objects (see "LexLink Devices" for more information on device objects). Respond to various administrative requests from the RPC interface, including such things as configuring port parameters and resetting ports.
LexLink Ports handle much of the logic involved in coordinating access to a port by multiple print services. They also coordinate startup and shutdown activities that can occur when the service starts up or shuts down, when errors cause a job to abort, and when ports are reset or enabled/disabled.
Each LexLink Port object is closely associated with a single LexLink Device object. See "LexLink D evices" for more information on device objects.
At any given time, a LexLink Port object is in a particular state. Setting the service log level to 2 will cause all LexLink Port state changes to be logged. These messages are useful when the service configuration software shows a connection's status as Dest Failed, which may indicate that the LexLink Port is having difficulty communicating with a LexLink adapter port (the destination of print data for a connection).
Table D-2 lists states for LexLink Port objects.
A LexLink Device object is a software object which represents a LexLink network adapter. Each such object is associated with one or more LexLink Port objects. These two types of objects coordinate very closely to implement all of the details of the LexLink communications protocol. When a connection is enabled, and it is the first enabled connection in the service on a particular LexLink adapter, then a corresponding LexLink Device object is created.
LexLink Device objects handle most of the details of packing and unpacking data in LexLink protocol packets. Incoming packets are handed to a LexLink Device by the LexLink Listener (see the section "LexLink Listener" for more information). The LexLink Device object in turn may dispatch an incoming protocol packet and an associated LexLink Port object. Device objects also manage access to an adapter when certain management functions are performed that are not associated with a particular port. They also perform the very important activity of establishing and remembering a source-level route to an adapter on a Token Ring.
The LexLink Listener is a singleton object; there is only one such object in a LexLink Bridge Service. It listens for incoming LexLink protocol packets, and dispatches them to LexLink Device objects for processing. The LexLink Listener can only issue a couple of log messages that may indicate problems with incoming network communications.
The following example may clarify the relationships among objects.
Consider a LexLink Bridge Service with four connections defined. The configuration displayed by the configuration program might look like this:
The following diagram shows the flow of data among the objects involved in this configuration. Since the fourth connection is disabled, it does not appear in this diagram.
Log messages of levels 0, 1, and 2 are listed and accompanied by explanatory paragraphs that may be of use to network administrators and support personnel.
Log messages of level 3 are not listed, since they are intended for use by software engineers and consequently are tied very closely to minute details of the software's architecture.
These are log messages that are not associated with any particular LexLink objects. The number in parentheses after the log message indicates the log level of the message.
Cannot register RPC port with StreetTalk, error %d. This error is fatal. (0) - The service cannot register itself with StreetTalk to receive Remote Procedure Calls from client programs. Although a fully configured LexLink Bridge Service would still be able to perform useful work, this error is considered fatal because the service is cut off from all administrative control.
Error %d during connection initialization. (0) - An error occurred while attempting to initialize the LexLink connections. This message may appear during service startup, or after a near power failure.
Program error at %s:%d. ... (0) - Messages that begin with these words indicate a possible software error condition and should be reported to Banyan. Please report the exact and entire text of this message to Banyan Support personnel; this will assist Banyan engineers in identifying the source of the message.
Shutdown completed. (0) - This message is issued during service shutdown after all connections have been successfully shut down in an orderly fashion.
The RPC daemon task failed. Stopping. (0) - The task responsible for receiving Remote Procedure Calls from clients has failed. This error is fatal.
Bad or missing server name in argument list. This error will be ignored. (1) - An error occurred in the startup sequence of the service. This may indicate a problem with the server's Server Service.
LexLink Listener: Error %d on receive. (1) - An error occurred while trying to receive LexLink packets. The error will be ignored.
LexLink Listener: Received a packet from an unknown device. (1) - Issued when a LexLink packet is received from an adapter which is not currently referenced by any connections in the service. Isolated occurrences may be due to temporary timing anomalies. If this recurs frequently, it may indicate a software error or incompatibility between the software and the adapter.
LexLink Listener: Received short packet. (1) - A bad LexLink protocol packet was received and discarded. This could be an indication of network problems.
Unable to enable connection, error %d. (1) The connection is now disabled - An attempt to enable a connection failed. The error code given may provide further information.
Unable to respond to a client RPC call, err %d. (1) - A communications error occurred during the handling of a Remote Procedure Call from a client. The error code given my provide further information.
Shutting down connections. (2) - Issued just before the service begins to shut down all of the connections in response to a shutdown request from the Server Service.
All of the following messages are prefixed by the following text:
LexLink Device %d: ... (prefix)
These words appear before all log messages which pertain to the handling of LexLink protocol interactions with a particular LexLink device.
The %d is replaced by an identification number that indicates which connection issued the message.
Several messages give information about incoming LexLink packets that could not be properly interpreted by the LexLink Device software. The descriptions of these messages say simply: "LexLink packet error." Occasional occurrences of such errors may be due to network errors. Frequent recurrence may indicate either an error in the software, or an incompatibility between the service software and the adapter.
The number in parentheses after the log message indicates the log level of the message.
Port configuration request rejected. (0) - An adapter port refused to honor a configuration request. This is usually due to the port not being properly captured. (See "Capture violation ...").
Program error at %s:%d. ... (0) - Messages that contain these words indicate a possible software error condition and should be reported to Banyan. Please report the exact and entire text of this message to Banyan Support personnel; this will assist Banyan engineers in identifying the source of the message.
Short response packet to parameter query. (0) - LexLink packet error.
Unrecognized response packet to Control. (0) - LexLink packet error.
Capture violation on port %d. (1) - This indicates that an attempt to capture a port failed. Version 1 of the LexLink protocol requires a port to remember the network address of the host which last captured it. Only that host is allowed to print jobs or configure the port. Attempts by other hosts to configure or print to the port will cause a capture violation.
Attempts by any host to capture the port (including the host that previously captured the port) will also cause a capture violation. Normally, the service attempts to capture a port when the first connection referring to the port is enabled, and attempts to release it when the last connection is disabled or deleted. In order to make a captured port available so that it can be captured again, it must first be released. This can be done by deleting or disabling all connections that refer to the port, or by resetting the port.
Ports are not properly released when the service is deleted.
Discarding unsolicited response. (1) - A LexLink response packet was received from an adapter and could not be matched up with a pending request. The packet will be ignored. An isolated occurrence of this message may indicate that the service and the adapter are temporarily out of synch with each other; if it recurs frequently, it could indicate a software error or incompatibility between the software and the adapter.
Error on send or broadcast: %d. (1) - This message indicates that an error occurred when trying to send a packet to an adapter. The error code should provide an indication of the source of the problem.
Program check not handled: 0x%x. (1) - The LexLink adapter has issued a "program check", most likely indicating some problem with protocol handling. This may indicate a software error or some incompatibility between the software and the adapter. Please contact Banyan Support if this message occurs.
Sequence error on port %d. (1) - This indicates that a protocol error has occurred while a job was printing. Resetting the port will clear the condition. Frequent recurrence of this message may indicate a software error or some incompatibility between the software and the adapter.
Short packet received. (1) - LexLink packet error.
Structure of query response pkt is wrong. (1) - LexLink packet error.
Unexpected ack packet received, flags = %d. (1) - LexLink packet error.
Unknown pkt (0x%02x, 0x%02x, 0x%02x, 0x%02x). (1) - LexLink packet error.
Unrecognized or short status pkt. (1) - LexLink packet error.
Unrecognized response to parameter query. (1) - LexLink packet error.
Control request rejected. (2) - Indicates that the adapter refused to honor a Control request. Subsequent log messages should provide more information.
Creating object. (2) - This message is issued when a new LexLink Device object is being created. This is always the first message generated by a particular LexLink Device object.
Destruction complete. (2) - Indicates that the LexLink Device object has finished shutdown processing and is about to cease to exist. This is always the last message generated by a particular LexLink Device object.
All of the following messages are prefixed by the following text:
LexLink Port %d(%d): ...
These words appear before all log messages which pertain to the handling of LexLink protocol interactions with a particular port of a LexLink device.
The %d is replaced by an identification number that indicates which device is involved. The number in parentheses is the number of the port involved. On LexMark Model 4033 devices, the port number will be 0 for the serial port and 1 for the parallel port.
The number in parentheses after the log message indicates the log level of the message.
Error %d occurred while in state %s. (0) - An error occurred. The error code is given, as well as the state that the LexLink Port object was in at the time that the error occurred. The state may be helpful in determining the cause of the error.
Intervention request cleared. (0) - The adapter port has indicated that intervention is no longer requested. (See following log message.)
Intervention requested, flags=0x%x. (0) - Issued when the adapter port has indicated that operator intervention may be required. The "%x" is replaced by a code that indicates what type of intervention is needed. This code is printer-specific.
Program error at %s:%d. ... (0) - Messages that contain these words indicate a possible software error condition and should be reported to Banyan. Please report the exact and entire text of this message to Banyan Support personnel; this will assist Banyan engineers in identifying the source of the message.
Port type %d is not recognized. (0) - Each adapter port is described by a type code. The software does not recognize the port's type code. This error will be ignored, and this should not affect the ability to print data on the port. However, it will not be possible to configure the port. This message may indicate that the software should be updated to a newer revision.
Changing to state %s. (2) - This message is issued each time that the LexLink Port object changes state.
Creating object. (2) - This is always the first message issued by a particular LexLink Port object.
Destruction complete. (2) - This is always the last message issued by a particular LexLink Port object.
Handling event %s, err %d. (2) - LexLink Port objects change state in response to events. Each event may be accompanied by an error code. This log message is issued whenever an event with a non-zero error code is received by the LexLink Port object.
Handling event %s. (2) - Issued upon receipt of an event with a zero error code. See previous log message.
Error %d occurred while in state %s. (3) - Normally, errors are reported by LexLink Port objects using log level 0 (see next entry). However, when a LexLink Port object is already in an error state, further errors are logged at level 3 to reduce clutter in the log file.
All of the following messages are prefixed by the following text:
PCPrint Agent %d: ...
These words appear before all log messages which pertain to the handling of PCPrint protocol interactions with a VINES Print Service.
The %d is replaced by an identification number that indicates which connection issued the message.
The number in parentheses after the log message indicates the log level of the message.
''%s'' denies access to ''%s''. I will try to connect again in 5 minutes (0) - The first %s is replaced by a Print Service name. The second %s is replaced by the name of the LexLink Bridge Service. The message indicates that the Print Service broke the SPP connection with the PCPrint Agent object for security reasons. This is probably due to an error in the configuration of the Print Service.
After correcting the problem, disable and re-enable the connection, or wait up to 5 minutes as indicated in the message.
''%s'' does not exist. (0) - The %s is replaced by a Print Service name. The PCPrint Agent was unable to find this Print Service on the network. This is probably due to an error in the configuration of the LexLink Bridge Service.
After correcting the problem, disable and re-enable the connection.
Protocol error: state %s, event %s. I will try to reconnect in 10 seconds (0) - This message indicates that an error has occurred in the PCPrint protocol. This may be due to a software error. Please report the exact and entire text of this message to Banyan Support personnel; this will assist Banyan engineers in identifying the source of the message.
The PCPrint Agent object will close the SPP connection with the Print Service and attempt to reconnect after a brief delay.
Bad print service name. (0) - The Print Service name is too long or otherwise malformed. Check the LexLink Bridge Service configuration.
Program error at %s:%d. ... (0) - Messages that contain these words indicate a possible software error condition and should be reported to Banyan. Please report the exact and entire text of this message to Banyan Support personnel; this will assist Banyan engineers in identifying the source of the message.
Unexpected error in state %s. Last VINES error code: %d (0) - This may indicate a software error.
''%s'' disconnected me while awaiting validation. I will try to connect again in 60 seconds (1) - The %s is replaced by a Print Service name. The Print Service closed the SPP connection while the PCPrint Agent was waiting for the results of the Print Service's security check.
This may be due to network errors, unexpected Print Service shutdown, or multiple attempts to establish multiple PCPrint connections to a single Print Service.
''%s'' disconnected me while waiting for a new job. I will try to reconnect in 10 seconds (1) - The %s is replaced by a Print Service name. The Print Service closed the SPP connection while the PCPrint Agent was idle. This may be due to network errors, or unexpected Print Service shutdown.
''%s'' disconnected me while waiting for job data. I will try to reconnect in 10 seconds (1) - The %s is replaced by a Print Service name. The Print Service closed the SPP connection while the PCPrint Agent was printing a job. This may be due to network errors, or unexpected Print Service shutdown.
Error %d while trying to connect. I will try again in 10 seconds (1) - An error occurred which prevented the establishment of an SPP connection with the Print Service for PCPrint communications.
SPP port found in ST is not valid. ''%s'' may not be ready yet. I will try to get the port again in 60 seconds (1) - The %s is replaced by a Print Service name. When a Print Service is ready to receive SPP connections for PCPrint communications, it registers its SPP port in StreetTalk. This message indicates that the port which was found in StreetTalk for the Print Service is not valid.
It may be that the Print Service is not running, or is still in the process of starting up.
Unable to find ''%s''. VINES error: %d. (1) - The %s is replaced by a Print Service name. The PCPrint Agent object was unable to find this Print Service. This may be due to an error in the configuration of the LexLink Bridge Service.
Too many mid-job indications received for this job. (2) - This message indicates that an error has occurred in the PCPrint protocol. This may be due to a software error or incompatible software revisions of the Print Service and the LexLink Bridge Service.
Changing to state %s. (2) - This message records a PCPrint Agent state change. See the Architecture section of this document for a discussion of PCPrint Agent states.
Creating object for print service ''%s''. (2) - This message is issued when a new PCPrint Agent object is being created. This is always the first message generated by a particular PCPrint Agent object.
Destruction complete. (2) - Indicates that the PCPrint Agent object has finished shutdown processing and is about to cease to exist. This is always the last message generated by a particular PCPrint Agent object.
Handling event %s. (2) - PCPrint Agent objects change state in response to events. This log message is issued whenever an event is received by the PCPrint Agent object.
Recoverable error %d on connect. (2) - Indicates that an error occurred while attempting to connect to the Print Service. The error is deemed to be recoverable.