Manejo de Excepaciones

18/04/2007 - 16:18 por Isabel | Informe spam
Saludos ...
Estoy trabajando en un aplicación que se conecta a varios servidor IBM para
traer data y funciona bien siempre y cuando pueda establecer conexión pero si
por algun motivo no se puede establecer conexión la aplicación se cae.

Cómo podría capturar este error ERROR [S1000] connect failed with error code
0.
sin que mi aplicación se caiga y pueda mostrar la información de los demas
servidores IBM
 

Leer las respuestas

#1 carlosmsr
19/04/2007 - 20:34 | Informe spam
bueno, entonces creo que lo mejor es utilizar directamente un bloque
try/catch. de ese modo, puedes parsear el mensaje o código de error y tomar
una acción al respecto. sabiendo cuál es el error, podrías decidir notificar
de algún modo, crear un nuevo array o colección con los datos de las
sucursales que fallaron y al final volver a intentar conectarte con ellas, o
reintentar la conexión n veces antes de notificar.
simplemente utilizar algo como:

try
{
ds.Connect();
}
catch (Exception e)
{
NotificarError(e.Message)
}

Puedes incluir en el bloque try también las instrucciones para ejecutar los
queries o cargar el dataset, pero intenta no incluir demasiado porque puede
perjudicar la performance del programa.


"Isabel" wrote:

Saludos Carlos nuevamente ... ok
Hay 2 excepciones que me interesan capturar y que mi aplicación no se caiga
... la primera es fallo de conexión ERROR [S1000] connect failed
y la otra es la cantidad de usuarios que estan pegados
ERROR [S1000] The maximum allowed number of users are already connected to
the server.

La lógica de lo que estoy haciendo va así ...
En un ciclo voy recorriendo cada sucursal buscando la información de X
producto la traigo la almaceno en un dataset luego voy a la siguiente
sucursal traigo, almaceno y así con cada una pero actualmente suponte que voy
recorriendo la sucursal # 5 y está ya al límite de las conexiónes, entonces
la aplicación se cae por ese error ahora bien mi idea es capturar el error y
notificar que para esa sucursal tiene el maximo de sesiones abiertas y
mostrar lo que hay en los demas...


"carlosmsr" wrote:

> Hola, Isabel. Entiendo que es a una base de datos. Por supuesto que no te voy
> a pedir que publiques aquí información sensible o que revele detalles
> críticos sobre tu trabajo. Pero podrías decirnos qué tipo de Provider
> utilizas ?
>
> - En cuanto al mensaje de error, la aplicación genera una excepción ?
> - Lo hace cuando invocas algún método Connect() ?
> - o cuando luego de conectarte intentas hacer un query ?
> - Logras en algún caso realizar la conexión o este es un error constante y
> nunca te pudiste conectar ?
>
> De todos modos, si sólo necesitas capturar el error y no estás buscando la
> causa del mismo, probablemente lo mejor sea utilzar un bloque try/catch. De
> ese modo no pierdes el control de la aplicación y evaluando la excepción
> puedes decidir qué hacer (reintentar la conexión, informar al usuario del
> error, loguear la info del contexto en el que se produjo el error, etc).
>
>
>
>
> "Isabel" wrote:
>
> > Hola Carlos ... gracias por tu ayuda ... y bueno realmente no se mucho de la
> > estructura y de los servidores IBM, yo me conecto a ellos por DSN que hemos
> > configurado por medio del controlador MGV Dataminer por tcp/ip ... a ver y te
> > explico más aún la empresa para la cual trabajo es una cadena de
> > supermercados y estoy extrayendo información de cada sucursal (son 8) para
> > mostrarla en una página y lo que no quiero es que si por algún motivo no hay
> > conexión para una sucursal X mi aplicación se caiga sino que me diga X
> > sucursal no establecio conexión las 7 restantes mostrar la información...
> >
> > "carlosmsr" wrote:
> >
> > > A qué te refieres con servidores IBM ? Con procesadores Risc ? a una Base de
> > > datos DB2 ? un servidor con sistema operativo AIX ? a algún otro producto de
> > > software comercializado por IBM ? o simplemente un servidor con hardware
> > > ensamblado por IBM ?
> > >
> > > a mayor precisión en la pregunta, más facilidad para dar con presción una
> > > respuesta.
> > >
> > > de todos modos, como primera alternativa te diría que con un bloque
> > > try
> > > {
> > > // intenta conectarte
> > > }
> > > catch(exception e)
> > > {
> > > // haz algo con la excepción e
> > > }
> > >
> > > pero todo depende de qué estés haciendo y de cómo lo estés haciendo. tal vez
> > > tengas objetos de conexión que ya contengan manejo de errores integrado. por
> > > eso la pregunta.
> > >
> > > "Isabel" wrote:
> > >
> > > > Saludos ...
> > > > Estoy trabajando en un aplicación que se conecta a varios servidor IBM para
> > > > traer data y funciona bien siempre y cuando pueda establecer conexión pero si
> > > > por algun motivo no se puede establecer conexión la aplicación se cae.
> > > >
> > > > Cómo podría capturar este error ERROR [S1000] connect failed with error code
> > > > 0.
> > > > sin que mi aplicación se caiga y pueda mostrar la información de los demas
> > > > servidores IBM

Preguntas similares