Duvida Erro 49 Memory violation

Discussão em 'Progress 4GL' iniciado por lwazevedo, Fevereiro 27, 2015.

  1. lwazevedo

    lwazevedo Membro Ativo

    Boa tarde.

    Tenho um programa que executa uma Lib no linux, e em algumas vezes acabou ocorrendo o erro 49 Memory violation.

    Tenho uma função que cria um objeto Call em uma variavel handle, este objeto Call ativa a Lin e instancia um método da Lib. e executa o mesmo.

    Mas em determinado momento ocorre este erro 49 Memory Violation e trava tudo. Isso ocorre raramente, mas gostaria de descobrir uma forma disso não ocorrer e se ocorrer contornar este problema.

    Como posso fazer para contar este erro, pois quando ocorre preciso sair do sistema e entrar novamente.

    Obrigado.
  2. fabiano

    fabiano Consultor Banco de Dados Moderador Equipe de Suporte

    Boa tarde!

    Qual é o comando Progress que executa essa sessão?
  3. lwazevedo

    lwazevedo Membro Ativo

    Estou usando desta forma.
    Código:
    
    FUNCTON altera_tag RETURNS char (input tag as char, input vlr as char):
    
    CREATE CALL vCall.
           
            ASSIGN
                vCall:PERSISTENT                 = TRUE
                vCall:LIBRARY-CALLING-CONVENTION = "STDCALL"
                vCall:CALL-TYPE                  = DLL-CALL-TYPE
                vCall:RETURN-VALUE-DLL-TYPE      = "short"
                vCall:LIBRARY                    = "caminho onde esta a lib.so"
                vCall:CALL-NAME                  = "regAlterarValor"
                vCall:NUM-PARAMETERS             = 2.
           
            vCall:SET-PARAMETER (1,"character","input", tag).
            vCall:SET-PARAMETER (2,"character","input", vlr).
            vCall:INVOKE ().
            vin-retorno = vCall:RETURN-VALUE.
       
            DELETE OBJECT vCall.
    
    END FUNCTION. 
    
    Esta função é executada diversas vezes ao dia e raramente apresenta este problema de violação, só não consegui identificar o pq que ocorre.
  4. fabiano

    fabiano Consultor Banco de Dados Moderador Equipe de Suporte

    Luiz, eu tive esse problema "Memory Violation (49)" no ambiente de um cliente na execução de alguns programas.
    Eu resolvi de duas maneiras:
    - Era OpenEdge 10.2B05 e eu atualizei o service pack para o 08.
    - Depois mudei todas as chamadas de "_progres" para "mpro".

    No meu caso é diferente porque é um ambiente Progress caractere.

    Eu desejo ter ajudado pelo menos com alguma ideia do teu ambiente.
  5. lwazevedo

    lwazevedo Membro Ativo

    Já deu uma grande ajuda. vou dar uma olhada nisso. Obrigado.
  6. fabiano

    fabiano Consultor Banco de Dados Moderador Equipe de Suporte

    Ok!
    De nada.

Compartilhe esta Página