2 Replies Latest reply on Oct 30, 2006 9:51 AM by 3l30n0r

    Jboss CMP and Blob fields

    3l30n0r

      Hi everyone,
      i have a problem with mapping on a jboss-4.0.3. I have a simple CMP bean with attribute of type byte[]. I wan't to map that property to database blob field (database is Informix). This is the field description in jbosscmp-jdbc.xml

      <entity>
       <ejb-name>ExciseDeclarationHistory</ejb-name>
       <cmp-field>
       <field-name>id</field-name>
       <column-name>id</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>editPerson</field-name>
       <column-name>editperson</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>editPersonOffice</field-name>
       <column-name>editpersonoffice</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>historyBean</field-name>
       <column-name>historybean</column-name>
       </cmp-field>
       </entity>
      



      And this is the throwed exception when i try to create entity
      5:30:01,765 INFO [STDOUT] at java.lang.Thread.run(Thread.java:595)
      15:30:01,765 INFO [STDOUT] Caused by: javax.ejb.EJBException: Store failed; CausedByException is:
       Smart-large-object error.
      15:30:01,765 INFO [STDOUT] at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.execute(JDBCStoreEntityCommand.java:144)
      15:30:01,765 INFO [STDOUT] at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.storeEntity(JDBCStoreManager.java:651)
      15:30:01,765 INFO [STDOUT] at org.jboss.ejb.plugins.CMPPersistenceManager.storeEntity(CMPPersistenceManager.java:413)
      15:30:01,765 INFO [STDOUT] at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.storeEntity(CachedConnectionInterceptor.java:279)
      15:30:01,765 INFO [STDOUT] at org.jboss.ejb.EntityContainer.storeEntity(EntityContainer.java:743)
      15:30:01,765 INFO [STDOUT] at org.jboss.ejb.GlobalTxEntityMap$2.synchronize(GlobalTxEntityMap.java:134)
      15:30:01,765 INFO [STDOUT] at org.jboss.ejb.GlobalTxEntityMap$GlobalTxSynchronization.synchronize(GlobalTxEntityMap.java:253)
      15:30:01,765 INFO [STDOUT] at org.jboss.ejb.GlobalTxEntityMap$GlobalTxSynchronization.beforeCompletion(GlobalTxEntityMap.java:302)
      15:30:01,765 INFO [STDOUT] at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1473)
      15:30:01,765 INFO [STDOUT] at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1092)
      15:30:01,765 INFO [STDOUT] at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:306)
      15:30:01,765 INFO [STDOUT] ... 43 more
      



      Any ideas ?



        • 1. Re: Jboss CMP and Blob fields
          lafr

          This is not an jboss problem but an informix config problem.
          To store blobs in informix you'll have to define on table creation in which dbspace the blob should be placed. If not giving the info, a config parameter will be used (SBSPACENAME).
          I prefer to use byte instead of blob. Data for byte is stored in the dbspace where the table/database lives.

          • 2. Re: Jboss CMP and Blob fields
            3l30n0r

            Thanks :)
            I have tried with byte and all works fine :)