Should EntryProcessors be used for long-running operations?

Hi Gene and All,
     a couple of other questions come from the seemingly unexhaustible list :-)
     - what happens if the caller of an InvocableMap.invokeAll or invoke method dies?
     - all entryProcessors complete regardless of the client being there or not
     - all already started process method calls complete, the unprocessed entries will not get processed
     - something else happens
     - what happens if the caller of an InvocableMap.aggregate method with a parallel-aggregator dies
     - all aggregate methods in the parallel-aggregator complete
     - the aggregate methods in the parallel-aggregator stop during processing
     - something else happens
     - should an entryprocessor or a parallel-aware entryaggregator implement a comparably long-running operation (e.g. jdbc access), or does that seriously affect performance of other concurrent operations within the cluster node or the entire cluster (e.g. becuase of blocking other events/requests)?
     - should the work manager be used instead for these kinds of things (e.g. jdbc access)?
     Thanks and best regards,
     Robert

Robert,
     As soon as an EntryProcessor or EntryAggregator get delivered to the server nodes, it will get executed regardless of the requestor's state.
     In regard to long-running operations the only thing you have to be conscious about is a number of worker threads allocated for such a processing. Since there is a single client thread issuing a request, it would suggests allocation as many worker threads (across the cache server tier) as there are client thread (across the presentation/application tier).
     Regards,
     Gene

