Locking and blocking - puzzlement.

I have a table - relatively simple
CREATE TABLE Sysstat
M_Time     DATE,
Usr_pct    NUMBER(10, 0),
Sys_pct    NUMBER(10, 0),
<a few more NUMBER(10, 0) deleted...
CONSTRAINT Sysstat_PK PRIMARY KEY (M_Time)
);Issue (From an SQLPlus session) the command DELETE FROM Sysstat - but do not COMMIT.
Go to SQLDeveloper - and (try to) do the following
INSERT INTO Sysstat
SELECT ROUND(TO_DATE  (Sysstat_ext.M_Time, 'DD-MM HH24:MI:SS'), 'MI') AS "Measurement Time",
       ROUND(TO_NUMBER(Sysstat_ext.Usr_pct),    0) AS "% Usr",
       <fields deleted>
FROM Sysstat_ext
COMMIT;The SQLDeveloper session completely hangs - forever* (at least 20 mins at this stage).
As I understood matters with Oracle there were three possibilities.
1) PK violation. The SQLDeveloper session "sees" that there are still records in Sysstat (changes
are uncommitted as far as he's concerned), but there is a PK violation in the data to
be inserted anyway, so the SQLDeveloper session should tell the user Sysstat_PK violation.... error...
2) No potential PK violation. The SQLDeveloper session doesn't know whether the SQL*Plus
session will commit its deletions or not, therefore the SQLDeveloper session commits and Oracle keeps track of the
necessary chains of pointers internally and/or when the SQL*Plus session tries to commit, it's accepted or refused
depending on whether this will cause other issues (FK violation for example)
or
3) Oracle knows that there's a deadlock and after a certain period (configurable?) rolls back the SQLDeveloper session
and informs the user.
Could some kind soul explain to me what, exactly, is going on - and why my reasoning is so obviously erroneous.
I have been looking at Kyte's architecture book, so maybe a concrete example (I've never deadlocked Oracle
before) would help clarify the concepts for me.
Paul...

Paulie wrote:
>
Could some kind soul explain to me what, exactly, is going on - and why my reasoning is so obviously erroneous.
I have been looking at Kyte's architecture book, so maybe a concrete example (I've never deadlocked Oracle
before) would help clarify the concepts for me.I've now read a bit about mutexes in Oracle - not that I understood all of it.
no deadlock is occuring.Well, what else should one call a session that is blocked indefinitely? Is there another
computer science term for this phenomenon?
I suspect a Mutex wait is the cause.OK - so, some sort of device to "regulate concurrent access to a shared resource". That's fine.
The blogs and websites which discuss this seem to be a propeller-head's wet dream with obscure X$_Blah
table configs and Totallyunknown_even_to_Oracle_Support parameters being bandied about like there's
no tomorrow.
What I would like to know is a bit more prosaic (and perhaps a level less technically sophisticated).
Is my reading of Oracle's Locking/Latching/Multi-User behaviour correct in what I wrote originally, i.e.
Scenarios:
1) PK violation. The SQLDeveloper session "sees" that there are still records in Sysstat (deletion
is uncommitted as far as he's concerned), but there is a PK violation in the data to
be inserted anyway, so the SQLDeveloper session should tell the user Sysstat_PK violation.... error...
no change to database - SQLDev user informed
2) No potential PK violation. The SQLDeveloper session doesn't know whether the SQL*Plus
session will commit its deletions or not, therefore the SQLDeveloper session commits and Oracle keeps track of the
necessary chains of pointers internally and/or when the SQL*Plus session tries to commit, it's accepted or refused
depending on whether this will cause other issues (FK violation for example)
or
3) Oracle knows that there's a deadlock and after a certain period (configurable?) rolls back the SQLDeveloper session
and informs the user.
Or am I still competely at sea with what Oracle is about? I was of the understanding that whatever* happened,
you should never have a situation where a session hangs indefinitely, due to Oracle's system
of multi-version concurrency - basically, I'm asking what is going on here and how does it
fit with my current* (and obviously mistaken) understanding of how Oracle works.
Thanks for your input so far.
Paul...A basic truism exist for Oracle.
Readers do not block writers & writers do not block readers!
What you fail to recognize is that your test case has two WRITERS; both are doing DML!
two sessions want to change same resource & to maintain data consistency & integrity
the changes must be serialized. One must complete before the second can proceed.
Oracle utilizes Interested Transaction List (ITL) to maintain block level data consistency.
SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,
id1, id2, lmode, request, type
FROM V$LOCK
WHERE (id1, id2, type) IN
(SELECT id1, id2, type FROM V$LOCK WHERE request>0)
ORDER BY id1, request
/

