AYUDA POR FAVOR CON ERRORES ALEATORIOS EN EJECUCION

AYUDA POR FAVOR CON ERRORES ALEATORIOS EN EJECUCION

Postby rbecares » Thu Nov 29, 2007 12:56 pm

Amigos:

Tenemos desarrollado nuestro ERP compilado bajo fw 2.7 dicembre 2005/clipper 5.2e/blinker 6.0, el soft está corriendo bajo win 2003 server (por terminal server) ok en muchos clientes, con varios puestos de trabajo cada uno, pero nos encontramos con errores de ejecución aleatorios de dos tipos:
- aparece el error ntvdm error y el programa se cierra sin dejar rastros.
- el segundo es siempre por Error no recuperable 332: Desbordamiento de la memoria para matrices/cadenas desde distintos lugares del soft pero siempre este error, a modo de ejemplo paso dos secuencias que lo generaron:

ARRAY (0) Error no recuperable 332 o 331: Desbordamiento de la memoria para matrices/cadenas

ARRAY 0000
ACLONE 0000
ACLONE 0000
ACLONE 0000
INITFORM 3799
(b)EXECFORM 2591
TDIALOGL:INITIATE 0000
TDIALOGL:HANDLEEVEN 0000
DIALOGBOXI 0000
TDIALOGL:ACTIVATE 0000
EXECFORM 2591
FORM 2067
(b)MOVIM 0403
MOVIM 0707
(b)GENMENU 0000
TMENU:COMMAND 0000
TWINDOW:COMMAND 0000
TWINDOW:HANDLEEVEN 0000
WINRUN 0000
TWINDOW:ACTIVATE 0000
SYSTEMINIT 0636
INICIO 0158

otra secuencia:
BEGINPAINT (0) Error no recuperable 331: Desbordamiento de la memoria para matrices/cadenas

BEGINPAINT 0000
TGETL:_BEGINPAIN 0000
(b)TGET 0000
TGETL:HANDLEEVEN 0000
DIALOGBOXI 0000
TDIALOGL:ACTIVATE 0000
EXECFORM 2591
FORM 2067
(b)MOVIM 0403
MOVIM 0707
(b)GENMENU 0000
TMENU:COMMAND 0000
TWINDOW:COMMAND 0000
TWINDOW:HANDLEEVEN 0000
WINRUN 0000
TWINDOW:ACTIVATE 0000
SYSTEMINIT 0636
INICIO 0158

Estamos muy perdidos en como rastrear y eliminar estos errores. Por favor cualquier ayuda vendría excelente.

Un abrazo.
Ricardo.-
rbecares
 
Posts: 77
Joined: Wed Oct 12, 2005 5:36 pm

Postby Antonio Linares » Thu Nov 29, 2007 1:17 pm

Ricardo,

La mejor ayuda para esos errores es que paseis la aplicación a 32 bits con FWH cuanto antes.

Los errores que describes son típicos de aplicaciones de 16 bits con Clipper y son muy difíciles de solucionar

El 332 es que ya no teneis más memoria y es porque estais limitados a 64 Ks en 16 bits. Es algo normal ya que la aplicación crece y esa barrera permanece.

En cuanto al ntvdm aqui tienes algunas indicaciones de MS:
http://support.microsoft.com/kb/220155/es

La solución es migrar a 32 bits cuanto antes
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42100
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JARO » Sat Dec 01, 2007 11:39 pm

Respecto a lo que comentas sobre NTVDM, nos ha pasado con las instrucciones de borland y cada vez que invocávamos la orden memory(-1),.

Supongo que la aplicación ha funcionado bien siempre y ahora está fallando, si es así confírmamelo.

Otro de los factores qu teneis que tener en cuentas son las limitaciones con tablas que tiene de clipper.

Espero que haya servido de ayuda
JARO
 
Posts: 30
Joined: Thu Oct 25, 2007 7:54 pm

Postby rbecares » Mon Dec 03, 2007 6:57 pm

Esos errores aleatorios nos han acompañado siempre en mayor o menor medida, si bien estamos pensando seriamente el paso a Harbour 32, decime por favor cómo has trabajado para minimizar los errores que tenemos mientras aun estemos en win16.

Gracias.
rbecares
 
Posts: 77
Joined: Wed Oct 12, 2005 5:36 pm

Postby Antonio Linares » Mon Dec 03, 2007 8:48 pm

Ricardo,

