OSB Transaction RollBack

HI,
I have a scenario in which i have to rollback the db transaction .
scenario : I have proxy service which intern call one DB Business service and one BPEL sync service . if the BPEL sync service is not working or down for some reasons the DB insert which i have performed before calling the BPEL service should got rollback.  i have done the following but no luck.
1 . proxy service -- > enabled the transaction required check box in message handling.
2 .added  exactly once QOS for business services but transaction was not rollback and giving below error:
                       "Setting quality of service to Exactly Once in service callout action is not supported for service BusinessService "

HI,
I have a scenario in which i have to rollback the db transaction .
scenario : I have proxy service which intern call one DB Business service and one BPEL sync service . if the BPEL sync service is not working or down for some reasons the DB insert which i have performed before calling the BPEL service should got rollback.  i have done the following but no luck.
1 . proxy service -- > enabled the transaction required check box in message handling.
2 .added  exactly once QOS for business services but transaction was not rollback and giving below error:
                       "Setting quality of service to Exactly Once in service callout action is not supported for service BusinessService "

Similar Messages

  • OSB Dynamic Routing and Transaction Rollback

    Hi,
    I have implemented dynamic routing to different jms business services.
    That's the flow:
    1. I have a proxy service which is invoked via a message delivered to a jms queue(XA connection factory), this queue is configured with
    Error Destination, expiration policy redirect, redelivery limit 5 and redelivery delay override 100
    2. I use a dynamic routing action
    <ctx:route isProxy="false">
    <ctx:service>
    $businessServiceXXX
    </ctx:service>
    </ctx:route>
    where $businessServiceXXX is a variable to hold my target jms business service, its value depends on some incoming inbound headers.
    3. if the endpoint is not correct(business service endpoint is dynamic) I catch the error in a Error handler, I raise an Error but :
    THE MESSAGE IS NOT REDIRECTED TO THE ERROR QUEUE.
    I know I could solve the issue with another approach like an external table to capture(fix) the endpoints, but it won't be so flexible in terms of deployment capability.
    Any Ideas ?
    Thanks,
    T.

    Hi Tony,
    Tested this in ALSB 2.5 . Transaction rollbacks fine when error in dynamic routing. I am attaching the test JMS proxy we have used for this.
    We had XA enabled CF for JMS proxy service and target JMS BS. The dynamic route was configured in route node with no route error handler or service error handler. The test case was to pause the target JMS queue for production. We could see messages rolling back to the source queue and getting redelivered.
    Attaching the Sbconfig for this proxy. Proxy Name: Dynamic Routing
    <?xml version="1.0" encoding="UTF-8"?>
    <xml-fragment name="DynamicRouting">
    <ser:coreEntry isEnabled="true" isProxy="true" name="DynamicRouting" isAutoPublish="false" xmlns:ser="http://www.bea.com/wli/sb/services">
    <ser:description/>
    <ser:binding type="abstract XML"/>
    </ser:coreEntry>
    <ser:endpointConfig xmlns:ser="http://www.bea.com/wli/sb/services">
    <tran:provider-id xmlns:tran="http://www.bea.com/wli/sb/transports">jms</tran:provider-id>
    <tran:inbound xmlns:tran="http://www.bea.com/wli/sb/transports">true</tran:inbound>
    <tran:URI xmlns:tran="http://www.bea.com/wli/sb/transports">
    <env:value xmlns:env="http://www.bea.com/wli/config/env">jms://localhost:7001/XACF/InputQueue</env:value>
    </tran:URI>
    <tran:inbound-properties xmlns:tran="http://www.bea.com/wli/sb/transports"/>
    <tran:all-headers xmlns:tran="http://www.bea.com/wli/sb/transports">false</tran:all-headers>
    <tran:provider-specific xsi:type="jms:JmsEndPointConfiguration" xmlns:jms="http://www.bea.com/wli/sb/transports/jms" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <jms:is-queue>true</jms:is-queue>
    <jms:is-secure>false</jms:is-secure>
    <jms:inbound-properties>
    <jms:response-required>false</jms:response-required>
    </jms:inbound-properties>
    <jms:request-encoding>UTF-8</jms:request-encoding>
    </tran:provider-specific>
    </ser:endpointConfig>
    <ser:router xmlns:ser="http://www.bea.com/wli/sb/services">
    <con:pipeline name="PipelinePairNode1_request" type="request" xmlns:con="http://www.bea.com/wli/sb/pipeline/config">
    <con:stage name="Configuration">
    <con:comment/>
    <con:context/>
    <con:actions>
    <con1:assign varName="input" xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
    <con1:expr>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config"><![CDATA[<root>
    <type value="jms">
              <service>DynamicRouting/BusinessService/JMS</service>
         </type>
         <type value="http">
         <service>DynamicRouting/BusinessService/HTTP</service>
         <operation>Test</operation>
         </type>
    </root>]]></con:xqueryText>
    </con1:expr>
    </con1:assign>
    </con:actions>
    </con:stage>
    </con:pipeline>
    <con:pipeline name="PipelinePairNode1_response" type="response" xmlns:con="http://www.bea.com/wli/sb/pipeline/config"/>
    <con:flow xmlns:con="http://www.bea.com/wli/sb/pipeline/config">
    <con:pipeline-node name="PipelinePairNode1">
    <con:request>PipelinePairNode1_request</con:request>
    <con:response>PipelinePairNode1_response</con:response>
    </con:pipeline-node>
    <con:route-node name="DynamicRoute">
    <con:comment/>
    <con:context/>
    <con:actions>
    <con1:dynamic-route xmlns:con1="http://www.bea.com/wli/sb/stages/routing/config">
    <con1:service>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config">&lt;ctx:route>
         &lt;ctx:service isProxy="false">{data($input/*:type[@value=$body/*:body/*:type/text()]/*:service)}&lt;/ctx:service>
              if($input/*:type[@value=$body/*:body/*:type/text()]/*:operation) then
                   &lt;ctx:operation>{data($input/*:type[@value=$body/*:body/*:type/text()]/*:operation)}&lt;/ctx:operation>
    else()
    &lt;/ctx:route></con:xqueryText>
    </con1:service>
    <con1:outboundTransform>
    <con2:routing-options xmlns:con2="http://www.bea.com/wli/sb/stages/transform/config">
    <con2:uriExpr>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config">$body/*:body/*:url/text()</con:xqueryText>
    </con2:uriExpr>
    </con2:routing-options>
    </con1:outboundTransform>
    <con1:responseTransform/>
    </con1:dynamic-route>
    </con:actions>
    </con:route-node>
    </con:flow>
    </ser:router>
    </xml-fragment>
    Regards,
    Atheek
    Edited by: atheek1 on 27-Apr-2010 19:48

  • Possible Bug?  NullPointerException on Transaction rollback

    Hi,
    Not sure if this is a known bug or not. I am using SQL Server 2000,
    Microsoft's JDBC driver, JDK 1.4.1_01 on a Win2k platform. With Kodo
    2.3.3 I am getting the following exception when I call a
    transaction.rollback(). My update is failing because I am trying to
    insert too many characters into a varchar(255) field. Ah, the wonders
    of double-byte character sets and fixed width HTML text input fields.
    Khamsouk
    15:35:46,734 INFO [kodo] UPDATE GCGroup SET
    name='??????????????????????????????????????????????????????????????????????
    ??????????????????????', visibility=2, child_count=0, JDOLOCKX=1,
    description='', rank=1, global_write=0, user_count=0, global_read=0 WHERE
    (id = 170 AND JDO
    LOCKX = 0)
    15:35:46,750 INFO [kodo] [ C:
    15:35:46,750 INFO [kodo] 7795432
    15:35:46,750 INFO [kodo] ; T:
    15:35:46,750 INFO [kodo] 16900472
    15:35:46,750 INFO [kodo] ; D:
    15:35:46,750 INFO [kodo] 10/25/02 3:35 PM
    15:35:46,750 INFO [kodo] ]
    15:35:46,750 INFO [kodo] roll back data store transaction
    15:35:46,750 INFO [STDOUT] @@@ THE TRANSACTION IS
    com.solarmetric.kodo.ee.EEPersistenceManager@c954e
    15:35:46,750 ERROR [STDERR] javax.jdo.JDOException:
    java.lang.NullPointerException
    NestedThrowables:
    java.lang.NullPointerException
    15:35:46,765 ERROR [STDERR] at
    com.solarmetric.kodo.ee.EEPersistenceManager.rollback(EEPersistenceManager.java:169)
    15:35:46,765 ERROR [STDERR] at
    com.gulfnet.usermanager.UserManager.updateJobTitle(UserManager.java:1223)
    15:35:46,765 ERROR [STDERR] at
    com.gulfnet.common.actions.JobTitleAction.updateObject(JobTitleAction.java:115)
    15:35:46,828 ERROR [STDERR] at
    com.gulfnet.common.actions.JobTitleAction.doAction(JobTitleAction.java:65)
    15:35:46,828 ERROR [STDERR] at
    com.gulfnet.common.actions.JobTitleAction.processForm(JobTitleAction.java:44)
    15:35:46,828 ERROR [STDERR] at
    com.gulfnet.common.actions.GroupCastAction.perform(GroupCastAction.java:52)
    15:35:46,828 ERROR [STDERR] at
    org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1787)
    15:35:46,828 ERROR [STDERR] at
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586)
    15:35:46,828 ERROR [STDERR] at
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
    15:35:46,828 ERROR [STDERR] at
    javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    15:35:46,828 ERROR [STDERR] at
    javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    15:35:46,828 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    15:35:46,828 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    15:35:46,828 ERROR [STDERR] at
    com.gulfnet.servlet.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:142)
    15:35:46,828 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    15:35:46,828 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    15:35:46,828 ERROR [STDERR] at
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    15:35:46,828 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:46,843 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:46,937 ERROR [STDERR] at
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    15:35:46,937 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:46,937 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:46,937 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:46,937 ERROR [STDERR] at
    org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
    15:35:46,953 ERROR [STDERR] at
    org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
    15:35:46,953 ERROR [STDERR] at java.lang.Thread.run(Thread.java:536)
    15:35:46,953 ERROR [STDERR] NestedThrowablesStackTrace:
    15:35:46,953 ERROR [STDERR] java.lang.NullPointerException
    15:35:46,953 ERROR [STDERR] at
    com.solarmetric.kodo.ee.EEPersistenceManager.rollback(EEPersistenceManager.java:161)
    15:35:46,953 ERROR [STDERR] at
    com.gulfnet.usermanager.UserManager.updateJobTitle(UserManager.java:1223)
    15:35:46,953 ERROR [STDERR] at
    com.gulfnet.common.actions.JobTitleAction.updateObject(JobTitleAction.java:115)
    15:35:46,953 ERROR [STDERR] at
    com.gulfnet.common.actions.JobTitleAction.doAction(JobTitleAction.java:65)
    15:35:46,953 ERROR [STDERR] at
    com.gulfnet.common.actions.JobTitleAction.processForm(JobTitleAction.java:44)
    15:35:46,953 ERROR [STDERR] at
    com.gulfnet.common.actions.GroupCastAction.perform(GroupCastAction.java:52)
    15:35:46,953 ERROR [STDERR] at
    org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1787)
    15:35:46,953 ERROR [STDERR] at
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586)
    15:35:46,953 ERROR [STDERR] at
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
    15:35:46,953 ERROR [STDERR] at
    javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    15:35:46,953 ERROR [STDERR] at
    javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    15:35:46,953 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    15:35:46,953 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    15:35:46,953 ERROR [STDERR] at
    com.gulfnet.servlet.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:142)
    15:35:46,953 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:46,968 ERROR [STDERR] at
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    15:35:47,078 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:47,078 ERROR [STDERR] at
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
    15:35:47,078 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    15:35:47,078 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:47,078 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:47,078 ERROR [STDERR] at
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    15:35:47,078 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    15:35:47,093 ERROR [STDERR] at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    15:35:47,093 ERROR [STDERR] at
    org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    15:35:47,093 ERROR [STDERR] at
    org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
    15:35:47,093 ERROR [STDERR] at
    org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
    15:35:47,093 ERROR [STDERR] at java.lang.Thread.run(Thread.java:536)

    When I encounter an RuntimeException I do a transaction rollback manually.
    my try/catch is like the following:
    try {
    } catch (JDOFatalException e) {
         throw new MyException();
    } catch (RuntimeException e) {
         trans.rollback();
         throw new MyException();
    I am using JBoss3.0.3 with kodo.rar, using JDO's transaction interface.
    Should i be doing a trans.rollback manually() when I get a
    JDOException thrown i.e. should I have a separate catch for
    JDOExceptions? A lot of examples I see look like the above code.
    Kam
    Abe White wrote:
    Can you give a little more information about the context of the rollback?
    Are you invoking trans.rollback() yourself, or is it happening
    automatically
    because of a SQL error? It looks like you're using managed transactions?
    Are you using them through the local JDO transaction interface?
    Through CMT?
    Thanks for the report, in any case...

  • How make a transaction rollback?

    Hello to everybody...
              hoew can I call a server transaction rollback ( Session Bean ,CMT ) by the client?

    Hi ,
    Call transaction SICF and Navigate to "webgui" service; then right-click and select option "Activate".transaction will work definitely.
    This should enable the WebGui functionality in your WAS.
    ITS WEBGUI in ECC6.0
    for more information , check below thread
    MY FEW QUESTIONS
    SSO with ITS & Webenabling WEBGui
    Koti Reddy

  • Transaction rollback or commit

    Hello to everybody...I'd need a solution for a probem that I 'm not able to resolve.I have a session bean on the server ( WeblogicServer 8.1 Sp3 ) and a Java Swing client.I need to break and rollback a long process on the server by client swing button pression.I have thought to create a user transaction (under a client thread process) on the client and I try to propagate it to the container ( Container Managed Transaction).Now I have to break the long time server operation at certain moment by make a rollback on the client trasaction,after the button pression.The problem is that the rollback DOES NOT ARRIVE to the server and the sever process continue to operate.How this is possible?I think that I make basic mistake,but which?Can Anyone help me please?
    thanks for help and sorry for bad english.

    whaqt I need to do is to break and rollback the transaction ( REQUIRED on the container ) by the client when I want....Whit this prototipe now I try to pass the transaction rollback operation from the client to the server,bt now the message on the server is the following:
    java.sql.SQLException: The transaction is no longer active - status: 'Marked rollback. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 33 seconds
    Xid=BEA1-00006D5145365E026810(6407574),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=1,seconds since begin=33,seconds left=30,activeThread=Thread[ExecuteThread: '23' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default'],XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=started,assigned=none),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@f30862,re-Registered = false),SCInfo[mydomain+IRMA_Admin]=(state=active),properties=({weblogic.jdbc=t3://10.2.1.16:10004}),CoordinatorURL=IRMA_Admin+10.2.1.16:10004+mydomain+t3+)]'. No further JDBC access is allowed within this transaction.
    at weblogic.jdbc.wrapper.JTSConnection.checkIfRolledBack(JTSConnection.java:155)
    at weblogic.jdbc.wrapper.JTSConnection.checkConnection(JTSConnection.java:164)
    at weblogic.jdbc.wrapper.Statement.checkStatement(Statement.java:234)
    at weblogic.jdbc.wrapper.Statement.preInvocationHandler(Statement.java:83)
    at weblogic.jdbc.wrapper.Statement_oracle_jdbc_driver_T4CStatement.clearBatch(Unknown Source)
    at irma.utility.database.DataBaseUtility.executeBatchUpdate(DataBaseUtility.java:62)
    at irma.technology.IrmaTechno.updateDBData(IrmaTechno.java:1077)
    at irma.business.service.ImportService.importFileEricsson(ImportService.java:698)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at irma.business.Dispatcher.callService(Dispatcher.java:66)
    at irma.ejb.serviceSessionManager.ServiceSessionManagerBean.getService(ServiceSessionManagerBean.java:67)
    at irma.ejb.serviceSessionManager.ServiceSessionManager_b1engw_EOImpl.getService

  • Missing cleanup() after second (local) transaction rollback

              I wrote a simple dummy ressource adapter with local and XA transaction support and
              discovered some problems when using this adapter within an stateless session bean
              that calls setRollbackOnly().
              If I configure the resource adapter for XATransaction support, everything runs fine:
              WebLogic (or its ConnectionManager) detects the transaction rollback calls my cleanup()
              method and delists the connection from the list of busy connections (so I can do
              my rollback test with this connection a often as I want).
              If I configure my resource adapter for LocalTransaction support, the connection also
              is delisted from the list of busy connections (my cleanup method also is called)
              but after a second rollback test the connection remains in the busy connection list
              (and the cleanup call is missing). So calling the rollback test a third time brings
              a ResourceAllocationException.
              I am wondering whether the "mysterious" java.lang.IllegalStateException: Cannot delist
              resource, transaction has been rolled back
              that comes within my server log has something to do with my problem.
              Attched is my server log that reflects the situation.
              Thanks for any hint,
              juergen
              [connectorlog.txt]
              

    Hi Neelam,
    I am sure what exactly your application needs for single-threaded process.
    If you have some thread context in a given thread that you need for correctly handle all message, then you may try to set max-free-pool-size to 1 on the MDB to force single threaded.
    You can find more information in MDB tuning doc at http://download.oracle.com/docs/cd/E17904_01/web.1111/e13814/mdbtuning.htm#PERFM271
    If all you need is to sequentially handle all messages and it does not matter if the processing is done in a particular thread, you could use a JMS feature called Unit-of-order (UOO) together with MDBs. JMS UOO gives you the capability of making sure all messages in one UOO group are processed sequentially and in the order that them are produced, even when there are multiple consumers or redelivery of messages due to fialures. Messages in different UOO groups can be processed in parallel.
    For more information about UOO can be found at http://download.oracle.com/docs/cd/E17904_01/web.1111/e13727/uoo.htm#JMSPG389
    The following link discusses how to process messages in order with MDBs. Re: Transaction-Rollback on foreign jms queue usin Singletonservice in weblogic
    Hope these links help you find the right solution for your application.
    Dongbo

  • Reg MDB transaction rollback

    i have an MDB deployed on weblogic 8.1 sp6 server. My confusion here is how the MDB handles transaction rollbacks. E.g suppose if the MDB is designed to do the below action.
    1) read an xml message from a jms queue
    2) insert some database records
    3) generate some xml message, post it to some other jms queue
    suppose if step 1 and 2 is completed, and its on step 3, at this point weblogic server shutdowns suddenly, once i restart the server, it reads the xml message again from the jms queue, but this time it errors out, because it finds the data already entered in step 2.
    My question is when the weblogic server shut down while the mdb was at step 3, why didnt it removed all the db entries it made in step 2. This behaviour apears to me as partial rollback. I have given the mdb descriptor below.
    <ejb-jar>
      <enterprise-beans>
        <message-driven>
          <ejb-name>CSS_Response</ejb-name>
          <ejb-class>com.bt.neo.core.utility.appcontroller.transport.mdb.JmsMessageReceiver</ejb-class>
          <transaction-type>Container</transaction-type>
          <acknowledge-mode>auto-acknowledge</acknowledge-mode>
          <message-driven-destination>
            <destination-type>javax.jms.Queue</destination-type>
          </message-driven-destination>
          <env-entry>
            <env-entry-name>ejb/BeanFactoryPath</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <env-entry-value>core-css-response-inbound.xml</env-entry-value>
          </env-entry>
          <env-entry>
            <env-entry-name>ProcessorBeanName</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <env-entry-value>transportAdaptor</env-entry-value>
          </env-entry>
          <resource-ref>
            <res-ref-name>jms/faultTo</res-ref-name>
            <res-type>javax.jms.Destination</res-type>
            <res-auth>Container</res-auth>
          </resource-ref>
        </message-driven>
      </enterprise-beans>
      <assembly-descriptor>
        <container-transaction>
          <method>
            <ejb-name>CSS_Response</ejb-name>
            <method-name>onMessage</method-name>
            <method-params>
              <method-param>javax.jms.Message</method-param>
            </method-params>
          </method>
          <trans-attribute>Required</trans-attribute>
        </container-transaction>
      </assembly-descriptor>
    </ejb-jar>Please clear my doubt.
    Edited by: Deepak Dev on 19-Dec-2011 11:01

    General information on message-driven beans can be found here: http://docs.oracle.com/cd/E12840_01/wls/docs103/ejb/message_beans.html
    To transaction configuration is discussed here: http://docs.oracle.com/cd/E12840_01/wls/docs103/ejb/message_beans.html#wp1162058
    Looks like you have to set the transaction-type to Container and the trans-attribute to required. Also see the note:
    - However, if you make this configuration error, the MDB will not run transactionally—if a failure occurs mid-transaction, updates that occurred prior to the failure will not be rolled back.

  • Pls help:  Transaction rollback

    Hi
    We are facing an problem in WLS10. Although I have configured the JTA TimeoutSeconds to 1800 sec, I always hit transaction rollback problem when 30 sec passed. Appreciate your help on this problem.
    DataSource Configuration:
    <jdbc-driver-params>
    <driver-name>oracle.jdbc.xa.client.OracleXADataSource</driver-name>
    </jdbc-driver-params>
    <jdbc-connection-pool-params>
    <max-capacity>50</max-capacity>
    <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
    </jdbc-connection-pool-params>
    <jdbc-data-source-params>
    <jndi-name>jdbc/rms/ctleave</jndi-name>
    <jndi-name></jndi-name>
    <global-transactions-protocol>TwoPhaseCommit</global-transactions-protocol>
    </jdbc-data-source-params>
    JTA configuration:
    -r-- AbandonTimeoutSeconds 86400
    -r-- BeforeCompletionIterationLimit 10
    -r-- CheckpointIntervalSeconds 300
    -r-- ForgetHeuristics true
    -r-- MaxResourceRequestsOnServer 50
    -r-- MaxResourceUnavailableMillis 1800000
    -r-- MaxTransactions 10000
    -r-- MaxUniqueNameStatistics 1000
    -r-- MaxXACallMillis 120000
    -r-- Name LEAVE2FE2
    -r-- Notes null
    -r-- SecurityInteropMode default
    -r-- SerializeEnlistmentsGCIntervalMillis 30000
    -r-- TimeoutSeconds 1800
    -r-- Type JTA
    -r-- UnregisterResourceGracePeriod 30
    -r-x freezeCurrentValue Void : String(attributeName)
    -r-x isSet Boolean : String(propertyName)
    -r-x unSet Void : String(propertyName)
    Exception log:
    Exception Occured, Failure creating new instance of RowMapper, org.apache.beehive.controls.api.ControlException: RowToObjectMapper: SQLEx
    ception: Unexpected exception while enlisting XAConnection java.sql.SQLException: Transaction rolled back: Transaction timed out after 30 seconds
    BEA1-00A6A99F8ED0E04484B3
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1419)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1331)
    at weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAConnection.java:189)
    at weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.java:64)
    at weblogic.jdbc.wrapper.ResultSetMetaData.preInvocationHandler(ResultSetMetaData.java:37)
    at weblogic.jdbc.wrapper.ResultSetMetaData_oracle_jdbc_driver_OracleResultSetMetaData.getColumnCount(Unknown Source)
    at org.apache.beehive.controls.system.jdbc.RowToObjectMapper.<init>(RowToObjectMapper.java:63)
    at sun.reflect.GeneratedConstructorAccessor141.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at org.apache.beehive.controls.system.jdbc.RowMapperFactory.getMapper(RowMapperFactory.java:160)
    at org.apache.beehive.controls.system.jdbc.RowMapperFactory.getRowMapper(RowMapperFactory.java:85)
    at org.apache.beehive.controls.system.jdbc.DefaultObjectResultSetMapper.arrayFromResultSet(DefaultObjectResultSetMapper.java:93)
    at org.apache.beehive.controls.system.jdbc.DefaultObjectResultSetMapper.mapToResultType(DefaultObjectResultSetMapper.java:61)
    at org.apache.beehive.controls.system.jdbc.JdbcControlImpl.execPreparedStatement(JdbcControlImpl.java:370)
    at org.apache.beehive.controls.system.jdbc.JdbcControlImpl.invoke(JdbcControlImpl.java:228)
    ...

    Hi. Can you turn on JTA logging? The output will show each step in the
    transaction. This should be in the transaction newsgroup.
    Joe
    Shen XiaoChun wrote:
    Hi
    We are facing an problem in WLS10. Although I have configured the JTA TimeoutSeconds to 1800 sec, I always hit transaction rollback problem when 30 sec passed. Appreciate your help on this problem.
    DataSource Configuration:
    <jdbc-driver-params>
    <driver-name>oracle.jdbc.xa.client.OracleXADataSource</driver-name>
    </jdbc-driver-params>
    <jdbc-connection-pool-params>
    <max-capacity>50</max-capacity>
    <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
    </jdbc-connection-pool-params>
    <jdbc-data-source-params>
    <jndi-name>jdbc/rms/ctleave</jndi-name>
    <jndi-name></jndi-name>
    <global-transactions-protocol>TwoPhaseCommit</global-transactions-protocol>
    </jdbc-data-source-params>
    JTA configuration:
    -r-- AbandonTimeoutSeconds 86400
    -r-- BeforeCompletionIterationLimit 10
    -r-- CheckpointIntervalSeconds 300
    -r-- ForgetHeuristics true
    -r-- MaxResourceRequestsOnServer 50
    -r-- MaxResourceUnavailableMillis 1800000
    -r-- MaxTransactions 10000
    -r-- MaxUniqueNameStatistics 1000
    -r-- MaxXACallMillis 120000
    -r-- Name LEAVE2FE2
    -r-- Notes null
    -r-- SecurityInteropMode default
    -r-- SerializeEnlistmentsGCIntervalMillis 30000
    -r-- TimeoutSeconds 1800
    -r-- Type JTA
    -r-- UnregisterResourceGracePeriod 30
    -r-x freezeCurrentValue Void : String(attributeName)
    -r-x isSet Boolean : String(propertyName)
    -r-x unSet Void : String(propertyName)
    Exception log:
    Exception Occured, Failure creating new instance of RowMapper, org.apache.beehive.controls.api.ControlException: RowToObjectMapper: SQLEx
    ception: Unexpected exception while enlisting XAConnection java.sql.SQLException: Transaction rolled back: Transaction timed out after 30 seconds
    BEA1-00A6A99F8ED0E04484B3
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1419)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1331)
    at weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAConnection.java:189)
    at weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.java:64)
    at weblogic.jdbc.wrapper.ResultSetMetaData.preInvocationHandler(ResultSetMetaData.java:37)
    at weblogic.jdbc.wrapper.ResultSetMetaData_oracle_jdbc_driver_OracleResultSetMetaData.getColumnCount(Unknown Source)
    at org.apache.beehive.controls.system.jdbc.RowToObjectMapper.<init>(RowToObjectMapper.java:63)
    at sun.reflect.GeneratedConstructorAccessor141.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at org.apache.beehive.controls.system.jdbc.RowMapperFactory.getMapper(RowMapperFactory.java:160)
    at org.apache.beehive.controls.system.jdbc.RowMapperFactory.getRowMapper(RowMapperFactory.java:85)
    at org.apache.beehive.controls.system.jdbc.DefaultObjectResultSetMapper.arrayFromResultSet(DefaultObjectResultSetMapper.java:93)
    at org.apache.beehive.controls.system.jdbc.DefaultObjectResultSetMapper.mapToResultType(DefaultObjectResultSetMapper.java:61)
    at org.apache.beehive.controls.system.jdbc.JdbcControlImpl.execPreparedStatement(JdbcControlImpl.java:370)
    at org.apache.beehive.controls.system.jdbc.JdbcControlImpl.invoke(JdbcControlImpl.java:228)

  • TRANSACTION을 ROLLBACK SEGMENT에 할당하는 방법(SET TRANSACTION USE)

    제품 : ORACLE SERVER
    작성날짜 : 2003-04-04
    TRANSACTION을 ROLLBACK SEGMENT에 할당하는 방법
    ==============================================
    (SET TRANSACTION USE ROLLBACK SEGMENT)
    Purpose
    Batch job 등을 사용할 때 특별히 크게 만든 rollback segment를 사용하도록
    할 수가 있다. transaction에 특정한 rbs를 지정하는 방법을 알아보자.
    Explanation
    Oracle은 다음과 같은 규칙에 의해 각 Transaction이 사용하는 Rollback
    segment를 결정한다.
    1. Active Transaction의 수가 가장 작은 Rollback Segment에 할당한다.
    2. 만약 1의 조건에 만족하는 Rollback segment가 하나 이상이면, 가장
    마지막에 할당된 rbs 다음의 rbs를 할당한다. 이것은 undo 기능을 더
    오래 지속시키도록 해 준다.
    그러나, Application이 큰 rollback segment가 필요하다면 위와 같이
    자동적인 rollback segment의 할당이 아닌 Manual하게 특정 rollback
    segment를 할당 가능하다.
    다음의 방법을 사용한다.
    1) 큰 rollback segment를 만든다. 큰 rollback segment 를 만들기
    위해서는 rbs tablespace에 영역이 충분히 커야 하므로 필요할 경우
    tablespace를 확장하는 작업을 한다.
    <tablespace 확장>
    $ sqlplus system/manager
    sql> alter tablespace rbs add datafile '?/rbs1SID.dbf' size 100m;
    <rollback segment 생성>
    sql> create rollback segment big_rbs storage(initial 10m next 10m)
    tablespace rbs;
    sql> alter rollback segment big_rbs online;
    2) Transaction 를 assign 한다.
    <sqlplus>
    SQL> set transaction use rollback segment big_rbs;
    <pro*c>
    exec sql commit work;
    exec sql set transaction use rollback segment big_rbs;
    <forms>
    dbms_transaction.use_rollback_segment('big_rbs');
    이와 같이 지정하면 이후에 commit 또는 rollback이 일어날 때까지
    한 transaction에만 해당된다.

  • BPEL Sensor for BAM report transaction rollback exception, ORABPEL-05002

    HI,
    I meet a question about BPEL sensor to BAM, it often report below error for Transaction rollback exception and timed out. After this error last half an hour, BPEL will thoughout connect database error and out of Memory.
    It is running on BPEL/BAM 10.1.3.5.
    <2010-01-19 17:33:42,595> <INFO> <default.collaxa.cube.sensor> Flushed 2 rows in BAM batch
    <2010-01-19 17:33:42,600> <INFO> <default.collaxa.cube.sensor> Flushed 6 rows in BAM batch
    <2010-01-19 17:33:42,600> <INFO> <default.collaxa.cube.sensor> Flushed 4 rows in BAM batch
    <2010-01-19 17:33:42,603> <ERROR> <default.collaxa.cube.engine.dispatch> <DispatchHelper::handleMessage> failed to handle message
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
    javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:365)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:139)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         ... 29 more
    <2010-01-19 17:33:42,604> <ERROR> <default.collaxa.cube.engine.dispatch> <BaseScheduledWorker::process> Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
    ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:171)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    <2010-01-19 17:33:42,605> <ERROR> <default.collaxa.cube.engine.dispatch> <DispatchHelper::handleMessage> failed to handle message
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
    javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:365)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:139)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         ... 29 more
    After half an hour, BPEL will report below error log:
    ORABPEL-04067
    Cannot update invoke message.
    The process domain was unable to update the state of the invocation message "99e5b70b31758b56:3c0225db:126439fa400:48c0". The exception reported is: Io exception: Connection reset
    Please check that the machine hosting the datasource is physically connected to the network. Otherwise, check that the datasource connection parameters (user/password) is currently valid.
    sql statement: UPDATE invoke_message SET state = ? WHERE message_guid = ?
    I am not sure these two error has any relationship.
    But it is an issue that BAM sensor ofter report transaction time out.

    sorry, I forgot the below things which I tried to tune the JMS.
    <property name="retryMaxCount">10</property>
    <property name="retryInterval">60</property>
    <property name="useJCAConnectionPool">true</property>
    <property name="maxSizeJCAConnectionPool">500</property>
    Thanks.

  • Deadlock - can you make both transactions rollback?

    My understanding of Oracle (11.2.0.3) is that if the engine detects a deadlock, it picks one transaction to rollback and one to succeed.
    Is it possible to configure a system or session setting that would instruct the engine to roll back both transactions?
    Long story short...I'm being asked this question because developers' code isn't perfect

    Hi Raindog,
    > My understanding of Oracle (11.2.0.3) is that if the engine detects a deadlock, it picks one transaction to rollback and one to succeed.
    It is not the engine - it is the database session itself. The documentation states, that the session is picked randomly, but this is not true in fully manner. The session, that is waiting the longest time will do the statement level rollback and raise an ORA-00060. Why? The timeout for enqueues (in that context) is 3 seconds and so the sessions that are waiting for that enqueue will wake up every 3 seconds and check the lock states. However as all of the other guys already mentioned "a statement rollback is performed" and not a "full transaction rollback". So it is up to your application to react on the ORA-00060 and do something useful (which is not that easy).
    > Is it possible to configure a system or session setting that would instruct the engine to roll back both transactions?
    No nothing "by Oracle default", but ideally your application reacts on the ORA-00060, identifies the other session and kills both for example (which performs an implicit rollback).
    > I'm being asked this question because developers' code isn't perfect
    ... then help your developers to make it better by explaining the error handling and its following actions
    Regards
    Stefan

  • Transaction Rollback Issue in SOA Suite

    Hi All,
    We have been facing the transaction rollback issue very frequently and looking for a concrete solution on this. We have a Asynchronous BPEL process which calls a webservice in a loop of say 20 iteration. In the loop sometimes we face this transaction rollback issue and apparently the CatchAll block doesn't capture this.
    In many blogs and oracle metalink we have seen few settings for this and made as per below :
    1. JTA Transaction timeout increase : we have it 10000 sec.
    2. The Data Source settings : 2.1 : XA transaction timeout check-box selected
    2.2 : The Initial Capacity : 10, Maximum Capacity : 200 and Capacity Increment = 5
    3. soa-infra -> EJBs -> set the transaction timeout to 1200 for many of the recommended BPELs
    4. DISTRIBUTED_LOCK_TIMEOUT = 120 sec.
    In short, all the recommended settings are in place. But still, we are facing this issue. Does anyone know if anything is missing in the setting ? Or any other solution to the issue?
    Any help is truly appreciated.
    Thanks,
    Ashwini

    I think, even if you change the setting you may not get rid of this problem permanently. Try to avoid call to the webservice in a loop and look for any other alternate solution like JMS (thread should not block for the response of the webservice).

  • Difference between Transaction.rollback() and Transaction.setRollBackOnly()

    Hi,
    I wanted to know the difference between what typical implementations of Transaction.rollback() and Transaction.setRollbackOnly().
    I have used setRollbackOnly()? in distributed transaction scenarios. How is it different from rollback()?
    Thanks
    Shailesh

    I would really recommend posting this question in a forum where somebody might understand what you are talking about. This is the XML forum.

  • High 'transaction rollback' (statistic# = 172) investigation

    Hi,
    I'm trying to investigate what could cause high transaction rollback .
    First think was ora-0001 unique constraint violation but I can't see any err=1:
    grep err=1 ora_1544382.trc
    in trace file .
    Do You have any idea what else can cause hight transaction rollback problem in JDBC connections (maybe somekind of timeouts) ?
    There is no clue in 10046 trace with lvl 12 maybe other trace ?
    Connections are made throught connection pool from Websphere Application Server dont know if thats relevant.
    Maybe some JDBC properties interfere, can't see thing in trace files.
    Database is 9.2.0.8
    Regards.
    GG

    user10388717 wrote:
    Hi,
    I'm trying to investigate what could cause high transaction rollback .
    First think was ora-0001 unique constraint violation but I can't see any err=1:
    grep err=1 ora_1544382.trc
    in trace file .
    What did you do to record the appearance of the "transaction rollbacks". Was this taking a snapshot of the session's statistics as the trace file was generated ?
    Essentially any transaction that rolls back and clears the undo segment header will report as a "transaction rollback" - including some internal transactions.
    Example 1) Inserting a row into a "child" table when the "parent" doesn't exist will error with ORA-02291 (parent not found). If this was the first DML of a transaction the resulting rollback will show as a "transaction rollback".
    Example 2) An index leaf block split picks an unsuitable block off the freelist and starts an internal transaction; when Oracle realises it was an unsuitable block the transaction rolls back.
    One quick cross-check for Dom Brooks' idea: if this is the front end code deliberately starting a transaction and rolling it back, then "user rollbacks" will be similar to "transaction rollbacks". If it's not user driven then you may have more transaction rollbacks than user rollbacks. Unfortunately, if the front-end issues a rollback after every query (i.e. without starting a transaction) then these rollbacks will show as user rollbacks but not transaction rollbacks and confuse the issue.
    Having checked your trace for error 00001, you might as well check just for "ERR".
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    To post code, statspack/AWR report, execution plans or trace files, start and end the section with the tag {noformat}{noformat} (lowercase, curly brackets, no spaces) so that the text appears in fixed format.
    "Science is more than a body of knowledge; it is a way of thinking"
    Carl Sagan                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • OSB JMS Proxy XA Transaction Rollback not occuring to queue

    Hi All
    We are dequeuing a message from JMS queue via an XA connection factory and then calling a web service. If any error occurs in the web service we catch the error handler, log and notify it and want to send this message back to the queue for retrial (The retry settings are defined at the Queue Level from weblogic console).
    Problem is rollback is not occurring, we have tried the below:
    1) There is no OSB reply with either success or failure in the error handler (This should have done the trick)
    2) We have also tried addiing an explicit Raise Error (Uncaught Error) to roll the message back, but its not working.
    This rollback is not occurring because JMS Resource is XA and web service call is NON XA, hence the entire message flow becomes NON XA. Is this understanding correct?
    How can we fix this? Please help

    Hi atheek1
    Thanks for the reply, it worked. Before I mark this question as answered, pls. answer the below queries (Thanks a lot!)
    1) Well, i just ticked transaction required and same transaction for response and it started working. I did not add routing options like you mentioned to QOS Exactly Once. Its working without it fine. So, my questions is what is the use of adding this QOS to exactly once. Is it mandatory?
    2) I have a couple of OSB services in which rollback is working automatically (XA JMS to JCA FTP Adapter) and (XA JMS to JCA DB adapter XA data source), here rollback works automatically. I dont have to tick transaction required. So my question is, when an XA based connection factory picks a message from the queue, a transaction is started at the container level. So why tick transaction required at the message flow level, when the weblogic has already initiated a transaction. Since you said that HTTP transport commits a transaction even if 500 or 404 occurs, it makes sense to tick is transaction required and same transaction for response in OSB proxy service. But the remaining scenarios work without these options. Hence will it be wise to say that these settings are only required for HTTP transport coz of the way it behaves (commits 404 and 500).
    Thanks

Maybe you are looking for