Foros del Web » Programación para mayores de 30 ;) » Java »

EJB Firebird Glassfish

Estas en el tema de EJB Firebird Glassfish en el foro de Java en Foros del Web. Hola compañeros foristas... Estoy desarrollando un proyecto con EJB 3, mi base de datos es Firebird 2.1, el servidor de aplicaciones es Glassfish, del lado ...
  #1 (permalink)  
Antiguo 04/09/2009, 12:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 37
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta EJB Firebird Glassfish

Hola compañeros foristas...

Estoy desarrollando un proyecto con EJB 3, mi base de datos es Firebird 2.1, el servidor de aplicaciones es Glassfish, del lado de la presentacion es Jsf 1.2 con Icefaces 1.8.

Tengo un EJB donde hago la siguiente consulta:
Código:
public List<ServicioProveedor> getPorLetra(Object letra, int posicionInicio, int tamañoFragmento) {
           return em.createQuery("select object(o) from ServicioProveedor as o WHERE o.servicio.nombre LIKE :letra ORDER BY o.servicio.nombre ASC")
                .setParameter("letra", letra.toString().toUpperCase() + "%")
                .setFirstResult(posicionInicio)
                .setMaxResults(tamañoFragmento)
                .getResultList();
    }
El problema es que cuando ejecuto mi aplicacion y ejecuto la consulta varias veces de repente me manda el siguiente error:
Código:
 
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
	java.rmi.RemoteException: null; nested exception is: 
	Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: org.firebirdsql.jdbc.FBDriverNotCapableException: Not yet implemented.
Error Code: 0
Al ejecutar la consulta se recargar la misma pagina para que muestre el resultado:
Código:
    public String next() {
        if (primerRegistro + tamañoFragmento < this.totalRegistros) {
            primerRegistro += tamañoFragmento;
        }
        this.ejecutarFiltro(filtroSeleccionado);
        return "catalogoServicios";
    }
el metodo ejecutar filtro:
Código:
    private void ejecutarFiltro(String tipoFiltro) {
        switch (ComandoFiltro.getOpcion(tipoFiltro)) {
            case Proveedores:
                this.listaDatos = new ListDataModel(this.servicioProveedorBean.getPorProveedorLetra(this.elementoSeleccionado, this.letraCatalogo, this.primerRegistro, this.tamañoFragmento));
                this.indice = this.primerRegistro;
                this.totalRegistros = this.servicioProveedorBean.getTotalServiciosPorProveedorLetra(this.elementoSeleccionado, this.letraCatalogo);
                break;
            case Convenios:
                this.listaDatos = new ListDataModel(this.servicioProveedorBean.getPorConvenioLetra(this.elementoSeleccionado, this.letraCatalogo, this.primerRegistro, this.tamañoFragmento));
                this.indice = this.primerRegistro;
                this.totalRegistros = servicioProveedorBean.getTotalServiciosPorConvenioLetra(this.elementoSeleccionado, this.letraCatalogo);
                break;
            case Todos:
                this.listaDatos = new ListDataModel(this.servicioProveedorBean.getPorLetra(this.letraCatalogo, this.primerRegistro, this.tamañoFragmento));
                this.indice = this.primerRegistro;
                this.totalRegistros = servicioProveedorBean.getTotalServiciosPorLetra(this.letraCatalogo);
                break;
            default:
                System.out.println("error");
                break;
        }
    }
La ejecucion va bien solo algunas veces pero despues de varias ejecuciones lanza el error antes comentado... Yo la verdad no se si sea problema de Firebird o de la vista (JSF, ICEfaces)... Si alguien ah utilizado esta combinacion y tenga alguna idea de que es lo que estoy haciendo mal que me pueda iluminar un poco se lo agradeceria mucho...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:57.