Database locks in OBPM 10gR3

Environment:
Oracle BPM 10gR3 Version: 10.3.1.0.0 Build: #99954
WebLogic Server 10.0 MP1 Clustered domain
JDBC Driver - WebLogic Type 4 XA ( weblogic.jdbcx.oracle.OracleDataSource )
We have a BPM project deployed on the WLS 10.0 MP1 Cluster,which was running fine for the last 18 months. But all of a sudden we are experiencing the database locks errors for the last few days, when we try to restart the BPM Engine.
WebLogic JTA Timeout = 30 seconds
Database Distributed_Lock_Timeout = 60 seconds
WebLogic Datasources for Directory and Engine XA Connection Timeout = 30 seconds
Error
Process '/Test#Default-1.0' could not be started. Details:\nProcess execution engine execution error.
Caused by: Exception [java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-02049: timeout: distributed transaction waiting for lock ].
Caused by: [BEA][Oracle JDBC Driver][Oracle]ORA-02049: timeout: distributed transaction waiting for lock
fuego.papi.impl.EngineExecutionException: Process execution engine execution error.
     at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:139)
     at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:79)
     at fuego.server.execution.DefaultEngineExecution.executeWithoutComponentImmediate(DefaultEngineExecution.java:185)
     at fuego.server.execution.EngineExecution.executeWithoutComponentImmediate(EngineExecution.java:86)
     at fuego.ejbengine.service.EJBActiveProcessService.startProcess(EJBActiveProcessService.java:92)
     at fuego.server.service.ActiveProcessService.runProcessesLoader(ActiveProcessService.java:118)
     at fuego.server.service.ActiveProcessService.activateProcesses(ActiveProcessService.java:88)
     at fuego.ejbengine.service.EJBActiveProcessService.doActivateProcesses(EJBActiveProcessService.java:63)
     at fuego.ejbengine.cluster.DistributedEJBActiveProcessService.initialize(DistributedEJBActiveProcessService.java:37)
     at fuego.ejbengine.cluster.ClusterObjectFactory.initializeActiveProcessService(ClusterObjectFactory.java:33)
     at fuego.ejbengine.Engine.startServices(Engine.java:448)
     at fuego.ejbengine.Engine.start(Engine.java:129)
     at fuego.ejbengine.servlet.AbstractSchedulerServlet.init(AbstractSchedulerServlet.java:91)
     at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:282)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(Unknown Source)
     at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:63)
     at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
     at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
     at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:507)
     at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1853)
     at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1830)
     at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1750)
     at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2909)
     at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:973)
     at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:361)
     at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
     at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
     at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
     at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
     at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
     at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
     at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)
     at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
     at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
     at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154)
     at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
     at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:182)
     at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:359)
     at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
     at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
     at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
     at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
     at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
     at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
     at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
     at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
     at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
Caused by: fuego.directory.DirectoryRuntimeException: Exception [java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-02049: timeout: distributed transaction waiting for lock ].
     at fuego.directory.DirectoryRuntimeException.wrapException(DirectoryRuntimeException.java:85)
     at fuego.directory.provider.jdbc.oracle.OraclePersistenceManager.mapSQLException(OraclePersistenceManager.java:183)
     at fuego.directory.provider.jdbc.datadirect.oracle.DataDirectOraclePersistenceManager.mapSQLException(DataDirectOraclePersistenceManager.java:50)
     at fuego.directory.provider.jdbc.JDBCServiceAccessor.mapSQLException(JDBCServiceAccessor.java:78)
     at fuego.directory.provider.jdbc.JDBCProcessAccessor.updateDeployedProcess(JDBCProcessAccessor.java:1330)
     at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at fuego.directory.provider.DirectorySessionImpl$AccessorProxy.invoke(DirectorySessionImpl.java:756)
     at $Proxy57.updateDeployedProcess(Unknown Source)
     at fuego.directory.DirDeployedProcess.update(DirDeployedProcess.java:1022)
     at fuego.server.ActiveProcessManager.handleProcess(ActiveProcessManager.java:496)
     at fuego.server.service.ActiveProcessService.startProcess(ActiveProcessService.java:136)
     at fuego.ejbengine.service.EJBActiveProcessService.startProcessImpl(EJBActiveProcessService.java:107)
     at fuego.ejbengine.service.EJBActiveProcessService.access$100(EJBActiveProcessService.java:32)
     at fuego.ejbengine.service.EJBActiveProcessService$2.execute(EJBActiveProcessService.java:95)
     at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
     at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
     at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
     at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
     at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
     ... 52 more
