Statechart module locking up and unusable

I'm having a strange problem and have no idea how to debug it.  I have a fairly large statechart module controlling a system in matlab on a second computer.  It works great, but every once an a while after running for ~6 hours it will lock up.  I'm using an asynchronous design, so I can see that the loop which processes data and sends triggers is still running, but the loop with the statechart in is not.  In that loop, I set a boolean indicator to true, and then have the terminated? line coming out of the statechart call going into a local variable for that indicator, so I can see that the statechart module doesn't return.  I also have a output string from the statechart that I set to the name of the state I'm currently in, so I can see what state was last entered.  I've gone through all of the transitions out of that statechart and none of them should take any length of time or seems like a good lock up candidate.  Also, there are no static reactions or exit reactions from that state.  I also once saw it lock up in a different state which makes me suspect this is a LV/Statechart module bug.  I just have _no_ idea how to debug this further since there is no way (that I know of) to see what call it is frozen in.  Any help or guidance how to debug this would be sincerely appreciated.

Darn, I thought it was working since it didn't lock up for 2 days with debugging on, but the holiday ended.  The state it locked up in today (i didn't have debugging on, but I set an output when it enters that state so that much I know) doesn't have any static reaction.  Here is the entry action for that state.  Most of the transitions have no action but one makes a call to a counter task so i pasted that code too.  Unfortunately the code is pretty big so I can't really post the whole thing.
Message Edited by peabody124 on 01-28-2008 06:53 PM
Attachments:
elapsed timer.JPG ‏52 KB
entry.JPG ‏63 KB
transition.JPG ‏44 KB

