1 Reply Latest reply on Dec 23, 2004 4:11 AM by gquintana

    Problem with timer persistence

    robisz

      I'm trying to completely change the datasource from hsqldb
      to Oracle.

      I have a problem with timer persistence. I've changed the name
      of the datasource in ejb-deployer.xml and modified the CREATE
      TABLE statement to:

      CREATE TABLE TIMERS (
       TIMERID VARCHAR2(50) NOT NULL,
       TARGETID VARCHAR2(50) NOT NULL,
       INITIALDATE TIMESTAMP NOT NULL,
       INTERVAL NUMBER(19),
       INSTANCEPK BLOB,
       INFO BLOB,
       CONSTRAINT TIMERS_PK PRIMARY KEY (TIMERID)
       )


      But it don't works... the table have been created succesfully but Jboss can't create timers...
      I get the following exception:

      2004-10-28 15:46:36,812 ERROR [org.jboss.ejb.txtimer.TimerServiceImpl] Cannot create txtimer
      java.lang.IllegalStateException: Unable to persist timer
       at org.jboss.ejb.txtimer.DatabasePersistencePolicy.insertTimer(DatabasePersistencePolicy.java:137)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      
      ....
      
      Caused by: java.sql.SQLException: Invalid column type
       at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
       at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
       at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
       at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7508)


      What's the problem with the scheme above?

      Thx

        • 1. Re: Problem with timer persistence
          gquintana

          This table schema works for me with Oracle 9.2:

          create table TIMERS(
           TIMERID varchar2(80) not null ,
           TARGETID varchar2(80) not null ,
           INITIALDATE timestamp not null ,
           TIMERINTERVAL number(20) ,
           INSTANCEPK raw(2000) ,
           INFO raw(2000) ,
           constraint TIMERS_PK primary key (TIMERID,TARGETID)
          )
          


          It can be improved!