El error 332 puede "mejorarse" reduciendo el número de variables estáticas usadas, agrupándolas en una sola que las contenga a todas en un array. Que heapsize y stacksize estais usando en el fichero LNK ?

De todas formas, la verdadera solución es pasar a 32 bits y asi superar las barreras que tienen las aplicaciones en 16 bits.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42100
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby rbecares » Tue Dec 04, 2007 5:27 pm

antonio:

Te paso directamente nuestro archivo de compilación .lnk
Espero cualquier comentario.

Saludos y Gracias.

BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE CLIPPER F255
BLINKER INCREMENTAL OFF
BLINKER PROCEDURE DEPTH 100
BLINKER CLIPPER SYMBOL ON

PACKCODE
PACKDATA

DEFBEGIN
name FiveWin
description 'Clipper for Windows library'
exetype Windows 3.1
code moveable discardable
data preload moveable
stacksize 9500
heapsize 3048
segment 'PLANKTON_TEXT' nondiscardable
segment 'EXTEND_TEXT' nondiscardable
segment 'OM_TEXT' nondiscardable
segment 'OSMEM_TEXT' nondiscardable
segment 'SORTOF_TEXT' nondiscardable
segment 'STACK_TEXT' nondiscardable
DEFEND

SEARCH s:\lib\Five, s:\lib\FiveC, s:\lib\Objects

LIB r:\lib\fiscal


LIB s:\lib\WinApi
LIB j:\evo0703\clases\LOGICLAS.lib
LIB s:\lib\filexls.lib
LIB j:\evo0703\library\LOGIEXEK.lib

LIB r:\lib\clipper
LIB r:\lib\extend
LIB r:\lib\terminal
LIB r:\lib\dbfntx
LIB r:\lib\dbfcdx

LIB r:\lib\FLEX52

FILE INICIO
FILE ERRORSYS

// BEGINAREA
FILE INICIO2
FILE LIBTM300
FILE LIBHASAR
FILE LIBLX300
FILE FILES
FILE LIBPROC
FILE LIBPROC1
FILE LIBPROC2
FILE LIBPROC3
FILE LIBPROC4
FILE LIBESTAD
FILE LIBMOVIM
FILE LIBCOSTO
FILE LIBCONT
// ENDAREA

OUTPUT evo.exe
rbecares
 
Posts: 77
Joined: Wed Oct 12, 2005 5:36 pm

Postby rbecares » Tue Dec 04, 2007 5:49 pm

Antonio:
Me quedé pensando, existe alguna funcion que pueda servir para liberar y realocar memoria tipo la GlobalCompact()? esto podría solucionar este error, porque si el usuario cuando se cierra el sistema vuelve a entrar y hace la operación que antes dio error, ahora no lo da. Claro, antes venia haciendo muchas otras operaciones y supongo que algo quedo feo en la memoria.

Podra servir GlobalCompact() u otra similar que no conozco?
Gracias.
rbecares
 
Posts: 77
Joined: Wed Oct 12, 2005 5:36 pm

Postby Antonio Linares » Tue Dec 04, 2007 6:06 pm

Ricardo,

Prueba a bajar el heapsize a 2024

No sirve llamar a una función de compactación de memoria de Windows ya que todo el problema de Clipper reside en un bloque de memoria de 64 Ks que el usa :-(
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42100
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

A mi me funciona de maravilla clipper con FW en W2003 y TS

Postby creswinman » Sun Dec 09, 2007 10:16 pm

Lo único que hago es habilitar que cada ejecución corra en memoria separada.

Puedes crearle un acceso directo y en propiedades Avanzadas marca que corra en memoría separada.

COn FW de 16 el W2K3 corre NTVDM (NT-Virtual Dos Machine) luego adentro corre WOW (Windos de 16 sobre windows de 32)

Si no lo marcas en memoria separada, todos van a correr bajo el mismo ntvdm. y por eso tienes conflictos.

Si lo marcas para que corra en memoria separada, cada ejecucion tendra su propio NTVDM+WOW.

Espero te sirva
User avatar
creswinman
 
Posts: 33
Joined: Thu Aug 24, 2006 3:14 am
Location: mexico

Postby rbecares » Fri Dec 14, 2007 8:10 pm

Gracias, esto lo estamos usando así y aún así tenemos este problema.

Un abrazo.
rbecares
 
Posts: 77
Joined: Wed Oct 12, 2005 5:36 pm


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 19 guests