Isso só com o fabricante; só ele que consegue ajudar a resolver esse tipo de coisas escabrosas.
furacao123
O problema é que o fabricante nao esta identificando o problema…
e esse erro ocorre nao quando eu mando um comando pra impressora atraves da dll mas em momentos de abrir um novo JDialog por exemplo, estou no frame principal e mando abrir um novo jdialog fecha a aplicação, parece que nao foi possivel alocar memoria mas estou fazendo o teste com -Xss32M onde o fabricante sugere 8M apenas
E
entanglement
Experimente, ao chamar o programa, passar o parâmetro -Xcheck:jni
Executei com esse parametro e agora ele vai me mostrar um log de erro mais apurado?
E
entanglement
Não sei exatamente o que ele faz. Eu sei que vários colegas que mexem com JNI dizem que é necessário usar esse parâmetro para pegar erros bobos no JNI. Como você está usando JNA, no entanto, pode ser que não ajude muito.
furacao123
Entendi observando os parametros eu sempre aumento a memoria da memoria estatica vou agora setar mais memoria RAM para testar
# -Xms<size> set initial Java heap size
# -Xmx<size> set maximum Java heap size
# -Xss<size> set java thread stack size
eu só estava utilizando o Xss
E
entanglement
Eu recomendo mexer pouco no -Xss (o default do Java é 128K, mas pode usar até uns 8M, conforme foi indicado pelo fabricante. Não use mais que isso). Onde você costuma ter de mexer é no -Xmx.
furacao123
Resolvi o problema estava no retorno da dll onde o array de byte deveria receber um byte a mais pois em C sempre retorna o ultimo como 0, com isso a aplicação em java estava recebendo 1 byte a menos e em determinado tempo dava problemas na instanciação do objeto
aumentando um byte em cada metodo de retorno da dll ficou certo.
Obrigado.
D
DouglasCar
Olá furacao123, esta implementação de aumentar em um byte em cada metodo de retorno da dll foi feita na dll ou em sua aplicação java? Se foi na dll te pergunto, você alterou a dll ou a fabricante do ECF? Ainda se foi na dll poderias me passar a mesma ou informar onde eu poderia baixar esta dll alterada? Outra coisa, poderias me passar qual o modelo de ECF que apresentou este problema (Elgin, Epson, Bematech ou …)
furacao123
DouglasCar ja faz um tempo que tive esse problema, e ja faz um tempo que não mecho com ECF, mas lembro que o problema foi resolvido no JAVA, nao teve alteração nenhuma em DLL, eu tinha muito problema com impressoras Epson, pelo que eu me lembre era com ela esse problema.
Outra coisa tinha um problema na Epson ao fazer a Redução Z, dava estouro de memoria static, tinha que rodar a aplicação aumentando o Xss.
D
DouglasCar
Obrigado pelo retorno furacao123, estamos enfrentando o problema de fechamento da aplicação e ao verificarmos o arquivo de log gerado no diretorio principal da aplicação sempre encontramos o erro com a ntdll.dll. Só que no nosso caso a impressora é Elgin, mas enfim valeu pela ajuda.