6 Replies Latest reply on Jan 26, 2008 11:11 AM by Saravanan Subramani

    Jboss messaging - persistance issue for blob data

    Saravanan Subramani Newbie

      Hi,

      I installed jms messaging with oracle persistant.successfully.i working fine.

      when it trying to persist the large amount data more than limit (i tried300kb), i am getting SQL exception "Socket write error".i also changed the jdbc driver - 10g ojbc5.jar. (my oracle version is 9i).There is no use.

      What can i do for this problem. How to fix it ?

      Please help me some one.

      Thanks in advance


        • 2. Re: Jboss messaging - persistance issue for blob data
          Saravanan Subramani Newbie

          Hi ,

          Please find the Error Log..

          2008-01-25 12:07:52,701 WARN [org.jboss.resource.connectionmanager.TxConnectionManager] Connection error occured: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@1eeeaed[state=NORMAL mc=org.jboss.resource.adapter.jdbc.local.LocalManagedConnection@c74e66 handles=1 lastUse=1201259197200 permit=true trackByTx=true mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@ec4462 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@17d94f8 xaResource=org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource@823618 txSync=null]
          java.sql.SQLException: I/O-undantag: Software caused connection abort: socket write error
          at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
          at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
          at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
          at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2061)
          at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
          at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
          at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
          at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:251)
          at org.jboss.messaging.core.plugin.JDBCPersistenceManager.updateWithRetry(JDBCPersistenceManager.java:2946)
          at org.jboss.messaging.core.plugin.JDBCPersistenceManager.updateWithRetry(JDBCPersistenceManager.java:2818)
          at org.jboss.messaging.core.plugin.JDBCPersistenceManager.addReference(JDBCPersistenceManager.java:1312)
          at org.jboss.messaging.core.ChannelSupport.handleInternal(ChannelSupport.java:757)
          at org.jboss.messaging.core.ChannelSupport.handle(ChannelSupport.java:157)
          at org.jboss.messaging.core.local.PagingFilteredQueue.handle(PagingFilteredQueue.java:114)
          at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouter.handle(DefaultRouter.java:88)
          at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice.route(DefaultClusteredPostOffice.java:1151)
          at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendMessage(ServerConnectionEndpoint.java:692)
          at org.jboss.jms.server.endpoint.ServerSessionEndpoint.send(ServerSessionEndpoint.java:297)
          at org.jboss.jms.server.endpoint.advised.SessionAdvised.org$jboss$jms$server$endpoint$advised$SessionAdvised$send$aop(SessionAdvised.java:80)
          at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
          at org.jboss.jms.server.container.SecurityAspect.handleSend(SecurityAspect.java:152)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:121)
          at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
          at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
          at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
          at org.jboss.jms.server.endpoint.advised.SessionAdvised.send(SessionAdvised.java)
          at org.jboss.jms.wireformat.SessionSendRequest.serverInvoke(SessionSendRequest.java:85)
          at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:141)
          at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734)
          at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:101)
          at org.jboss.remoting.Client.invoke(Client.java:1550)
          at org.jboss.remoting.Client.invoke(Client.java:530)
          at org.jboss.remoting.Client.invoke(Client.java:518)
          at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186)
          at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157)
          at org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$send$aop(ClientSessionDelegate.java:446)
          at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
          at org.jboss.jms.client.container.SessionAspect.handleSend(SessionAspect.java:634)
          at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect28.invoke(SessionAspect28.java)
          at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
          at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:91)
          at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
          at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
          at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
          at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
          at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
          at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
          at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:243)
          at org.jboss.aop.advice.org.jboss.jms.client.container.ProducerAspect46.invoke(ProducerAspect46.java)
          at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
          at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
          at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
          at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
          at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
          at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:164)
          at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:207)
          at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:145)

          • 3. Re: Jboss messaging - persistance issue for blob data
            Saravanan Subramani Newbie

            Hi Andy Taylor

            I downloaded the messging (jboss-messaging-1.3.0.GA-src) source code and modified some lines.

            I followed these steps,
            1. opened the org.jboss.messaging.core.plugin.JDBCPersistenceManager.java.
            2. Modified the code at line no :2716 and 2760.
            3.changes are:
            i) // ps.setBinaryStream(columnIndex, is, bytes.length);
            to
            ps.setBlob(columnIndex, (Blob)is);
            ii)
            //InputStream i = rs.getBinaryStream(columnIndex);
            to
            InputStream i = (InputStream) rs.getBlob(columnIndex);

            Now perfectly working.

            Is this the right way?. if ok , Is there any changes are Still required ?.

            Thanks


            • 4. Re: Jboss messaging - persistance issue for blob data
              Saravanan Subramani Newbie

              Sorry , its wrong

              Correct changs is,
              ps.setObject(columnIndex, bytes); (its working)

              ps.setBlob(columnIndex, (Blob)is);(this line was not working)

              I haven't used ByteArrayInputStream.





              • 5. Re: Jboss messaging - persistance issue for blob data
                Saravanan Subramani Newbie

                Now I found my issue.

                Instead of changing the code, i went to clustered-oracle-persistant.xml. then i added a tag
                false

                Now every thing is perfect.

                Thanks


                • 6. Re: Jboss messaging - persistance issue for blob data
                  Saravanan Subramani Newbie

                   

                  "143564" wrote:
                  Now I found my issue.

                  Instead of changing the code, i went to clustered-oracle-persistant.xml. then i added a tag
                  < attribute name="UsingBinaryStream" >false</ attribute >

                  Now every thing is perfect.

                  Thanks