RE: [java-l] Manejo de campos BLOB en Informix.

¿Tuviste suerte reiniciando el servidor?

 

Según el stack trace la raíz del problema parecería estar en esta parte.

 

Caused by: java.io.IOException: Permission denied
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.checkAndCreate(File.java:1343)
        at java.io.File.createTempFile(File.java:1431)
        at com.informix.jdbc.IfxTmpFile$1.run(IfxTmpFile.java:85)

 

Aunque no aporta mucho sobre lo anterior, ya que el problema parece seguir estando en los permisos. Los permisos (drwxr-xr-x) me parece que no te sirven para el tomcat, en tu lugar probaría poner permisos (drwxrw-rw-).

 

Otro prueba que podés probar es configurar una ruta absoluta, en vez de relativa.

 

Saludos,

Pablo

 

De: Gabriel Olivera [mailto:gabriel@apraful.com.uy]
Expuesto a las: martes, 13 de abril de 2010 14:40
Expuesto en: GxJava
Conversación: [java-l] Manejo de campos BLOB en Informix.
Asunto: Re: [java-l] Manejo de campos BLOB en Informix.

 

Pablo:

 

Es verdad, el tomcat corre con OTRO usuario, no con el que utilizo para definir estas carpetas, de todas formas con los permisos actuales (drwxr-xr-x) estuvo trabajando correctamente hasta que se reinicio el servidor.

 

El client.cfg tiene configurado los directorios FILEIN/ y FILEOUT/ que son los que determine a nivel de las propiedades de la KB. Y estos directorios están creados en el directorio RAIZ del aplicativo.

 

El error completo es el siguiente:

javax.servlet.ServletException: java.sql.SQLException: Blob not found java.sql.SQLException: System or internal error java.security.PrivilegedActionException: java.io.IOException: Permission denied
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:448)
        at com.informix.jdbc.IfxResultSet.blobCheck(IfxResultSet.java:1690)
        at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:672)
        at com.informix.jdbc.IfxResultSet.getBinaryStream(IfxResultSet.java:1360)
        at com.genexus.db.driver.GXResultSet.getBinaryStream(Unknown Source)
        at com.genexus.db.driver.GXResultSet.getBLOBFile(Unknown Source)
        at htrperfoto__default.getResults(htrperfoto_impl.java:3051)
        at com.genexus.db.DataStoreProvider.readNext(Unknown Source)
        at com.genexus.db.DataStoreProvider.execute(Unknown Source)
        at com.genexus.db.DataStoreProvider.execute(Unknown Source)
        at htrperfoto_impl.rfR22(htrperfoto_impl.java:803)
        at htrperfoto_impl.refresh(htrperfoto_impl.java:769)
        at htrperfoto_impl.weR22(htrperfoto_impl.java:371)
        at htrperfoto_impl.renderHtmlContent(htrperfoto_impl.java:192)
        at hmpwkw01_impl.wb_table4_15_0L2e(hmpwkw01_impl.java:756)
        at hmpwkw01_impl.wb_table4_15_0L2(hmpwkw01_impl.java:829)
        at hmpwkw01_impl.wb_table3_14_0L2(hmpwkw01_impl.java:739)
        at hmpwkw01_impl.wb_table2_6_0L2e(hmpwkw01_impl.java:679)
        at hmpwkw01_impl.wb_table6_10_0L2e(hmpwkw01_impl.java:910)
        at hmpwkw01_impl.wb_table6_10_0L2(hmpwkw01_impl.java:967)
        at hmpwkw01_impl.wb_table5_7_0L2e(hmpwkw01_impl.java:892)
        at hmpwkw01_impl.wb_table5_7_0L2(hmpwkw01_impl.java:1035)
        at hmpwkw01_impl.wb_table2_6_0L2(hmpwkw01_impl.java:879)
        at hmpwkw01_impl.wb_table1_3_0L2(hmpwkw01_impl.java:664)
        at hmpwkw01_impl.wb0L0(hmpwkw01_impl.java:88)
        at hmpwkw01_impl.rf0L2(hmpwkw01_impl.java:404)
        at hmpwkw01_impl.refresh(hmpwkw01_impl.java:320)
        at hmpwkw01_impl.we0L2(hmpwkw01_impl.java:276)
        at hmpwkw01_impl.webExecute(hmpwkw01_impl.java:56)
        at htrperfoto_impl.webExecute(htrperfoto_impl.java:68)
        at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)
        at htrperfoto.doExecute(htrperfoto.java:29)
        at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        at com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: System or internal error java.security.PrivilegedActionException: java.io.IOException: Permission denied
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:492)
        at com.informix.jdbc.IfxTmpFile.<init>(IfxTmpFile.java:96)
        at com.informix.jdbc.IfxSqli.executeFetchBlob(IfxSqli.java:4878)
        at com.informix.jdbc.IfxResultSet.blobCheck(IfxResultSet.java:1683)
        ... 48 more