Caused by: java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-02049: timeout: distributed transaction waiting for lock
     at weblogic.jdbc.base.BaseExceptions.createException(Unknown Source)
     at weblogic.jdbc.base.BaseExceptions.getException(Unknown Source)
     at weblogic.jdbc.oracle.OracleImplStatement.execute(Unknown Source)
     at weblogic.jdbc.base.BaseStatement.commonExecute(Unknown Source)
     at weblogic.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
     at weblogic.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source)
     at weblogic.jdbcx.base.BasePreparedStatementWrapper.executeUpdate(Unknown Source)
     at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:125)
     at fuego.jdbc.FaultTolerantPreparedStatement.executeUpdate(FaultTolerantPreparedStatement.java:623)
     at fuego.directory.provider.jdbc.JDBCPersistenceManager.update(JDBCPersistenceManager.java:946)
     at fuego.directory.provider.jdbc.JDBCProcessAccessor.updateDeployedProcess(JDBCProcessAccessor.java:1327)
     ... 68 more

Hello -
Following is the Oracle recommendation for BPM timeouts. Now you can try this.
Increase the timeout:
-in the Oracle Weblogic console go to Services -> JTA -> Timeout Seconds . Set the value to 300.
also the DISTRIBUTED_LOCK_TIMEOUT value for BPM should follow the following formula:
DISTRIBUTED_LOCK_TIMEOUT >= XA Transaction Timeout >= WebLogic Server JTA timeout
This means that the configured "DISTRIBUTED_LOCK_TIMEOUT" value should be equal to or
larger than the "XA Transaction Timeout" value which in turn should be equal to or larger than the "WebLogic Server JTA timeout".
Note : Check your previous BPM Engine logs, you can see the timeout warning.
BR,
Justin.

