Hi there,

I am using OJB in a j2ee app running on weblogic.  There is one section of
the code that needs to be part of a JTA transaction (database access via the
PB API and also some JMS writes).

I have the following:

1. In OJB.properties:
-
PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFa
ctorySyncImpl
-
ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryMa
nagedImpl
-
JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.WeblogicTran
sactionManagerFactory

2. In Weblogic:
- One XA datasource
- One non-XA datasource

3. In repository_database.xml
- Two <jdbc-connection-descriptor>s, one pointing at the XA datasource, the
other pointing at the non-XA datasource

<!-- this connection is used as the default by OJB -->
    <jdbc-connection-descriptor
                jcd-alias="DataSource"
                default-connection="true"
                platform="Oracle"
                jdbc-level="2.0"
        eager-release="false"
                batch-mode="false"
        useAutoCommit="0"
        ignoreAutoCommitExceptions="true"
        jndi-datasource-name="java:comp/env/myDataSource"
     >
        <sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
            <attribute attribute-name="autoNaming" attribute-value="true"/>
        </sequence-manager>
   </jdbc-connection-descriptor>

<!-- This connection uses the XA data source -->
        <jdbc-connection-descriptor
                jcd-alias="XADataSource"
                default-connection="false"
                platform="Oracle"
                jdbc-level="2.0"
        eager-release="false"
                batch-mode="false"
        useAutoCommit="0"
        ignoreAutoCommitExceptions="true"
        jndi-datasource-name="java:comp/env/myXADataSource"
     >
        <sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
            <attribute attribute-name="autoNaming" attribute-value="true"/>
        </sequence-manager>
   </jdbc-connection-descriptor>

What I want to do is have just a _single_ module using the XA PB for it's
transactional operations, while the rest use the default PB.  However when I
set my project up as above I get errors whenever I use _any_ broker to do
non-JTA transaction demarcation:

PersistenceBroker broker =
PersistenceBrokerFactory.defaultPersistenceBroker()
broker.beginTransaction();
broker.store(obj);
broker.commitTransaction();

Results in: java.lang.UnsupportedOperationException: In managed environments
only JTA transaction demarcation allowed

Can anyone tell me if it's possible to do what I want, Or am I approaching
this from the wrong angle entirely?  I've failed to find anything detailed
about OJB with JTA, so any help would be great.

Thanks,

Colin.




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to