Caused by: java.security.PrivilegedActionException: java.io.IOException: Permission denied
        at java.security.AccessController.doPrivileged(Native Method)
        at com.informix.jdbc.IfxTmpFile.<init>(IfxTmpFile.java:80)
        ... 50 more
Caused by: java.io.IOException: Permission denied
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.checkAndCreate(File.java:1343)
        at java.io.File.createTempFile(File.java:1431)
        at com.informix.jdbc.IfxTmpFile$1.run(IfxTmpFile.java:85)
        ... 52 more

 

        at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        at com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:595)

 

----- Original Message -----

From: Pablo Moleri

Sent: Tuesday, April 13, 2010 1:19 PM

Subject: RE: [java-l] Manejo de campos BLOB en Informix.

 

Hola Gabriel,

 

Cuando decís que tiene los permisos correspondientes, ¿estás teniendo en cuenta que el Tomcat corre con una cuenta de usuario que seguramente es distinta a la que usás para loguearte?

 

¿Corrobaraste que en el client.cfg están quedando las mismas rutas que configurás en la KB?

 

Parecería que el stacktrace que envías es una una Excepción que seguramente tiene otra anidada ¿no tenés el stacktrace completo? Lo podés sacar del log del tomcat.

 

Saludos,
Pablo Moleri

 

De: Gabriel Olivera [mailto:gabriel@apraful.com.uy]
Expuesto a las: martes, 13 de abril de 2010 10:10
Expuesto en: GxJava
Conversación: [java-l] Manejo de campos BLOB en Informix.
Asunto: [java-l] Manejo de campos BLOB en Informix.

 

Gente del Foro:

 

Tenemos un aplicativo Java/Web corriendo en un Tomcat (5.5) sobre Ubuntu, que da problemas cuando levanta información de tablas con campos BLOBs cargados con imágenes:

 

javax.servlet.ServletException: java.sql.SQLException: Blob not found java.sql.SQLException: System or internal error java.security.PrivilegedActionException: java.io.IOException: Permission denied
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:448)
...

Estas son las dos primeras líneas del mensaje que es más extenso.

Actualizamos las propiedades "Blob Local Storage Path" y "Temp Media Directory" de la KB para que utilice directorios específicos para trabajar con las ímágenes temporales que son leídas o levantadas a la base de datos, pero este problema persiste. Estos directorios tienen los permisos correspondientes.

 

¿Alguien se ha encontrado con este problema que me pueda dar una pista para solucionarlo??

Si ejecuto el mismo aplicativo en un tomcat sobre Windows no tengo problemas.

 

Desde ya MUCHAS gracias, saludos.

Gabriel.

 

 

 

 

Gabriel Olivera, Jefe de Desarrollo - APRAFUL SOFTWARE (gestión en salud) - Gaboto 1295 - C.P. 11100 Montevideo, Uruguay - Tel.: (+598 2) 402 6675 - 403 1220 - 400 9301



Se certificó que el correo entrante no contiene virus.
Comprobada por AVG - www.avg.es
Versión: 9.0.801 / Base de datos de virus: 271.1.1/2808 - Fecha de la versión: 04/13/10 06:32:00

0 Response to "RE: [java-l] Manejo de campos BLOB en Informix."

Publicar un comentario