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

    Jboss messaging - persistance issue for blob data

    143564

      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


        • 1. Re: Jboss messaging - persistance issue for blob data
          ataylor

          Can you provide a stacktrace

          • 2. Re: Jboss messaging - persistance issue for blob data
            143564

            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
              143564

              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
                143564

                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
                  143564

                  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
                    143564

                     

                    "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