Unexpected Transaction Behavior

Its been a while since I've had the pleasure of doing serious work in Java, but I'm seeing something odd, and not sure how to work around it.
I'm using:
Oracle 10 Express
Websphere Community Ed
Oracle 10 thin drivers
I've got a routine inserting into a table. There is a trigger and a sequence used to generate an autoincrement field for the table's primary key.
The code performs an insert into a table, then tries to fetch back the current value of the sequence in order to return it to the caller.
CREATE_NEW_MENU_ITEM = "INSERT INTO MENUITEMS (TITLE,PARENTID,URL,ENABLED) values (?,?,?,?)";
GET_LAST_INSERTED_MENU_ID = "XSELECT MENUITEM_ID_SEQ.CURRVAL from DUAL";
try {
conn = DatabaseConnector.getConnection();
conn.setAutoCommit(false);
pstmt = conn.prepareStatement(CREATE_NEW_MENU_ITEM);
pstmt.setString(1, item.getItemTitle());
pstmt.setInt(2, item.getParentID());
pstmt.setString(3, item.getURL());
pstmt.setString(4, item.getEnabled());
pstmt.executeUpdate();
pstmt2 = conn.prepareStatement(GET_LAST_INSERTED_MENU_ID);
rs = pstmt2.executeQuery();
rs.next();
uniqueId = rs.getInt(1);
conn.commit();
} catch (SQLException e) {
conn.rollback();
throw e;
I purposefully typo'ed GET_LAST_INSERTED_MENU_ID in order to throw an SQLException, which it does.
However, I find that the insert statement CREATE_NEW_MENU_ITEM still ends up being committed.
Help? What am I missing?

Here is a link showing code on how to get the newly generated key.
It uses a Statement, but you should be able to use the same code with a PreparedStatement. (substitute PreparedStatement for Statement):
http://developers.sun.com/docs/javadb/10.2.2/ref/crefjavstateautogen.html
I suspect because you are using another preparedStatement to get a generated key that hasn't yet been committed, java commits it in order to return the key. Something odd like that. I personnally wouldn't spend too much time worrying about this odd behavior and just code per the link provided.
I know the example code you provided is just a fragment is probably not complete, but here's a slightly cleaned up version of it for your own use of closing connection, finally block, dealing with autoCommit, etc.
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try {
conn = DatabaseConnector.getConnection();
conn.setAutoCommit(false);
pstmt = conn.prepareStatement(CREATE_NEW_MENU_ITEM);
pstmt..clearParameters();
pstmt.setString(1, item.getItemTitle());
pstmt.setInt(2, item.getParentID());
pstmt.setString(3, item.getURL());
pstmt.setString(4, item.getEnabled());
pstmt.executeUpdate();
conn.commit();
} catch (SQLException e) {
conn.rollback();
throw e;
} finally {
if(conn!=null)
conn.setAutoCommit(true);// must ensure this occurs even if the
// remaiing functions fail
if(rs!=null)
rs.close();
if(pstmt !=null)
pstmt.close();
if(conn!=null)
conn.close();
}

Similar Messages

  • The subtle use of task flow "No Controller Transaction" behavior

    I'm trying to tease out some subtle points about the Task Flow transactional behavior option "<No Controller Transaction>".
    OTN members familiar with task flows in JDev 11g and on wards would know that task flows support options for transactions and data control scope. Some scenarios based on these options:
    a) When we pick options such as "Use Existing Transaction" and shared data control scope, the called Bounded Task Flow (BTF) will join the Data Control Frame of its caller. A commit by the child does essentially nothing, a rollback of the child rolls any data changes back to when the child BTF was called (i.e. an implicit save point), while a commit of the parent commits any changes in both the child and parent, and a rollback of a parent loses changes to the child and parent.
    A key point to realize about this scenario is the shared data control scope gives both the caller and called BTF the possibility to share a db connection from the connection pool. However this is dependent on the configuration of the underlying services layer. If ADF BC Application Modules (AMs) are used, and they use separate JNDI datasources this wont happen.
    b) When we pick options such as "Always Begin New Transaction" and isolated data control scope, the called BTF essentially has its own Data Control Frame separate to that of the caller. A commit or rollback in either the parent/caller or child/called BTF are essentially isolated, or in other words separate transactions.
    Similar to the last point but the exact opposite, regardless how the underlying business services are configured, even if ADF BC AMs are used with the same JNDI data source, essentially separate database connections will be taken out assisting the isolated transactional behavior with the database.
    This brings me back to my question, of the subtle behavior of the <No Controller Transaction> option. Section 16.4.1 of the Fusion Guide (http://download.oracle.com/docs/cd/E17904_01/web.1111/b31974/taskflows_parameters.htm#CIHIDJBJ) says that when this option is set that "A new data control frame is created without an open transaction." So you could argue this mode is the same as isolated data control scope, and by implication, separate connections will be taken out by the caller/called BTF. Is this correct?
    Doesn't this in turn have implications about database read consistency? If we have one BTF participating in a transaction with the database, reading then writing data, and a separate BTF with the <No Controller Transaction> option set, it's possible it wont see the data of the first BTF unless committed before the No Controller Transaction BTF is called and queries it's own dataset correct?
    An alternative question which takes a different point of view, is why would you ever want this option, don't the other options cover all the scenarios you could possibly want to use a BTF?
    Finally as a separate question based around the same option, presumably an attempt to commit/rollback the Data Control Frame of the associated No Controller Transaction BTF will fail. However what happens if the said BTF attempts to call the Data Control's (not the Data Control Frame's) commit & rollback options? Presumably this will succeed?
    Your thoughts and assistance appreciated.
    Regards,
    CM.

    For other readers this reply is a continuation of this thread and another thread: Re: Clarification?: Frank & Lynn's book - task flow "shared" data control scope
    Hi Frank
    Thanks for your reply. Okay I get the idea that were setting the ADFc options here, that can be overridden by the implementation of data control, and in my specific case that's the ADF BC AM implementation. I've always known that, but the issue became complicated because it didn't make sense what "No Controller Transaction" actually did and when you should use it, and in turn data control frames and their implementation aren't well documented.
    I think a key point from your summation is that "No Controller Transaction" in context of ADF BC, with either data control scope option selected, is effectively (as far as we can tell) already covered by the other options. So if our understanding is correct, the recommendation for ADF BC programmers is I think, don't use this option as future programmers/maintainers wont understand the subtlety.
    However as you say for users of other data controls, such as those using web services, then it makes sense and possibly should be the only option?
    Also regarding your code harvest pg 14 entry on task flow transactions: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/march2011-otn-harvest-351896.pdf
    ....and the following quote in context of setting the transaction option to Begin New Transaction:
    >
    When a bounded task flow creates a new transaction, does it also mean it creates a new database connection? No.
    >
    ....I think you need to be a little more careful in this answer, as again it depends on the underlying data control implementation as you point out in this thread. In considering ADF BC, this is correct if you assume only one root AM. However if the BTFs have separate root AMs, this should result in 2 connections and transactions..... well at least I assume it does, though I wonder what will happen if both AMs share the same JNDI data source.... is the framework smart enough to join the connections/transactions in this case?
    Also in one of your other code harvests (apologies I can't find which one at the moment) you point out sharing data control scopes is only possible if the BTF data controls have the same name. In context of an ADF BC application, with only one root AM used by multiple BTFs, this of course would be the case. Yet, the obvious implication to your summary of transaction outcomes in this thread, if the developers for whatever reason change the DC name across DataBindings.cpx files sourced from ADF Libraries containing the BTFs, then no, it wont.
    Overall the number of variables in this gets really complicated, creating multiple dimensions to the matrix.
    Going to your last point, how can the documentation be improved? I think as you say the documentation is right in context of the options for ADFc, but, as the same documentation is included in the Fusion Dev Guide which assumes ADF BC is being used, then it isn't clear enough and can be misleading. It would seem to me, that depending on the underlying data control technology used, then there needs to be documentation that talks about the effect of ADFc task flow behavior options in the context of each technology. And God knows how you describe a scenario where BTFs use DCs that span technologies.
    From context of ADF BC, one thing that I've found hard in analyzing all of this is there doesn't seem to be an easy way from the middletier to check how many connections are being taken out from a data source. The FMW Control unfortunately when sampling db connections taken out from a JNDI data source pool, doesn't sample quickly enough to see how many were consumed. Are you aware of some easy method to check the number of the db connections opened/closed?
    Finally in considering an Unbounded Task Flow as separate to BTFs, do you have any conclusions about how it participates in the transactions? From what I can determine the UTF lies in it's own data control frame, and is effectively isolated from the BTF transactions, unless, the BTF calls commit/rollback at the ADF BC data control level (as separate to commit/rollback at the data control frame level), and the data control is used both by the UTF and BTF.
    As always thanks for your time and assistance.
    CM.

  • SDO Service Data Objects transaction behavior in BPEL question

    I was led to believe (this is taught in the SOA BCA class) that if we create, modify, or delete an SDO then the changes are committed at the end of the scope activity in the BPEL process and rolled back if there is an uncaught fault in the scope.
    I have faound that this is not what I am seeing. When modifying using an assign then the update is performed at the end of the assign, create and remove is also immediate. I have seen that if an assign has two copies and the first one succeeds and the second fails then both are rolled back.
    What is the correct behavior or is there a setting that controls the transaction behavior?
    Thanks ptlx

    I was led to believe (this is taught in the SOA BCA class) that if we create, modify, or delete an SDO then the changes are committed at the end of the scope activity in the BPEL process and rolled back if there is an uncaught fault in the scope.
    I have faound that this is not what I am seeing. When modifying using an assign then the update is performed at the end of the assign, create and remove is also immediate. I have seen that if an assign has two copies and the first one succeeds and the second fails then both are rolled back.
    What is the correct behavior or is there a setting that controls the transaction behavior?
    Thanks ptlx

  • Task Flow Transaction Behavior and AM Activation/Passivation

    Hi All,
    In my app, when I changed the transaction behavior from 'No Controller Transaction' to 'Use Existing Transaction If Possible', I started seeing the following type of AM Passivation snapshot is JDev log:
    <ADFLogger> <begin> Passivating Application Module
    <PCollManager> <resolveName> [3560] **PCollManager.resolveName** tabName=PS_TXN
    <DBTransactionImpl> <getInternalConnection> [3561] Getting a connection for internal use...
    <DBTransactionImpl> <getInternalConnection> [3562] Creating internal connection...
    <ADFLogger> <begin> Establish database connection
    <DBTransactionImpl> <establishNewConnection> [3563] Trying connection: DataSource='weblogic.jdbc.common.internal.RmiDataSource@4d0ca0'...
    <DBTransactionImpl> <establishNewConnection> [3564] Before getNativeJdbcConnection='weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection
    <DBTransactionImpl> <establishNewConnection> [3565] After getNativeJdbcConnection='weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection
    <ADFLogger> <addContextData> Establish database connection
    <ADFLogger> <end> Establish database connection
    <OraclePersistManager> <syncSequenceIncrementSize> [3566] **syncSequenceIncrementSize** altered sequence 'increment by' value to 50
    <ViewObjectImpl> <doPassivateSettings> [3567] DateTimeVO1 passivating with paramsChanged
    <Serializer> <passivate> [3568] <AM MomVer="0">
    <cd/>
    <TXN Def="1" New="0" Lok="2" tsi="0" pcid="40"/>
    <CONN/>
    <VO>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseRoutingMainVO" Name="BaseRoutingMainVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseRoutingDetailsVO" Name="BaseRoutingDetailsVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseParameterVO" Name="BaseParameterVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseErrorLookupVO" Name="BaseErrorLookupVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseCompDataHdrVO" Name="BaseCompDataHdrVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseCompDataDtlVO" Name="BaseCompDataDtlVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseDataReqValVO" Name="BaseDataReqValVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseRegistrationPointVO" Name="BaseRegistrationPointVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseTradingPrtnrInfoVO" Name="BaseTradingPrtnrInfoVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseTradingPrtnrVerCtrlVO" Name="BaseTradingPrtnrVerCtrlVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseNotificationVO" Name="BaseNotificationVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseTransactionDefVO" Name="BaseTransactionDefVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.BaseValidationTypeVO" Name="BaseValidationTypeVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.OrigTransDetailsVO" Name="OrigTransDetailsVO1"/>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.TradingPartnerBaseVO" Name="TradingPartnerBaseVO1">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT 'X' AS TRADING_PARTNER_ID FROM DUAL) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.TransErrorVO" Name="TransErrorVO1"/>
    <VO sig="1315216374468" qf="0" ut="0" It="1" Sz="25" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.DateTimeVO" Name="DateTimeVO1">
    <exArgs count="1">
    <arg name="TimeZone">
    <![CDATA[GMT]]>
    </arg>
    </exArgs>
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT CurrentTime FROM
    SELECT TO_CHAR(SYSDATE,'DD-MON-YYYY HH:MI AM') AS CurrentTime, 'GMT' AS TZ FROM DUAL
    UNION
    SELECT TO_CHAR(SYSDATE+5.5/24,'DD-MON-YYYY HH:MI AM') AS CurrentTime, 'IST' AS TZ FROM DUAL
    UNION
    SELECT TO_CHAR(SYSDATE-8/24,'DD-MON-YYYY HH:MI AM') AS CurrentTime, 'PST' AS TZ FROM DUAL
    UNION
    SELECT TO_CHAR(SYSDATE-6/24,'DD-MON-YYYY HH:MI AM') AS CurrentTime, 'CST' AS TZ FROM DUAL
    UNION
    SELECT TO_CHAR(SYSDATE-5/24,'DD-MON-YYYY HH:MI AM') AS CurrentTime, 'EST' AS TZ FROM DUAL
    WHERE TZ=:TimeZone) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[0000000000010000013239013AC4]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.TransTrackingVO" Name="TransTrackingVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.TransDependencyVO" Name="TransDependencyVO1"/>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.TradingPartnerBaseVO" Name="TradingPartnerBaseVO2">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT 'X' AS TRADING_PARTNER_ID FROM DUAL) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.ReceiverTransDetailsVO" Name="ReceiverTransDetailsVO1"/>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.TransIDBaseVO" Name="TransIDBaseVO1">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (select 1 AS transaction_record_id from DUAL) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[000100000002C102]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.TransKeyBaseVO" Name="TransKeyBaseVO1">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT 'X' AS document_key FROM dual) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.TransStatusBaseVO" Name="TransStatusBaseVO1">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT 'X' AS STATUS FROM DUAL) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.ErrorTypeBaseVO" Name="ErrorTypeBaseVO1">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT 'X' AS ERROR_TYPE FROM DUAL) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.DependencyBaseVO" Name="DependencyBaseVO1">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT 'X' AS DEPENDENCY FROM DUAL) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.MasterTransDependencyVO" Name="MasterTransDependencyVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.TrackingVO" Name="TrackingVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.ErrorVO" Name="ErrorVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.DashboardTransErrorVO" Name="DashboardTransErrorVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.DashboardTransDependencyVO" Name="DashboardTransDependencyVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.DashboardTransPieVO" Name="DashboardTransPieVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.DashboardMasterTransBarVO" Name="DashboardMasterTransBarVO1"/>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" Sz="25" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.ReceiverTransStatusBaseVO" Name="ReceiverTransStatusBaseVO1">
    <rsq>
    <![CDATA[SELECT /*+ FIRST_ROWS */ * FROM (SELECT 'X' AS STATUS FROM DUAL) QRSLT ]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" Sz="25" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.ErrorStatusBaseVO" Name="ErrorStatusBaseVO1">
    <rsq>
    <![CDATA[SELECT 'X' AS ERROR_STATUS FROM DUAL]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.HeaderVO" Name="HeaderVO1"/>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.TradingPartnerBaseVO" Name="TradingPartnerBaseVO3"/>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" Sz="25" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.HeaderStatusBaseVO" Name="HeaderStatusBaseVO1">
    <rsq>
    <![CDATA[SELECT 'X' AS STATUS FROM DUAL]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.TradingPartnerBaseVO" Name="TradingPartnerBaseVO4"/>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" Sz="25" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.HeaderSourceFileNameBaseVO" Name="HeaderSourceFileNameBaseVO1">
    <rsq>
    <![CDATA[SELECT 'X' AS SOURCE_FILE_NAME FROM DUAL]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216374468" qf="0" ut="0" da="1" It="1" Sz="25" St="0" im="1" Ex="1" Def="com.emerson.eth.adf.model.view.DependencyStatusBaseVO" Name="DependencyStatusBaseVO1">
    <rsq>
    <![CDATA[SELECT 'X' AS DEPENDENCY_STATUS FROM DUAL]]>
    </rsq>
    <Key>
    <![CDATA[00010000000158]]>
    </Key>
    </VO>
    <VO sig="1315216382156" vok="20" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.HeaderSourceFileNameLOVVO" Name="_LOCAL_VIEW_USAGE_com_emerson_eth_adf_model_view_HeaderSourceFileNameBaseVO_HeaderSourceFileNameLOVVO1"/>
    <VO sig="1315216384812" vok="20" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.ReceiverTransStatusLOVVO" Name="_LOCAL_VIEW_USAGE_com_emerson_eth_adf_model_view_ReceiverTransStatusBaseVO_ReceiverTransStatusLOVVO1"/>
    <VO sig="1315216385921" vok="20" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.HeaderStatusLOVVO" Name="_LOCAL_VIEW_USAGE_com_emerson_eth_adf_model_view_HeaderStatusBaseVO_HeaderStatusLOVVO1"/>
    <VO sig="1315216387093" vok="20" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.ErrorStatusLOVVO" Name="_LOCAL_VIEW_USAGE_com_emerson_eth_adf_model_view_ErrorStatusBaseVO_ErrorStatusLOVVO1"/>
    <VO sig="1315216388171" vok="20" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.DependencyStatusLOVVO" Name="_LOCAL_VIEW_USAGE_com_emerson_eth_adf_model_view_DependencyStatusBaseVO_DependencyStatusLOVVO1"/>
    <VO sig="1315216393937" vok="20" qf="0" RS="0" Def="com.emerson.eth.adf.model.view.TransIDLovVO" Name="_LOCAL_VIEW_USAGE_com_emerson_eth_adf_model_view_TransIDBaseVO_TransIDLovVO1">
    <VC n="__ImplicitViewCriteria__" d="true" c="0" bv="true" m="1" j="false">
    <vcp>
    <p n="showInList" v="true"/>
    <p n="displayName" v="Implicit Search"/>
    </vcp>
    <Row n="vcrow1" uc="0" cj="0">
    <a i="0">
    <i o="=" cj="1" uc="0" r="2" vb="false" g="true" e="false" re="false">
    <iv i="0" b="0" sf="0"/>
    </i>
    </a>
    <a i="1">
    <i o="STARTSWITH" cj="1" uc="0" r="2" vb="false" g="true" e="false" re="false">
    <iv i="0" b="0" sf="0"/>
    </i>
    </a>
    </Row>
    </VC>
    <VC n="LOV_TransactionRecordId__lov__filterlist__vcr___" d="true" c="0" bv="true" m="3" j="false">
    <Row n="LOV_TransactionRecordId__lov__filterlist__vcr___" uc="0" cj="0">
    <a i="0">
    <i o="=" cj="1" uc="0" r="2" vb="false" g="true" e="false" re="false">
    <iv i="0" b="0" sf="0">
    <![CDATA[40532]]>
    </iv>
    </i>
    </a>
    </Row>
    </VC>
    </VO>
    </VO>
    </AM>
    <OraclePersistManager> <insert> [3569] **insert** id=1, parid=-1, collid=65951, keyArr.len=-1, cont.len=10035
    <OraclePersistManager> <insert> [3570] stmt: insert into "PS_TXN" values (:1, :2, :3, :4, sysdate)
    <OraclePersistManager> <commit> [3571] **commit** #pending ops=1
    <ADFLogger> <end> Passivating Application Module
    My question is does AM gets passivated on each request. This snapshot is not visible when Transaction behavior is set to 'No Controller Transaction'.
    This type is snapshot is usually visible in case of 'No Controller Transaction', when AM Pooling is off or if AM Pooling is enabled then Failover support is on.
    Is this OK for this snapshot to appear in JDev log or am I missing something?

    this might be helpful, can u chk
    The subtle use of task flow "No Controller Transaction" behavior
    http://blogs.oracle.com/raghuyadav/entry/adf_taskflow_transaction_manag
    http://andrejusb.blogspot.com/2010/01/demystifying-adf-bc-passivation-and.html

  • Transactional Behavior of an Integration Process

    Hi All,
    As I have to optimise an existing BPM, to have some idea, I was going through the link describing 'Transactional Behavior of an Integration Process'.
    http://help.sap.com/saphelp_nw04/Helpdata/EN/25/a45c3cff8ca92be10000000a114084/frameset.htm
    which tells tas follows.
    'At runtime, the system normally creates a separate transaction for each step. The transaction then covers this step only. However, you can influence the transactional behavior of particular step types. In the step properties, you can define that the system is not to start a new transaction when the step is executed. The system then executes the step in the transaction that was started at the time of execution. Consequently, no background work item is created for the step and the database does not need to be accessed. In this way you can improve system performance'
    But I am not able to understand, how to implement that for any steps. Could you please explain?
    Regards,
    Subhendu

    Hi Subhendu,
    i ve got some doubts it was in SP 17 available. Please search at [Release Notes for SAP Exchange Infrastructure|http://help.sap.com/saphelp_nw04/helpdata/en/c9/9844428e9cbe30e10000000a155106/frameset.htm]
    Regards,
    Udo
    Edited by: Udo Martens on Feb 5, 2009 3:38 PM

  • MDB Timeouts and transaction behavior

    Hi, thanks in advance for any help with this.
    We have a MDB where we have set the timeout to five minutes. In a particular case this timeout is being reached but even though the MDB times out the transaction and sends the message for redelivery the original transaction that was processing the message continues until something happens from an application standpoint to cause that original transaction to complete. This means that we have the same message processed twice under these circumstances.
    I would have expected that if a transaction timed out that the transaction would have been terminated and therefore our processing would have stopped. Is there a way to force this behavior or do we have to put an alarm in our code and kill ourselves such that we never encounter the transaction time out?
    Thanks,
    Sue Shanabrook

    I should have mentioned that we are using container managed transactions.

  • Strange Transaction Behavior

    Using WLS6.0, sp 1, EJB2.0 CMP Entity Beans:
              If I modify 2 existing Entity EJBs (an Order EJB and an OrderLineItem
              EJB, for example) within a single user transaction and an exception
              occurs, modifications to both entities are rolled back (as expected).
              However, if I create an new Order EJB and a new OrderLineItem EJB from
              within the same user transaction and an exception occurs trying to
              create the OrderLineItem, rather than rolling back both inserts, the
              Order is still created (a new row is inserted into the order table in my
              database) with no corresponding OrderDetail (no new row is inserted into
              the order_detail table). I would expect that either both inserts
              succeed, or they both fail Is this counter-intuitive behavior that I am
              observing correct, or I am missing something simple here? This is all
              pretty new to me, so I would appreciate any help or suggestions.
              Thanks!
              Tim Perrigo
              

    It looks like a was missing something simple...my EBs were deployed using a
              "regular" datasource, rather than a TxDatasource. After changing the
              datasource in the descriptor and redeploying, rollbacks seem to be working
              as expected.
              Tim
              

  • Another bug report on transactional behavior

    Using the same test program as documented in the other bug report, I
    have also ran across the following which appears to be a bug.
    When observing transactional boundaries (order of loop body work: start,
    query, read, commit) and using datastore transactions with retainValues
    == false and nonTR == true, I see the JDO instances fetched by the query
    being loaded just prior to being read, as one would expect. After the
    commit, as expected, they are cleared, and the same behavior occurs on
    subsequent iterations.
    What appears to be buggy is that optimistic transactions when tested for
    the same configuration behave in exactly the same matter as the
    datastore transactions.
    Section 13.5 of Version 0.95 of the spec, states:
    "With optimistic transactions, instances queried or read from the data
    store will not be transactional unless they are modified, deleted, or
    marked by the application as transactional in the transaction."
    My understanding of this is that the instances that are fetched from the
    query and read become PNT, and hence would not have their state cleared
    at the end of the transaction and would not be reloaded when read in the
    next transaction -- contrary to the behavior observed.
    David Ezzio
    Yankee Software

    Beta 2.2 put the issues I raised here to rest.
    David Ezzio wrote:
    >
    Using the same test program as documented in the other bug report, I
    have also ran across the following which appears to be a bug.
    When observing transactional boundaries (order of loop body work: start,
    query, read, commit) and using datastore transactions with retainValues
    == false and nonTR == true, I see the JDO instances fetched by the query
    being loaded just prior to being read, as one would expect. After the
    commit, as expected, they are cleared, and the same behavior occurs on
    subsequent iterations.
    What appears to be buggy is that optimistic transactions when tested for
    the same configuration behave in exactly the same matter as the
    datastore transactions.
    Section 13.5 of Version 0.95 of the spec, states:
    "With optimistic transactions, instances queried or read from the data
    store will not be transactional unless they are modified, deleted, or
    marked by the application as transactional in the transaction."
    My understanding of this is that the instances that are fetched from the
    query and read become PNT, and hence would not have their state cleared
    at the end of the transaction and would not be reloaded when read in the
    next transaction -- contrary to the behavior observed.
    David Ezzio
    Yankee Software

  • Unexpected power behavior (sleep, shutdowns) after repair

    I recently sent my MacBook Pro (Early 2008, 15") into a computer shop to have the right speaker replaced. Shortly afterwards, the machine began exhibiting unusual behavior; it started unexpectedly sleeping or shutting down while I was using it.
    (Note: My MBP battery is perma-drained almost completely, so prior to sending the computer in, the computer might unexpectedly shut down if running solely on battery.)
    I reset the SMC and thought nothing of it, until the mac shut down unexpectedly again, almost 24 hours exactly after the SMC was reset. I then decided to run the Apple Hardware Test.
    It froze on 'testing logic board'. Twice.
    I have since reset the SMC again, and am unsure if problems will continue. If these power issues do recur, what should I do?
    Notes:
    • I installed smcFanControl after the first shutdown. Whatever's going on, it doesn't appear to be the result of an overheat.
    • Before you ask, I am not under an Apple warranty.

    The problems have continued, albeit very intermittently. I was able to get the system log after one unexpected sleep. Here's what it said:
    Jul  9 16:25:24 Dragonfly loginwindow[35]: loginwindow SleepWakeCallback WILL sleep
    Jul  9 16:27:24 Dragonfly loginwindow[35]: loginwindow SleepWakeCallback will power on, Currenttime:7/9/2012 4:27:24.010 PM - Waketime:7/9/2012 4:27:24.000 PM = Deltatime:0.009685874
    Jul  9 16:27:27 Dragonfly configd[13]: Sleep: Success - AC 98 - Low Power Sleep
    Jul  9 16:27:27 Dragonfly configd[13]: Wake: Success - AC 98 - UHC3
    Jul  9 16:27:27 Dragonfly configd[13]: Hibernate Statistics
    Jul  9 16:27:28 Dragonfly configd[13]: PMConnection AirPort configd plug-in com.apple.powermanagement.applicationresponse.slowresponse 4263 ms
    Jul  9 16:27:28 Dragonfly configd[13]: PMConnection IPConfiguration com.apple.powermanagement.applicationresponse.slowresponse 4270 ms
    Jul  9 16:27:28 Dragonfly configd[13]: network configuration changed.
    "Low Power Sleep"? On AC power, with the battery fully charged? I suspect something's up with the power management system, but I don't know enough to be sure either way. Anyone have any ideas?

  • Transaction behavior changed with change in Windows to Linux Environment

    Hi All,
    I am facing a very weird problem.
    I have a 2 BPEL Synchronous Services lets say A & B. A calls B in its flow and B inserts a row into database and then retrieves the inserted row (as the primary key is sequence generated through a Trigger).
    This flow was working perfectly when:
    ·     It was on windows Development Box with SOA SUITE and DB Server on the same machine.
    ·     All the DB adapters had jca:Address information in it.
    Problem:
    ·     After moving them to a Unix box with a remote DB Server, I am seeing the problem that retrieval is happening before commit of insert and failing.
    Point to remember:
    ·     Insertion, selection, assignment all are happening in the different ‘SCOPE’
    ·     I have tried even putting them in a single scope but error remained same.
    ·     I have even tried putting a wait between them, so it’s a plain “Transaction not commited “issue
    I am expecting it could be an issue with the way Data source has been created or something else.
    Please suggest your pointers on this.
    Thank you.

    Hi Win
    1. There is absolutely NO changes or specific requirements to deploy a portal EAR created from Windows and deploying on Unix or Linux Env. We do this very often. I export my entire portal applicatoin (EAR, WAR and dataSync if its there) from Workshop or Eclipse (10.3.2) IDE as .EAR file. Then we can deploy this .EAR file pretty much in any Portal Domain on any Env like Linux. So first I want to clarify that there is NO need to change any files or do steps to deploy a portal EAR from Windows to Linux Env.
    2. Now coming to your error, the root cause seems to be this: java.lang.ClassNotFoundException: org.apache.beehive.netui.pageflow.PageFlowContextListener
    a) On Windows did you test your EAR on a Portal Domain. I assume you may have already did this.
    b) Is the domain that you created on the Linux Env and its version matches exactly with what you had in Windows Env. Say in Windows if you have WLP 10.3.1, then on Linux also you should have WLP 10.3.1. If not, you need to upgrade your portal EAR first in Windows to 10.3.x and then deploy.
    c) Compare the config.xml file modules specially the portal framework shared modules. They should be same in both Windows and Unix except for the location ofcourse.
    d) On Windows, by any chance did you deploy any extra additional modules in the portaldomain. If so do the same on Linux Env also.
    e) Other then config.xml file, all the other details are within the .EAR file itself like weblogic.xml, weblogic-application.xml file etc etc.
    f) So better compare you config.xml file in both the working and not working Envs.
    g) Also on Linux, are you deploying on Single Server domain or cluster domain. If cluster, make sure you deploy your portalEar only to Cluster because none of hte shared modules are deployed to Admin. So deploy only to cluster.
    Thanks
    Ravi Jegga

  • App Locker: admin user (non-admin token) unexpected run behavior

    As an administrative user with a filtered token (not choosing Run As Admin), when I double-click an .exe residing in a location that no App Locker rule would allow a non-admin token to run - I expect to see the application blocked by App Locker, but it runs
    instead.
    Background:
    No App Locker rule exists that would allow the .exe file's location (on my administrative user's desktop) or any of the other .exe's I'm able to run from my user's profile directory. I checked several of these with ProcExp and they all show
    BUILTIN\Administrators = DENY on the security tab.
    The only App Locker rule that would allow me to run this is the default rule for BUILTIN\Administrators.
    I have verified with ProcExp that the current Explorer.exe is running with a filtered token (BUILTIN\Administrators is denied).
    My administrative user is a member of a group, Workstation Local Admins, which is a member of BUILTIN\Administrators. I am not expecting this to match the Default rule for BUILTIN\Administrators.
    UAC group policy is configured as follows and I have verified this policy is applied to this system and registry keys have been set to match by group policy processing: ENABLED -> [Admin Approval Mode, Only elevate UIAccess applications...secure locations,
    Run all administrators in Admin Approval Mode, Switch to secure desktop when prompting..., Virtualize file and registry write failures...]; DISABLED -> [Allow UIAccess applications to prompt...without using the secure desktop, Detect application installs...,
    Only elevate executables...signed and validated]; PROMPT FOR CONSENT -> [Behavior of the elevation prompt for administrators..., Behavior of elevation prompt for standard users]
    AppIDSvc is running and seems healthy
    all rules categories are set to enforce
    So what is going on here? App Locker event log happily reports that all these "were allowed to run" - but how are the rules evaluating to allow them to run?
    born to learn!

    > Admin), when I double-click an .exe residing in a location that no App
    > Locker rule would allow a non-admin token to run - I expect to see the
    > application blocked by App Locker, but it runs instead.
    This guy experienced the same issue:
    http://superuser.com/questions/744350/applocker-and-uac-on-windows-8-1
    Seems to be a design change in W8, although I couldn't find any
    information about it...
    Martin
    Mal ein
    GUTES Buch über GPOs lesen?
    NO THEY ARE NOT EVIL, if you know what you are doing:
    Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))

  • Unexpected transaction data in fact table

    Hi,
    I  have created customized table having field
    SWISSEMPID   SWEMPNAME   SWADDRESS   SWDESIGNATION
    SWHIREDATE   SUPERVISOR    SWISSCOMP    ETHNICITY     LANGUAGE       CURRENCY
    On the basis of table , I have created generic data source for text ( empname ) and attr ( empid)
    dtp excetuded successfully
    but for transaction data , in extract structure I have taken empid and empname for connecting dimension
    table to fact table , compensation also selected ( transaction data)
    after exectuing dtp i am getting 426000 value , it is repeated for each record
    which does not exist in table
    Regards,
    Vivek
    Edited by: Vivek Srivastava on Jan 13, 2010 9:07 AM

    You need to explain your requirement a bit more. Why you want to add type or rejection reason in fact table.
    In general you should avoid adding textual data in fact.
    Fact tables are only supposed to store keys and measures. It can hold textual data in case of degenerate dimension ( i.e if the number of records are same in dimension as well as fact ).
    Type or Rejection reason are going to have much less records. You can create a new dimension for them having probably 20 or 30 records.
    Disadvantages of adding textual data in fact is, once the fact has millions of records the fact table updates are going to take huge time and also your reports will take long time.
    If you have a rejection reason dimension with some 20 records, you can use rejection reason in prompts.
    But if the same rejection reason is coming from fact table your prompts performance is going to be very slow since it has to fetch 20 distinct records from millions of records.
    Consider these before adding textual data in facts.
    Thanks
    Edited by: Maqsood Hussain on Dec 5, 2012 9:40 PM

  • [SOLVED] Unexpected compiz behaviors, unworking features

    Hello,
    I recently reinstalled from scratch with the latest iso and installed compiz-bzr from AUR.
    Previously I was using compiz from official repos which is no longer available.
    I tried to set it up the same way but I have a few strange behaviors :
    - Some maximized windows can't be dragged using the decoration (I'm using emerald-git from AUR)
    - As well those undraggable decoration have unworking buttons (top right buttons, minimize, maximize, close)
    To recover from this behavior I need to alt + drag the window so that it gets minimized and then everything is reworking as expected.
    - All the keybindings from General Options (altf + F4, alt + F5, alt + F10, etc) are not working despite they are configured from default
    - In the "Place Windows" plugin there is no "Centered" mode in the "Placement Mode" dropdown.
    If you wonder I'm using xfce4 launched from a tty (startxfce4) and nvidia 325.15-5
    Last edited by detestable (2013-09-06 14:52:02)

    detestable wrote:
    Hello,
    I recently reinstalled from scratch with the latest iso and installed compiz-bzr from AUR.
    Previously I was using compiz from official repos which is no longer available.
    The very first thing i am going to point out; Expect compiz-bzr (0.9.x) to NOT behave exactly the same and/or be missing things from Compiz 0.8.6... it's just a fact; some functionality has been removed and/or is broken, while in other cases you may see improvments..
    detestable wrote:
    I tried to set it up the same way but I have a few strange behaviors :
    - Some maximized windows can't be dragged using the decoration (I'm using emerald-git from AUR)
    - As well those undraggable decoration have unworking buttons (top right buttons, minimize, maximize, close)
    To recover from this behavior I need to alt + drag the window so that it gets minimized and then everything is reworking as expected.
    1. Emerald is a dead project. The _only_ reason compiz even still has (rough) support for it is because myself and a few others spoke up on a Launchpad/Compiz bug report and convinced them to leave support in for it (since we were using it)... But not all of emerald's features even work anymore in Compiz.... It also looks like emerald-git is pulling from the old compiz site - which is largely unmaintained... Personally, i would recommend NOT using Emerald because of these reasons. I'm pretty sure the Compiz devs would tell you the same thing.
    2. regarding buttons (not working); try using gtk-window-decorator instead and see if the problem presists. (it shouldn't).
    detestable wrote:- All the keybindings from General Options (altf + F4, alt + F5, alt + F10, etc) are not working despite they are configured from default
    ...does not work with Emerald -> But works fine with gtk-window-decorator. NOTE: you might need to change the "modifier key" to be something other than ALT - since some DEs (like Gnome, for example) are using ALT for modifiers in their own apps. (ie: it won't work)... That being said, i am not sure about XFCE, since i use Gnome.
    detestable wrote:- In the "Place Windows" plugin there is no "Centered" mode in the "Placement Mode" dropdown.
    it appears that they have removed that :\  (I'm not sure when, because it used to be there for a long time, throughout compiz-0.9.x development). You could go to lp:compiz and file a bug report on that though - maybe it was an accidental removal?
    ...anyway, i would say that your first step is to get rid of Emerald and make sure that Compiz is working okay (or rather the stuff above that isn't working with Emerald).
    cheerz
    Last edited by triplesquarednine (2013-09-02 18:33:26)

  • Transactional Behavior in Weblogic Workshop

    According to this article
    http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/advanced/transactions/conDefaultTransactions.html,
    webservice in workshop in transactional. Is there way to turn off implicit transaction?
    If I use Weblogic Server Domain, is implicit transactino on too?
    Alan

    Hi Alan,
    All of these examples [1] do not use transactions.
    HTH,
    Bruce
    [1]
    http://webservice.bea.com/
    http://manojc.com/
    Alan Chan wrote:
    >
    Bruce,
    Is there a link you can provide that show me how to use web service without transactions?
    An example would be useful.
    I would not find much information about it with the link that you provided.
    Thank you
    Alan
    Bruce Stephens <[email protected]> wrote:
    Hi Alan,
    In Workshop, when a method or callback in your web service is executed,
    the method or callback is encapsulated in an implicit transaction.
    You can use WLS web services [1] without transactions (except reliable
    messaging uses them).
    HTH,
    Bruce
    [1]
    http://edocs.bea.com/wls/docs81/webserv/index.html
    Alan Chan wrote:
    According to this article
    http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/advanced/transactions/conDefaultTransactions.html,
    webservice in workshop in transactional. Is there way to turn offimplicit transaction?
    If I use Weblogic Server Domain, is implicit transactino on too?
    Alan

  • Internal EUL Error:TransError -Unexpected transaction error

    the Desktop edition given from the standaloneCD is missing a dll file!!!
    help me....
    Could you tell me what the name of the dll was?

    Hi Tereza,
    You mentioned that you have privileges to all the users.
    How are your User database accounts set up?
    We have setup 3 types of users, reado only, authors and publishers who can share workbooks.
    I understand from my colleague that there is a Disco Administrator Security setting that restricts users from saving workbooks to the database.
    Otherwise it may pay to go back to basics and see that the Users DB accounts have permissions to INSERT, UPDATE and DELETE from the base EUL tables. Apparently you can grant these manually though roles or use the Admin Tool to set up you Users permissions. I recommend using the Admin tool.
    Worst case you may have a config problem with your User Acccounts (i.e. temp space etc) or a RDBSM setup problem - DBA issues.
    Let us know how you get on.
    Lance

Maybe you are looking for

  • The Sims 2 crashes after installing Nightlife or Pets Expansion Packs

    I'm at the end of my rope, so I thought I would see if anybody out there can help me. I'm posting this on a few boards. I've been a huge fan of the Sims ever since the first game was released. I got my first Mac a year ago, and The Sims 2 for it for

  • @Override when extending an abstract class

    Hi! I have an abstract class A with one abstract method B. I then created a class C which extended A. Eclipse then automatically created the abstract method. But it also added @Override. Like this: @Override protected void B()      // something }What

  • X220 Mobile Broadband - how to get it working

    I have an X220 with Fedora 15 (2.6.40 kernel) and I am unable to get integrated Mobile Broadband working. Does anyone have this working and/or know the special magic required to get it working?

  • Custom Object Reporting

    Hi Experts, I am trying to create a report on Custom Object4 and Custom Object5 (CO5 is a child object of CO4).The report is getting generated perfectly . Now my aim is to pass the report in a web applet under Custom Object4 so that report gets filte

  • Getting stuck syncing

    I am having a problem when trying to sync my ipod to my itunes.  I had to restore the ipod for some reason but when I try and resync it it get stuck on Step 2 (trying to determine which songs to sync" - it just freezes and I have to force quit iTunes