UnitOfWork commit and transparent indirection issue

During UnitOfWork commit I get the following exception:
EXCEPTION [TOPLINK-150] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.DescriptorException
EXCEPTION DESCRIPTION: The mapping for the attribute [regions] uses transparent indirection so the attribute [regions] must be initialized to an appropriate container. Currently the value is [null].
- JDK 1.1.x: an instance of IndirectList, IndirectMap or Hashtable, or one of their subclasses.
- JDK 1.2 or higher: an instance of an implementor of Collection or Map.
MAPPING: oracle.toplink.mappings.OneToManyMapping[regions]
DESCRIPTOR: Descriptor(ru.v6.marslcc.model.directories.RegionGroup --> [DatabaseTable(DIRECTORY), DatabaseTable(REGION_GROUP)])
I've try to use validateObjectSpace(), but it returns successfully.
When I turn indirection off all works fine.
What am I doing wrong?

In your code make sure regions is a Collection type.
ie: Collection regions = new ArrayList();
In the mapping workbench, ensure that you haven't changed the collection type to be something other than IndirectList under the Collection Options.
Darren

Similar Messages

  • Transparent indirection = Query sent to a unactivated UnitOfWork

    Hi,
    since we upgrade from version 7 to 10g, we have an intermittent error that occur only when accessing a collection that use transparent indirection. I'm loading a participant and I want all his addresses. The addresses collection use indirection so it's only load when it's needed. But when I try to access the addresses, I get this exception :
    Exception [TOPLINK-6027] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.QueryException
    Exception Description: Query sent to a unactivated UnitOfWork.
    Query: ReadAllQuery(xxx.xxx.business.participant.Address)
         at oracle.toplink.exceptions.QueryException.querySentToInactiveUnitOfWork(QueryException.java:816)
         at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2576)
         at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
         at oracle.toplink.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:62)
         at oracle.toplink.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:55)
         at oracle.toplink.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:61)
         at oracle.toplink.indirection.IndirectList.buildDelegate(IndirectList.java:202)
         at oracle.toplink.indirection.IndirectList.getDelegate(IndirectList.java:359)
         at oracle.toplink.indirection.IndirectList$1.<init>(IndirectList.java:461)
         at oracle.toplink.indirection.IndirectList.iterator(IndirectList.java:460)
    The participant and all the other collection (not setup as transparent indirection) are loaded successfully. If I shut down the server, restart it and access the same participant, it work.
    I use the Session object to get the participant. When I successfully get the particpant, I close this session because I can't keep all session open for all the transparent indirection collection.
    We never had this problem before. Maybe something change in the management of the Toplink cache, session and indirection.
    Thank you.
    Andre

    I checked version 9 and this error seems to have always been thrown. There was no version 7 (we went from 4.5 to 9.0.3), so I'm not sure what your original version was? Are you current using 10.1.2 or 10.1.3?
    What seems to be occurring is you are unexpectedly getting a reference to an object from a UnitOfWork, instead of from the Session cache. This could be caused by your application incorrectly modifying original objects or not registering object correctly in a UnitOfWork, or from a merge issue.
    Nothing should have changed in TopLink's cache management or indirection. You may wish to try narrowing down how your application is getting a reference to a UnitOfWork clone. You can use,
    session.getIdentityMapAccessor().getFromIdentityMap(object)
    to get the cached version of an object, if your object is not identical to this, then it could be from a UnitOfWork.

  • SVG to PDF/AI gradient and transparency issues

    This is probably quite off topic for these forums, so apologies for that up front, but I can't seem to get answers in more appropriate places.
    I am trying to use inkscape or rsvg-convert, which both use cairo, to convert SVG to PDF.
    Firstly, when I open the SVG in Illustrator directly, everything works as expected, but the cairo converted PDF has a couple of problems.
    Typically I get "An unknown  shading type was encountered" and the offending shapes are un-editable  "images" with a clipping mask over them.
    There are two  circumstances that result in problems for me.
    1) A gradient with  only 2 stops.
    In the following example I have duplicated the  offset="0" stop which fixes things and means that the resulting shape  that is filled with this gradient works fine. Without the duplicate  declaration, the gradient is converted to  an un-editable image with a  clipping mask when the PDF is viewed in Illustrator.
       <linearGradient id="ian_symbols_b8a58aafc1f12e74492e9e865b7f569b"  gradientUnits="userSpaceOnUse" x1="113.7275" y1="136.9414" x2="197.0259"  y2="136.9414">
        <stop offset="0" style="stop-color:#927A62"  id="stop1472" />
        <stop offset="0"  style="stop-color:#927A62" id="stop1472_dup" />
        <stop  offset="1" style="stop-color:#93866F" id="stop1474" />
       </linearGradient>
    2) A shape that has  an opacity that is less than "1". I don't know how to fix this one and  still maintain the look of the original. I understand that there are  some issues with transparency and the PDF format, but obviously the full  AI version of the PDF format these days supports transparency.
    Does anyone have any experience doing server-side conversions of SVG to PDF and have managed to create a PDF which contains gradients and transparency that are actually editable once opened in Illustrator?
    Or does anyone know if there is something more I  can do with the original SVG code to make the opacity work ok in the  final PDF?
    Thanks

    Works fine for me as .ai with pdf comptible turned on. You may have input transparency in the wrong location in Illustrator. Change opacity in the gradient palette, and not tint in the color palette.
    Opacity is 0 here, anything less tha 100% will create tranaprency. To proof in Illustratopr do a Shift Command D to change your background to a checkerboard pattern.

  • NullPointerException during UnitOfWork commit

    During UnitOfWork commit the following exception is thrown:
    LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-69] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.DescriptorException
    EXCEPTION DESCRIPTION: A NullPointerException was thrown while extracting a value from the instance variable [id] in the object [ClassB].
    INTERNAL EXCEPTION: java.lang.NullPointerException
    MAPPING: oracle.toplink.mappings.DirectToFieldMapping[id-->DatabaseField(B_TABLE.Id)]
    DESCRIPTOR: Descriptor(ClassB --> [DatabaseTable(B_TABLE)])
         at oracle.toplink.exceptions.DescriptorException.nullPointerWhileGettingValueThruInstanceVariableAccessor(Unknown Source)
         at oracle.toplink.internal.descriptors.InstanceVariableAttributeAccessor.getAttributeValueFromObject(Unknown Source)
         at oracle.toplink.mappings.DatabaseMapping.getAttributeValueFromObject(Unknown Source)
         at oracle.toplink.mappings.DirectToFieldMapping.iterate(Unknown Source)
         at oracle.toplink.internal.descriptors.ObjectBuilder.iterate(Unknown Source)
         at oracle.toplink.internal.descriptors.DescriptorIterator.iterateReferenceObjects(Unknown Source)
         at oracle.toplink.internal.descriptors.DescriptorIterator.startIterationOn(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.discoverUnregisteredNewObjects(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.discoverAllUnregisteredNewObjects(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.assignSequenceNumbers(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.collectAndPrepareObjectsForCommit(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commitToDatabase(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commit(Unknown Source)
         at Main.main(Main.java:33)
    INTERNAL EXCEPTION STACK:
    java.lang.NullPointerException
         at oracle.toplink.internal.descriptors.InstanceVariableAttributeAccessor.getAttributeValueFromObject(Unknown Source)
         at oracle.toplink.mappings.DatabaseMapping.getAttributeValueFromObject(Unknown Source)
         at oracle.toplink.mappings.DirectToFieldMapping.iterate(Unknown Source)
         at oracle.toplink.internal.descriptors.ObjectBuilder.iterate(Unknown Source)
         at oracle.toplink.internal.descriptors.DescriptorIterator.iterateReferenceObjects(Unknown Source)
         at oracle.toplink.internal.descriptors.DescriptorIterator.startIterationOn(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.discoverUnregisteredNewObjects(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.discoverAllUnregisteredNewObjects(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.assignSequenceNumbers(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.collectAndPrepareObjectsForCommit(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commitToDatabase(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commit(Unknown Source)
         at Main.main(Main.java:33)
    All attributes of my objects are non-null.
    What's wrong?

    Here are my classes:
    public class ClassA {
    public long id;
    public java.util.List listB;
    public java.lang.String name;
    // Sestters and getters are here
    public class ClassB {
    public long id;
    public java.lang.String name;
    public ClassA refA;
    // Sestters and getters are here
    I use transparent indirection for ClassA.listB and no indirection for ClassB.refA.
    Here is how I use these classes:
    UnitOfWork uow = session.acquireUnitOfWork();
    ClassA objA = new ClassA();
    objA.setName("objectA");
    objA.setListB(new ArrayList(10));
    for (int i = 0; i < 10; i++) {
    ClassB objB = new ClassB();
    objB.setName("objectB" + i);
    objB.setRefA(objA);
    objA.getListB().add(objB);
    uow.registerNewObject(objB);
    uow.registerNewObject(objA);
    uow.commit();
    Here is log:
    2003.07.31 12:48:44.759--DatabaseSession(160388)--Thread[main,5,main]--acquire unit of work:5396218
    2003.07.31 12:48:44.759--UnitOfWork(5396218)--#registerNew(ClassB@4c4975)
    2003.07.31 12:48:44.769--UnitOfWork(5396218)--#registerNew(ClassB@2da3d)
    2003.07.31 12:48:44.769--UnitOfWork(5396218)--#registerNew(ClassB@6c8909)
    2003.07.31 12:48:44.769--UnitOfWork(5396218)--#registerNew(ClassB@497934)
    2003.07.31 12:48:44.779--UnitOfWork(5396218)--#registerNew(ClassB@280a69)
    2003.07.31 12:48:44.779--UnitOfWork(5396218)--#registerNew(ClassB@40ec97)
    2003.07.31 12:48:44.779--UnitOfWork(5396218)--#registerNew(ClassB@3b60c3)
    2003.07.31 12:48:44.779--UnitOfWork(5396218)--#registerNew(ClassB@7a1bb6)
    2003.07.31 12:48:44.779--UnitOfWork(5396218)--#registerNew(ClassB@5e256f)
    2003.07.31 12:48:44.789--UnitOfWork(5396218)--#registerNew(ClassB@6e1fb1)
    2003.07.31 12:48:44.789--UnitOfWork(5396218)--#registerNew(ClassA@1360e2)
    2003.07.31 12:48:44.789--UnitOfWork(5396218)--begin unit of work commit
    2003.07.31 12:48:44.809--DatabaseSession(160388)--Connection(2913640)--begin transaction
    2003.07.31 12:48:44.819--UnitOfWork(5396218)--#executeQuery(DataModifyQuery())
    2003.07.31 12:48:44.819--UnitOfWork(5396218)--Connection(2913640)--UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + 1 WHERE SEQ_NAME = 'CLASSB'
    2003.07.31 12:48:45.430--UnitOfWork(5396218)--#executeQuery(ValueReadQuery())
    2003.07.31 12:48:45.430--UnitOfWork(5396218)--Connection(2913640)--SELECT SEQ_COUNT FROM SEQUENCE WHERE SEQ_NAME = 'CLASSB'
    2003.07.31 12:48:45.660--DatabaseSession(160388)--Connection(2913640)--commit transaction
    2003.07.31 12:48:45.670--UnitOfWork(5396218)--#assignSequence(112->ClassB@5e256f)
    [ Skipped ]
    2003.07.31 12:48:48.515--DatabaseSession(160388)--Connection(2913640)--begin transaction
    2003.07.31 12:48:48.515--UnitOfWork(5396218)--#executeQuery(DataModifyQuery())
    2003.07.31 12:48:48.515--UnitOfWork(5396218)--Connection(2913640)--UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + 1 WHERE SEQ_NAME = 'CLASSB'
    2003.07.31 12:48:48.605--UnitOfWork(5396218)--#executeQuery(ValueReadQuery())
    2003.07.31 12:48:48.605--UnitOfWork(5396218)--Connection(2913640)--SELECT SEQ_COUNT FROM SEQUENCE WHERE SEQ_NAME = 'CLASSB'
    2003.07.31 12:48:48.665--DatabaseSession(160388)--Connection(2913640)--commit transaction
    2003.07.31 12:48:48.685--UnitOfWork(5396218)--#assignSequence(121->ClassB@497934)
    2003.07.31 12:48:48.685--DatabaseSession(160388)--Connection(2913640)--begin transaction
    2003.07.31 12:48:48.685--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:48.695--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO A_TABLE (Id, Name) VALUES (13, 'objectA')
    2003.07.31 12:48:48.765--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@6e1fb1))
    2003.07.31 12:48:48.765--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:48.765--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (120, 'objectB9', 13)
    2003.07.31 12:48:48.855--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@40ec97))
    2003.07.31 12:48:48.855--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:48.855--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (114, 'objectB5', 13)
    2003.07.31 12:48:48.905--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@3b60c3))
    2003.07.31 12:48:48.905--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:48.905--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (117, 'objectB6', 13)
    2003.07.31 12:48:48.965--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@6c8909))
    2003.07.31 12:48:48.965--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:48.965--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (115, 'objectB2', 13)
    2003.07.31 12:48:49.015--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@5e256f))
    2003.07.31 12:48:49.015--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:49.015--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (112, 'objectB8', 13)
    2003.07.31 12:48:49.086--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@2da3d))
    2003.07.31 12:48:49.086--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:49.086--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (113, 'objectB1', 13)
    2003.07.31 12:48:49.126--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@4c4975))
    2003.07.31 12:48:49.126--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:49.126--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (118, 'objectB0', 13)
    2003.07.31 12:48:49.166--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@7a1bb6))
    2003.07.31 12:48:49.176--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:49.176--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (116, 'objectB7', 13)
    2003.07.31 12:48:49.236--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@497934))
    2003.07.31 12:48:49.236--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:49.236--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (121, 'objectB3', 13)
    2003.07.31 12:48:49.296--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassB@280a69))
    2003.07.31 12:48:49.296--UnitOfWork(5396218)--#executeQuery(WriteObjectQuery(ClassA@1360e2))
    2003.07.31 12:48:49.296--UnitOfWork(5396218)--Connection(2913640)--INSERT INTO B_TABLE (Id, Name, A_Id) VALUES (119, 'objectB4', 13)
    2003.07.31 12:48:49.326--DatabaseSession(160388)--Connection(2913640)--commit transaction
    2003.07.31 12:48:49.837--UnitOfWork(5396218)--EXCEPTION [TOPLINK-150] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.DescriptorException
    EXCEPTION DESCRIPTION: The mapping for the attribute [listB] uses transparent indirection so the attribute [listB] must be initialized to an appropriate container. Currently the value is [null].
    - JDK 1.1.x: an instance of IndirectList, IndirectMap or Hashtable, or one of their subclasses.
    - JDK 1.2 or higher: an instance of an implementor of Collection or Map.
    MAPPING: oracle.toplink.mappings.OneToManyMapping[listB]
    DESCRIPTOR: Descriptor(ClassA --> [DatabaseTable(A_TABLE)])LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-150] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.DescriptorException
    EXCEPTION DESCRIPTION: The mapping for the attribute [listB] uses transparent indirection so the attribute [listB] must be initialized to an appropriate container. Currently the value is [null].
    - JDK 1.1.x: an instance of IndirectList, IndirectMap or Hashtable, or one of their subclasses.
    - JDK 1.2 or higher: an instance of an implementor of Collection or Map.
    MAPPING: oracle.toplink.mappings.OneToManyMapping[listB]
    DESCRIPTOR: Descriptor(ClassA --> [DatabaseTable(A_TABLE)])
         at oracle.toplink.exceptions.DescriptorException.indirectContainerInstantiationMismatch(Unknown Source)
         at oracle.toplink.internal.indirection.TransparentIndirectionPolicy.validateAttributeOfInstantiatedObject(Unknown Source)
         at oracle.toplink.mappings.ForeignReferenceMapping.getAttributeValueFromObject(Unknown Source)
         at oracle.toplink.mappings.ForeignReferenceMapping.isAttributeValueInstantiated(Unknown Source)
         at oracle.toplink.mappings.CollectionMapping.mergeChangesIntoObject(Unknown Source)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeChangesIntoObject(Unknown Source)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfWorkingCopyIntoOriginal(Unknown Source)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(Unknown Source)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeChangesIntoObject(Unknown Source)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeChangesIntoObject(Unknown Source)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfWorkingCopyIntoOriginal(Unknown Source)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.mergeChangesIntoParent(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork(Unknown Source)
         at oracle.toplink.publicinterface.UnitOfWork.commit(Unknown Source)
         at Main.main(Main.java:46)

  • Two phase commit and bean managed transactions

    To all the Transaction GURUS!
              Hi guys (-and gals).
              I've been doing J2EE for quite a while, but today was my first at
              XA-Transactions and Bean Managed Transactions.
              Why am I doing this?
              ====================
              Well I have to be able to controll the transactionalbehaviour of my
              bean
              during runtime, since some bean calls would cause a transactional
              overflow due to the stress they would cause to the system, whereas
              smaller bean calls need to run in one transaction.
              -> Therefore I need Bean Managed Transactions
              Since the bean does a call on two Database Connections it has to use a
              XA-Transaction.
              -> Therefore I need XA-Transactions.
              Abstract
              ========
              - I just can't get a User TransAction into the right Status it stays
              in 'STATUS_NO_TRANSACTION' all the time
              - Therefore the SQL Commands can be comitted 'java.sql.SQLException:
              Does not support SQL execution with no global transaction'
              - Therefore I can't do a rollback 'java.lang.IllegalStateException:
              Transaction does not exist'
              - Therefore I wrote this mail.
              I don't want to be a smart-"ass" writing such a detailed and indepth
              mail. I just would like to show that I tried, and would like to have
              some replies from you guys.
              Below are my configurations, code and logfiles.
              Thanx for taking your time and hope that the other people may learn
              something as well.
              cu
              Stefan
              Scenario
              ========
              used Software
              Bea Weblogic (WL) 6.0 SPx (not real sure which SP i have)
              Oracle 8.1.6 using the API-Version 8
              I configured the system as follows:
              (ofcourse I 'xxx'ed out all of the confidential data, sorry guys;-))
              excerpt from:
              config.xml
              <JDBCConnectionPool CapacityIncrement="5"
              DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="2"
              LoginDelaySeconds="1" MaxCapacity="5" Name="oraclePool"
              Properties="user=xxx;password=xxx;dll=ocijdbc8;protocol=thin"
              RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              TestTableName="languages" URL="jdbc:oracle:thin:@xxx:1521:xxx "/>
              <!-- Since this is our Main Datasource I would not like to use a XA
              Transaction due to performance Issues
              and the TxDataSource:
              -->
              <JDBCTxDataSource EnableTwoPhaseCommit="true"
              JNDIName="finstral.datasource.fbs" Name="finstral Content Datasource"
              PoolName="oraclePool" Targets="fbsserver"/>
              <!-- no comment required -I hope.
              Next comes the "special" Pool
              -->
              <JDBCConnectionPool CapacityIncrement="5"
              DriverName="weblogic.jdbc.oci.xa.XADataSource" InitialCapacity="1"
              LoginDelaySeconds="1" MaxCapacity="2" Name="oracleSecurityPool"
              Properties="user=xxx;password=xxx;server=xxx.xxx.xxx"
              RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              TestTableName="Users" SupportsLocalTransaction="true"/>
              <!-- Well since there can only be one none XARessourceManager involved
              in a 2PC
              (keyword: Two Phase Commit) I will have to use a XACapable Driver for
              the other
              Datasource. Due to all the bugs in the oracle.xxx driver. I'll be
              using the jdriver for oci.
              I activated 'SupportsLocalTransaction' hoping it would solve my
              problem - without effect. I just left in there now, since it made
              sense me. Not?
              Again the TxDataSource:
              -->
              <JDBCTxDataSource EnableTwoPhaseCommit="true"
              JNDIName="finstral.datasource.fbssecurity" Name="finstral Security
              Datasource" PoolName="oracleSecurityPool" Targets="fbsserver"/>
              <!-- The System starts right up and can locate the test tables and
              everything. So I think all of this stuff is working here -->
              ejb-jar.xml
              <ejb-jar>
                   <enterprise-beans>
                        <session>
                             <ejb-name>TPCTestBean</ejb-name>
              <home>de.sitewaerts.futuna.common.test.tpcbean.TPCHome</home>
              <remote>de.sitewaerts.futuna.common.test.tpcbean.TPC</remote>
              <ejb-class>de.sitewaerts.futuna.common.test.tpcbean.TPCBean</ejb-class>
                             <session-type>Stateless</session-type>
                             <transaction-type>Bean</transaction-type>
                        </session>
                   </enterprise-beans>
                   <assembly-descriptor/>
              </ejb-jar>
              <!-- Originally I had the assembly-descriptor full of transaction
              requirements. I thought since
              the bean is handling all of the transaction stuff itself, it might get
              confused by the 'container-transaction'
              properties, and deleted them. Do I need them anyway?-->
              weblogic-ejb-jar.xml
              <weblogic-ejb-jar>
                   <weblogic-enterprise-bean>
                        <ejb-name>TPCTestBean</ejb-name>
                        <stateless-session-descriptor/>
                        <jndi-name>finstral/ejb/test_tpc</jndi-name>
                   </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
              <!-- Nothing I have to explain here -->
              BeanCode (from the implementingBeanClass:
              'de.sitewaerts.futuna.common.test.tpcbean.TPCBean')
              public void setupTables() throws RemoteException
              UserTransaction tx = getTransaction();
              //getTransaction calls: 'tx = sCtx.getUserTransaction()' and does
              some errorhandling
              log.info("Die Transaktion vor den Connections: "+tx.toString());
              //Sorry bout the German. You should get the Message though.
              log.info("Der Transaktionsstatus vor den Connections:
              "+transactionStatus(tx));
              Connection conSecurity = getConnection(DATASOURCE_SECURITY, tx);
              //gets a Connection via a DataSourceName from the JNDI tree
              Connection conContent = getConnection(DATASOURCE_CONTENT, tx);
              log.info("Die frische Connection conSecurity: "+conSecurity);
              log.info("Die frische Connection conContent: "+conContent);
              tearDownTable(conSecurity);
              //Does nothing special
              tearDownTable(conContent);
              log.info("Die Transaktion nach dem Teardown: "+tx.toString());
              log.info("Der Transaktionsstatus nach dem Teardown:
              "+transactionStatus(tx));
              Statement stmt = null;
              try
              stmt = conSecurity.createStatement();
              //Well its getting interesting now.....
              log.info("Die Transaktion vor dem createtable: "+tx.toString());
              log.info("Der Transaktionsstatus vor dem createtable:
              "+transactionStatus(tx));
              log.info("Die Connection conSecurity vor dem createtable:
              "+conSecurity);
              log.info("Die Connection conContent vor dem createtable:
              "+conContent);
              stmt.executeUpdate(CREATE_TABLE);
              //above is the row 91 -> throws: 'java.sql.SQLException: Does
              not support SQL execution with no global transaction'
              stmt.close();
              stmt = conContent.createStatement();
              stmt.executeUpdate(CREATE_TABLE);
              stmt.close();
              commitTransaction(tx);
              catch (SQLException sqle)
              log.error("Konnte kein table init machen", sqle);
              rollbackTransaction(tx);
              //The Code for this method is below
              throw new EJBException(sqle);
              finally
              closeConnection(conSecurity);
              closeConnection(conContent);
              protected void rollbackTransaction(UserTransaction tx)
              log.info("Der Transaktionsstatus vor dem Rollback:
              "+transactionStatus(tx));
              log.info("Die Transaktion vor dem Rollback: "+tx.toString());
              try
              tx.rollback();
              //above is row 200 -> throws: 'java.lang.IllegalStateException:
              Transaction does not exist'
              log.info("Der Transaktionsstatus nach dem Rollback:
              "+transactionStatus(tx));
              log.info("Die Transaktion nach dem Rollback: "+tx.toString());
              catch (Exception e)
              log.error("Konnte die Transaktion nicht backrollen.", e);
              throw new EJBException(e);
              Log Excerpt
              ===========
              INFO setupTables() (66) - Die Transaktion vor den Connections:
              [email protected]
              INFO setupTables() (67) - Der Transaktionsstatus vor den Connections:
              STATUS_NO_TRANSACTION
              INFO setupTables() (72) - Die frische Connection conSecurity:
              weblogic.jdbc.rmi.SerialConnection@7c6daa
              INFO setupTables() (73) - Die frische Connection conContent:
              weblogic.jdbc.rmi.SerialConnection@3b425
              INFO setupTables() (78) - Die Transaktion nach dem Teardown:
              [email protected]
              INFO setupTables() (79) - Der Transaktionsstatus nach dem Teardown:
              STATUS_NO_TRANSACTION
              INFO setupTables() (86) - Die Transaktion vor dem createtable:
              [email protected]
              INFO setupTables() (87) - Der Transaktionsstatus vor dem createtable:
              STATUS_NO_TRANSACTION
              INFO setupTables() (88) - Die Connection conSecurity vor dem
              createtable: weblogic.jdbc.rmi.SerialConnection@7c6daa
              INFO setupTables() (89) - Die Connection conContent vor dem
              createtable: weblogic.jdbc.rmi.SerialConnection@3b425
              ERROR setupTables() (101) - Konnte kein table init machen
              java.sql.SQLException: Does not support SQL execution with no global
              transaction
                   at
              weblogic.jdbc.oci.xa.XAConnection.beforeExecute(XAConnection.java:137)
                   at
              weblogic.jdbc.oci.xa.Statement.executeUpdate(Statement.java:112)
                   at weblogic.jdbc.jta.Statement.executeUpdate(Statement.java:185)
                   at
              weblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.jav
              a:42)
                   at
              weblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:54)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.jav
              a:91)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBean
              Impl.java:130)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCBe
              anEOImpl.java:64)
                   at
              de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseCo
              mmitUnitTest.java:51)
                   at
              org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTes
              tCase.java:297)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servle
              tTestCaller.java:148)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCal
              ler.java:199)
                   at
              org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTes
              tRedirector.java:149)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
                   at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.
              java:213)
                   at
              weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl
              etContext.java:1265)
                   at
              weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.
              java:1631)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              INFO rollbackTransaction() (196) - Der Transaktionsstatus vor dem
              Rollback: STATUS_NO_TRANSACTION
              INFO rollbackTransaction() (197) - Die Transaktion vor dem Rollback:
              [email protected]
              ERROR rollbackTransaction() (206) - Konnte die Transaktion nicht
              backrollen.
              java.lang.IllegalStateException: Transaction does not exist
                   at
              weblogic.transaction.internal.TransactionManagerImpl.rollback(Transactio
              nManagerImpl.java:228)
                   at
              weblogic.transaction.internal.TransactionManagerImpl.rollback(Transactio
              nManagerImpl.java:222)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBean.rollbackTransaction(TPC
              Bean.java:200)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.jav
              a:102)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBean
              Impl.java:130)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCBe
              anEOImpl.java:64)
                   at
              de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseCo
              mmitUnitTest.java:51)
                   at
              org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTes
              tCase.java:297)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servle
              tTestCaller.java:148)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCal
              ler.java:199)
                   at
              org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTes
              tRedirector.java:149)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
                   at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.
              java:213)
                   at
              weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl
              etContext.java:1265)
                   at
              weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.
              java:1631)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              CONCLUSION
              ==========
              I'm going nuts.
              I just don't get it.
              The transaction is the same. I don't change the Connection. I start
              the Transaction at the beginning before I do anything!
              Please guys help me out.
              Thx alot.
              Stefan "it's three o'clock in the morning, my girlfriend left me, and
              my only friend is that stupid linux pinguine" Siprell
              Software-Development
              <<<<<<<<<<<<<<<<<<<<<<<<<<<
              <sitewaerts> GmbH
              Hebelstraße 15
              D-76131 Karlsruhe
              Tel: +49 (721) 920 918 22
              Fax: +49 (721) 920 918 29
              http://www.sitewaerts.de
              >>>>>>>>>>>>>>>>>>>>>>>>>>>
              

    Hi Priscilla
              (did you ever see the movie ? :-))
              Well I moved away from the idea of using bean managed transaction. I'll
              be using Container Managed Transactions. To modify the
              transactionalbehaviour I'll write proxymethods which have certain
              different containermanaged transaction properties, but which all call
              the same private methods.
              But it works! Here is my experience:
              - I was doing a DDL statement: I was trying to create new Tables, which
              is a definite "no-go"
              - pay careful attention to:
              http://edocs.bea.com/wls/docs60/jta/trxejb.html#1051405
                        and
              http://edocs.bea.com/wls/docs60/jta/trxejb.html#1051741
              and use these Settings for the Pool, don't ask me why, but it took me
              hours to find it out by myself:
                   <JDBCConnectionPool CapacityIncrement="5"
              DriverName="weblogic.jdbc.oci.xa.XADataSource" InitialCapacity="1"
              LoginDelaySeconds="1" MaxCapacity="2" Name="oracleSecurityPool"
              Properties="user=xxx; password=xxx; server=xxx.xxx.xxx"
              RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              TestTableName="Users" SupportsLocalTransaction="true"/>
              where as the server (shown as: xxx.xxx.xxx) is the TNS Name of the
              Oracle Driver.
              It works great.
              Another thing you guys might want to do is write a simple StatelessSB
              which does JDBC calls and two different database Connections.
              Then write a UnitTest which calls this bean a couple hundred times (with
              the same transaction). Have one test do clean writes, and another which
              causes some SQL-Exception (too long Data Columns, or likewise).
              Always count the entries and see if everything worked out. We're using
              this SetupConstruction to test new combinations of AS(sorry Priscilla) /
              Database / Db-Drivers to have a "standard test".
              I know my two cents were uncalled for, but it might save you some
              time.....
              thanx for your help
              Stefan
              -----Ursprüngliche Nachricht-----
              Von: Priscilla Fung [mailto:[email protected]]
              Bereitgestellt: Donnerstag, 2. August 2001 21:42
              Bereitgestellt in: transaction
              Unterhaltung: Two phase commit and bean managed transactions
              Betreff: Re: Two phase commit and bean managed transactions
              Hi Stefan,
              Looks like you have not actually begun a transaction by calling
              UserTransaction.begin(),
              so your setupTables method is really executing with no transaction
              context.
              Priscilla
              Stefan Siprell <[email protected]> wrote:
              >To all the Transaction GURUS!
              >
              >Hi guys (-and gals).
              >I've been doing J2EE for quite a while, but today was my first at
              >XA-Transactions and Bean Managed Transactions.
              >
              >Why am I doing this?
              >====================
              >Well I have to be able to controll the transactionalbehaviour of my
              >bean
              >during runtime, since some bean calls would cause a transactional
              >overflow due to the stress they would cause to the system, whereas
              >smaller bean calls need to run in one transaction.
              >-> Therefore I need Bean Managed Transactions
              >Since the bean does a call on two Database Connections it has to use
              >a
              >XA-Transaction.
              >-> Therefore I need XA-Transactions.
              >
              >Abstract
              >========
              >- I just can't get a User TransAction into the right Status it stays
              >in 'STATUS_NO_TRANSACTION' all the time
              >- Therefore the SQL Commands can be comitted 'java.sql.SQLException:
              >Does not support SQL execution with no global transaction'
              >- Therefore I can't do a rollback 'java.lang.IllegalStateException:
              >Transaction does not exist'
              >- Therefore I wrote this mail.
              >
              >I don't want to be a smart-"ass" writing such a detailed and indepth
              >mail. I just would like to show that I tried, and would like to have
              >some replies from you guys.
              >
              >Below are my configurations, code and logfiles.
              >
              >Thanx for taking your time and hope that the other people may learn
              >something as well.
              >
              >cu
              >
              >Stefan
              >
              >
              >Scenario
              >========
              >
              >used Software
              >-------------
              >Bea Weblogic (WL) 6.0 SPx (not real sure which SP i have)
              >Oracle 8.1.6 using the API-Version 8
              >
              >
              >I configured the system as follows:
              >(ofcourse I 'xxx'ed out all of the confidential data, sorry guys;-))
              >excerpt from:
              >
              >config.xml
              >----------
              ><JDBCConnectionPool CapacityIncrement="5"
              >DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="2"
              >LoginDelaySeconds="1" MaxCapacity="5" Name="oraclePool"
              >Properties="user=xxx;password=xxx;dll=ocijdbc8;protocol=thin"
              >RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              >TestTableName="languages" URL="jdbc:oracle:thin:@xxx:1521:xxx "/>
              >
              ><!-- Since this is our Main Datasource I would not like to use a XA
              >Transaction due to performance Issues
              >and the TxDataSource:
              >-->
              >
              ><JDBCTxDataSource EnableTwoPhaseCommit="true"
              >JNDIName="finstral.datasource.fbs" Name="finstral Content Datasource"
              >PoolName="oraclePool" Targets="fbsserver"/>
              >
              ><!-- no comment required -I hope.
              >Next comes the "special" Pool
              >-->
              >
              ><JDBCConnectionPool CapacityIncrement="5"
              >DriverName="weblogic.jdbc.oci.xa.XADataSource" InitialCapacity="1"
              >LoginDelaySeconds="1" MaxCapacity="2" Name="oracleSecurityPool"
              >Properties="user=xxx;password=xxx;server=xxx.xxx.xxx"
              >RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              >TestTableName="Users" SupportsLocalTransaction="true"/>
              >
              ><!-- Well since there can only be one none XARessourceManager involved
              >in a 2PC
              >(keyword: Two Phase Commit) I will have to use a XACapable Driver for
              >the other
              >Datasource. Due to all the bugs in the oracle.xxx driver. I'll be
              >using the jdriver for oci.
              >I activated 'SupportsLocalTransaction' hoping it would solve my
              >problem - without effect. I just left in there now, since it made
              >sense me. Not?
              >Again the TxDataSource:
              >-->
              >
              ><JDBCTxDataSource EnableTwoPhaseCommit="true"
              >JNDIName="finstral.datasource.fbssecurity" Name="finstral Security
              >Datasource" PoolName="oracleSecurityPool" Targets="fbsserver"/>
              >
              ><!-- The System starts right up and can locate the test tables and
              >everything. So I think all of this stuff is working here -->
              >
              >
              >
              >ejb-jar.xml
              >-----------
              ><ejb-jar>
              >     <enterprise-beans>
              >          <session>
              >               <ejb-name>TPCTestBean</ejb-name>
              >     
              ><home>de.sitewaerts.futuna.common.test.tpcbean.TPCHome</home>
              >     
              ><remote>de.sitewaerts.futuna.common.test.tpcbean.TPC</remote>
              >     
              ><ejb-class>de.sitewaerts.futuna.common.test.tpcbean.TPCBean</ejb-class>
              >               <session-type>Stateless</session-type>
              >               <transaction-type>Bean</transaction-type>
              >          </session>
              >     </enterprise-beans>
              >     <assembly-descriptor/>
              ></ejb-jar>
              >
              ><!-- Originally I had the assembly-descriptor full of transaction
              >requirements. I thought since
              >the bean is handling all of the transaction stuff itself, it might get
              >confused by the 'container-transaction'
              >properties, and deleted them. Do I need them anyway?-->
              >
              >weblogic-ejb-jar.xml
              >--------------------
              ><weblogic-ejb-jar>
              >     <weblogic-enterprise-bean>
              >          <ejb-name>TPCTestBean</ejb-name>
              >          <stateless-session-descriptor/>
              >          <jndi-name>finstral/ejb/test_tpc</jndi-name>
              >     </weblogic-enterprise-bean>
              ></weblogic-ejb-jar>
              >
              ><!-- Nothing I have to explain here -->
              >
              >BeanCode (from the implementingBeanClass:
              >'de.sitewaerts.futuna.common.test.tpcbean.TPCBean')
              >-----------------------------------------------------------------------
              >---------------------
              >
              > public void setupTables() throws RemoteException
              > {
              > UserTransaction tx = getTransaction();
              > //getTransaction calls: 'tx = sCtx.getUserTransaction()' and does
              >some errorhandling
              >
              > log.info("Die Transaktion vor den Connections: "+tx.toString());
              > //Sorry bout the German. You should get the Message though.
              > log.info("Der Transaktionsstatus vor den Connections:
              >"+transactionStatus(tx));
              >
              > Connection conSecurity = getConnection(DATASOURCE_SECURITY, tx);
              > //gets a Connection via a DataSourceName from the JNDI tree
              > Connection conContent = getConnection(DATASOURCE_CONTENT, tx);
              >
              > log.info("Die frische Connection conSecurity: "+conSecurity);
              > log.info("Die frische Connection conContent: "+conContent);
              >
              > tearDownTable(conSecurity);
              > //Does nothing special
              > tearDownTable(conContent);
              >
              > log.info("Die Transaktion nach dem Teardown: "+tx.toString());
              > log.info("Der Transaktionsstatus nach dem Teardown:
              >"+transactionStatus(tx));
              >
              > Statement stmt = null;
              > try
              > {
              > stmt = conSecurity.createStatement();
              > //Well its getting interesting now.....
              >
              > log.info("Die Transaktion vor dem createtable: "+tx.toString());
              > log.info("Der Transaktionsstatus vor dem createtable:
              >"+transactionStatus(tx));
              > log.info("Die Connection conSecurity vor dem createtable:
              >"+conSecurity);
              > log.info("Die Connection conContent vor dem createtable:
              >"+conContent);
              >
              > stmt.executeUpdate(CREATE_TABLE);
              > //above is the row 91 -> throws: 'java.sql.SQLException: Does
              >not support SQL execution with no global transaction'
              >
              > stmt.close();
              >
              > stmt = conContent.createStatement();
              > stmt.executeUpdate(CREATE_TABLE);
              > stmt.close();
              > commitTransaction(tx);
              > }
              > catch (SQLException sqle)
              > {
              > log.error("Konnte kein table init machen", sqle);
              > rollbackTransaction(tx);
              > //The Code for this method is below
              > throw new EJBException(sqle);
              > }
              > finally
              > {
              > closeConnection(conSecurity);
              > closeConnection(conContent);
              > }
              > }
              >
              > protected void rollbackTransaction(UserTransaction tx)
              > {
              > log.info("Der Transaktionsstatus vor dem Rollback:
              >"+transactionStatus(tx));
              > log.info("Die Transaktion vor dem Rollback: "+tx.toString());
              > try
              > {
              > tx.rollback();
              > //above is row 200 -> throws: 'java.lang.IllegalStateException:
              >Transaction does not exist'
              > log.info("Der Transaktionsstatus nach dem Rollback:
              >"+transactionStatus(tx));
              > log.info("Die Transaktion nach dem Rollback: "+tx.toString());
              > }
              > catch (Exception e)
              > {
              > log.error("Konnte die Transaktion nicht backrollen.", e);
              > throw new EJBException(e);
              > }
              > }
              >
              >Log Excerpt
              >===========
              >INFO setupTables() (66) - Die Transaktion vor den Connections:
              >[email protected]
              >INFO setupTables() (67) - Der Transaktionsstatus vor den Connections:
              >STATUS_NO_TRANSACTION
              >INFO setupTables() (72) - Die frische Connection conSecurity:
              >weblogic.jdbc.rmi.SerialConnection@7c6daa
              >INFO setupTables() (73) - Die frische Connection conContent:
              >weblogic.jdbc.rmi.SerialConnection@3b425
              >INFO setupTables() (78) - Die Transaktion nach dem Teardown:
              >[email protected]
              >INFO setupTables() (79) - Der Transaktionsstatus nach dem Teardown:
              >STATUS_NO_TRANSACTION
              >INFO setupTables() (86) - Die Transaktion vor dem createtable:
              >[email protected]
              >INFO setupTables() (87) - Der Transaktionsstatus vor dem createtable:
              >STATUS_NO_TRANSACTION
              >INFO setupTables() (88) - Die Connection conSecurity vor dem
              >createtable: weblogic.jdbc.rmi.SerialConnection@7c6daa
              >INFO setupTables() (89) - Die Connection conContent vor dem
              >createtable: weblogic.jdbc.rmi.SerialConnection@3b425
              >ERROR setupTables() (101) - Konnte kein table init machen
              >java.sql.SQLException: Does not support SQL execution with no global
              >transaction
              >     at
              >weblogic.jdbc.oci.xa.XAConnection.beforeExecute(XAConnection.java:137)
              >     at
              >weblogic.jdbc.oci.xa.Statement.executeUpdate(Statement.java:112)
              >     at weblogic.jdbc.jta.Statement.executeUpdate(Statement.java:185)
              >     at
              >weblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.ja
              v
              >a:42)
              >     at
              >weblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:54
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.ja
              v
              >a:91)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBea
              n
              >Impl.java:130)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCB
              e
              >anEOImpl.java:64)
              >     at
              >de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseC
              o
              >mmitUnitTest.java:51)
              >     at
              >org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTe
              s
              >tCase.java:297)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servl
              e
              >tTestCaller.java:148)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCa
              l
              >ler.java:199)
              >     at
              >org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTe
              s
              >tRedirector.java:149)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              >     at
              >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl
              >java:213)
              >     at
              >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ
              l
              >etContext.java:1265)
              >     at
              >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl
              >java:1631)
              >     at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              >     at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >INFO rollbackTransaction() (196) - Der Transaktionsstatus vor dem
              >Rollback: STATUS_NO_TRANSACTION
              >INFO rollbackTransaction() (197) - Die Transaktion vor dem Rollback:
              >[email protected]
              >ERROR rollbackTransaction() (206) - Konnte die Transaktion nicht
              >backrollen.
              >java.lang.IllegalStateException: Transaction does not exist
              >     at
              >weblogic.transaction.internal.TransactionManagerImpl.rollback(Transacti
              o
              >nManagerImpl.java:228)
              >     at
              >weblogic.transaction.internal.TransactionManagerImpl.rollback(Transacti
              o
              >nManagerImpl.java:222)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBean.rollbackTransaction(TP
              C
              >Bean.java:200)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.ja
              v
              >a:102)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBea
              n
              >Impl.java:130)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCB
              e
              >anEOImpl.java:64)
              >     at
              >de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseC
              o
              >mmitUnitTest.java:51)
              >     at
              >org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTe
              s
              >tCase.java:297)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servl
              e
              >tTestCaller.java:148)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCa
              l
              >ler.java:199)
              >     at
              >org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTe
              s
              >tRedirector.java:149)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              >     at
              >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl
              >java:213)
              >     at
              >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ
              l
              >etContext.java:1265)
              >     at
              >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl
              >java:1631)
              >     at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              >     at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >
              >
              >CONCLUSION
              >==========
              >I'm going nuts.
              >I just don't get it.
              >The transaction is the same. I don't change the Connection. I start
              >the Transaction at the beginning before I do anything!
              >Please guys help me out.
              >Thx alot.
              >
              >Stefan "it's three o'clock in the morning, my girlfriend left me, and
              >my only friend is that stupid linux pinguine" Siprell
              >Software-Development
              ><<<<<<<<<<<<<<<<<<<<<<<<<<<
              ><sitewaerts> GmbH
              >Hebelstraße 15
              >D-76131 Karlsruhe
              >
              >Tel: +49 (721) 920 918 22
              >Fax: +49 (721) 920 918 29
              >http://www.sitewaerts.de
              >>>>>>>>>>>>>>>>>>>>>>>>>>>>
              >
              >
              >
              

  • Transparency flattening issue (I think)

    Hi all,
    I'd appreciate your help with this.  I've tried researching this through the forum yet still find myself confused.  I think it's a transparency flattening issue, but I'm unsure of how to fix it, and even at what point to fix it.
    I designed this for a magazine ad in InDesign CS2 and exported to PDF.  The polaroids have drop shadows, which look fine on screen:
    But when I print I get these ugly "borders" where the transparencies are:
    Can't get rid of them, except by printing the PDF as an image.
    My questions are:
    1) Assuming this is a transparency issue, how do I fix this?  I've read about transparency presets on the forum, but (please forgive my lameness) I'm not sure how to actually apply them.
    2) At what point do I fix this?  I mean, as a best practice, is this something that's addressed inside InDesign, or during the export from InDesign, or when printing the PDF?  It looked fine in the magazine so obviously they were able to fix it, but I'd still like to know what I'm doing wrong to save them extra work in the future.
    I have Adobe CS2 and Acrobat 7 Pro on a Windows XP Pro.
    Many thanks for your help,
    Ed

    That's quite a color shift, too, on the background which seems like more than you'd see from a poor image capture of the printed piece.
    I bet you are using a spot color. Unless you are actually paying to have that spot color printed in the magazine (if they even would), you shouldn't be using it. Make sure you go into the ink manager and convert all spots to process, or replace any spot colors with process colors. You should be the one handling the color conversion, and using process color will simplify the flattening, I think.
    Peter

  • PO quantity comma and point

    Hi    
               In Po quantity given is 180,000kg. But in print of PO it is showing 180.000 Any settimgs are there so that it should show 180,000.
    Thank you
    Shakir

    The decimal notation in a PO form is depending on the country settings of the vendors country.
    The vendor has to understand what you want.
    In Germany we use comma to seperate the decimals, in USA the period is used to seperate the decimals.
    So a PO from Germany to an US vendor should show the period instead of the comma.
    And a PO issued by a US company to a German vendor should show the comma instead of the period.
    The SAP user can know the ordered quantity from the SAP system which shows the quantity with the decimal notation according to his user settings.
    If you change it in the country settings (which is possible and allowed) then you may get 100 times more or 100 times less than you expected, as you vendor might understand it differently

  • Commit and rollback on session level

    Hi All,
    I am calling one stored procedure and I am doing some dml operation in that sp. there after I calling another sp which contain some ddl operations. if process may be fail in somewhere I wanted to rollback all dml transactions.
    So I wanted to commit and rollback on session level. Is such kind of concept available in oracle.
    Prashant.

    Prashant,
    Not sure what you are talking about.
    Commit and rollback is always on session level!!!!
    Also all DDL statements are automatically committed, and rollback in case of errors is always statement level rollback.
    So let's assume
    begin
    insert into foo...;
    update foo...;
    execute immediate 'alter table foo add (last_update date)';
    end;
    exit
    and the alter table fails:
    1 alter table is rolled back
    2 insert and updates are not rolled back.
    If the alter table succeeds
    all statements are committed and you can't roll them back anymore.
    This is why issuing DDL in stored procedures has unwanted side effects and should be conisdered pure evil.
    Sybrand Bakker
    Senior Oracle DBA
    Experts: those who did read the documentation.

  • Comma and quote problem in csv file

    Hi
    My requirement is to append data in an csv file. This is Proxy to File FCC Scenario. for some of the fields from proxy which contains comma(,) and also double-quote("). for these fileds the in the csv file it is spiting in to two columns and appending in to the next column. and the double-quote symbol is not inserting in the csv file.
    1. why the double-quote(") is not inserting in to the csv file columns?
    2. how to over come the comma problem? I want that particular file need to append in one column only.
    Thanks
    Vankadoath

    hi vankadoath,
    Were you able to solve comma issue in CSV file.
    Even i am facing similar issue.....
    wheneever there is a comma in field, it is updating data after comma into next field.
    If anybody has solution for the same.......
    pls suggest the same............
    santosh.
    Edited by: santosh koraddi on Jan 20, 2011 9:44 PM

  • URGENT!  Problems with On-Commit and Key-Commit triggers!!

    Hi there,
    We are having a problem with our form actually saving a value to the database after the commit_form is given.
    When we hit the Save Button (which triggers the Key-Commit, and that in turn triggers the On-Commit trigger) we want a populated global variable to save to the database. Now when we hit Save, we can see the field get populated properly with this Global Variable (Global.Last_Tckt_Read), BUT it doesn't save to the database.
    Here is the code from the On-Commit trigger:
    IF :cg$bf_meter.closing_ticket_issued = 'N'
    THEN
    :CG$bf_meter.opening_meter_reading := :GLOBAL.LAST_TCKT_READ;
    :CG$bf_meter.opening_meter_reading_date := :GLOBAL.LAST_TCKT_DATE;
    :CG$bf_meter.closing_meter_reading_date := :CG$bf_meter.last_ticket_date;
    :GLOBAL.PREV_METER_READING := :CG$BF_METER.LAST_TICKET_READING;
    :GLOBAL.WINDOW_ACTIVE_CHECK := 'true';
    :GLOBAL.FTDAYCHM_SAVED := 'true';
    commit_form;
    ELSE
    :GLOBAL.PREV_METER_READING := :CG$BF_METER.LAST_TICKET_READING;
    :GLOBAL.WINDOW_ACTIVE_CHECK := 'true';
    :GLOBAL.FTDAYCHM_SAVED := 'true';
    commit_form;
    END IF;
    The code in the Key-Commit trigger is just commit_form;. Now, the code from the On-Commit seems to work fine if its in the Key-Commit trigger -- BUT we need to use the On-Commit in case the user exits the Form with the Exit Button on the toolbar or "X" on the title bar (Neither the Exit Button and the "X" will call the Key-Commit trigger).
    Any ideas how we can get this data value to actually SAVE in the database??
    Thanks for any help -- please respond, this deadline has already passed!
    Mike

    Well, I can't say I understand what you want, but:
    1) if you have only commit_form in key-commit - then you do not need this trigger. key-commit will fire when F10 (commit) is pressed, but since it is doing the same - there is no need.
    2) why don't you populate your block values to be saved right in SAVE button trigger and issue commit_form in the same trigger?
    Then you can have key-commit to cover the same functionality for F10 with code:
    go_item('save');
    execute_trigger('when-button-pressed');
    3) I cannot get the point of the "close" stuff - on close you want to check for changes or not? and to allow the user to exit with or without saving?

  • Spring-TopLink Integration and transparent transaction controller

    Hi,
    I'm new to TopLink and I read the article in the "Mastering J2EE" series about the Spring TopLink integration. I never actually got into Spring before, so I went and checked out the articles and tutorials and then I went back to my exploration of TopLink.
    From what I understood, Spring promises that you wouldn't need to change your code, only your configuration files, if you change your transaction controller from the OR framework transaction controller to a JTA enabled one provided by the AS. But when I read the "Transactions" chapter in the TopLink application developer's guide, it seemed that the way you use the UnitOfWork in your code differs significantly depending on whether you're using an external transaction controller.
    My question is, does this void Spring's promise or is there a work around for that?
    Thanks.

    You will not have to change any java code when you switch "transaction controller" strategies in your Spring beans.xml file.
    When you talk about "the way you use the UnitOfWork in your code", you're talking about the section in the "Transactions" chapter called "External Transaction Controllers" right? In any case, the differences at the java level, are essentially that you acquire an "active" UnitOfWork (getActiveUnitOfWork) and that you no longer explicitly commit the UnitOfWork.
    Neither of these two differences impacts your use of TopLink within Spring. In Spring, the transaction is always managed by a Spring PlatformTransactionManager so your TopLink code will never call commit, whether you're using an ExternalTransactionController or not. The code will be identical whether you're running in J2SE or J2EE.
    Also, since we expect users to access TopLink either through a TopLinkTemplate or through a TopLinkInterceptor, the Spring container will always "inject" a TopLink Session that is aware of whether or not there is currently an ExternalTransactionController. So, there will be no difference between the behavior of acquireUnitOfWork and getActiveUnitOfWork. Both will behave identically. They will return you the UOW currently associated with the current Spring PlatformTransactionManager. So, there is no environmental dependency here either.
    JIM

  • Another NullPointerException during UnitOfWork commit

    During Unit Of Work commit the following exception is thrown:
    java.lang.NullPointerException
         at java.util.Hashtable.put(Hashtable.java:394)
         at oracle.toplink.indirection.IndirectMap.put(IndirectMap.java:264)
         at oracle.toplink.internal.queryframework.MapContainerPolicy.addInto(MapContainerPolicy.java:45)
         at oracle.toplink.mappings.CollectionMapping.mergeChangesIntoObject(CollectionMapping.java:670)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeChangesIntoObject(ObjectBuilder.java:917)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfWorkingCopyIntoOriginal(MergeManager.java:388)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:148)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeChangesIntoObject(ObjectReferenceMapping.java:296)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeChangesIntoObject(ObjectBuilder.java:917)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfWorkingCopyIntoOriginal(MergeManager.java:383)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:148)
         at oracle.toplink.publicinterface.UnitOfWork.mergeChangesIntoParent(UnitOfWork.java:1331)
         at oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork(UnitOfWork.java:508)
         at oracle.toplink.publicinterface.UnitOfWork.commit(UnitOfWork.java:423)
         at ru.v6.marslcc.dao.dataset.DatasetDAO.createFGStocksData(DatasetDAO.java:1372)
         at ru.v6.marslcc.web.dataset.DatasetManager.createFGStocksData(DatasetManager.java:781)
         at ru.v6.marslcc.web.dataset.FGStocksServlet.doGetOrPost(FGStocksServlet.java:167)
         at ru.v6.marslcc.web.BaseServlet.doPost(BaseServlet.java:46)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
         at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
         at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:226)
         at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
         at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
         at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
         at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

    Here is my classes:
    * The <code>DataCube</code> represents n-dimensional cube of data.
    * Cube consists of some number (zero or more) of cells.
    * Each cell have associated list of <code>java.math.BigDecimal</code>
    * (cell's value). Each of that values must have the same size.
    public class DataCube implements Serializable, Cloneable {
         private static final Logger log = Logger.getLogger(DataCube.class);
         private long id;
         private long type;
         private List participants; // of Participant
         private int dataLength;
         private long datasetId;
         private Map cells; // Cell -> CellValue
         public DataCube() {
              id = 0;
              type = 0;
              participants = new ArrayList();
              dataLength = 0;
              cells = new HashMap();
    // Skipped...
         public static class Cell implements Serializable {
              private long id;
              private List coordinates; // of CellCoordinate
              public Cell() {
                   id = 0;
                   coordinates = new ArrayList();
    // Skipped...
         public static class CellCoordinate {
              private long id;
              private Cell cell;
              private Directory directory;
              private int orderNo;
    // Skipped...
         public static class Participant {
              private long id;
              private DataCube cube;
              private long type;
              private int orderNo;
    // Skipped...
         public static class CellValue {
              private long id;
              private long cellId;
              private Cell cell;
              private DataCube cube;
              private List value; // List of CellData
              public CellValue() {
                   id = 0;
                   cellId = 0;
                   value = new ArrayList();
              public Object generateKey() {
                   return cell;
    // Skipped...
         public static class CellData {
              private long id;
              private long cellValueId;
              private CellValue cellValue;
              private int period;
              private BigDecimal value;
              public CellData() {
                   id = 0;
                   cellValueId = 0;
                   period = 0;
                   value = null;
    // Skipped...

  • Comcast lacks integrity and transparency

    I have been a customer of Comcast/AT&T Broadband/TCI for over twenty years. Recently I retired and decided that I needed to reduce my expenses. Over the past five years I have seen my cost for phone, internet and cable go from just under $90.00 per month up to over $190.00 per month. I called Comcast to cancel my cable service, since for the most part I am satisfied with the over the air stations I can receive in my area. Even though it was nice to have the additional cable channels, I found I spent less than 10 hours a month watching these premium services. Instead of just terminating the service I requested, the agent went over my options to reduce my bill, he offered to reduce my bill down to $139.00 per month for basically the same services I was getting at over $190.00 per month. I explained that being retired, even $139.00 month was more than I could justify. He told me that for just telephone and internet service I would be paying $108.00 plus taxes/fees. If I were to just get phone it would be about $54 month, and internet alone would be $76 month. I told him I wasn't interested in cable service, he then offered me cable, phone and internet for $89.00 month plus taxes and fees. I found this experience quite frustrating. I found that Comcast lacks integrity, and transparency. If they can offer all three services (albeit it was basic cable, telephone and internet), for $89 plus taxes/fees, why can't I get basic phone and internet service was less than that price point. I am tired of having to play let's make a deal with Comcast. If my local telephone company could offer decent intenet service, I would call it quits with Comcast completely. Even returning the cable boxes to Comcast was a hassle, the only practically place to return equipment is 5 miles away, and 30 minute drive due to the location. It took me 45 minutes to return four cable boxes and four remotes. Not good customer service.

    Hi georger811,
    Sorry to hear about the poor experience you had. I do see you have already canceled the TV and phone. I also see you were put in full price for Internet. I was able to give you a discount on that for your troubles. 
    We do try and put the service centers within reasonable distances mileage-wise, however we cannot do much about how long it takes you to get there. Length of time it takes you to get there is not a customer service issue as there are far too many factors playing into how long it takes to get to a location. 

  • Gmail/Exchange email and calendar syncing issues

    I have wiped my email accounts several times and entered in my data in the various ways as shown through the forums but my email accounts do no sync properly whether it is manual or active synced.
    I read my emails in my gmail and my Microsoft exchange account and will delete or file them away but then when I check my accounts on my desktop, they are not synced as I've done so on my phone. I've also noticed that my calendars are not synced correctly either.
    Could someone help me understand why and how these issues can be fixed? I'm in meetings for most of the day so I rely on my phone to keep me mobile. Was this a bad purchase?!?!

    Hi JadeyMU,
    How do you have your Microsoft Exchange account configured on your BlackBerry Z10? Are you using ActiveSync, BlackBerry Enterprise Server (BES), IMAP or POP?
    Thanks.
    -CptS
    Come follow your BlackBerry Technical Team on twitter! @BlackBerryHelp
    Be sure to click Kudos! for those who have helped you.Click Solution? for posts that have solved your issue(s)!

  • Problem with comma and point

    Hello,
    I have a problem with comma and point in a double-digit.
    I use a english driver for HM8142. When I get the values then I only get
    int-digits. How can I change "Use comma as separator" . I tried to change
    the option in LabVIEW.
    I changed it, then I got the window. "To change, restart the programm". I
    have done this. But when I have a look at the option, it is not changed.
    What can I do?
    I am not the admin on the computer.
    Martin

    Hi Martin,
    you do not have to change any system settings neither in LabVIEW nor in your windows.
    All instrument drivers should use a point as decimal separator. You can overwrite the decimal point handling in the string functions "Scan from string" and "Format into string".
    Make a right click on the function and use "Edit Scan String". In the dialog open the ring under "Selected operation", the last entry allows you to set the character for the decimal separator. This separator will be used for all the following floating point numbers.
    From your name and problem I think you are located in central europe. I do not have a german version of LV so I cannot tell you how the elements are named in german.
    Waldemar
    Waldemar
    Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
    Don't forget to give Kudos to good answers and/or questions

Maybe you are looking for

  • Folio preview do not work

    The preview of my folio only works on iPad when i submit it per USB cable. The content viewer on my mac works too. When i submit the folio online, the submitting stops with this error: When i click "try again" it seems to work, bit the article on the

  • T60 shutdown when connect to the docking

    Hello, I have several T60 in my company, 3 of the T60 (one is T61) shutdown when connecting to the mini docking. This is new. I have the most BIOS and driver updated. Also I know this http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=l

  • Getting 404 errors

    Hello: I have EM up an running. It looks fine. I can login and manage my database. The only problem is that faily often when I click on a button or link, I get a 404 error. If I hit back and try again, the operation goes thru just fine. It does not h

  • Multiple xy graph point by point

    Hi, I would like to plot multiple trace xy graphs point by point. If I plot one trace, it does show up point by point, but plotting multiple traces, they traces show up one after another and not point and point. Attached is my code. Any help would be

  • Diff. between business process masterlist and business process procedurelis

    hello gurus, pls tell me the main difference between business process master list and business process procedure list so please help me in this matter. regards, muralidhar.t