Similar Messages

  • Phone application locks up and unusable after 2.1 - how to fix?

    After upgrading to 2.1, my phone application has become unusable 3 times. The previous 2 times I seemed to be able to get it unlocked by resetting a number of times but this last time I haven't been able to.
    When I press the phone button, I get the dial screen but the green "Call" button doesn't have the text "Call" in it, none of the dial keys work and I can't select "Favorites", "Recents", "Contacts", or "Voicemail". Eventually the phone times out back to the Home screen. I have tried holding down the home key until the application terminates and tried the phone again but the same thing happens.
    What to do? Is there a reason this might be happening that I can fix? Restore or should I be returning the phone to the Apple store for replacement?
    Thanks for any help!

    I haven't restored since updating to 2.1 I have backed up several times but by restore do you mean a reload of the firmware and the saved data or just a restore of the saved data?
    Thanks,
    John

  • Statechart module is not debuggable...

    Hello,
       I have a statechart which compiles ok (TMS_SM included), but when I attempt to run it/call it from a "Run StateChart" call  it comes back with a Block Diagram error:
    " Run Statechart: XNode is not executable"
    There appears to be no way to debug this problem directly (I have deleted all the changes that I had made since it previously worked, and tried removing all the 'odd' controls from in Inputs.ctl and Outputs.ctl to no avail).
    Thanks
    Andrew
    Attachments:
    TMS_SM.lvsc ‏549 KB

    I'm quite happy with the statechart module, My main program has three statechart's, two of which I would say are more complicated than yours. Mine have fewer states but they use more advanced features (hierarchical states being a big one) and have a lot more reactions. Really complicated state systems are much easy with the module in my experience (but I'm directly modeling them in the statechart instead of trying to translate UML). But you need to understanding how exactly the order and how  entry, exit, reactions and transitions are handled, to take full advantage of statecharts.
    Some useful tricks I've used are:
    Hierarchical states, combined with entry and exit actions, allow for easy acquisition and release of different resources, or resetting statedata.
    Reactions are often a simpler solution to transitions.
    Outputs can be used just like StateData, in other words they they hold there value between evaluations of the state chart.
    You can set the priority of exit transitions, which is handy to choose states based on guards instead of triggers.
    It's been a few LabVIEW versions since I needed to really work with them, so my knowledge is a bit rusty, so this might not be quite right.
    Sometimes I would have to Force regeneration to locate errors (may no longer be an issue)
    Debugging used (I assume it still does) to force the statechart to depend on UI Thread (even in a compiled program), so I would always turn off debugging when I didn't need it.
    Pushing something on the internal queue forces an additional evaluation step (this can be used to make temporary states, that don't have to handle external triggers)
    I dug up some of my older posts where my knowledge was fresh (I believe the call limit bug has been fixed, but it didn't apply to my method hybrid of using statecharts)
    One of my old posts where I talk about my hybrid statecharts architecture
    http://forums.ni.com/t5/LabVIEW/Statechart-locks-up-after-2-20-1-calls/m-p/674145/highlight/true#M30...
    And a post dealing with debugging statecharts.
    http://forums.ni.com/t5/LabVIEW/statechart-module-locking-up-and-unusable/td-p/641814/highlight/true
    I tried to look at your example but their missing pieces so I can't try to figure out the bug. I would try an older version, to check if something got corrupted (I think I've only had VI's corrupt on me, but those can create nasty bugs), if you don't have a version control system I strongly suggest you get one. I get Xnode errors trying to open statecharts on system with out the statechart module, but it sounds like you have the module installed. The statechart isn't brought up too often on the forums so I suspect it's an uncommon module for people to use.

  • Statechart Module: What is the order of execution for a parent state and its substates?

    Hello,
    This page describes the order of execution of transitions and actions for one level of nesting. What about compound states? Do the static reactions of the parent state execute before the transitions of the sub-states?

    Hello, 
    I'm not incredibly familiar with the Statechart module, but I will look into it for you on our internal database. In the mean time, there are some examples that may answer some of your questions here:
    https://decibel.ni.com/content/docs/DOC-8716
    and here:
    http://www.ni.com/white-paper/7425/en
    -N
    National Instruments
    Applications Engineer

  • How to find the number of Ram modules in M4000 and M3000

    Dears,
    Hope you all are in best of your health, I would like to know the command to check the number of RAM modules in M4000 or M3000 Sun Sparc Servers. I think it should be via XSCF Console if am correct? I trigger following command *"showhardconf"* got below output.
    ======================================================================================================
    XSCF> showhardconf
    SPARC Enterprise M4000;
    + Serial:BCF094403J; Operator_Panel_Switch:Locked;
    + Power_Supply_System:Single; SCF-ID:XSCF#0;
    + System_Power:On; System_Phase:Cabinet Power On;
    Domain#0 Domain_Status:Running;
    MBU_A Status:Normal; Ver:0101h; Serial:BC0943029D ;
    + FRU-Part-Number:CF00541-0893 06 /541-0893-06 ;
    + Memory_Size:16 GB;
    CPUM#0-CHIP#0 Status:Normal; Ver:0401h; Serial:PP093500VY ;
    + FRU-Part-Number:CA06761-D202 E0 /375-3568-05 ;
    + Freq:2.400 GHz; Type:32;
    + Core:4; Strand:2;
    CPUM#0-CHIP#1 Status:Normal; Ver:0401h; Serial:PP093500VY ;
    + FRU-Part-Number:CA06761-D202 E0 /375-3568-05 ;
    + Freq:2.400 GHz; Type:32;
    + Core:4; Strand:2;
    MEMB#0 Status:Normal; Ver:0101h; Serial:BF0939DFFA ;
    + FRU-Part-Number:CF00541-0545 08 /541-0545-08 ;
    MEM#0A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-478d0372;
    + Type:2A; Size:2 GB;
    MEM#1A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-478d0306;
    + Type:2A; Size:2 GB;
    MEM#2A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-438845e9;
    + Type:2A; Size:2 GB;
    MEM#3A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-478d02e9;
    + Type:2A; Size:2 GB;
    MEMB#1 Status:Normal; Ver:0101h; Serial:BF0939DKJ6 ;
    + FRU-Part-Number:CF00541-0545 08 /541-0545-08 ;
    MEM#0A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-478d0374;
    + Type:2A; Size:2 GB;
    MEM#1A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-478d037b;
    + Type:2A; Size:2 GB;
    MEM#2A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-478d02f9;
    + Type:2A; Size:2 GB;
    MEM#3A Status:Normal;
    + Code:ce0000000000000001M3 93T5660QZA-CE6 4151-478d0373;
    + Type:2A; Size:2 GB;
    DDC_A#0 Status:Normal;
    DDC_A#1 Status:Normal;
    DDC_B#0 Status:Normal;
    IOU#0 Status:Normal; Ver:0101h; Serial:BF0938DA6R ;
    + FRU-Part-Number:CF00541-2240 05 /541-2240-05 ;
    DDC_A#0 Status:Normal;
    DDCR Status:Normal;
    DDC_B#0 Status:Normal;
    PCI#1 Name_Property:SUNW,qlc; Card_Type:Other;
    PCI#2 Name_Property:SUNW,qlc; Card_Type:Other;
    PCI#3 Name_Property:network; Card_Type:Other;
    XSCFU Status:Normal,Active; Ver:0101h; Serial:BF0939DTNJ ;
    + FRU-Part-Number:CF00541-0481 04 /541-0481-04 ;
    OPNL Status:Normal; Ver:0101h; Serial:BF0940EAEM ;
    + FRU-Part-Number:CF00541-0850 06 /541-0850-06 ;
    PSU#0 Status:Normal; Serial:1357FYG-0911AD02JY;
    + FRU-Part-Number:CF00300-2011 0202 /300-2011-02-02;
    + Power_Status:On; AC:200 V;
    PSU#1 Status:Normal; Serial:1357FYG-0911AD02K8;
    + FRU-Part-Number:CF00300-2011 0202 /300-2011-02-02;
    + Power_Status:On; AC:200 V;
    FAN_A#0 Status:Normal;
    FAN_A#1 Status:Normal;
    FANBP_B Status:Normal; Ver:0401h; Serial:BF0940E134 ;
    + FRU-Part-Number:CF00541-3098 01 /541-3098-01 ;
    FAN_B#0 Status:Normal;
    FAN_B#1 Status:Normal;
    ==============================================================================================
    With the above output I understand that we have the following:-
    -> *16GB RAM*
    -> We have memory boards **MEMB#0** and **MEMB#1**
    -> We have 4 modules on **MEMB#0** and they are following:-
    MEM#0A -2GB - if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    MEM#1A -2GB- if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    MEM#2A -2GB- if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    MEM#3A -2GB- if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    -> We have 4 modules on **MEMB#1** and they are following:-
    MEM#0A -2GB- if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    MEM#1A -2GB- if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    MEM#2A -2GB - if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    MEM#3A -2GB- if we Upggrade to 4GB what will happen to the existing 2GB RAM?
    So, I understand that the above server will have 32 GB Ram as our company ordered recently, Correct?
    In the specifications of M4000 i see that for these servers we can upgrade he Ram upto 128 GB.
    Please guide, any help offerred is appreciated.
    Edited by: user9007339 on 26/01/2013 03:14 ص

    A Key document is:
    http://docs.oracle.com/cd/E19855-01/819-2210-14/819-2210-14.pdf
    The m4000 can have 4 memory modules.
    Each memory module can contain up to 8 dimms. (Two groups on same size (A and B) of 4 dimms). Group A dimms may must not be smaller than Group B dimms. (within a memory module).
    The server can contain 4 memory modules of 8 dimms ... 128GB is attained by 32 4GB dimms. ( 8GB dimms used to be purchasable but are now discontinued ).
    Depending on what you purchased to achieve 32GB on your server then following options are available:
    - If you purchased 2 memory modules of 8GB each simply put these in two unused module slots and goto 32GB
    - If you purchased 2 memory modules of 16GB each simply put these in two unused module slots and goto 48GB
    - If you purchased 4 memory modules of 8GB each using 8 x 1GB dimms then move your existing simms into the group A slots of the new memory modules, goto 40GB and sell the spare dimmms on ebay or put them certain DELL's (then watch the thing crash due to a static dimm destruction issue and possilbe issues as it isn't supported.)
    - If you purchased 8 2GB dimms stick them in your existing memory modules
    - If you purchased 16 2GB Dimms ... and don have spare empty memory modules sell spares on ebay.
    .... There may be further options ....
    In general the person you are purchasing from should be giving good advice ... better than mine above.
    ... My cynical opinion is a lot of partners (and perhaps even Oracle itself) supplying the purchase may be on commission and have no interest and little care in minimising your cost .... having seen the performance of some oracle 'partners' in the uk I can see why some customers might want to move away from oracle hardware.
    Please be aware certain games with switching things about could affect your warrantee ... ( its highly embarrassing when a failing disk in a dilbert has the wrong part number or even worse an incorrect backplate affecting the airflow ... ) ... and what you are really paying for is for an engineer to come and sort your server out if there is a hardware issue. So take some of the suggestions above with a pinch of salt.
    Please be aware while have I tried to be accurate above I may have made a mistake. ... .... (in fact knowing me I probably have).
    Edited by: bigdelboy on 26-Jan-2013 03:51 (NB: adding memory to servers is often a difficult balancing act and may not be cost effective .... and may make smaller dimms redundant in an upgrade in order to maintain supportable/workable configurations). A new T4/T5 may be more cost effective}. Buying fully populated at the beginning is also often more cost effective .... though the largest dimms to achieve highest capacity may be cost prohibitive.

  • Differeence between Lock object and enqueue_e_table

    Hi  ,
    what is diff between Lock object and enque_e_table.  Where to use enqueue_e_table and where to use lock object.
    I think with a lock object i can lock more than one table (passing tables  in secondary table). Please correct me.

    A lock object does not really "lock a table" though most of lock objects refer to a database table.
    I explain:
    The principle is that when 2 programs lock at the same time with the same lock object, only the first will succeed.
    If you have a program which does not use the lock, it may update the database table without any problem.
    All programs which update a table have to use the same lock object. Note that users are always able to update this table via SM30 as they don't know the lock object to be used.
    enqueue_xxxx is the name of the generated function module used to lock the xxxx lock object. E_TABLE lock is ONLY used by SM30 if I remember well, so that to prevent one table from being updated via SM30 by 2 persons at the same time. But it is not related at all with programs which would also update this table.
    Edited by: Sandra Rossi on Mar 14, 2010 9:53 PM

  • Running fine, locks up and then starts beeping, 3 times

    New iMac. Runs fine but sometimes it justs locks up and starts beeping. It's 3 beeps, pause, repeat.
    What's the deal? Only way to stop is to power off with the button and reboot. Then all is fine, until next time.

    Check your RAM, it sounds like you may have a loose, incompatible or bad module.
    iMac (Mid 2007) and later models: About startup tones
    Dennis

  • With regard to lock object and authority check

    hi all
    i would like to know about lock object and authority check specifically in reports. there is a coding in sap library with regard to authority check, but there is no coding to restrict user (i mean there is no user names that the object is restricting for a particular user or any user has got permission to change or display object). 
    further, the code mentions that you need an authorization in your user master record for the object, could any of u explain where is user master record.
    below is the code for authority check.
    *&      Module  USER_COMMAND_0100  INPUT
    MODULE USER_COMMAND_0100 INPUT.
      CASE OK_CODE.
        WHEN 'SHOW'.
       AUTHORITY-CHECK OBJECT 'S_CARRID'
    ID 'CARRID' FIELD '*'
    ID 'ACTVT'  FIELD '03'.
       IF SY-SUBRC NE 0. MESSAGE E009. ENDIF.
       MODE = CON_SHOW.
       SELECT SINGLE * FROM  SPFLI
        WHERE  CARRID      = SPFLI-CARRID
        AND    CONNID      = SPFLI-CONNID.
       IF SY-SUBRC NE 0.
    MESSAGE E005 WITH SPFLI-CARRID SPFLI-CONNID.
       ENDIF.
       CLEAR OK_CODE.
       SET SCREEN 200.
        WHEN 'CHNG'.
       AUTHORITY-CHECK OBJECT 'S_CARRID'
    ID 'CARRID' FIELD '*'
    ID 'ACTVT'  FIELD '02'.
       IF SY-SUBRC NE 0. MESSAGE E010. ENDIF.
       MODE = CON_CHANGE.
       SELECT SINGLE * FROM  SPFLI
        WHERE  CARRID      = SPFLI-CARRID
        AND    CONNID      = SPFLI-CONNID.
       IF SY-SUBRC NE 0.
         MESSAGE E005 WITH SPFLI-CARRID SPFLI-CONNID.
       ENDIF.
       OLD_SPFLI = SPFLI.
       CLEAR OK_CODE.
       SET SCREEN 200.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    i thank u all for the help in advance.

    hi
    this might help
    REPORT YUSRLOCK NO STANDARD PAGE HEADING.
    TABLES: TRDIR, USR02.
    DATA: MARK,CNTR TYPE I,
          ACCNT LIKE USR02-ACCNT, ERDAT LIKE USR02-ERDAT,
          ANAME LIKE USR02-ANAME, CLI(3) VALUE 'AAA', SZIN TYPE I,
          SYDATUM LIKE SY-DATUM, FLAG(3).
    TABLES: UINFO.
    DATA: OPCODE TYPE X VALUE 2.
    DATA: BEGIN OF USR_TABL OCCURS 10.
            INCLUDE STRUCTURE UINFO.
    DATA: END OF USR_TABL.
    START-OF-SELECTION.
      CALL 'ThUsrInfo' ID 'OPCODE' FIELD OPCODE
        ID 'TAB' FIELD USR_TABL-SYS.
      SELECT * FROM USR02 CLIENT SPECIFIED ORDER BY MANDT BNAME.
        IF USR02-MANDT <> CLI.
          SZIN = SZIN + 1. SZIN = SZIN MOD 2.
          CLI = USR02-MANDT.
        ENDIF.
        IF USR02-UFLAG = 0.
          MARK = ' '.
        ELSE.
          MARK = 'X'.
        ENDIF.
        CLEAR FLAG.
        LOOP AT USR_TABL.
          IF USR_TABL-BNAME = USR02-BNAME AND USR_TABL-MANDT = USR02-MANDT.
            FLAG = '!!!'.
          ENDIF.
        ENDLOOP.
        SYDATUM = SY-DATUM - 30.
        IF SYDATUM < USR02-TRDAT.
          IF SZIN = 0.
            WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 2,
                  ' ',USR02-MANDT COLOR 2,
                  '   ',USR02-USTYP COLOR 2,
                  ' ',USR02-TRDAT COLOR 2, USR02-LTIME COLOR 2,
                  ' ',FLAG COLOR 6.
          ELSE.
            WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 3,
                  ' ',USR02-MANDT COLOR 2,
                  '   ',USR02-USTYP COLOR 2,
                  ' ',USR02-TRDAT COLOR 2, USR02-LTIME COLOR 2,
                  ' ',FLAG COLOR 6.
          ENDIF.
        ELSE.
          IF SZIN = 0.
            WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 2,
                  ' ',USR02-MANDT COLOR 2,
                  '   ',USR02-USTYP COLOR 2,
                  ' ',USR02-TRDAT COLOR 4, USR02-LTIME COLOR 4,
                  ' ',FLAG COLOR 6.
          ELSE.
            WRITE:/ ' ', MARK AS CHECKBOX,' ', USR02-BNAME COLOR 3,
                  ' ',USR02-MANDT COLOR 2,
                  '   ',USR02-USTYP COLOR 2,
                  ' ',USR02-TRDAT COLOR 4, USR02-LTIME COLOR 4,
                  ' ',FLAG COLOR 6.
          ENDIF.
        ENDIF.
        HIDE: USR02-BNAME, USR02-MANDT.
      ENDSELECT.
      CLEAR USR02.
    TOP-OF-PAGE.
    WRITE:/ 'LOCK   USER         CLIENT  TYPE     LAST lOGIN     ' COLOR 6.
      SKIP.
    AT USER-COMMAND.
      IF SY-UCOMM = 'SEL'.
        DO.
          CLEAR MARK.
          READ LINE SY-INDEX FIELD VALUE MARK.
          IF SY-SUBRC NE 0.  EXIT. ENDIF.
          IF USR02-BNAME IS INITIAL.CONTINUE.ENDIF.
          SELECT SINGLE * FROM USR02 CLIENT SPECIFIED WHERE
          MANDT = USR02-MANDT AND BNAME = USR02-BNAME.
          IF MARK = 'X' AND USR02-UFLAG = 0.
            USR02-UFLAG = 64.
            UPDATE USR02 CLIENT SPECIFIED SET: UFLAG = 64 WHERE
            MANDT = USR02-MANDT AND
            BNAME = USR02-BNAME.
            COMMIT WORK.
          ENDIF.
          IF MARK = ' ' AND USR02-UFLAG = 64.
            USR02-UFLAG = 0.
            UPDATE USR02 CLIENT SPECIFIED SET: UFLAG = 0 WHERE
            MANDT = USR02-MANDT AND
            BNAME = USR02-BNAME.
            COMMIT WORK.
          ENDIF.
        ENDDO.
        CLEAR USR02.
      ENDIF.
    regards
    Arun

  • Function module like ENQUEUE and DEQUEUE for function location.

    Hi All,
    I should be highly appreciate if any one help me for locking function module like ENQUEUE and DEQUEUE
    for function location.
    Thanks
    Shaw

    Hi,
    You can either use the standard way of locking by using :
    data:lv_varkey          TYPE rstable-varkey.
    concatenate functional_location sy-mandt into lv_varkey .
    *   Lock table
        CALL FUNCTION 'ENQUEUE_E_TABLEE'
          EXPORTING
            mode_rstable   = 'E'
            tabname        = 'IFLOS'
            varkey         = lv_varkey
          EXCEPTIONS
            foreign_lock   = 1
            system_failure = 2
            OTHERS         = 3.
    *     Unlock table
          CALL FUNCTION 'DEQUEUE_E_TABLEE'
            EXPORTING
              mode_rstable = 'E'
              tabname      = 'IFLOS'
              varkey       = lv_varkey.
    Or,
    As mentioned above create a lock object via transaction SE11.
    Go to transaction se11:
    --> Enter lock object name e.g EZ_IFLOS
    --> Click on create
    --> Enter description
    --> Click on tables tab
    --> Enter 'IFLOS' as table name
    --> select lock mode
    --. click on save and activate.
    2 function modules will be created as DEQUEUE_EZ_IFLOS and ENQUEUE_EZ_IFLOS .
    Regards.

  • About lock object and how to create it

    Hi ABAP gurus,
    Can any one explain about the Lock Objects and How to create Lock object step by step.
    Rgds,

    Hi Rangamma,
    Check this info.
    Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.
    SAP Provide three type of Lock objects.
    - Read Lock(Shared Locked)
    protects read access to an object. The read lock allows other transactions read access but not write access to
    the locked area of the table
    - Write Lock(exclusive lock)
    protects write access to an object. The write lock allows other transactions neither read nor write access to
    the locked area of the table.
    - Enhanced write lock (exclusive lock without cumulating)
    works like a write lock except that the enhanced write lock also protects from further accesses from the
    same transaction.
    You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.
    Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.
    Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.
    Technicaly:
    When you create a lock object System automatically creat two function module.
    1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
    2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
    Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.
    SAP Provide three type of Lock objects.
    - Read Lock(Shared Locked)
    protects read access to an object. The read lock allows other transactions read access but not write access to
    the locked area of the table
    - Write Lock(exclusive lock)
    protects write access to an object. The write lock allows other transactions neither read nor write access to
    the locked area of the table.
    - Enhanced write lock (exclusive lock without cumulating)
    works like a write lock except that the enhanced write lock also protects from further accesses from the
    same transaction.
    You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.
    Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.
    Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.
    Technically:
    When you create a lock object System automatically creat two function module.
    1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
    2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    GO TO SE11
    Select the radio button "Lock object"..
    Give the name starts with EZ or EY..
    Example: EYTEST
    Press Create button..
    Give the short description..
    Example: Lock object for table ZTABLE..
    In the tables tab..Give the table name..
    Example: ZTABLE
    Save and generate..
    Your lock object is now created..You can see the LOCK MODULES..
    In the menu ..GOTO -> LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function
    Lock objects:
    http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    Match Code Objects:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm
    http://searchsap.techtarget.com/tip/0,289483,sid21_gci553386,00.html
    See this link:
    http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
    Hope this resolves your query.
    <b>Reward all the helpful answers.</b>
    Regards

  • Statechart module: crashes when I want to save state

    I am using the LV Statechart Module (version 8.6.0). LabVIEW crashes when I want to save a state (by clicking "OK" on the state dialog). The crash does only occur if I have some member VIs of a quite large class hierarchy in the state. It does not occur if I for example just wire through the simple error cluster that is part of my state data cluster.
    Does anyone have an idea how I could avoid this problem?
    The LabVIEW failure log file is attached.
    Thanks in advance for any hint.
    Solved!
    Go to Solution.
    Attachments:
    lvlog07-08-09-18-04-09.txt ‏2 KB

    Looking at this quickly, I do not know the core root cause, but I am guessing that you could work around it by putting your guard or action code into a subVI and using that subVI instead of placing the code directly in the guard/action. Something appears to be going wrong as we try to commit the guard/action VI you created for the state - I am guessing there is a bug in this process as it encounters some of the class stuff you are using, and using a subVI to wrap it will avoid this.
    Any chance you can provide the files needed to reproduce this (either here or privately if you prefer). The stack tells me a little bit but we'll have a much better chance of resolving this fully in a future release if we can reproduce it here.
    Thanks,
    Nick

  • Statechart module: Using a master statechart to launch a slave statechart more than once without getting Error 1100 at Obtain Queue (No object of that name was found)

    Hello,
    I am trying to create a project using the statechart module, and one of the techniques I am trying to use is a "master-slave" statechart structure, illustrated by the code I have attached to this post (you probably need the statechart module installed to look at my example code).  The problem I have recently discovered is that the slave statecharts cannot be launched more than once without raising an Error 1100 at Obtain Queue.  I have gathered from a few other posts that the cause of this error is the fact that the First Call primitive is used by the Statechart module to initialize the statechart when it is first run.  This works fine for the first launch of the slave statechart, but the second launch and subsequent launches of the statechart fail on Error 1100, since the First Call primitive won't let the statechart initialize (the First Call primitive tells the statechart it has already been initialized (this isn't the first call), and the External Trigger function then tries to send an external trigger to a queue that doesn't exist).
    What I can't gather from those posts is the correction I need to make to get this design to work.  I tried to send the slave statecharts a boolean flag for the "Init?" terminal, to force a reinitializing of the slave statechart.  I couldn't get that to work.  I tried to not load the slave sub VI as a slave sub VI, and launch it using some VI Server code, so that maybe the slave sub VI would be loaded and unloaded, therefore causing the statechart to properly initialize, but I couldn't get that to work either.  What correction should I make?  How do I get this to work?
    I really want to use this design pattern, first of all since I wrote a lot of code already with this structure, and second of all, it makes a lot of sense to me.  How do I make it work?  If someone could post a version of my code that functions the same, but without the error, I would appreciate that.  If you don't have time for that, but would be able to outline the steps I need to take to get it to work, that would be helpful, as well.
    Thanks to anyone for any assistance they can provide.  If you need any other information, please let me know.
    Attachments:
    Statechart Sample.zip ‏431 KB

    Thanks, Deborah.  I tried this approach out, and it turns out you can't just wire a TRUE to the "Init?" terminal.  You have to wire a TRUE for the first run of the slave statechart, and then it has to become a FALSE.  If you wire a TRUE, it will constantly try to reset the statechart, which doesn't work.
    The master statechart has to keep track of whether it has called the slave statechart, and communicate that to the slave statechart.  On the very first call of the slave statechart, the "First Call?" function inside of the "Run Statechart" function will give a TRUE, which initializes the statechart properly, and then gives a FALSE from that point after.  After that, the "First Call?" function doesn't work anymore (it will always return FALSE), and an initial TRUE, with subsequent FALSE values, has to be provided manually.
    I attached a version that does this, which appears to work.  Let me know if it doesn't work for someone, or if you have a better idea to implement the correction.
    Thanks to everyone for the replies!
    Attachments:
    Master-Slave Statechart Sample.zip ‏439 KB

  • What is the use for lock object and how to use the lock objects

    Hi Guru's,
    I am new to ABAP .Can you please clarify the that what is the use of lock object and how to use the loct object .what is use of the Deque & Enque  function modules .

    hi ,
    below are some minfo about lock objects :
      Lock Objects
    These types of objects are used for locking the access to database records in table. This mechanism is used to enforce data integrity that is two users cannot update the same data at the same time. With lock objects you can lock table-field or whole table.
    In a system where many users can access the same data, it becomes necessary to control the access to the data. In R/3 system this access control is built-in on database tables. Developers can also lock objects over table records.
    To lock an object you need to call standard functions, which are automatically generated while defining the lock object in ABAP/4 dictionary. This locking system is independent of the locking mechanism used by the R/3 system. This mechanism also defines LUW i.e. Logical Unit of Work. Whenever an object is locked, either by in built locking mechanism or by function modules, it creates corresponding entry in global system table i.e. table is locked. The system automatically releases the lock at the end of transaction. The LUW starts when a lock entry is created in the system table and ends when the lock is released.
    Creating Lock Objects
    Lock object is an aggregated dictionary object and can be defined by using the following steps:
    o From initial data dictionary screen, enter the name for the object, Click Lock object radiobutton and then click on Create. The system displays a dialog box for Maintain Lock Objects screen
    o Enter short text as usual and the name for primary table.
    -Save
    -Select Tables option
    From this screen you can:
    Select secondary tables, if any, linked by foreign key relationship.
    Fields for the lock objects. This option allows you to select fields for objects (R/3 system allows locking up to record level). Lock object argument are not selected by user but are imposed by the system and includes all the primary keys for the table.
    1) Exclusive lock: The locked data can only be displayed or edited by a single user. A request for another exclusive lock or for a shared lock is rejected.
    2) Shared lock: More than one user can access the locked data at the same time in display mode. A request for another shared lock is accepted, even if it comes from another user. An exclusive lock is rejected.
    3) Exclusive but not cumulative: Exclusive locks can be requested several times from the same transaction and are processed successively. In contrast, exclusive but not cumulative locks can be called only once from the same transaction. All other lock requests are rejected.
    Also, last but not the least, locking the object is logical (locking with any enqueue ) .so, you have to use the lock object while trying to access from second program .
    reward if helpful ,
    Regards,
    Ranjita

  • Module locking - Maybe michecl can help me

    Hello ALL,
    I have question about EHP4 online module booking program and Maybe Michael give me some advice.
    In my university some module like language ( Thai, English ) have lots of event package and in the SAP GUI module booking program lock from the module to event and EHP4 also locking module during booking i want to design differently.
    I want to know in EHP4 online module booking program locking module during booking ?.
    If not i am happy but if it is locking i must have many module rather than have many event package.
    Hoping quick response and thanks in advance.
    regards,
    jin dal

    Hi Prabhat Singh,
    Thanks for your help but i have to explain a little more.
    Of course, i will use time windows but the problem is some module like Language have about  30-50 event packages so whether i use time windows, if the Webdynpro module booking program locking module during booking time, i have to persuade customer to have many modules rather than have one module to avoid module locking.
    In detail
    Module name Thai language have for about 50 event package
        if EHP4 online module booking program locking module during module booking
    i want to change as follows.
    Module name Thai language 01 - 50 and each module have only one event package
    and it will be much better for system performance if webdynpro program locking module during module booking.
    so my question is , Webdynpro module booking program locking module or event package level ?.
    If module level, i think i must have many module rather one module but locking to event package level i will have only one module.
    regards,
    jin dal

  • Error while trying to install Labview statechart module

    I have Labview 2009 SP1 installed on my computer (Win 7 64 bits). When I  try to install the statechart module I recieve the following:
    "Labview 2009 is not detected" and the installation terminate.
    Please advice.
    Regards
    Gabi 

    gabi_hor,
    Check out the LabVIEW 64-Bit vs. 32-Bit Applications FAQ, specfically the following question:
    "Q. Which LabVIEW modules and toolkits are available for LabVIEW
    64-bit?
    A. The NI Vision Module is the only
    module available for LabVIEW 64-bit as of LabVIEW 2009. Any other
    modules and toolkits must be run using LabVIEW 32-bit."
    Ben Sisney
    FlexRIO V&V Engineer
    National Instruments

Maybe you are looking for