5 Replies Latest reply on Dec 14, 2005 2:38 AM by adrian.brock

    JBoss message restoration

    aq12ws

      Hi
      I am using oracle database for the message persistence . The driver is for 10g and database oracle 9i .when I restarted my JBoss 4.0.1 server . I get the following error :





      org.jboss.mq.SpyJMSException: Could not restore messages to destination : TOPIC.MPEventsTopic.DurableSubscription[client
      Id=ID:1 name=JMSEmailEventListener selector=event in ('RequisitionItemCancelled','LoginNameAndPasswordAdded','DelegateAd
      ded','DelegateDeleted','PurchaseOrderAccepted', 'PurchaseOrderCancelled', 'PurchaseOrderItemCancelled','PurchaseOrderIss
      ued','RequisitionCancelled','RequisitionRoutedToYouForApproval', 'RequisitionApprovedAndPurchaseOrdersIssued','Requisiti
      onRouted','RequisitionItemReceived','ItemShipped','PermissionGranted','PermissionRevoked','ProductPriceAdded', 'ProductP
      riceDeleted','ProductAdded','ProductDeleted','RequisitionDeleted','RequisitionItemDeleted','NewUserAddedToSystem', 'User
      DeletedFromSystem','UserTypeChanged','CategoryAccessGranted','CategoryAccessRevoked','ServiceAccessGranted', 'ServiceAcc
      essRevoked','RequisitionRejected','RequisitionItemRejected','LoginNameOrPasswordChanged','RequisitionApprovalCodeChanged
      ','RequisitionEmailNotificationFromWorkflow', 'RequestForQuotationPosted','RequestForQuotationResponse','RequisitionItem
      AddedAfterSubmittal','TransactionFeeInvoiceIssued','MarketplaceFeeInvoiceIssued', 'DirectMarketplaceInvoiceIssued','Indi
      rectMarketplaceInvoiceIssuedByMarketplaceAdministrator', 'IndirectMarketplaceInvoiceIssuedBySupplier','DefaultCurrencyDe
      leted','CurrencyNoLongerValid','AuctionPermissionGranted','AuctionPermissionRevoked','AuctionLaunched','CXMLTransmission
      Failure','CXMLStatusUpdateRequestFailure','CXMLOrderStatusDataRequestTransmissionFailure','ClientCancelledShippedError',
      'RequisitionItemProcessedExternally','RequisitionItemProcessedExternallyEmailRecipients','AccountLocked', 'AccountUnlock
      ed','OrderDenyToBuyers','PurchaseOrderMail','AdminAccountLocked','AddParallelApprover','AddParallelObserver','DeletePara
      llelApprover','DeleteParallelObserver','ParallelApproverAdded', 'ParallelApproverDelete','RequisitionExpedited','Requisi
      tionExpediteDenied','OrderSubmittedByPreparer','ExpediteApprovedAndRoutedToSupplier','ExpediteDenied','BPORemainingAmoun
      tNotification', 'AlternateApprovedAndRoutedToNextApprover', 'RequisitionAlternateApproved','BPOReleaseOrderSubmittal','B
      poAwaitingApproval','BpoOrderDenied','BpoOrderApproved','BpoOrderDenyToBuyers','BPOExpiryNotification', 'BpoAddParallelA
      pprover','BpoAddParallelObserver','BpoDeleteParallelApprover','BpoDeleteParallelObserver','BpoParallelApproverAdded','Bp
      oParallelApproverDelete','BPOLineRemainingAmountNotification', 'SomeItemsRejected','ShipNoticeItemShipped','CancelPurcha
      seOrderMail', 'PurchaseOrderCancelledByPreparer', 'PurchaseOrderCancelledBySupervisor', 'PurchaseOrderChangedByRequestor
      ', 'PurchaseOrderChangedByPreparer', 'PurchaseOrderCancelledByApprover', 'PurchaseOrderCancelledByRequestorToPrep','Purc
      haseOrderCancelledBySupervisorToPrep','ConfigUpdateFailed','SRUpdateFailed','RequisitionStuckNotification','RequisitionR
      outedToDApproverForApproval', 'NewSupplierAdded','TestPOEmail')]; - nested throwable: (java.io.EOFException)
      at org.jboss.mq.pm.jdbc2.PersistenceManager.restoreQueue(PersistenceManager.java:471)
      at org.jboss.mq.server.JMSTopic.createDurableSubscription(JMSTopic.java:251)
      at org.jboss.mq.server.JMSDestinationManager.addDestination(JMSDestinationManager.java:798)
      at org.jboss.mq.server.jmx.Topic.startService(Topic.java:60)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:272)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:222)
      at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
      at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:891)
      at $Proxy0.start(Unknown Source)
      at org.jboss.system.ServiceController.start(ServiceController.java:416)
      at org.jboss.system.ServiceController.start(ServiceController.java:438)
      at org.jboss.system.ServiceController.start(ServiceController.java:438)
      at org.jboss.system.ServiceController.start(ServiceController.java:438)
      at org.jboss.system.ServiceController.start(ServiceController.java:438)
      at org.jboss.system.ServiceController.start(ServiceController.java:438)
      at org.jboss.system.ServiceController.start(ServiceController.java:438)
      at org.jboss.system.ServiceController.start(ServiceController.java:438)
      at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
      at $Proxy4.start(Unknown Source)
      at org.jboss.deployment.SARDeployer.start(SARDeployer.java:261)
      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:324)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
      at org.jboss.mx.util.JMXInvocationHandler.invoke(JMXInvocationHandler.java:272)
      at $Proxy34.start(Unknown Source)
      at org.jboss.deployment.XSLSubDeployer.start(XSLSubDeployer.java:228)
      at org.jboss.deployment.MainDeployer.start(MainDeployer.java:964)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:775)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:738)
      at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
      at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:122)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
      at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:131)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
      at $Proxy8.deploy(Unknown Source)
      at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:305)
      at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:481)
      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:20
      4)
      at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:277)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:272)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:222)
      at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
      at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:891)
      at $Proxy0.start(Unknown Source)
      at org.jboss.system.ServiceController.start(ServiceController.java:416)
      at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
      at $Proxy4.start(Unknown Source)
      at org.jboss.deployment.SARDeployer.start(SARDeployer.java:261)
      at org.jboss.deployment.MainDeployer.start(MainDeployer.java:964)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:775)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:738)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:722)
      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:324)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
      at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:122)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
      at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:131)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
      at $Proxy5.deploy(Unknown Source)
      at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:413)
      at org.jboss.system.server.ServerImpl.start(ServerImpl.java:310)
      at org.jboss.Main.boot(Main.java:162)
      at org.jboss.Main$1.run(Main.java:423)
      at java.lang.Thread.run(Thread.java:534)
      Caused by: java.io.EOFException
      at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
      at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)
      at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
      at java.io.ObjectInputStream.(ObjectInputStream.java:253)
      at org.jboss.mq.pm.jdbc2.PersistenceManager.extractMessage(PersistenceManager.java:536)
      at org.jboss.mq.pm.jdbc2.PersistenceManager.restoreQueue(PersistenceManager.java:458)

        • 1. Re: JBoss message restoration

          Oracle Thin? FAQ

          • 2. Re: JBoss message restoration
            aq12ws

            Yeah I am using oracle thin driver . The only changes I have done is changed the following field sizes :
            in the table : JMS_MESSAGES
            I had to change the DESTINATION size to 4000 char .
            and in the JMS_SUBSRIPTIONS
            I had to change the SELECTOR size to 4000 char .

            This was done long before and I had restarted the server after that several times . I did not face any problem .
            I have written a small JDBC program to retrieve the rows in the JMS_MESSAGES table and that works fine .


            • 3. Re: JBoss message restoration
              aq12ws

              There is difference between the JDBC program that I have written to retrieve the BLOB from the JMS_MESSAGES and the code in the JBoss PersistenceManager.java


              My code :

              BLOB blob = null;
              blob = ((OracleResultSet)rs).getBLOB (2); InputStream instream = blob.getBinaryStream();


              The JBoss code in the PersistenceManager.java :
              org.jboss.mq.pm.jdbc2.PersistenceManager

              ..
              SpyMessage extractMessage(ResultSet rs) throws SQLException, IOException
              {
              // some code
              ObjectInputStream ois = new ObjectInputStream(rs.getBinaryStream(2));
              // some code
              }

              The above line is throwing the exception


              Now can u suggest what should be done to get rid of this issue ...

              • 4. Re: JBoss message restoration
                genman


                Obviously, if you can fix the problem yourself by making a simple code change, feel free to contribute a suitable patch. I seem to recall Adrian coming up with something in CVS recently.

                • 5. Re: JBoss message restoration

                   

                  "genman" wrote:

                  I seem to recall Adrian coming up with something in CVS recently.


                  Not guilty. :-)

                  I am merely testing some code that somebody else contributed.
                  It has only been tested on 10g so far:
                  http://jira.jboss.com/jira/browse/JBAS-2503
                  http://anoncvs.forge.jboss.com/viewrep/JBoss/jbossmq/src/main/org/jboss/mq/pm/jdbc2/OracleThinPersistenceManager.java

                  But just pointing people at experimental code, doesn't discourage people
                  from continually posting these useless FAQs and random guesses
                  to non-jboss problems.

                  Questions/complaints about Oracle's blob support should be directed to Oracle
                  not JBoss's messaging forum.