Similar Messages

  • Tracking completion status for long running DML operations

    Does anybody know:
    Is there any possibility to track a completion status for long running DML operations (for example how many rows is inserted)?
    For example if I execute an INSERT statement which is working for several hours it is very important to estimate the total time for this operation.
    Thanks forward

    I'm working with Oracle8 in present, and unfortunately this solution (V$SESSION_LONGOPS)cannot help me.
    On Oracle8 it works, but with some restrictions:
    - You must be using the cost-based optimizer
    - Set the TIMED_STATISTICS or SQL_TRACE parameter to TRUE
    - Gather statistics for your objects with the ANALYZE statement or the DBMS_STATS package.

  • Sales office not available and SHOULD not be used for determination

    Hi experts,
    I am encounting an issue with the organizational model.
    We do not want the sales office to be determined through the org model, we just want to be able to add it to the right sales areas in BPs or transactions.
    I have build ang enhanced org model where the sales offices and groups are assigned to more sales areas. I have not marked the determination on the office and groups, since I do not want to determine this automatically and since if I mark this, my pop-ups for the transactional data determination becomes impossible to overview.
    However, if I do not mark the determination in the sales offices and groups, they are not availeble in the drop downs for Bps and transactions.
    Can someone please advise how to solve this?
    Thanks

    Robert,
         As soon as an EntryProcessor or EntryAggregator get delivered to the server nodes, it will get executed regardless of the requestor's state.
         In regard to long-running operations the only thing you have to be conscious about is a number of worker threads allocated for such a processing. Since there is a single client thread issuing a request, it would suggests allocation as many worker threads (across the cache server tier) as there are client thread (across the presentation/application tier).
         Regards,
         Gene

  • The server farm account should not be used for other services

    I have created a new SharePoint Foundation 2013 Farm. I only used the Farm Configuration Wizard to create the Search Service Application, all other aspects of the Farm was created using PowerShell.
    The SharePoint Health Analyzer is reporting the following error:
    Title: The server farm account should not be used for other services.
    Severity: 1 - Error
    Category: Security
    Explanation: DOMAIN\FARM_ACCOUNT, the account used for the SharePoint timer service and the central administration site, is highly privileged and should not be used for any other services on any machines in the server farm.  The following services were
    found to use this account: Distributed Cache Service(Windows Service)
    Remedy: Browse to
    http://centraladminsite:port/_admin/FarmCredentialManagement.aspx and change the account used for the services listed in the explanation. For more information about this rule, see "http://go.microsoft.com/fwlink/?LinkID=142685".
    Now I understand how to change the account used to run the Distributed Cache Service, but my query is what account should I use in the least privelage model? I have setup the following 6 accounts as per TechNet guidelines (Link)
    and am not sure if one of these accounts should be used or if another account is required:
    SQL Server service account
    Setup user account
    Server farm account
    SharePoint Server Search service account
    Default content access account
    Application pool identity
    After reviewing the TechNet article again, I don't fully understand the section titled "Service application accounts". Is the article advising me to create a seperate account for each row in the table? e.g. 1 account for Business Data Connectivity
    Service, a different account for "Application Discovery and Load Balancer Service", another account for "App management" and another account for "Distributed Cache", so 4 extra accounts if I choose to install all of these services
    within the Farm?
    Also, what does the article mean when it says "Plan one set of an application pool and proxy group for each service application that you plan to implement."? How do I go about doing this?
    Kevin Evans

    After reviewing the TechNet article again, I don't fully understand the section titled "Service application accounts". Is the article advising me to create a seperate account for each row in the table? e.g. 1 account for Business Data Connectivity Service,
    a different account for "Application Discovery and Load Balancer Service", another account for "App management" and another account for "Distributed Cache", so 4 extra accounts if I choose to install all of these services within the Farm?
    Inder: Yes, It is suggested to have multiple service account for each service application. This increases security and dependencyof 1 account on multiple Service applications. Like below
    SQL Server service
    Local System account (default)
    Setup user
    Member of the Administrators group on the local computer
    Server farm
    Network Service (default)
    No manual configuration is necessary.
    SharePoint Server Search Service
    By default, this account runs as the Local System account.
    If you want to crawl remote content by changing the default content access account or by using crawl rules, change this to a domain user account. If you do not change this account to a domain user account, you cannot change the default content access account
    to a domain user account or add crawl rules to crawl this content. This restriction is designed to prevent elevation of privilege for any other process running as the Local System account.
    Default Content Access
    No manual configuration is necessary if this account is only crawling local farm content. If you want to crawl remote content by using crawl rules, change this to a domain user account, and apply the requirements listed for a server farm.
    Content Access
    Same requirement as the default content access account.
    Profile import Default Access
    Same requirements as server farm.
    Excel Services Unattended Service
    Must be a domain user account.
    http://technet.microsoft.com/en-us/library/cc263445%28v=office.15%29.aspx
    Also, what does the article mean when it says "Plan one set of an application pool and proxy group for each service application that you plan to implement."? How do I go about doing this?
    Inder: Each service account has a application pool and you can plan to use same application pool for multiple
    service accounts if required. These application pool are then consumed by proxy connection
    of each service application. On service application pool, you can see all the service applications and its proxy connection.
    If this helped you resolve your issue, please mark it Answered

  • Alert monitor for long running background jobs

    Hello,
    I have to configure an alert moniter for long running background jobs which are running more than 20000 secs using rule based. I have created a rule based MTE and assigend MTE class CCMS_GET_MTE_BY_CLASS to virtual node but i dont find a node to specify the time.
    could any one guide me how can i do this.
    Thanks,
    Kasi

    Hi *,
    I think the missing bit is where to set the maximum runtime. The runtime is set in the collection method and not the MTE class.
    process:  rz20 --> SAP CCMS Technical Expert Monitors --> All Contexts on local application server --> background --> long-running jobs. Click on 'Jobs over Runtime Limits' then properties, click the methods tab then double click 'CCMS_LONGRUNNING_JOB_COLLECT', in the parameters tab you can then set the maximum runtime.
    If you need to monitor specific jobs, follow the process (http://help.sap.com/saphelp_nw70/helpdata/en/1d/ab3207b610e3408fff44d6b1de15e6/content.htm) to create the rule based monitor, then follow this process to set the runtime.
    Hope this helps.
    Regards,
    Riyaan.
    Edited by: Riyaan Mahri on Oct 22, 2009 5:07 PM
    Edited by: Riyaan Mahri on Oct 22, 2009 5:08 PM

  • Profiler execution plan ONLY for long running queries

    The duration only applies to specific profiler events however I'd like to capture the execution plan ONLY for queries over 10 minutes.
    Is there a way to do this using Xevents?
    Anyone knows?
    Thanks!
    Paula

    I've wanted that too but could not find a way to get it from profiler.
    But it may be possible with xevents (or without xevents!) to watch for long-running queries and then get the plan from the cache,where it will probably stick for some time, using DMVs.
    Josh

  • RZ20 - Is there an alert for long running transactions?

    In RZ20 is there an alert for long running transactions?

    http://help.sap.com/saphelp_nw04s/helpdata/en/9c/f78b3ba19dfe47e10000000a11402f/content.htm
    This document clearly explains your problem.
    "Reward points if useful"

  • LONG RUNNING OPERATION의 진행상태 확인방법

    제품 : ORACLE SERVER
    작성날짜 : 2002-04-09
    LONG RUNNING OPERATION의 진행상태 확인방법
    ==========================================
    Oracle 8.0 부터 제공되고 있는 v$session_longops 는 단일 long running
    operation에 대한 진행 상태를 operatoin별로 제공해 주는 view로 DSS, DW와
    같은 long running job이 많은 system에서는 유용한 정보를 확인할 수 있는
    table이다.
    다음의 test는 oracle 8.1.6에서 이루어졌으며 v$session_longops
    view는 oracle 8.0.x과 8.1.x에서 structure 상 조금의 차이가 있음을 미리
    알려둔다.
    Oracle 8i에서 이 dynamic view에서 다루어지는 operation들에는 다음의
    것들이 있다.
    Operation Description
    Archiving (1)
    Rman Backup and Restore
    Parallel Query
    Recovery ( Crash and Media )
    Full Table scans (2)
    Sorting
    Analyze using DBMS_STATS Not seen yet
    Hash Cluster Creation " " "
    Hash Joins Phase 2 " " "
    (1) : document로는 제공이 되고 있는 것으로 되어 있으나 아직 구현되지
    않음
    (2) : 10000 blocks 이상의 full table scan을 long operation으로 간주한다.
    V$SESSION_LONGOPS COLUMNS
    COLUMN DESCRIPTION
    SID Session identifier
    SERIAL# Session serial number
    OPNAME The operation name
    TARGET The object on which the operation is carried out
    TARGET_DESC Description of the target
    SOFAR The units of work done so far
    TOTALWORK The total units of work
    UNITS The units of measurement
    START_TIME The starting time of operation
    LAST_UPDATE_TIME Time when statistics last updated
    ELAPSED_SECONDS The number of elapsed seconds from the start of
    operations
    CONTEXT Context
    MESSAGE Statistics summary message
    <TEST CASE>
    ### SESSION A ###
    SQL> select userenv('sessionid') from dual;
    USERENV('SESSIONID')
    31948
    SQL> SELECT COUNT(*) FROM PARTTAB;
    --> waitting . . .
    ### SESSION B ###
    SQL> connect internal
    SQL> select opname, time_remaining, sofar, totalwork, message
    2> from v$session_longops
    3> where sid = 110 and time_remaining > 0;
    OPNAME TIME_REMAINING
    SOFAR TOTALWORK MESSAGE
    Table Scan 138
    75332 341590 Table Scan: SCOTT.PARTTAB: 75332 out of 341590
    Blocks done
    ==> operation의 진행율이 약 22%로 138초가 남았음을 보여준다.
    SQL> r
    OPNAME TIME_REMAINING
    SOFAR TOTALWORK MESSAGE
    Table Scan 50
    242846 341590 Table Scan: SCOTT.PARTTAB: 242846 out of 341590
    Blocks done
    ==> operation의 진행율이 약 71% 로 약 50초가 남았음을 보여준다.
    SQL> r
    OPNAME TIME_REMAINING
    SOFAR TOTALWORK MESSAGE
    Table Scan 115
    93889 324446 Table Scan: SCOTT.PARTTAB: 93889 out of 324446
    Blocks done
    ==> TOTALWORK가 변한것으로 보아 다른 partition에 대한 full table scan이
    진행중임을 알수 있다.
    % v$session_longops에는 이미 종료되거나 취소된 operation들에 대한 정보가
    남아 있게 되므로 active operation인지 먼저 확인해야한다.

  • Considerations for long running publication extensions

    We are considering implementing a post processing publication extension which may take several minutes to execute.   One of our concerns with this strategy is that the publication extension may bog down the Adaptive Processing Server.  
    Are there any general considerations / recommendations for long running post processing publication extensions?  
    Thanks!

    Generally creating a new thread is an expensive process. Well, everything is relative. My laptop can create & run & stop 7,000+ threads per second, test program below, YMMV. If you are dealing with thousands of thread creations per second, pooling may be sensible; if not, premature optimization is the root of all evil, etc.
    public class ThreadSpeed
        public static void main(String args[])
         throws Exception
            System.out.println("Ignore the first few timings.");
            System.out.println("They may include Hotspot compilation time.");
            System.out.println("I hope you are running me with \"java -server\"!");
         for (int n = 0; n < 5; n++)
             doit();
            System.out.println("Did you run me with \"java -server\"?  You should!");
        public static void doit()
         throws Exception
            long start = System.currentTimeMillis();
            for (int n = 0; n < 10000; n++) {
             Thread thread = new Thread(new MyRunnable());
             thread.start();
             thread.join();
            long end = System.currentTimeMillis();
            System.out.println("thread time " + (end - start) + " ms");
        static class MyRunnable
         implements Runnable
         public void run()
    }Edited by: sjasja on Jan 14, 2010 2:20 AM

  • Which quick time should I be using for windows vista?

    which quick time should I be using for windows vista? when I look at the plugins I'm using for Google Chrome Browser there are several listed for Quick Time, do I need them all?

    when I look at the plugins I'm using for Google Chrome Browser there are several listed for Quick Time, do I need them all?
    Yes. The seven different plugin dlls (npqtplugin.dll, ntqtplugin2.dll, etc) each handle various different file formats.

  • Is there any time out defined for long running transaction?

    hi, 
    i have to make one big data transferring script , though transaction is not required here, but i was planning to,
    please tel me is there any time out for long running transactions.i have to run the script from database it self
    yours sincerley

    Can you show us an example of your script? You can divide the transaction into small chunks to reduce time and locking/blocking as well.
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Using MDBs for long running transactions

    Although MDBs are not the best vehicles for running long transactions, I am
              forced to use them for one such scenario (let's say for lack of a better
              pattern). In order to let my long running MDB (with Container Managed Tx)
              do it's chores I increased the time-out value to a higher number rather than
              using the default of 30 secs. Strangely, I was seeing
              IllegalStateExceptions in stdout. So I created a brand new test MDB with a
              Thread.sleep for 60 seconds, increased my MDBs timeout value to 120 secs,
              made sure there was only one MDB in the pool and ran the test again. I
              still see the below error after 30 seconds.
              I guess I should probably open a support case, but I thought I'll post here
              as well in case there's something I am missing.
              <May 27, 2003 5:26:31 PM PDT> <Notice> <EJB> <Error marking transaction for
              rollback: java.lang.IllegalStateException: Cannot m
              ark the transaction for rollback. xid=64:bea55f200db2c786, status=Rolled
              back. [Reason=weblogic.transaction.internal.TimedOutEx
              ception: Transaction timed out after 34 seconds
              Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              esOwedOthers=0,seconds since begin=34,seconds left=
              30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              active),OwnerTransactionManager=ServerTM[ServerCoor
              dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              40:7501+wlcsDomain+)]
              java.lang.IllegalStateException: Cannot mark the transaction for rollback.
              xid=64:bea55f200db2c786, status=Rolled back. [Reason
              =weblogic.transaction.internal.TimedOutException: Transaction timed out
              after 34 seconds
              Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              esOwedOthers=0,seconds since begin=34,seconds left=
              30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              active),OwnerTransactionManager=ServerTM[ServerCoor
              dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              40:7501+wlcsDomain+)]
              at
              weblogic.transaction.internal.TransactionImpl.throwIllegalStateException(Tra
              nsactionImpl.java:1486)
              at
              weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp
              l.java:466)
              at
              weblogic.ejb20.manager.BaseEJBManager.handleSystemException(BaseEJBManager.j
              ava:255)
              at
              weblogic.ejb20.manager.BaseEJBManager.setupTxListener(BaseEJBManager.java:21
              5)
              at
              weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:153)
              at
              weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:117)
              at
              weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java
              :63)
              at
              com.xoriant.hm.ejb.session.HierarchyManagerBean_fzysig_EOImpl.getHierarchyId
              (HierarchyManagerBean_fzysig_EOImpl.java
              :1477)
              at
              com.ebiz.application.customerprofile.hm.CPXHMController.SynchronizeMHTH(Unkn
              own Source)
              at
              com.ebiz.application.customerprofile.hm.CPHMOrgGroupMsgBean.onMessage(Unknow
              n Source)
              at weblogic.ejb20.internal.MDListener.execute(MDListener.java:254)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              

    Hi Adarsh,
              It may be that the transaction time-out setting in the descriptor
              is not taking effect. The tx is still timing out after
              the default 30 seconds, so the later attempt to call
              "setRollbackOnly" fails as the transaction has already
              rolled back The ignored descriptor setting is a known issue
              in some earlier SPs, but I'm not sure when and where it
              was fixed - so yes, contact customer support. The work-around
              is to set the default transaction time-out for the entire server to a
              higher value. (I'm not sure where to set this on the console,
              but the relevant JTA MBean field is "TimeoutSeconds".)
              Tom
              Adarsh Dattani wrote:
              > Although MDBs are not the best vehicles for running long transactions, I am
              > forced to use them for one such scenario (let's say for lack of a better
              > pattern). In order to let my long running MDB (with Container Managed Tx)
              > do it's chores I increased the time-out value to a higher number rather than
              > using the default of 30 secs. Strangely, I was seeing
              > IllegalStateExceptions in stdout. So I created a brand new test MDB with a
              > Thread.sleep for 60 seconds, increased my MDBs timeout value to 120 secs,
              > made sure there was only one MDB in the pool and ran the test again. I
              > still see the below error after 30 seconds.
              > I guess I should probably open a support case, but I thought I'll post here
              > as well in case there's something I am missing.
              >
              > <May 27, 2003 5:26:31 PM PDT> <Notice> <EJB> <Error marking transaction for
              > rollback: java.lang.IllegalStateException: Cannot m
              >
              > ark the transaction for rollback. xid=64:bea55f200db2c786, status=Rolled
              > back. [Reason=weblogic.transaction.internal.TimedOutEx
              >
              > ception: Transaction timed out after 34 seconds
              >
              > Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              > esOwedOthers=0,seconds since begin=34,seconds left=
              >
              > 30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              > Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              >
              > BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              > active),OwnerTransactionManager=ServerTM[ServerCoor
              >
              > dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              > Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              >
              > 40:7501+wlcsDomain+)]
              >
              > java.lang.IllegalStateException: Cannot mark the transaction for rollback.
              > xid=64:bea55f200db2c786, status=Rolled back. [Reason
              >
              > =weblogic.transaction.internal.TimedOutException: Transaction timed out
              > after 34 seconds
              >
              > Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              > esOwedOthers=0,seconds since begin=34,seconds left=
              >
              > 30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              > Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              >
              > BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              > active),OwnerTransactionManager=ServerTM[ServerCoor
              >
              > dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              > Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              >
              > 40:7501+wlcsDomain+)]
              >
              > at
              > weblogic.transaction.internal.TransactionImpl.throwIllegalStateException(Tra
              > nsactionImpl.java:1486)
              >
              > at
              > weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp
              > l.java:466)
              >
              > at
              > weblogic.ejb20.manager.BaseEJBManager.handleSystemException(BaseEJBManager.j
              > ava:255)
              >
              > at
              > weblogic.ejb20.manager.BaseEJBManager.setupTxListener(BaseEJBManager.java:21
              > 5)
              >
              > at
              > weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:153)
              >
              > at
              > weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:117)
              >
              > at
              > weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java
              > :63)
              >
              > at
              > com.xoriant.hm.ejb.session.HierarchyManagerBean_fzysig_EOImpl.getHierarchyId
              > (HierarchyManagerBean_fzysig_EOImpl.java
              >
              > :1477)
              >
              > at
              > com.ebiz.application.customerprofile.hm.CPXHMController.SynchronizeMHTH(Unkn
              > own Source)
              >
              > at
              > com.ebiz.application.customerprofile.hm.CPHMOrgGroupMsgBean.onMessage(Unknow
              > n Source)
              >
              > at weblogic.ejb20.internal.MDListener.execute(MDListener.java:254)
              >
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              >
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >
              >
              >
              >
              

  • How to extend the timeout for long running queries

    I unfortunately have a query that needs to run for 2 hours (long story) to load a year's worth of data into PowerPivot (RTM).  PowerPivot stops with an error after running for 1 hour.  I tried changing the "General Timeout" setting from 0 to 28800
    (8 hours) in the SQL conneciton settings (native client 10.0) and I also managed to get the server owner to increase the "Query Timeout" setting in the SQL Server's Connections dialog but PowerPivot still errors out after 1 hr.  
    A workaround will be to use SSIS to run the query and store the result in another database but I'd rather not do that if I don't have to.
    Error Message
    The refresh operation failed because the source data base or the table does not exist, or because you do not have access to the source
    More Details:
    OLE DB or ODBC error: Query timeout expired; HYT00.
    An error occurred while processing the 'XXXX' table.
    The operation has been cancelled.
    Is there any other place where the timeout can be set or controlled that I've missed?

    Try 
    1) Setting "ExternalCommandTimeout" in the server configuration file (msmdsrv.ini) to a multiple of seconds you want (in this case >7200, by default it is 3600(1hr)).
    2) Restart the server.
    3) Refresh the data.
    Please let me know, if this doesn't work.

  • ORABPEL-05002 for long running process

    Hi everybody,
    My question is related with a long running process I have designed and which, after running for a couple of days, ends by reporting the ORABPEL-05002 error:
    ===============================================================
    ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.instance.PerformMessage"; the exception is: Transaction was rolled back: timed out; nested exception is: java.rmi.RemoteException: No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is:
         java.lang.Exception: No Exception - originate from:
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:152)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    ===============================================================
    Looking in the Manual Recovery screen, I can see an Activity I can recover. It's about an assign Activity where I'm doing a single boolean assignation.
    Of course, together with the ORABPEL-05002 error I got also the 'Transaction was rolled back: time out' message. Note that I have modified the transaction-timeout value to 180000. The error occurs during the night, with no heavy load of the server.
    Recovering the assign activity brings back the process in the running state.
    My process pattern:
    while (1 == 1) {
    do activity;
    wait_timeout();
    So, I have the following questions:
    1. Which is cause of this error?
    2. How may I automatically recover this lost activity? RecoveryAgent?
    Any suggestion is appreciated.
    Regards,
    amo
    P.S: the full stack of error messages reported in domain.log:
    ===============================================================
    <2006-09-18 08:08:34,101> <ERROR> <SRH.collaxa.cube.engine.dispatch> <DispatchHelper::handleMessage> failed to handle message
    javax.ejb.EJBException: Transaction was rolled back: timed out; nested exception is: java.rmi.RemoteException: No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is:
         java.lang.Exception: No Exception - originate from:
    java.rmi.RemoteException: No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is:
         java.lang.Exception: No Exception - originate from:
         at com.evermind.server.ejb.EJBUtils.makeException(EJBUtils.java:873)
         at ICubeEngineLocalBean_StatelessSessionBeanWrapper0.handleWorkItem(ICubeEngineLocalBean_StatelessSessionBeanWrapper0.java:1479)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handle(PerformMessageHandler.java:45)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: java.lang.Exception: No Exception - originate from:
         at com.evermind.server.ejb.EJBUtils.makeException(EJBUtils.java:871)
         ... 10 more
    javax.ejb.EJBException: Transaction was rolled back: timed out; nested exception is: java.rmi.RemoteException: No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is:
         java.lang.Exception: No Exception - originate from:
         at ICubeEngineLocalBean_StatelessSessionBeanWrapper0.handleWorkItem(ICubeEngineLocalBean_StatelessSessionBeanWrapper0.java:1479)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handle(PerformMessageHandler.java:45)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    <2006-09-18 08:08:34,129> <ERROR> <SRH.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.instance.PerformMessage"; the exception is: Transaction was rolled back: timed out; nested exception is: java.rmi.RemoteException: No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is:
         java.lang.Exception: No Exception - originate from:
    ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.instance.PerformMessage"; the exception is: Transaction was rolled back: timed out; nested exception is: java.rmi.RemoteException: No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is:
         java.lang.Exception: No Exception - originate from:
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:152)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    <2006-09-18 08:09:05,236> <ERROR> <SRH.collaxa.cube> <BaseCubeSessionBean::logError> Error while invoking bean "activity manager": Scope not found.
    The scope "BpSwt2.30995" has not been defined in the current instance.
    ORABPEL-02094
    Scope not found.
    The scope "BpSwt2.30995" has not been defined in the current instance.
         at com.collaxa.cube.engine.core.ScopeContext.getScope(ScopeContext.java:213)
         at com.collaxa.cube.engine.core.WorkItem.setCubeInstance(WorkItem.java:259)
         at com.collaxa.cube.engine.core.WorkItemFactory.init(WorkItemFactory.java:68)
         at com.collaxa.cube.engine.core.WorkItemFactory.create(WorkItemFactory.java:58)
         at com.collaxa.cube.engine.adaptors.common.BaseWorkItemPersistenceAdaptor.load(BaseWorkItemPersistenceAdaptor.java:147)
         at com.collaxa.cube.engine.data.WorkItemPersistenceMgr.load(WorkItemPersistenceMgr.java:75)
         at com.collaxa.cube.engine.CubeEngine.load(CubeEngine.java:5185)
         at com.collaxa.cube.engine.CubeEngine.load(CubeEngine.java:5173)
         at com.collaxa.cube.engine.CubeEngine.expireActivity(CubeEngine.java:2136)
         at com.collaxa.cube.ejb.impl.ActivityManagerBean.expireActivity(ActivityManagerBean.java:145)
         at com.collaxa.cube.ejb.impl.ActivityManagerBean.expireActivity(ActivityManagerBean.java:116)
         at IActivityManagerLocalBean_StatelessSessionBeanWrapper52.expireActivity(IActivityManagerLocalBean_StatelessSessionBeanWrapper52.java:645)
         at com.collaxa.cube.engine.dispatch.message.instance.ExpirationMessageHandler.handle(ExpirationMessageHandler.java:43)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    <2006-09-18 08:09:05,274> <ERROR> <SRH.collaxa.cube.engine.dispatch> <DispatchHelper::handleMessage> failed to handle message
    ORABPEL-02094
    Scope not found.
    The scope "BpSwt2.30995" has not been defined in the current instance.
         at com.collaxa.cube.engine.core.ScopeContext.getScope(ScopeContext.java:213)
         at com.collaxa.cube.engine.core.WorkItem.setCubeInstance(WorkItem.java:259)
         at com.collaxa.cube.engine.core.WorkItemFactory.init(WorkItemFactory.java:68)
         at com.collaxa.cube.engine.core.WorkItemFactory.create(WorkItemFactory.java:58)
         at com.collaxa.cube.engine.adaptors.common.BaseWorkItemPersistenceAdaptor.load(BaseWorkItemPersistenceAdaptor.java:147)
         at com.collaxa.cube.engine.data.WorkItemPersistenceMgr.load(WorkItemPersistenceMgr.java:75)
         at com.collaxa.cube.engine.CubeEngine.load(CubeEngine.java:5185)
         at com.collaxa.cube.engine.CubeEngine.load(CubeEngine.java:5173)
         at com.collaxa.cube.engine.CubeEngine.expireActivity(CubeEngine.java:2136)
         at com.collaxa.cube.ejb.impl.ActivityManagerBean.expireActivity(ActivityManagerBean.java:145)
         at com.collaxa.cube.ejb.impl.ActivityManagerBean.expireActivity(ActivityManagerBean.java:116)
         at IActivityManagerLocalBean_StatelessSessionBeanWrapper52.expireActivity(IActivityManagerLocalBean_StatelessSessionBeanWrapper52.java:645)
         at com.collaxa.cube.engine.dispatch.message.instance.ExpirationMessageHandler.handle(ExpirationMessageHandler.java:43)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    <2006-09-18 08:09:05,275> <ERROR> <SRH.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.instance.ExpirationMessage"; the exception is: Scope not found.
    The scope "BpSwt2.30995" has not been defined in the current instance.
    ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.instance.ExpirationMessage"; the exception is: Scope not found.
    The scope "BpSwt2.30995" has not been defined in the current instance.
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:152)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    ===============================================================

    These are the possible cause to the problem and their solutions:
    Poor performance of the dehydration database If you are using Oracle Lite as dehydration store, please switch to use Oracle 9i or 10g. If Oracle 9i/10g is already in use, check the database parameter 'process' and 'session' to make sure it can handle the expected throughput.
    OC4J has too few available connections to the dehydration database. Increase the maxConnection number of the BPELServerDataSource at the BPEL_HOME/integration/orabpel/system/appserver/oc4j/j2ee/home/config/data-sources.xml (for developer edition) or IAS_HOME/j2ee/OC4J_BPEL/config/data-sources.xml (mid-tier installation).
    Size of message is too big Two ways to deal with this problem:
    Increase the transaction timeout at PEL_HOME/integration/orabpel/system/appserver/oc4j/j2ee/home/config/server.xml (developer edition) or IAS_HOME/j2ee/OC4J_BPEL/config/server.xml (mid-tier installation)
    Decrease the auditLevel from BPELConsole -> Manage BPEL Domain -> Configurations tab. Doing so will reduce the amount of data saved to the dehydration store.
    Cheers
    Anirudh Pucha

  • Should InDesign be used for an academic journal?

    Hi,
    As an editor, I have been looking into the possibility of using InDesign as a layout program for an academic journal at our university. We currently use Word. I was wondering what the experts think of using InDesign for this function, in light of the nature of our journal. It is a 150-250 page volume put out twice a year. Besides the cover (which does not change), there are no graphics or images used, nor is there any special use of text or borders. It is simply a chaptered book with each chapter containing a new article, using only single column text, footnotes, and headers.
    As I work through the tutorials, I am getting the idea that InDesign may not be that useful for our purposes because we are doing fairly basic word processing. What do others think of this? Is it unnecessary? What would be the advantages to using InDesign for production of a text-only book such as ours?
    Thanks very much for any input you could provide!

    With a little practice, you can format long runs of text in ID at an astounding rate. Just this week, I formatted a book of 58 chapters, no images (well, only two), and the odd heading and sub-heading here and there. It took me 22 hours for 650 pages. Halfway, I had to revisit the chapters I already had done to do a few last-minute changes, so for the next volume I think it'll take, oh, 16 hours maybe.
    (My two main speed-tricks are:
    1. Use templates. Each of the chapters of that big book was a separate file, tacked together using the Book function. For a journal consisting of articles of about 20 pages each, you might want to do that as well. Always keep your templates clean and up-to-date -- if you change a global text style, use the Synchronize Book option to update all files, but don't forget to update the template as well.
    2. Set hotkeys for all major paragraph and character styles. Don't bother about this for low-frequency stuff like chapter titles, as there are precious few 'comfortable' shortcut combo's. Assign them to body text, 1st, 2nd, and 3rd level headings, indenting quotes; in other words, all stuff that comprised about 90% of your typical body text.
    I've been using the same style hierarchy and names for years now (something over a decade), and I can apply the top 10 at a stroke of my fingertips; others get the Quick Apply treatment. No mouseing around required.)

Maybe you are looking for