Instalarlo en Linux es un problema. Ya me gustaria a mi poder hacerlo.
En cuanto al midas lo tengo en todos los programas puestos ,pero ademas la
distribuyo y registro , ya que tengo que registrar y distribuir unos cuantos ocx, dll y codecs de video, registrar uno más que más da?
Yo el servidor si lo podría instalar en Linux. Mi problema es que el 98% de las ocasiones la misma maquina será el servidor y el cliente, y las SDK que recibo de los fabricantes no están hechas para linux , algunos me dan componentes que usan muchísimas librerias de windows, este es el problema de no hacerlo para linux.
y montar una maquina solo para el servidor de datos en linux(costo adicional para el cliente), cuando las bases de datos son muy pequeñas, hablamos de 10-20 megas, y de estos 20 megas 19'5 son de logs generados por las alarmas y sucesos de los programas que se van generando. El ususario siempre tiene visible los log del dia actual , si quiere ver otro día lo selecciona en un datetimepiker y el acceso es instantaneo.
Con lo que no me queda más remedio que seguir con Windows, y lo peor es que ahora ya no venden el XP , este último que estoy probando ahora para instalarlo la semana que viene en Sevilla , he tenido que comprar un windows7.
Conclusión : lo monto como superserver en multiprocesador y que use solo un procesador (aunque Casimiro diga que el superserver solo usa un procesador yo le puse en el CPUAffinityMask= 224 y los procesadores 6 7 y 8 tienen activadad por el Firebird 2.1.3) , pero como tampoco necesito tanta cpu para mover los pocos datos que necesito lo dejaré sólo en uno, pa, por si acaso.
También os puedo asegurar que no tengo mucha idea de lo que estoy haciendo, me puse con este mega proyecto el año pasado porque monte una empresa con otro socio y sabía que en plena crisis mundial nos costaría mucho salir adelante y como tenía tiempo (no teniamos trabajo ) me dió por hacer este super programa (ya llevaré facilmente más de 150.000 líneas de código) en delphi7, porque hace muchos años estuve cacharreando con el primer delphi, al final con saber un poco de ingles , haces código en pascal.
Cuando yo ejecute por primera vez el delphi7 y VI UNA PALETA DE COMPONENTES QUE SE SALIA DE LA VENTANA CON UNOS NOMBRES RARISIMOS, ME ASUSTE. Y OJO, la primera version del programa la hice con paradox, hasta que un día encontre este club y me enteré que paradox ya se dejo de desarrollar hace tiempo y que tenía problemas de vez en cuando........y es cierto se me colgaba, y se rompian los indices. Se hablaba en este foro mucho de Firebird, a sin que tomé la decisión de cambiar a Firebird, me tiré dos semanas intentando entenderlo y que podía hacer, y dí el salto.
Por cierto, ya que os estoy soltando este rollo de mi historia , tengo otra duda , que lo mismo lo estoy haciendo fatal el código o el planteamiento del programa(ahora son 150000 lineas pero llegerá al millón seguro) y la consulta es esta..
Yo uso Firebird, los componentes Interbase(un IBtable conexión con la base de datos y luego por cada tabla que uso lo hago con un IBdataset , un IBtransacction y un datasetprovider ,uno por cada tabla (en los servidores de aplicaciones, que conectan con firebird), no he tenido problemas y me funciona, realmente lo único que hacen es grabar, borrar y servirme los datos cuando se los pido. Por otro lado en las aplicaciones uso los sockectconnection y el connectionbroker para establecer las comunicaciones con los diferentes servidores de aplicación y establecer una autopista de comunicacion. Y siempre uso los clientDataset por ejemplo :
Código Delphi
[-]
if not CamicoTabla.IsEmpty then
begin
i_icono:=camicotablaID_ICO.Value;
Camtabla.close;
Camtabla.CommandText:='select * from CAMARAS where ID_CAMARA = '+inttostr(camicotablaID_CAMARA.Value);
Camtabla.open;
if not camtabla.IsEmpty then
begin
if camtablaptz.Value='SI' then preset:='1' else preset:=' ';
valores:=camtablanombre.Value+'\'+camtablaentradaalarma.Value+'\'+timetostr(time)+'\'+inttostr(camta blanumcamara.Value)+'\'+preset+'\'+datetostr(date)+'\';
if camtablaid_modelo.Value=1 then createprocess(pchar('alarmasvideo.exe'),pchar(valores),nil,nil,false,HIGH_PRIORITY_CLASS,nil,pchar(d irl),startinfo,procinfo);
o buscando con locate así:
Código Delphi
[-]
if camtabla.Locate('ID_CAMARA',vararrayof([camicotablaID_CAMARA.Value]),[loCaseInsensitive]) then
begin
if camtablaID_MODELO.Value=1 then begin
if iotabla.Locate('ID_GRABADOR',vararrayof([camtablaID_GRABADOR.Value]),[loCaseInsensitive]) then
begin
if iotablaestado.Value='conectado' then
begin
if assigned(comp) then
begin
if camicotablatimage.Value='Imgcam' then
begin
img:=Timage(comp);
img.picture:=imgverde.picture;
img.Hint := camicotablahint.value;
end;
end;
end
y la conexión con los servidores de aplicación las hago así
Código Delphi
[-]
try
if valor_serv='NOMBRE_SERV' then
firebirdconnection1.Host:=nombreserv;
if valor_serv='IP_SERV' then
firebirdconnection1.Address:=ip_serv;
if serveroperativa='SI' then
begin
if serverreceptoravalor='SERVER_RECEPTORA' THEN
receptoraconnection.Host:=serverreceptora;
if serverreceptoravalor='SERVER_RECEPTORA_IP' THEN
receptoraconnection.Address:=serverreceptoraIP;
if not broker2.Connected then broker2.Connected:=true; end;
if galaxyoperativa='SI' then
begin
if servergalaxyvalor='SERVER_GALAXY' THEN
galaxysocket.Host:=servergalaxy;
if servergalaxyvalor='SERVER_GALAXY_IP' THEN
galaxysocket.Address:=servergalaxyIP;
if not galaxybroker.Connected then galaxybroker.Connected:=true;
END;
if not broker1.Connected then broker1.Connected:=true;
except
on e:exception do
showmessage(e.Message);
end;
end;
¿LO ESTOY HACIENDO MAL O PUEDO SEGUIR ASÍ?
porque os puedo asegurar que estoy programando a base de ostias, y gracias a las aportaciones que haceis en el foro he ido solventando muchos probemas.
Saludos y gracias a todos