故障原因:cups产生子进程处理打印任务的时候,调用网络通讯模块,如果检测到主机和ATS打印服务器直接的网络不通,该子进程则会挂在系统上,打印任务也会在系统上被挂起,无法正常打印。
解决办法:检查网络连通性,检查ATS的IP配置,网关配置,查看路由表,确定默认路由的网关是网点路由器IP。
故障2.5分析:
诊断概述:检查主机到ATS之间打印模式(socket或lpd)是否可以通过对应的9100或者515端口通讯。
检查步骤:suse上可使用netcat命令(netcat –z ATS的IP 端口号)来检查ATS的9100和515端口是否能够正常通信。
对于515端口通讯方式,还需使用lpstat-v |grep $打印机名,查看主机上打印队列。并登入到ATS后输入用户名密码(默认是root,密码111111),到ATS#状态后输入config<回车>,选择“打印服务”,找到lpt0<回车>。查看是否启用了lpr,并且确定lpr后面的队列名称和主机上的打印队列名称一样。
故障原因:cups在发送打印任务之前,主机会根据打印模式(socket或lpd)来选择不同的方式与ATS进行通讯。端口号或者队列名称的不匹配,会导致无法正常打印。 解决办法:修改主机和ATS上的打印端口和打印队列名,使其保持一样。
3.网点ATS打印服务器故障诊断
故障3分析:
诊断概述:检查ATS上是否开启了打印模式(socket或lpd)对应的raw和lpr服务。 检查步骤:登入到ATS后输入用户名密码(默认是root,密码111111),到ATS#状态后敲入netstat命令,来查看ATS是否开启了9100(socket模式)或515(lpd模式)端口 故障原因:ATS上没有开启对应的端口监听打印。
解决办法:登入到ATS后输入用户名密码(默认是root,密码111111),到ATS#状态后敲入config命令<回车>,选择“打印服务”找到lpt0<回车>。查看raw和lpr两种模式是否已经被选中。 故障3.1分析:
- 9 -
诊断概述:检查ATS上是否已经有打印任务送到,以及打印机的状态是否正常。 检查步骤:登入到ATS后输入用户名密码(默认是root,密码111111),到ATS#状态后敲入printer命令,能够显示当前ATS所挂的打印机的详细内容,包含了是否有已经发送到ATS的打印任务,以及打印机的状态,如下图。
故障原因:打印机没有和ATS通过打印电缆连接,或者打印机处于未联机、缺纸或其他异常状态,导致打印机不能正常工作。
只有当打印机状态busy(忙)、PaperEmpty(缺纸)、local(脱机)、error(其它错误)都表现为n时,方可正常打印。使用“printer test 10”测试打印10行内容,看是否能够打印,这样的方式可以测试ATS到打印机的连通性。
解决办法:检查ATS到打印机的物理连接是否正常,打印机的线缆检查,保持打印机是联机状态,并确认打印机有纸。
至此,从Agama打印分离到linux的cups再到ATS的流程以及故障分析已经完毕。如果没有解决您的问题,可以选择以下的诊断案例,一步步的检查。
- 10 -
四、 诊断案例
说明:
以下过程必须一步接一步检查下去,而不要跳跃进行,除非某条款里面指明进入哪一条。Prt 是举例的打印机名,实际中以你的打印机名为准。Test.txt 是举例的打印文件名,实际中以你的文件名为准。Ttyp12是举例的终端号,实际中以你的终端号为准。 1. 打印分离程序已经安装,各项配置完成,不管怎么做就是不打印? 1.1 你是在系统主机的控制台上测试的吗?
a.是:请在终端上测试,控制台上不可以测试? b.否:进入1.2。
1.2 你是在办公PC机的超级终端(或者其它telnet客户端工具)上测试的吗?
a.是: 请尽量在终端上测试,如果非要在超级终端上测试,请在/etc/atsmap.conf文件中配置您的超级终端的tty号或者pc的IP。 b.否(即:在终端上测试的): 进入1.3。 1.3 手工“lp –d prt test.txt”看是否打印?
a.打印了: 手工运行“lp test.txt”然后进入1.5。
b.没打印: 检查prt这个打印机是否安装,安装时的命名的打印机名称,端口,主机地址等是否正确,经检查都没问题,则进入1.4。 1.4 手工“lpold -d prt test.txt” 看是否打印?
a.打印了: 请再仔细确认打印分离程序是否正确安装,如果没有安装,请参考相关说明进行安装。如果已经安装,请确认是否是以root用户安装的,或者请卸载后重新以root用户安装。
b.没打印: 进入1.6。 1.5 查看 /tmp/atslp.log文件
a.提示\
如果终端是通过ATS连接到系统的,那么撤销你所作的配置,将AutoMatchPrinter配置项设置为1即可, 如果还不行,直接配置ATS的IP。
如果终端不是是通过ATS连接到系统的, 那么撤销去掉你所作的配置, 直接配置ATS的IP。
- 11 -
b.提示\
说明分离程序不能得到业务系统中终端带后缀的IP地址,形如终端服务器IP地址.虚终端编号(198.2.1.3.2101),或原始主机名,而且atsmap.conf中也没有配置终端号和打印机的对应关系。这种情况下,请到atsmap.conf配置终端号(tty)和打印机的对应关系,然后再继续测试。
c.提示\:
说明分离程序不能得到终端IP地址或主机名,而且atsmap.conf中也没有配置终端号和打印机的对应关系。这种情况下,请到atsmap.conf配置终端号(tty)和打印机的对应关系,然后再继续测试。
说明:如果上边a和b或者a和c同时出现,则属于异常情况,进入1.8
d.提示\
说明atsmap.conf中的AutoMatchPrinter被配置成了0,请将其重新设置为1,然后再继续测试。
e.提示\:
出现这种情况的原因比较多。
(1) 一个原因是atsmap.conf配置不对, 要仔细检查配置文件, 如徐州某农商行,配置成”ttyp12 prt” ,prt前面少了一个-p标志,另外注意配置行行首不能留空白。 (2) 还有就是ATS的识别采用了名称解析,这时,XXX显示的是一个名称,如某商业银行,AutoMatchPrinter 设置的是1, 但是由于ATS采用了主机名来识别,而且在/etc/hosts文件中增加了ATS的IP和主机名的对应关系, 遇到这种情况,建议配置文件中直接配置tty 或者不要采用hosts解析机制。
(3)还有就是有时ATS的管理信息中配置了ATS的名称,这时,XXX显示的是一个名称,即分离程序得到的ATS信息是ATS的名称而不是ip,可能会导致打印失败,建议在atsmap.conf文件中将第一列配置成ATS的名称,或者直接配置为各终端的tty , 或者ATS的管理信息里面不要给ATS设置名称。 1.6 手工运行”lpstat –p”,看打印机是否被disable?
是:进入/usr/bin 运行./enable prt,使得prt打印机处于enable状态。 否: 如果是linux系统进入1.7, 如果是sco系统,进入1.8。
1.7 查看cups系统是否正常运行?(Redhat 和Suse系统中: 用“chkconfig |grep cups”查看;
- 12 -
中标华普系统中: 用“ps –e|grep cupsd”查看)。 是: 进入1.8。
否: 请启动cups服务系统。(Redhat和Suse系统中: 用“chkconfig cups on”启动;中标华普系统中,进入/usr/sbin/,运行./cupsd启动)。 1.8 联系技术人员,汇报以上过程。
2.如果遇到B网点通过lp程序打印文件打印到A网点
原因1:系统上只装了一台打印机,而且该打印机是映射到A网点ATS的,且该打印机是系统的默认打印机。
解决办法1:在系统上安装一台映射到/dev/null的打印机或者安装一台不会产生冲突的随意打印机,并设置该打印机为系统的默认打印机。
解决办法2:为B网点也配备一台ATS设备,并在系统上再安装一个映射到B网点ATS的打印机。
原因2:在/tmp目录下没有atslp.log文件打印分离程序没有被执行,没起作用。 解决办法1: 检查/etc/agama目录下的atsmap.conf文件是否存在,如果不存在,请重新安装打印分离程序。
解决办法2: /etc/agama目录的读写权限不正确,导致用户对/etc/agama/atsmap.conf文件无法访问,打印分离程序没有正确运行,因此打印内容送到了默认打印机了。这时你只要在/etc目录下执行chmod 777 agama操作即可。 3. 高速行打漏数,或者有的页没打印出来?
请将ATS上打印服务配置中的“查询模式”选中,并检查打印电缆及硬件设备。 4. 打印乱码?
将ATS上打印服务配置中的\查询模式\选中,并询问乱码的具体情况。并检查打印电缆及硬件设备是否已经老化或者有故障, 必要时更换打印电缆或者打印机。仍旧没解决时,要考虑是否是解密程序失效的原因。
5. 打印不换页,或者出现空白页, 或者格式不正确?
解决方法1:可将ATS上打印服务配置中的“追加换页”选中或取消。 解决方法2:可在系统中修改打印机的型号试试看。
- 13 -