JBossMQ JDBC2 Persistence Manager using Oracle 9.2
sysuser1 Apr 18, 2003 7:36 PMSorry I posted an incomplete message just before this one ... please ignore that one.
I'm having trouble getting jdbc2.PersistenceManager to use Oracle 9.2, it complains that "Could not store message: 1 msg=1 hard NOT_STORED PERSISTENT queue=QUEUE.REGISTRATION_MDB_QUEUE priority=4 hashCode=29613158; - nested throwable: (java.sql.SQLException: Invalid column type)
Complete Stack Trace at the end.
Has anyone been succesful in using Oracle 9i as the persistent store for JMS in JBoss?
I configured this as follows:
<depends optional-attribute-name="MessageCache">jboss.mq:service=MessageCache
<depends optional-attribute-name="ConnectionManager">jboss.jca:service=LocalTxCM,name=DefaultDS
BLOB_TYPE=OBJECT_BLOB
INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?)
INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?)
SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS
SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGES
SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE DESTINATION=?
SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? AND DESTINATION=?
UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=?
UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=?
UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=?
DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGES WHERE TXID IS NOT NULL AND TXOP=?
DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ?
DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=?
DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
CREATE_MESSAGE_TABLE = CREATE TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL, \
DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1), \
MESSAGEBLOB BLOB, PRIMARY KEY (MESSAGEID, DESTINATION) )
CREATE_TX_TABLE = CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER )
I tried all combinations of BLOB_TYPE ... OBJECT_BLOB, BYTES_BLOB, BINARYSTREAM_BLOB. I also tried creating the JMS_MESSAGES table with LONG RAW instead of BLOB but could not get this to work. Can anyone help me ?
Thanks,
Trev
Stack trace below
19:11:14,612 ERROR [AdminSessionEJB] Could not store message: 1 msg=1 hard NOT_S
TORED PERSISTENT queue=QUEUE.REGISTRATION_MDB_QUEUE priority=4 hashCode=29613158
; - nested throwable: (java.sql.SQLException: Invalid column type)
org.jboss.mq.SpyJMSException: Could not store message: 1 msg=1 hard NOT_STORED P
ERSISTENT queue=QUEUE.REGISTRATION_MDB_QUEUE priority=4 hashCode=29613158; - nes
ted throwable: (java.sql.SQLException: Invalid column type)
at org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:
685)
at org.jboss.mq.server.PersistentQueue.addMessage(PersistentQueue.java:3
9)
at org.jboss.mq.server.JMSQueue.addMessage(JMSQueue.java:124)
at org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationMa
nager.java:404)
at org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationMa
nager.java:384)
at org.jboss.mq.server.JMSServerInterceptorSupport.addMessage(JMSServerI
nterceptorSupport.java:135)
at org.jboss.mq.security.ServerSecurityInterceptor.addMessage(ServerSecu
rityInterceptor.java:162)
at org.jboss.mq.server.TracingInterceptor.addMessage(TracingInterceptor.
java:242)
at org.jboss.mq.server.JMSServerInvoker.addMessage(JMSServerInvoker.java
:137)
at org.jboss.mq.il.jvm.JVMServerIL.addMessage(JVMServerIL.java:137)
at org.jboss.mq.Connection.sendToServer(Connection.java:1243)
at org.jboss.mq.SpySession.sendMessage(SpySession.java:699)
at org.jboss.mq.SpyQueueSender.internalSend(SpyQueueSender.java:118)
at org.jboss.mq.SpyQueueSender.send(SpyQueueSender.java:68)
at com.bea.medrec.controller.AdminSessionEJB.sendToQueue(AdminSessionEJB
.java:718)
at com.bea.medrec.controller.AdminSessionEJB.processRegistration(AdminSe
ssionEJB.java:676)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S
tatelessSessionContainer.java:629)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
ke(CachedConnectionInterceptor.java:186)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat
elessSessionInstanceInterceptor.java:72)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
rceptor.java:84)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
torCMT.java:243)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:1
04)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
java:117)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFacto
ryFinderInterceptor.java:122)
at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessi
onContainer.java:322)
at org.jboss.ejb.Container.invoke(Container.java:674)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBea
nDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.jav
a:88)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.
java:77)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:8
0)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessi
onInterceptor.java:109)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:82)
at $Proxy65.processRegistration(Unknown Source)
at com.bea.medrec.actions.RegisterAction.registerMethod(RegisterAction.j
ava:131)
at com.bea.medrec.actions.RegisterAction.register(RegisterAction.java:94
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchActio
n.java:209)
at com.bea.medrec.actions.BaseLookupDispatchAction.callLookupMethod(Base
LookupDispatchAction.java:161)
at com.bea.medrec.actions.BaseLookupDispatchAction.execute(BaseLookupDis
patchAction.java:61)
at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:437)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:264)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:110
9)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:452)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360
)
at org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApp
licationHandler.java:342)
at com.bea.medrec.filters.RequestEncodingFilter.doFilter(RequestEncoding
Filter.java:44)
at org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApp
licationHandler.java:334)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicati
onHandler.java:286)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:5
58)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplication
Context.java:507)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
at org.mortbay.http.HttpServer.service(HttpServer.java:863)
at org.jboss.jetty.Jetty.service(Jetty.java:460)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:
201)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
Caused by: java.sql.SQLException: Invalid column type
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:269)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedSt
atement.java:3081)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedSt
atement.java:3210)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(Wr
appedPreparedStatement.java:625)
at org.jboss.mq.pm.jdbc2.PersistenceManager.setBlob(PersistenceManager.j
ava:778)
at org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:
715)
at org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:
670)
... 75 more