CUPS lento - solução para pausa entre um job e outro via IPP
Bom, essa é minha primeira contribuição para o VOL, espero que seja útil.
Em um servidor rodando Fedora tenho uma impressora de rede (Lexmark) configurada no CUPS através de IPP, então tenho a seguinte linha no meu printers.conf:
DeviceURI ipp://172.20.20.200
Após a troca do servidor com consequente atualização da versão do Fedora, algo mudou. Uma pausa de alguns segundos ocorria entre cada trabalho de impressão gerado pelo CUPS. Como o volume de impressão é muito grande, isso logo se tornou um problema.
Atualizar o CUPS para a última versão não ajudou. Então descobri que não se tratava de um bug do CUPS, nem de alguma configuração, mas sim de um novo recurso do CUPS.
A solução foi alterar o código fonte e recompilar o CUPS. Os fontes do CUPS podem ser obtidos neste link.
Edite o arquivo backend/ipp.c e altere as seguintes variáveis na linha 260:
[1] Comentário enviado por rafanico em 01/03/2010 - 10:29h
Bom dia...
Vou aproveitar seu post para pedir ajuda...
Estou com o mesmo problema que vc enfrentou, mas não estou conseguindo resolve-lo, visto que uso as impressoras por TCP via socket. Estou quebrando a cabeça. O font responsável pelo socket esta no backend/socket.c, mas não achei a opção correta para alterar (isso se dá por causa do meu nulo conhecimento de c).
O que eu percebi é que essa pausa começou após a Apple começar a mexer no Cups.
Enquanto eu trabalhava com o cups 1.2.x tudo era uma beleza. Após usar o 1.3.x a pausa começou. Essa pausa é extremamente incomoda no meu caso, pois usamos impressoras bematech para a autenticação de documentos, e os usuários, como sempre, se incomodam e não tem paciência.
O novo cups que instalei é o 1.4.2. Uso o Debian Lenny com LTSP 4.2. As impressoras são instaladas via socket...
Preciso de uma mão.. Já estou alguns dias empenhado mas sem sucesso. Pode me ajudar?
[2] Comentário enviado por rsanches em 01/03/2010 - 17:36h
Ola... voce tem razao, os arquivos do backend sao separados por tipo de conexao. No meu caso, é o ipp.c porque minha impressora é conectada via IPP, no seu caso deve ser mesmo o socket.c. Realmente este arquivo nao tem as mesmas variaves que o ipp.c, mas ele tem uma linha que acho que vale a pena voce tentar alterar... linha 393, tem o seguinte:
wait_time = time(NULL) + 5;
E com o seguinte comentario:
Wait up to 5 seconds to get any pending back-channel data...
Acho que vale a pena mudar esse valor de 5 para 0 ou 1, recompilar e instalar.