Falha ao iniciar o Motor Periférico - An instance of this program running on your system

Problema

O Motor Periférico inicia normalmente, mas logo após iniciar (os conversores e geradores de retorno) pára de responder e exibe a mensagem: "Sorry, it seems there's already an instance of this program running on your system" ("Desculpe , parece que já existe uma instância deste programa em execução no seu sistema").


Solução/Procedimento

O DF-e Client possui um mecanismo chamado Single Instance.

Ele é responsável por garantir que somente uma instância do DF-e Client seja executada por vez.

Quando o Motor Periférico inicia, ele se "registra" passando uma chave (OOBJ-NFE-MOTOR-PERIFERICO) na porta 40050.

Segue abaixo um exemplo de log quando existe uma outra instância do DF-e Client rodando na mesma máquina:

Running Oobj Motor-Periferico-GUI...
wrapper  | --> Wrapper Started as Console
wrapper  | Java Service Wrapper Community Edition 64-bit 3.5.7
wrapper  |   Copyright (C) 1999-2010 Tanuki Software, Ltd. All Rights Reserved.
wrapper  |     http://wrapper.tanukisoftware.com
wrapper  |
wrapper  | Launching a JVM...
jvm 1    | WrapperManager: Initializing...
jvm 1    | 3005 09:25:24,280 [WrapperSimpleAppMain] INFO  ApagaFontTempFiles - Foram encontrados 1 arquivos para serem excluídos do diretório temporário (/opt/oobj/aplicativos/oobj/motor-periferico-std/temp).
jvm 1    | 3005 09:25:24,286 [WrapperSimpleAppMain] INFO  MotorPerifericoMain - Timezone do sistema: America/Cuiaba
jvm 1    | 3005 09:25:24,286 [WrapperSimpleAppMain] INFO  MotorPerifericoMain - Configurando timezone para 'America/Sao_Paulo'
jvm 1    | 3005 09:25:24,287 [WrapperSimpleAppMain] INFO  MotorPerifericoMain - Procurando a pasta de configuração no caminho relativo.
jvm 1    | 3005 09:25:24,287 [WrapperSimpleAppMain] INFO  MotorPerifericoMain - O periférico está instalado em [/opt/oobj/aplicativos/oobj/motor-periferico-std/jars/oobj-nfe-motor-periferico-gui-18.15.0.jar]
jvm 1    | 3005 09:25:24,304 [WrapperSimpleAppMain] DEBUG Config     - carregando arquivo - /opt/oobj/Config/sistema.properties
jvm 1    | 3005 09:25:24,307 [WrapperSimpleAppMain] INFO  MotorPerifericoMain - Inicializando banco de dados local do periferico.
jvm 1    | 3005 09:25:24,372 [WrapperSimpleAppMain] INFO  SQLiteServer - Inicializando SQLiteDB... Driver 'SQLiteJDBC'...
jvm 1    | 3005 09:25:24,378 [WrapperSimpleAppMain] INFO  SQLiteServer - O arquivo do banco SQLite esta localizado em '/opt/oobj/Config/bdlocal/localsqlite.db'
jvm 1    | 3005 09:25:24,378 [WrapperSimpleAppMain] INFO  MotorPerifericoMain - Banco de dados local inicializado com sucesso.
jvm 1    | 3005 09:25:24,378 [WrapperSimpleAppMain] INFO  MotorPerifericoMain - Interface grafica desabilitada pela opcao '-serviceonly'. Rodando apenas servico.
jvm 1    | 3005 09:25:24,417 [WrapperSimpleAppMain] DEBUG fericoSingleInstance - Existe outra instancia
jvm 1    | 3005 09:25:24,418 [WrapperSimpleAppMain] ERROR MotorPerifericoMain - Erro na inicializacao: Existe outra instancia em execucao. Finalizando
jvm 1    | java.lang.RuntimeException: Existe outra instancia em execucao. Finalizando
jvm 1    |      at br.com.oobj.me.gui.MotorPerifericoMain.<init>(MotorPerifericoMain.java:96)
jvm 1    |      at br.com.oobj.me.gui.MotorPerifericoMain.getInstance(MotorPerifericoMain.java:414)
jvm 1    |      at br.com.oobj.me.gui.MotorPerifericoMain.main(MotorPerifericoMain.java:362)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:498)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:287)
jvm 1    |      at java.lang.Thread.run(Thread.java:745)
jvm 1    | 3005 09:25:24,419 [WrapperSimpleAppMain] DEBUG MotorPerifericoMain - Finalizando em 10 segundos
wrapper  | <-- Wrapper Stopped

 

Esse erro pode ocorrer por dois motivos:

1- quando realmente existe uma outra instância em execução (Esse mecanismo foi criado exatamente para garantir que não tenhamos 2 instâncias em execução ao mesmo tempo). Se isso ocorrer, verifique se não tem outra instância sendo executada por outro usuário. Uma forma de verificar é analisando os processos do Windows (de todos os usuários). Procure pelo processo: "javaw.exe"

2- quando o Motor Periférico tenta registrar nessa porta (40050), mas ela não está disponível. O Sistema Operacional exibe então a mensagem de erro:  "Sorry, it seems there's already an instance of this program running on your system".

 

A solução para o problema é liberar a porta no Sistema Operacional (firewall) para que o Motor Periférico possa acessá-la.

Ou configurar outra porta através do parâmetro PORTA_REGISTRO_PERIFERICO do preferencias-padrao.properties

 

Referência

Sem referências

0 (0)
Avaliação do Artigo (Nenhum voto)
Avaliar esse artigo
Anexos
Não há anexos para este artigo.
Artigos Relacionados RSS Feed
Comentários
Nome
Email
Código de Segurança Security Code
Não há comentários para este artigo. Seja o primeiro a postar um comentário.