Similar Messages

  • Using Assoc Arrays in OBPM 10GR3 for 25 million comparisons

    Can we use Associative arrays in OBPM 10GR3 to do 25 million comparisons or even more than that?
    I have two assoc arrays which I compare with each other 25 million times by looping them one inside the other.
    For e.g.
    for(int i = 0; i < 5000; i++)
    for(j=0; j < 5000; j++)
    if(i==j)
    logMessage ("The value is equal");
    when I try to do that, I get an error:-
    Persistence Data error.
    I get this error:-
    Error while persisting the transaction data: 'An error occurred while accesing the database. Detail:SQL statement: 'unknown' ' Details: An error occurred while accesing the database. Detail:SQL statement: 'unknown' Caused by: Unexpected exception while enlisting XAConnection java.sql.SQLException: Transaction rolled back: Transaction timed out after 302 seconds BEA1-25BFB4A4F3934EFC9C00 at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1418) at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1330) at weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAConnection.java:189) at weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.java:64) at weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java:92) at weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:482) at fuego.jdbc.FaultTolerantConnection.prepareStatement(FaultTolerantConnection.java:541) at fuego.server.persistence.jdbc.JdbcServerActivityPersMgr.insertInstanceEvent(JdbcServerActivityPersMgr.java:913) at fuego.server.persistence.Persistence.storeInstanceEvent(Persistence.java:944) at fuego.server.execution.EngineExecutionContext.persistEvents
    So can we use such a big comparison on OBPM 10GR3. If yes, how?

    Don't use ASSOC Arrays. Use SETs.
    Also increase the JTA timeout in Weblogic to like say 600 seconds.

  • Error while deploying a project to the OBPM 10GR3 Server

    Hi all,
    I am trying to deploy my current project to the OBPM 10GR3 server and it gives me the following exception. I am not sure what is this exception.
    The project compiles well in Studio 10GR3.
    Cannot publish the project.
    'close' is not a function. Caused by: 'close' is not a function.
    Does anybody know what is the exception?

    Got it..
    I was using Fuego.Sql.DynamicSQL.close(Iterator)
    For a an executeUpdate query which returns an int.
    But I used it in a method and did not use that method inside my process or screenflow.
    But it did not give me any error/exception while compiling it in Studio.
    It gave me an exception while publishing in Enterprise.
    This is strange.
    It should have given me an error/exception while compiling itself rather than while publishing in Enterprise.

  • Re: what is difference between sap locking and database locking

    hi,
        what is difference between sap locking and database locking. Iam locked the table mara by using lock objects.
    But iam unable to unlock the mara table. I give u the coding. Please check it.
    REPORT zlock .
    CALL FUNCTION 'ENQUEUE_EZTEST3'
    EXPORTING
       MODE_MARA            = 'S'
       MANDT                = SY-MANDT
       MATNR                = 'SOU-1'.
    call transaction 'MM02'.
    CALL FUNCTION 'DEQUEUE_EZTEST3'
         EXPORTING
              mode_mara = 'E'
              mandt     = sy-mandt
              matnr     = 'SOU-1'.
    IF sy-subrc = 0.
      WRITE: 'IT IS unlocked'.
    ENDIF.

    Hi Paluri
    Here is the difference between SAP locks and Database locks, i will try to find the solution to your code.
    Regards
    Ashish
    Database Locks: The database system automatically sets database locks when it receives change statements (INSERT, UPDATE, MODIFY, DELETE) from a program. Database locks are physical locks on the database entries affected by these statements. You can only set a lock for an existing database entry, since the lock mechanism uses a lock flag in the entry. These flags are automatically deleted in each database commit. This means that database locks can never be set for longer than a single database LUW; in other words, a single dialog step in an R/3 application program.
    Physical locks in the database system are therefore insufficient for the requirements of an R/3 transaction. Locks in the R/3 System must remain set for the duration of a whole SAP LUW, that is, over several dialog steps. They must also be capable of being handled by different work processes and even different application servers. Consequently, each lock must apply on all servers in that R/3 System.
    SAP Locks:
    To complement the SAP LUW concept, in which bundled database changes are made in a single database LUW, the R/3 System also contains a lock mechanism, fully independent of database locks, that allows you to set a lock that spans several dialog steps. These locks are known as SAP locks.
    The SAP lock concept is based on lock objects. Lock objects allow you to set an SAP lock for an entire application object. An application object consists of one or more entries in a database table, or entries from more than one database table that are linked using foreign key relationships.
    Before you can set an SAP lock in an ABAP program, you must first create a lock object in the ABAP Dictionary.

  • Problem while Introspecting a Web-Service in OBPM 10GR3 studio

    I get the following problem while Introspecting a Web-Service in OBPM 10GR3 studio:-
    Introspecting...
    downloading /test-ws/testc?wsdl [Error] Instrospection exception: Web Service WSDL parse exception: HTTPS hostname wrong: should be <test-01.test.net>...
    Any idea why?
    It runs well in a browser, eclipse and SOAP UI?

    have you create the destination?
    do  you use the wizard to generate code?
    usually there is catch clause for this line of code
    wdContext.currentRequest_SERVICE_MDM_LOOKUPElement().modelObject().execute();
    Edited by: John Wu on Dec 16, 2010 11:51 PM

  • JSP Timeout in OBPM 10GR3

    Hi all,
    My JSP in OBPM 10GR3 is getting timed out quickly. How can I increase the timeout of my JSP?
    Because it shows on the UI workspace that "The task cannot be resumed".
    How can I increase the timeout of my JSP?

    There is probably one more reason why this may be happening. Again, I don't have a running 10g instance to verify this, but may be you can. Once a user clicks on the work item (or left menu in the case of a Global Create) in the inbox, and the dialog opens up, if you do a browser refresh, the popup will close, but probably , behind the scene, the screen-flow is not closed. Now , if you click on your global create again, you may get a Task cannot be resumed.
    Not sure, but try this, and the only way around may be to tell users not to refresh the screen when the popup is up, if they do and get a 'Task cannot be resumed' , they will have to log out and log back in.

  • Return value for Direct OBPM SQL Query in OBPM 10GR3

    Hi all,
    I use a direct SQL Query provided by OBPM 10GR3 in my automatic activity to select certain elements from the db. The query is as follows:-
    foreach (element in
    SELECT id FROM TESTTABLE WHERE requestId = 732 and status = 1 )
    // statements
    logMessage("-- The id is-->" +element.id);
    This only returns when the id is found in the db but returns nothing when not found in db?
    How can I always get a return value? atleast a true or false, so that I can put IF statements?
    Because if it returns nothing, the loop does not execute {}? So we cannot put something like:-
    foreach (element in
    SELECT id FROM TESTTABLE WHERE requestId = 732 and status = 1 )
    logMessage("-- The id is-->" +element.id);
    if(element.id == null)
    logMessage("-- Id Not Found -->" );
    else
    logMessage("-- Id Found -->");
    How can I always get a return value from my OBPM direct query ?
    Remember , I am not using DynamicSQL in this case?

    Hi,
    Set a Boolean flag value to False before the SQL query.
    Some thing like:
    boolean flag = false;
    foreach (element in
    SELECT id FROM TESTTABLE WHERE requestId = 732 and status = 1 )
    logMessage("-- The id is-->" +element.id);
    flag = true;
    if(flag) {
    logMessage("-- Id Found -->" );
    else
    logMessage("-- Id Not Found -->");
    Hope the above logic would work fine.
    Bibhu
    Edited by: Bibhuti Bhusan on Sep 2, 2011 11:48 AM

  • Database Locks not working

    Hello!
    I am having some problems with the Berkley DB XML Locking System. My database is configured as follows:
         _envConfig = new EnvironmentConfig();
         _envConfig.setRunFatalRecovery(doFatalRecovery);
         _envConfig.setRunRecovery(!doFatalRecovery);
         _envConfig.setVerboseRecovery(true);
         _envConfig.setAllowCreate(true);         
         _envConfig.setCacheCount(1);
         envConfig.setCacheSize(DBCACHE_SIZE * 1024 * 1024);
         _envConfig.setInitializeCache(true);            
         _envConfig.setTransactional(true); 
         envConfig.setMaxLocks(MAXLOCKS);
         envConfig.setMaxLockers(MAXLOCKERS);
         envConfig.setMaxLockObjects(MAXLOCKOBJECTS);
         // enable locking
         _envConfig.setInitializeLocking(true);
         _envConfig.setLockTimeout(50000000);
         logInfo("Database locking enabled.");
         // Configure db to perform deadlock detection internally, and to
    // choose the transaction that has performed the least amount
    // of writing to break the deadlock in the event that one
    // is detected.
    _envConfig.setLockDetectMode(LockDetectMode.MINWRITE);
    Then I try to modify one object in my first thread:
    xmlTransaction = xmlManager.createTransaction();               
                   xmlContainer = xmlManager.openContainer( xmlTransaction, _collection);
                   context = xmlManager.createQueryContext(XmlQueryContext.LiveValues, XmlQueryContext.Eager);               
                   // Declare the read/modify/write cycle
              XmlDocumentConfig docConfig = new XmlDocumentConfig();
              docConfig.setLockMode(com.sleepycat.db.LockMode.RMW);
                   XmlQueryExpression xmlQueryExprDocs = _xmlManager.prepare( xmlTransaction, sQuery, xmlQueryContext);
         results = xmlQueryExprDocs.execute( xmlTransaction, _context, docConfig);            
         xmlQueryExprDocs.delete();     
         // document(s) found - create modify, update objects
         * Iterate over _result documents
         while (_results.hasNext()) {
                        modify = xmlManager.createModify();
                        updateContext = xmlManager.createUpdateContext();               
              docValue = _results.next();                  
              xmlDoc = docValue.asDocument();
              numMod = modify.execute(xmlTransaction, docValue, context, updateContext);                    
    In my second thread I try to read the same object:
    xmlTransaction = _xmlManager.createTransaction(null, cfg);     
    XmlContainer xmlContainer = getXmlManager().openContainer(xmlTransaction, sContainer, contConfig);
    context = _xmlManager.createQueryContext(XmlQueryContext.DeadValues, XmlQueryContext.Eager);             
    xmlQueryExpr = _xmlManager.prepare( xmlTransaction, sQuery, xmlQueryContext);
         results = xmlQueryExpr.execute( context);
    And then instead of waiting on the first object to unlock the database just logs:
    Transaction that opened the DB handle is still active
    I just want the db to wait until the modify is ready and then do the query in the second thread.
    What am I doing wrong?
    Thanks for your help!
    Edited by: user11285545 on 19.06.2009 04:18

    Hello,
    I think you want to post this to the [Db XML forum|http://forums.oracle.com/forums/forum.jspa?forumID=274] instead of the BDB JE forum.
    Charles Lamb

  • JSP problems in OBPM 10GR3

    Hi all,
    When I try to access a JSP from my Global creation in OBPM 10GR3, sometimes this message appears:-
    [<W> 0830 15:19:41.296] Main (<5> [ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'): Error workspace-1314782980927
    [     (cont)     ] Main: The Task cannot be resumed
    [     (cont)     ] Main: Detail:<br>The reason could be one of the following<br><ol> <li>You have already finished the task execution</li> <li>You have the autologin option enabled and the session for this execution has expired .<br></li></ol>
    [     (cont)     ] Main:
    [     (cont)     ] Main: fuego.web.exception.ItemAlreadyExecutedException: The Task cannot be resumed
    [     (cont)     ] Main: Detail:<br>The reason could be one of the following<br><ol> <li>You have already finished the task execution</li> <li>You have the autologin option enabled and the session for this execution has expired .<br></li></ol>
    [     (cont)     ] Main:
    [     (cont)     ] Main: at fuego.web.papi.TaskExecutor.processRedirect(TaskExecutor.java:213)
    [     (cont)     ] Main: at fuego.web.papi.TaskExecutor.execute(TaskExecutor.java:104)
    [     (cont)     ] Main: at fuego.workspace.servlet.ExecutorServlet.doAction(ExecutorServlet.java:117)
    [     (cont)     ] Main: at fuego.workspace.servlet.BaseServlet.doPost(BaseServlet.java:229)
    [     (cont)     ] Main: at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    [     (cont)     ] Main: at fuego.workspace.servlet.AuthenticatedServlet.service(AuthenticatedServlet.java:123)
    [     (cont)     ] Main: at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    [     (cont)     ] Main: at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    [     (cont)     ] Main: at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    [     (cont)     ] Main: at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    [     (cont)     ] Main: at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    [     (cont)     ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    [     (cont)     ] Main: at fuego.web.filter.NoCacheNoStoreFilter.doFilter(NoCacheNoStoreFilter.java:39)
    [     (cont)     ] Main: at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
    [     (cont)     ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    [     (cont)     ] Main: at fuego.web.filter.SingleThreadPerSessionFilter.doFilter(SingleThreadPerSessionFilter.java:64)
    [     (cont)     ] Main: at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
    [     (cont)     ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    [     (cont)     ] Main: at fuego.web.filter.CharsetFilter.doFilter(CharsetFilter.java:48)
    [     (cont)     ] Main: at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
    [     (cont)     ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    [     (cont)     ] Main: at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    Any idea why?

    There is probably one more reason why this may be happening. Again, I don't have a running 10g instance to verify this, but may be you can. Once a user clicks on the work item (or left menu in the case of a Global Create) in the inbox, and the dialog opens up, if you do a browser refresh, the popup will close, but probably , behind the scene, the screen-flow is not closed. Now , if you click on your global create again, you may get a Task cannot be resumed.
    Not sure, but try this, and the only way around may be to tell users not to refresh the screen when the popup is up, if they do and get a 'Task cannot be resumed' , they will have to log out and log back in.

  • Unwanted Database Lock when using CAF BO method 'update'

    Hi all
    We are using the Composite Application Framework (CAF), and Business Objects (BOs) to save data on the database. A service call is using a BO ‘Update’ method as follows:
    _location.debugT("Test debug line 4");
    getBOSalesDataService().update(salesData);
    _location.debugT("Test debug line 5");
    The same method is then called by another service, while the first service is still active. It does not error, but it waits until the first service has timed out. You can see this from the following screenshot:
    I think this is because the first service sets a lock on the SQL database. This is not an explicitly coded lock, but a database lock. I’ve tried using the following statement:
    getBOSalesDataService().unlock(salesData.getKey(), IBusinessObjectNodeServiceBase.MODE_WRITE);
    It doesn’t work. I think this because the lock was not created by a ‘lock’ statement. Are there any other statements I can use to commit
    all database updates? If it was ABAP, I would use a ‘COMMIT WORK’, is there a Java / CAF equivalent?
    I have spoken to our Basis consultants, they have shown me Solution Manager where we can actually see the locks happening. Session ID 53
    is the first update, 54 is the second.
    Thanks
    Iwan

    For updates you actually need a lock to avoid inconsistencies.
    the lock should automatically be released when the JTA transaction is completed - in the case of CMP EJBs when the first service is finished...

  • Text File opened in Wordpad cannot be parsed on OBPM 10GR3

    Hi all,
    Text File opened in Wordpad cannot be parsed on OBPM 10GR3
    Why is that?
    I use the following code to parse a file:-
    textFile = TextFile();
    textFile.open(name : "C:\testFile.txt");
    logMessage("---Does file exist?--> " + textFile.exists);
    foreach (line in textFile.lines) {
    logMessage("-- The LINE is-->" + line);
    pinBlockProcessing.linesCount = pinBlockProcessing.linesCount + 1;
    pinBlockProcessing.deviceIdentifierArray[] = line;
    textFile.close();

    Hi all,
    I also used other two methods to parse such a file which can be opened in Wordpad but not in Notepad.
    1) I used Java.Util.Scanner
    2) I also created and compiled a program/package/class which gets a file and parses it using Java.Util.Scanner using Java in Eclipse.
    I created a JAR out of it and tried to use this JAR in my process by introspecting it and then passing the file to be parsed to the methods in this JAR file.
    But this did not work either. Although the program does work in plain Java in Eclipse. It compiles and parses a a file which can be opened in Wordpad but not in Notepad.
    My program for both these methods was :-
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Scanner;
    public class Test{
    public static void main(String args[]) throws IOException {
    FileReader fin = new FileReader("./testFile.txt");
    Scanner src = new Scanner(fin);
    src.useDelimiter("\n");
    while (src.hasNext()) {
    System.out.println(src.next());
    fin.close();
    This does not work either.
    All programs and methods work when a text file can be opened in NotePad.
    What could be possible solution in OBPM 10GR3?
    It is something to do with Carriage Return and generating a file in UNIX which when opened in Notepad shows one straight horizontal line and when opened in Wordpad shows vertical lines.

  • ADF Database lock and Refresh

    I have two issues regarding ADF.
    Database lock :
    The problem :
    In most test-cases the database lock functionality is working correctly in my app. We have two users working on the same dataset trying to store at the same time, one user get to store, and the other get a message saying that the rowkey have been changed, and can after s short while store his data.
    However, in one .jsp saving at the same time gives a lock lasting for 15-20 minutes. The ViewObject related to this .jsp have many EntityObjects (6 EntityObject in one Viewobject), so it is more complex than the others.
    What we have tried :
    Changing the jbo.locking.mode to optimistic on the Appmodule.
    What more can we do in ADF for configuring the locking? Is there a way to trace to see what is creating the lock for 15 - 20 minutes?
    Refresh :
    The problem :
    In most cases ADF handles refresh of data correctly. But some places it seems to not update correctly. We are using JSF (ADF Faces)
    What we have tried :
    Changing the refresh condition on the iterator in the pageDef.xml to always.
    <iterator id="berpriListIterator" RangeSize="-1"
    binds="berpriList" Datacontrol="RegServiceDataControl1"
    CachResult="false"
    Refresh="always" />
    Adding InvokeAction :
    <invokeAction Binds="Execute" id="invokeExecute" RefreshCondition="${adfFacesContext.postback ==false }" />
    Editing the Action:
    <action IterBinding ="berpriListIterator" id="Execute" Instance=" " Datacontrol="" RequiresUpdateModel="true" Action="2" />
    This seems to work. Is this a bug in ADF or should we always add invokeAction on all pageDefs? Some places it seems to update correctly even without invokeAction.
    Is this issue also in 11g?

    Using jbo.locking.mode=optimistic I would never expect an ADF web application to hold only any database locks for longer than the span of the commit processing in the normal case. The locks would be attempted only during the commit processing and if any DML error (including a failed lock attempt) occurs, then the transaction should be rolled back to a SAVEPOINT that ADF acquires before beginning the commit processing.
    One way an ADF application could acquire and retain locks would be if your application is using the Transaction.postChanges() method to explicitly post, but not commit, pending database changes. Are you doing that by chance?
    There are occasions in the Oracle database when doing one operation like a delete or update can lock a table if you have unindexed foreign keys (see http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:292016138754 ). Not sure if that is your situation, but still the locks should only be around for the very short span of time during the commit processing.
    Regarding the refresh, you should be able to verify by launching two separate instances of the ADF Business Components Browser testing tool that, when you do the following:
    (Assuming app module has jbo.locking.mode=optimistic)
    * User A queries Employee with Empno = 7839
    * User B queries Employee with Empno = 7839
    * User A modifies Sal attribute from 5000 to 4999, Comm attribute from NULL to 1 and commits
    * User B modifies Comm attribute from NULL to 55 and commits
    * User B receives the "RowInconsistentException"
    And, you should see:
    * Modified value of Comm in User B's Emp row stays at its modified value (as would any attributes that are modified in its current transaction)
    * Any unmodified values (like User B's Emp row's Sal value) will be refreshed to the current state of the database, so it should now be 4999
    If you are using JSF and partial submits, you might need to configure PPR to see these data changes reflected accurately in the JSF page.

  • View Items in OBPM 10GR3

    Does anybody know how to bring the last initiated process instance to be seen first in the worklist views in OBPM 10GR3?
    By default, the last initiated worklist item is posted at the end and one has to scroll down all the way to the last initiated item.
    How can we bring that to the front?

    Enter in the Workspace Administrator, go to the presentations option, take the presentation associated to your inbox, typically default_instances take the column "received" and put to sort by this column choosing descending.
    HTH

  • Aborting an Automatic Activity from OBPM 10GR3 workspace

    Hi all,
    I can abort Interactive Activities from the OBPM 10GR3 workspace just by selecting that instance, the selecting the action as ABORT from the BULK ACTIONS on the right hand side and the entire instance is aborted.
    But how do I abort Automatic Activities from the OBPM 10GR3 workspace?
    When my instance arrives at an automatic activity, I am unable to abort it from the BPM workspace.
    There is no option when you right click an Automatic Activity and select RUNTIME , which says, "If enabled, the instance can be aborted by the user".
    So how do we do that ( from the OBPM 10GR3 Workspace)?

    The "If enabled, the instance can be aborted by the user" needs to be selected when you abort via PAPI...
    Since aotumatic activitys do not appear in the workspace you cannot abort them from there.
    You can connect via PAPI, find the instance and abort it from another instance.
    Even though must automatic activitys are built so they finish before you can even go and abort them.
    I think its a strange design to have an aotumatic activity that is up long enough for you to cancel it but as i said above...
    1) Select abortable on the activity.
    2) Find the instance and abort
    Fuego.Papi.InstanceFilter ifilter = new InstanceFilter();
    ProcessService.connectTo(url : Fuego.Server.directoryURL, user :<username>, password : <password>);
    ifilter.create(processService : ProcessService);
    ifilter.searchScope = new SearchScope(participantScope : ParticipantScope.ALL , statusScope : StatusScope.ONLY_INPROCESS);
    //Notice i write public variable and not instance variable
    ifilter.addAttributeTo(variable : <public variable (such as description or one of your own)>, comparator : Comparison.<the one that fits you>, value : <value>);
    Fuego.Papi.Instance[] cInstances = ProcessService.getInstancesByFilter(filter : ifilter);
    foreach (instance in cInstances)
    //Second type of filtering (checking current activity and process), you can check just the activity name if its a unique name
    if (instance.activityName == <aotumatic activity name> && instance.processId.contains(regexp : '/<process name>/'))
    instance.abort();
    I use a similer code snippet to remove Interactive activities.
    Just notice that you filter only the instances you really want to take down.

  • How to install a plugin in OBPM 10GR3

    How do we install a plugin in OBPM 10GR3. Any steps that you guys know of?
    I want to install a plugin which actually needs to be installed for eclipse but since OBPM 10GR3 is built on top of eclipse, I think I can install it in OBPM 10GR3..
    Please guide through the process.?

    BPM Studio (10g) is just a plugin for eclipse. To install other plugins, just use the Help - Software Updates - Find and Install
    HTH,
    -Kevin

Maybe you are looking for

  • How do I get the new photos albums from my imac to sync to my iphone?

    Last week my iMac did the software update that replaced iPhoto on my iMac with the new Photos application. Since then, I have migrated all my iphoto library to the Photos library and have been able to further sort my photos in the albums area. I have

  • Missing images in "all projects view" and System Pref- Desktop!

    I was about selecting the image pick for my projects in the Aperture's all projects view to find out that some of my picture are missing. I had verify that the image I was looking for is actually in my project and isn't rejected. I even perform a lib

  • How to use adium theme on empathy-devel

    hi, I built empathy-devel and installed it correctly. I don't see a place to choose adium themes in empathy preference. Do I need to recompile empathy-devel and add some something to enable adium themes support when building it ? Also the I would lik

  • Waiting on server problem

    I have an intermittent problem with FTP on CS6 that is widely reported on the Internet. When I try to upload files CS6 hangs with a "waiting on server ..." message.  How do I fix this bug?

  • Track freezes upon opening

    I have a new macbook pro and the track pad keeps freezing upon opening.  after 1-2 min it comes back to life and some times after it does the whole screen goes blank for a sec and thne it is back to normal... any thoughts? thanks chris