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.