Similar Messages

  • Dead lock and Blocking Lock

    I would like to understand what is major difference between Dead Locks and Blocking Locks in Oracle. If someone could explain or point me to good web Link I would really appreciate
    Thanks.

    Tony's advise is very good.
    In simple terms a blocking lock is a lock being held by one session that is preventing another session from performing an DML operation on the same data until the holding session commits or rollbacks.
    A deadlock is a situation where two or more sessions lock data in such a manner as each session is waiting on a resource held by another session so that none of the session can complete their unit of work. That is session A locks row 1 then session B locks row 2 followed by session A attempts to lock row 2 while session B now attemps to lock row 1. Neither session A or B will ever be able to complete thier transaction releasing the locks and allowing waiting sessions to process since each session is waiting on a resource that the other session has while holding a resource the other session needs. In other words a deadlock. Oracle detects deadlocks and kills one of the sessions freeing resources.
    HTH -- Mark D Powell --

  • How to get the lock and block occured for the full day

    Hi,
         How to monitor the lock and blocks occurred for the full day? i need to get it by end of the day. is there any script for this?

    Hi,
         How to monitor the lock and blocks occurred for the full day? i need to get it by end of the day. is there any script for this?
    Why would you like to collect information about locks and let me tell you, you cannot collect information about ALL locks which were taken and even thinking about it is pointless.
    Coming to blocking if you have heavy system with huge concurrency there is bound to be blocking which is necessary and good for RDBMS but if the blocking remains for long time then this is a issue.
    There is DMV sys.dm_tran_locks which tell you what all locks are being taken. You can see various examples mentioned in DMV online documentation and can schedule the query to run every 5
    mins and insert its record in table which you can refer at end of the day.
    This task would be made very easy if you have Monitoring tool which gives you information in your mail every time blocking occurs I have Spotlight in my environment.
    If you are looking for doc for troubleshooting blocking  below is one you can refer
    http://support.microsoft.com/kb/224453
    Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it.
    My TechNet Wiki Articles

  • Pavilion Dv5-1009el - Black screen and blink caps lock and block scorr

    Hi,
    I just replaced the motherboard of my pavilion that reported an error as object. The purchased motherboard is new and hp original.
    After having changed, I turn on the pc and work fine, i see the hp logo and enter to bios, after I turned off the pc without starting windows.
    I inserted the battery and powered on the pc and returns to the old error, the LED of caps lock and block Lock blinks...
    So I tried to update the bios from USB using winkey + B. The computer emits two beeps but does not read from any USB port and the LEDs go out for a while and then blink again.
    What can I do?
    Greetings,
    Enzo.

    Hi @shmurray,
    Welcome to the HP Support Forums!
    I understand you are getting a blink pattern on the Caps lock LED, when you turn on the notebook. I am happy to help you with this.
    I am including the page on the error codes for your reference: Blank Screen LED Error Codes
    From that document the pattern you are getting indicates a memory problem. You said that you have tested the memory. What exactly did you try?
    The document suggests reseating the RAM or trying a new set of RAM and then restarting the notebook. If you are still getting a memory problem after trying both of those things, ie a 3 blink code again, then it would likely suggest that there is a problem with the motherboard itself, either with the memory slot or one of the controllers related to memory.
    In that case I would suggest contacting the technical phone support number at 800-474-6836. If you live outside the US/Canada Region, please click the link below to get the support number for your region.
    http://www8.hp.com/us/en/contact-hp/ww-phone-assist.html
    If however reseating the memory or replacing it leads to a different error code or message please let me know, Although in that case the following may be helpful if you still have a blank screen.
    Troubleshooting Black Screen Displays with No Error Messages During Startup or Boot
    Here are some other sources I found that may be helpful to you.
    Resolving Problems with Notebook Displays (Windows 7 and Windows 8)
    I hope that this is helpful to you.
    Regards,
    Malygris1
    I work on behalf of HP
    Please click Accept as Solution if you feel my post solved your issue, it will help others find the solution.
    Click Kudos Thumbs Up on the right to say “Thanks” for helping!

  • FOLDER PERMISSIONS are LOCKED and BLOCKED

    Recently, the folders I create and place on our server are locked for everyone else accessing the server.
    The read and write access is denied for all else accept when using my iMac. It seems to be as a default and I can't turn it off. Even if I try to unlock them and change the read/write permissions, they still remain locked. I figure its a permissions issue? I have already used my *disk utility* to verify the drive and repair. Anyone know the answer to this?

    could be ACL (access control lists) permissions are incorrect. ACL's are turned on be default in Leopard and Leopard server. if you are using Leopard server, there is a gui interface you can use to change them, if not you will have to use command line techniques or a freeware program called sandbox.
    There is much acl permission info to be found in previous forum discussions.

  • SQL Timeouts and Blocking Locks

    SQL Timeouts and Blocking Locks
    Just wanted to check in and see if anyone here has feedback on application settings, ColdFusion settings, JBOSS settings or other settings that could help to limit or remove SQL Timeouts and blocking locks on SID's.
    We're using MS SQL 2000 with JBOSS and IIS5.
    We've been seeing the following error in our logs that starts blocking locks in SQL:
    java.sql.SQLException: [newScale] [SQLServer JDBC Drive] [SQLServer] Lock request time out period exceeded.
    Once this happens, we're hosed until we remove the blocking SID in SQL.  These are the connections to the application.
    Any feedback would be great.  Thanks!

    Hi
    This is your exact solution:
    Select a.username, a.sid, a.serial#, b.id1, c.sql_text
    From v$session a, v$lock b, v$sqltext c
    Where b.id1 in( Select distinct e.id1
    from v$session d , v$lock e
    where d.lockwait = e.kaddr ) and
    a.sid = b.sid and
    c.hash_value = a.sql_hash_value and
    b.request =0;
    Thanks
    Sarju
    Oracle DBA
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by I'm clueless:
    Can someone give me the SQL statement to
    show if there are any blocking database locks and if so - which user is locking the Database?
    Thanks in Advance<HR></BLOCKQUOTE>
    null

  • CKPT locks the system objects and blocks other sessions

    CKPT locks the system objects and blocks other sessions
    Oracle Version 10.2.0.4
    OS : HP UX 11.31 Itanium
    SQL> select * from v$lock where block=1;
    ADDR KADDR SID TY ID1 ID2 LMODE
    REQUEST CTIME BLOCK
    C0000009FCC2B348 C0000009FCC2B368 1100 RO 65559 1 2
    0 3877 1
    SQL> select program from v$session where sid=1100;
    PROGRAM
    oracle@ctqanhr1 (CKPT)
    As a workaround we flush the buffer cache with the below command
    SQL> alter system flush buffer_cache;
    however the issue reoccurs after some times.
    Edited by: 965132 on Dec 2, 2012 9:59 PM

    other reference:
    CKPT Questions
    The temporary workaround is to set "_db_fast_obj_truncate"=FALSE in that particular case.
    Regards,
    sgc
    Edited by: Samuel G. Cristobal on 03-dic-2012 8:48

  • HT201412 My husbands new ipad is frozen. We can't slide to unlock or turn it off. In the center of the screen is a pop up block that says "This ipad has not been backed up. Backups happen when this ipadis plugged in, locked, and connected to Wifi." What c

    My husband's new ipad is frozen. We can not slide to unlock or turn it off. A pop-up appears in center of screen that says "this ipad has not been backed up. Backups happen when this ipad is plugged in, locked, and connected to the internet." Can someone tell us what to do. Holding the power buttons down did no good.
    Thank you

    Frozen or unresponsive iPad
    Resolve these most common issues:
        •    Display remains black or blank
        •    Touch screen not responding
        •    Application unexpectedly closes or freezes
    http://www.apple.com/support/ipad/assistant/ipad/
    iPad Frozen? How to Force Quit an App, Reset or Restart Your iPad
    http://ipadacademy.com/2010/11/ipad-frozen-how-to-force-quit-an-app-reset-or-res tart-your-ipad
    What to Do When Your iPad Won't Turn On
    http://ipad.about.com/od/iPad_Troubleshooting/ss/What-To-Do-When-Your-Ipad-Wo-No t-Turn-On.htm
    iOS: Not responding or does not turn on
    http://support.apple.com/kb/TS3281
    iPad: Basic troubleshooting
    http://support.apple.com/kb/TS3274
     Cheers, Tom

  • On previous iPhones you could go to settings and block the the actual text message from pooping up. Only the sender would show up. On the i4gs the sender and message show up. This is a major flaw as far as privacy. There are no options with in settings to

    On previous iPhones you could go to settings and block the the actual text message from pooping up. Only the sender would show up. On the i4gs the sender and message show up. This is a major flaw as far as privacy. There are no options with in settings to stop this from happening. PLEASE TELL ME IM WRONG ???

    YOU ARE WRONG.
    Go to Settings > Notifications > Messages. You can turn Notifcation Center off for Messages, or select None for the alert style, and turn Show Preview off, and view in Lock Screen on or off.

  • LOCKS checking user locked and SQL that he is executing

    Hello all,
    I have this script that inserts into a table the user causing the lock and the users waiting for the lock to be released.
    What I would like to add into this the script is the SQL string that the user causing the lock and the users waiting for the the lock to be released are executing.
    Can you help me on this?
    Script that I have now:
    insert into dba.sessions_bloq
    select sysdate "Data", w.sid "SID E", s1.username "User E", s1.osuser "OS User E", s1.machine "Maquina E", s1.program "Programa E", s1.logon_time "Logon E",
    s.ksusenum "SID B", s2.username "User B", s2.osuser "OS User B", s2.machine "Maquina B", s2.program "Programa B", s2.logon_time "Logon B"
    ,decode(r.ksqrsidt,
    ''MR'', ''Media Recovery'',
    ''RT'', ''Redo Thread'',
    ''UN'', ''User Name'',
    ''TX'', ''Transaction'',
    ''TM'', ''DML'',
    ''UL'', ''PL/SQL User Lock'',
    ''DX'', ''Distributed Xaction'',
    ''CF'', ''Control File'',
    ''IS'', ''Instance State'',
    ''FS'', ''File Set'',
    ''IR'', ''Instance Recovery'',
    ''ST'', ''Disk Space Transaction'',
    ''TS'', ''Temp Segment'',
    ''IV'', ''Library Cache Invalidation'',
    ''LS'', ''Log Start or Switch'',
    ''RW'', ''Row Wait'',
    ''SQ'', ''Sequence Number'',
    ''TE'', ''Extend Table'',
    ''TT'', ''Temp Table'',
    r.ksqrsidt) "Tipo Lock"
    from gv$session_wait w, x$ksqrs r, gv$_lock l, x$ksuse s, gv$session s1, gv$session s2
    where w.wait_Time = 0
    and w.event = ''enqueue''
    and r.ksqrsid1 = w.p2
    and r.ksqrsid2 = w.p3
    and r.ksqrsidt = chr(bitand(p1,-16777216)/16777215)||
    chr(bitand(p1,16711680)/65535)
    and l.block = 1
    and l.saddr = s.addr
    and l.raddr = r.addr
    and s.inst_id = userenv(''Instance'')
    and w.sid = s1.sid
    and w.inst_id = s1.inst_id
    and s.ksusenum = s2.sid
    and s.inst_id = s2.inst_id;
    Thanks in advance

    You can link to:
    gv$sql
    gv$sqltext_with_newlines
    but, if doing this in a trigger, also look at these:
    http://www.psoug.org/reference/system_events.html

  • Problem with slide block puzzle

    Hello:
    I am doing a project that solve slide-block puzzles. My program take two common line arguments. One is a file specifying the initial configuration while the other specify goal configuration. My idea is to use an arrayList<block > to represent a configuration with each element being a block, for each block, I stores all possible configurations after moving the block in a Hashset and Stack. I check if the goal has been reached after each move, if not, go moving next one. If the configuration has been seen before, which indicates a dead end, I pop the stack to backtrack the most recent the branch and take another path.
    Unfortunately, the algorithm I came up does not work.
    Can anyone propose a psudocode for me?
    Also, my program should print out all moves directly towards the goal but I can not figure out how to only print out the moves directly towards the goal and avoid printing those leading to dead end.
    You can see specification http://nifty.stanford.edu/2007/clancy-slidingblocks/proj3.html.
    I will be really really appreciated.

    Well, that was harder than I thought!
    Anyway, the algorithm can be quite simple: a BFS finds a solution pretty fast. Here's some pseudo code:
    public class Solver {
        private Set<Integer> alreadyFormedTrays; // A set of already formed trays
        private List<Block> goalList;            // The final goal(s)
        private boolean foundSolution  = false;  // A flag flipped to true once we find a solution
        private Tray startTray;                  // The initial tray
        public Solver(String[] tray, String[] goals) {
            alreadyFormedTrays = new HashSet<Integer>();
            goalList = new ArrayList<Block>();
            buildTray(tray);
            buildGoals(goals);
        private void buildGoals(String[] goalsData) {
            // Fill the 'goalList'.
        private void buildTray(String[] trayData) {
            // Create the first tray: 'startTray'.
        private boolean goalsReached(Tray aTray) {
            // Check wether we have reached our goal(s).
        public void solve() {
            alreadyFormedTrays.add(startTray.hashCode());
            System.out.println("START=\n"+startTray);
            solve(startTray);
        private void solve(Tray aTray) {
            IF we found a solution, stop looping END IF
            IF 'aTray' reached our goal(s)
                foundSolution <- true
                print the path 'aTray' has taken
                stop looping
            END IF
            'nextTrays' <- all next trays that can be formed from 'aTray'
            FOR every Tray 'T' in 'nextTrays' DO
                'hash' <- a hash of 'T'
                IF 'hash' is not yet present in 'alreadyFormedTrays'
                    add 'hash' in 'alreadyFormedTrays'
                    make a recursively call with 'T' as a parameter
                ENDIF
            ENDFOR
        public static void main(String[] args) {
            String[] trayFile = {
                    "5 4",
                    "2 1 0 0",
                    "2 1 0 3",
                    "2 1 2 0",
                    "2 1 2 3",
                    "2 2 1 1",
                    "1 2 3 1",
                    "1 1 4 0",
                    "1 1 4 1",
                    "1 1 4 2",
                    "1 1 4 3"
            String[] goalFile = {
                    "2 2 3 1"
            Solver s = new Solver(trayFile, goalFile);
            s.solve();
    }As I said: the algorithm isn't that hard, the tricky part comes in finding all possible Trays from a given Tray X and making copies based on X.
    Here are some UML diagrams of the classes I used:
    |                                      |
    | + Tray                               |
    |______________________________________|
    |                                      |
    | ROWS: int                            |
    | COLUMNS: int                         |
    | - freeSpaces: byte[][]               |
    | blocks: List<Block>                  |
    | path: List<Atom[]>                   |
    |______________________________________|
    |                                      |
    | + Tray(r: int, c: int): << constr >> |
    | + Tray(tray: Tray): << constr >>     |
    | + addBlock(b: Block): boolean        |
    | + generateNextTrays(): List<Tray>    |
    | + removeBlock(b: Block): void        |
    |______________________________________|
    |                                                                                          |
    | + Block                                                                                  |
    |__________________________________________________________________________________________|
    |                                                                                          |
    | HEIGHT: int                                                                              |
    | WIDTH: int                                                                               |
    | name: char                                                                               |
    | atoms: List<Atom>                                                                        |
    |__________________________________________________________________________________________|
    |                                                                                          |
    | + Block(n: char, height: int, width: int, startRow: int, startColumn: int): << constr >> |
    | + Block(b: Block): << constr >>                                                          |
    | - buildAtoms(startRow: int, startColumn: int): void                                      |
    | + getUpperLeft(): Atom                                                                   |
    | + move(m: Move): void                                                                    |
    |__________________________________________________________________________________________|
    |                                      |
    | + Atom                               |
    |______________________________________|
    |                                      |
    | row: int                             |
    | column: int                          |
    |______________________________________|
    |                                      |
    | + Atom(r: int, c: int): << constr >> |
    | + Atom(a: Atom): << constr >>        |
    | + move(m: Move): void                |
    |______________________________________|I removed the equals(...), hashCode() and toString() methods for clarity, you should implement them, of course.
    The Move class you see in there is an enum, and looks like this:
    public enum Move {
        UP    (-1,  0),
        RIGHT ( 0,  1),
        DOWN  ( 1,  0),
        LEFT  ( 0, -1);
        final int deltaRow, deltaColumn;
        private Move(int dr, int dc) {
            deltaRow = dr;
            deltaColumn = dc;
    }If you have any questions about the methods/variables in the class diagrams, feel free to post back.
    Good luck.

  • My apple id was attacked by haker , he changed my email and blocked my phone! help me!!

    my apple id was attacked by haker , he changed my email and blocked my phone! help me!!

    HARY77 wrote:
    i have same problem! and i try to contakt apple support and nothing! mz phone is still locked!
    Your phone will remain locked until you contact Apple Account Security. See: Apple ID: Contacting Apple for help with Apple ID account security

  • Lock and semaphore, what's better method for my case

    Hi all,
    I'm implementing a classic case: a consumption queue with infinite capacity. That's say I have a queue of infinity capacity, a thread to put objects into the queue, another thread take it out. Pseudo code is smth like below:
    void put(Object o) {
    put message into the queue
    if (consume thread is waiting) {
    lock();
    signal();
    unlock();
    void eat() {
    if (queue not empty)
    take object out;
    else
    lock;
    wait for signal from producer;
    wake up and take object out;
    unlock;
    I don't know if I should use semaphore or Lock interface to get the job done. Do you know which one is better in my case? I'm writing an apps which is very sensitive in latency so basically I want the eater to get the object as soon as possible. Any advices?
    Message was edited by:
    principles

    Blocking queue doesn't work for me as it is too slow.
    I don't need to lock the data because one thread
    adds too the tail, one thread consumes the head, so
    why bother?LinkedBlockingQueue allows concurrent access to the head and tail ie it uses two different locks.
    A Lock is a mechanism for mutual exclusion. It generally has a notion of ownership and so the thread that locks must be the thread that unlocks.
    A Semaphore is a resource counter. There are no constraints on which thread signals() after await(). It is only a protocol that you establish in your code that allows it to be used for exclusion.
    A bounded-buffer generally needs two synchronization aids:
    a) an exclusion control to ensure the data structure is not corrupted by concurrent access
    b) a coordination control to allow consumers to block when the buffer is empty, or producers to block when the buffer is full.
    These two can be combined by using "synchronized" methods and wait/notify. Or by using Lock and associated Condition objects. Or you can use "synchronized" blocks or Lock for exclusion, and handle the coordination using a seperate semaphore (which must use some form of internal synchronization too - but perhaps more efficient.)
    If you have a lock-free data structure, such as ConcurrentLinkedQueue then you don't need anything for (a) and so you only need coordination. So try using a Semaphore: put() increments it and take() decrements it.
    But the Semaphore still becomes a serialization point in your code.

  • FM to Lock and Unlock the Tcode CJ02

    Hi,
    I want to lock and unlock the Tcode CJ02, my code is as below.When I am executing the Report, I am able to create the Settlement Rule in first Row but I am getting an Error Mesage saying " Subproject 4-0123-02-01-01-10-01 is currently processed by USER" though there is no other session open under the user name when trying to create settlement rule in second row in the loop. Wbs element that ima using for creation of settlement rules is "4-0123-02-01-01-10-01".
    loop at it_src into wa_src.
    Lock the Tcode 'CJ02'.
    Perform BDC Recording to Create Settlement Rule.
    Unlock the Tcode 'CJ02'.
    endloop.
    Regards,
    Deepthi.

    Hi, you can block the Subproject with Lock Object, you can create this under SE11
    after you have created this, use these FM for Enqueue/Dequeue,
      call function 'ENQUEUE_EZ_ODAPROF_PO'
           exporting
                mode_ztma_odaprof_po = 'E'
                mandt                = sy-mandt
                ebeln                = cod_oda
                ebelp                = cod_pos
           exceptions
                foreign_lock         = 1
                system_failure       = 2
                others               = 3.
      call function 'DEQUEUE_EZ_ODAPROF_PO'
       exporting
         mode_ztma_odaprof_po       = 'E'
         mandt                      = sy-mandt
         ebeln                      = cod_oda
         ebelp                      = cod_pos

  • Lock and Unlock user for a period of time

    I need to lock a specific su01 user for a specific period of time each day.  Does anyone have any idea how to accomplish this task?

    Hi Lye and Elvira,
    I am not logged on, but fairly certain that calling FM BAPI_USER_GET_DETAIL will also deliver the lock status / reason and user existence check etc, which means that the program can react appropriately to the UFLAG lock and the reason for it (if coded to do so). It would also spare the select on USR02 which might change or even be blocked.
    A bigger problem I see with preventing a user from doing something from a certain point in time onwards using this lock-approach, is that the user might already be logged on!
    @ Elvira Knight and ELVIRA KNIGHT regarding points: You have 2 SDN ID's now. You need to logon as the ID which created the thread (Elvira Knight originally asked the question) either by using the P- or S-number from the registration or the email address (you might need to temporarily change ELVIRA KNIGHT's email address to do that). Then you will be able to assign points for the thread which you started as Elvira Knight.
    Theoretically I could add the points for you, but I prefer not to interfer in the decisions and points of SDN members (it is a free world  - unless there is points collaboration...). The future of the points-system is indeed also hanging in a bit of a balance because of that reason. You can email me via the address in my business card if you need some help.
    Cheers,
    Julius

Maybe you are looking for

  • Mega 180 spdif out w/ Linux ALSA

    Has anyone managed to get the spdif output working under Linux ALSA?  I've got analog out working no prob, but I'm getting nothing out on optical. A working .asoundrc  file would be much appreciated. Thanks, Roman

  • How to create index - Fuzzy Matching and Stemming

    Hi, I have a problem with creating and index for fuzzy matching and stemming with my expect behavious I Have table customer and column sortname. This table ussally contains values in format: "Surname, FirstName" "Lenox, Carl" "Svensson, Max" "Hamlber

  • Upgraded iTunes but can't play videos anymore

    so I upgraded my iTunes to the 7.1 version and now I can't play any of my videos or podcast videos. please help me Mac Mini   Mac OS X (10.4.7)  

  • SharePort news and announcement web part cuts off news item.

    Hello, I am not sure where to turn to, but I have a web part on a SharePoint 2013 page where it displays news and announcement items.  4 lines of text are displayed, but words are cut off.  For example: The day was grey and stormy in the middl... Rea

  • Photoshop Elements 11 and jpeg files

    I have pictures I took in jpeg before I really knew what I was doing and so when I want to open them in photoshop I can't open them to be able to fully edit them with the histogram like you can a raw file.  Any thing I can do to have more options to