Hello again.  I ran an even simplier example, with one bean.  I tried to
create it using the minerva datasource and the record 'never' got inserted.
All of the beans methods were marked as 'Supports' transactions.  I changed
them to 'Required' and it works fine.

Is there something wrong with 'Supports'?

--jason


On Thu, 30 Nov 2000, Jason Dillon wrote:

> Hello, I have been banging my head for three days now trying to deploy our
> application (which runs just fine under WebLogic 5.1) in jBoss v2.0.  It
> seems that most of my problems are database related.  My entities don't get
> persisted properly.
>
> In the basic scenario I have three beans (lets call them A, B & C)
>
>   A is a stateless session bean, which creates B
>   B is an entity bean
>   C is an entity bean created after A (in the same TX), and has a foriegn key
>     constraint to B.id (which is a java.lang.Long).
>
> I originally was using the 'org.jboss.minerva.xa.XADataSourceImpl' data
> source, which worked well for reading data, but failed to properly write
> data.  With this configuration an oracle exception is throw:
>
>   javax.ejb.CreateException: Could not create entity:java.sql.SQLException:
>   ORA-02291: integrity constraint (PLEXUS.FK_B_ID) violated - parent key not
>   found
>
> This looks like there was never an insert into the B table and thus the FK
> constraint on C.b_id fails.  Interesting though If I change the transaction
> isolation on A.createBandC to 'Supports', the same thing happends, which
> looks like nothing is every being commited.  I also had a sql prompt opened,
> so I could check if any records were inserted and found nothing (with the
> server running and after killing it).
>
> I tried changing the data-source to
> 'oracle.jdbc.xa.client.OracleXADataSource', but with this configuration I
> get:
>
>   java.sql.SQLException: ORA-00060: deadlock detected while waiting for
>   resource
>
> In my sql prompt, rows would not actually show up until I ctrl-c'd the
> server.
>
> Both entities use the 'Standard CMP EntityBean' configuration, which has
> been modified in 'conf/default/standardjboss.xml':
>
>   Optimized: False
>   Commit-option: C (which is a shared db I believe)
>
> The session is a 'Standard Stateless SessionBean' and that configuration has
> not been modified.
>
> The assembly descriptor for A & B looks like this:
>
> ----8<----
>
>  <assembly-descriptor>
>
>     <!-- Methods with 'Supports' TIO -->
>     <container-transaction>
>       <method>
>       <ejb-name>A</ejb-name>
>       <method-name>*</method-name>
>       </method>
>
>       <method>
>       <ejb-name>B</ejb-name>
>       <method-name>*</method-name>
>       </method>
>
>       <trans-attribute>Supports</trans-attribute>
>     </container-transaction>
>
>     <!-- Methods with 'Required' TIO -->
>     <container-transaction>
>       <method>
>       <ejb-name>A</ejb-name>
>       <method-name>createBandC</method-name>
>       </method>
>
>       <trans-attribute>Required</trans-attribute>
>     </container-transaction>
>   </assembly-descriptor>
>
> ---->8----
>
> So the call to A.createBandC(), should have a transaction created if there
> isn't already one.  In my case there isn't.
>
> When I run the 'same' code under WebLogic (with the jndi context changed via
> a system property) every thing runs fine.
>
> Does anyone have any clues as to why jBoss would behave like this?
>
> --jason
>
>



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to