Web session and authentification session pb with wl6.0

Hi,
I am evaluating weblogic 6.0 on windows 2000.
I have a little web application, with some URL (html, servlet...), I want to protect.
So I defined a <security-constraint> element in my web.xml
file, and I binded the logical roles with real participant in
weblogic.xml
It works very well at startup. I launch a browser, request a protected URL and the
authentification window popup. I enter valid info and I can access my URL.
Perfect.
Now I want to give the possibility to my user to terminate a session, to disconmect,
so I had a button, (disconnect) which invoque a servlet which get the current session
and invalidate it.
I checked, the session is destroyed and a new one is defined (new ID, new counter...),
but my user are still connected. It means that if I want to acces a protected URL,
I still can do it.
more strange. In both a secured and unsecured page I print the User Principal. When
I connect, the two pages print the same and right value.
But if I disconnect, the unsecured page print null(no connection for this session)
and the secured page print the principal I used to connect in the previous message.
I know this message is a little bit long, but I tried to give the cleares context.
Has anyone ancountered that kind of problem? Is there a solution.
I pass the test with netscape 4.76, netscape 6.01, Internet Explorer 5.50. I got
the same behavior each time...
Thanks
Nicolas

If you use a Form to authenticate then the browser is unaware of the
username and password. The PetStore demonstrates how it's done in
..\samples\petStore\source\com\bea\estore\util\WLSecurityAdapter.java
"Nicolas GANDRIAU" <[email protected]> wrote in message
news:[email protected]...
>
Hi John,
thank you for your answer. It confirmed my first guess, that the
browser keep the secret info and send them back to the server.
The server does not make any attachment with the current session.
But you talk about a "ServletAuthentication" example which presents theway to bind
the login info in the session. I have not found this servlet, in weblogic6.0 distribution
or J2EE API.
Can you give me the exact reference of this servlet.
Thank you for your help.
Nicolas
"John Lindwall" <[email protected]> wrote:
Nicolas,
It is my understanding that the authentication information for this
scenario
(ie HTTP BASIC authentication) is not contained in the session -- it is
maintained by the browser and resent with every request. That is why
invalidating the session makes no difference. If you have a HTTPsnooping
utility you will see the "Authorization" information (albeit encodedusing
BASE64) present in the requests from your browser to the server.
FYI: I've noticed that by using the ServletAuthentication class tomanually
perform authentication, it DOES in fact store the authentication info in
the
session. There is a "done()" method in this class which removes thisinfo
from the session (ie performs a logout).
If this link reproduces properly, check it out -- it's a good simple
explanation of what's going on:
http://www.support.lotus.com/sims2.nsf/852561c1006719a98525614100588964/877
a
0ac029a78f8a8525645f0069a34d?OpenDocument
For tons of detail on BASIC authentication see
ftp://ftp.isi.edu/in-notes/rfc2617.txt
John
Nicolas GANDRIAU <[email protected]> wrote in message
news:[email protected]...
Hi,
I am evaluating weblogic 6.0 on windows 2000.
I have a little web application, with some URL (html, servlet...), I
want
to protect.
So I defined a <security-constraint> element in my web.xml
file, and I binded the logical roles with real participant in
weblogic.xml
It works very well at startup. I launch a browser, request a protectedURL
and the
authentification window popup. I enter valid info and I can access myURL.
Perfect.
Now I want to give the possibility to my user to terminate a session,to
disconmect,
so I had a button, (disconnect) which invoque a servlet which get thecurrent session
and invalidate it.
I checked, the session is destroyed and a new one is defined (new ID,new
counter...),
but my user are still connected. It means that if I want to acces aprotected URL,
I still can do it.
more strange. In both a secured and unsecured page I print the UserPrincipal. When
I connect, the two pages print the same and right value.
But if I disconnect, the unsecured page print null(no connection for
this
session)
and the secured page print the principal I used to connect in the
previous
message.
I know this message is a little bit long, but I tried to give the
cleares
context.
Has anyone ancountered that kind of problem? Is there a solution.
I pass the test with netscape 4.76, netscape 6.01, Internet Explorer
5.50.
I got
the same behavior each time...
Thanks
Nicolas

Similar Messages

  • Disconnect session and kill session

    Hi
    what is the difference between
    disconnect session and kill session
    Edited by: Pascal Nouma on 21/10/2009 16:23

    Hi,
    You can use the supplied package [dbms_metadata|http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_metada.htm#i1015856] to get the DDL for database objects, including sequences.
    If you want to continue working on this query, then I think you need a CASE expression to do one thing for 0 vlaues, and another for values >0.
    Something like this:
    select  'create sequence '
    ||     SEQUENCE_NAME
    ||     ' minvalue '
    ||      MIN_VALUE
    ||     ' maxvalue '
    ||     MAX_VALUE
    ||      ' increment by '
    ||      INCREMENT_BY
    ||     decode      ( CYCLE_FLAG
              , 'N'     , ' nocycle '
                   , ' cycle '
    ||     CASE
              WHEN  cache_size = 0
              THEN  ' NOCACHE'
              ELSE  ' cache ' || cache_size
                        || ' start with '
                        || LAST_NUMBER
         END
    ||     ';'
    from      user_sequences;You can also use DECODE instead of CASE (and vice-versa).
    Edited by: Frank Kulash on Oct 21, 2009 7:34 PM
    A few minutes ago this question was about re-creating sequences. What happened?

  • Determine blocking sessions and blocked sessions in 9iR2

    Hi,
    Running 9.2.0.7 on Solaris 2.
    We are trying to develop a query that can show us the blocked sessions and the session causing it. I have one working for 11 but for 9i, its a little more trickier. I am running these two so far:
    select s1.username || '@' || s1.machine || ' ( SID=' || s1.sid ||
           ' )  is blocking ' || s2.username || '@' || s2.machine || ' ( SID=' ||
           s2.sid || ' ) ' AS blocking_status
      from gv$lock l1, gv$session s1, gv$lock l2, gv$session s2
    where s1.sid = l1.sid
       and s2.sid = l2.sid
       and l1.BLOCK = 1
       and l2.request > 0
       and l1.id1 = l2.id1
       and l2.id2 = l2.id2;
    select do.object_name,
           row_wait_obj#,
           row_wait_file#,
           row_wait_block#,
           row_wait_row#,
           dbms_rowid.rowid_create(1,
                                   ROW_WAIT_OBJ#,
                                   ROW_WAIT_FILE#,
                                   ROW_WAIT_BLOCK#,
                                   ROW_WAIT_ROW#)
      from gv$session s, dba_objects do
    where sid = 543
       and s.ROW_WAIT_OBJ# = do.OBJECT_ID;Reason I need this is that lately we have been getting a lot of DEADLOCKS and we want to determine why this is happening a lot now and we want to start with who it is and what objects are causing it....any suggestions?

    mbobak wrote:
    There are a few critical pieces to interpreting a deadlock trace file. First, to be clear, you're getting ORA-00060, not ORA-04020 (which is a library cache deadlock), correct?
    If so, the tracefile will contain a deadlock graph. This will show the type of enqueue involved (TM or TX are the likely candidates), and the modes that locks and requests are being made.
    Then, there's the SQL which encountered the deadlock, and finally, the other SQL involved in the deadlock.
    All the above information is in the deadlock trace file.
    Using it, you ought to be able to determine root cause of the deadlock.
    If you need help understanding it, post here. If you post the deadlock graph, make sure you use code tags, or it will be unreadable.Yes we are getting the ORA-00060. This is what we get exactly from the AppTeam from the App:
    Available exception message: iims.ge.common.exception.IIMSTechnicalException : ORA-00060: deadlock detected while waiting for resourceFrom our latest Deadlock occurence we got a LMD Trace file generated. We can see the DeadLock graph and its SQL. We the enqueue of TX and it's modes. Basically everything you asked for we see it in the trace file. What we want to see is what is causing it or who is so we can fix it. Maybe I am not reading the trace file correctly. I appreciate your assistance in helping me interpret the trace file. As requested, here is the trace file.
    Dump file /var/local/oracle/logs/ora_prod_can1_lmd0_4432.trc
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
    With the Partitioning and Real Application Clusters options
    JServer Release 9.2.0.8.0 - Production
    ORACLE_HOME = /opt/oracle/9.2.0
    System name:    SunOS
    Node name:      can-clust01
    Release:        5.9
    Version:        Generic_118558-36
    Machine:        sun4u
    Instance name: ORA_PROD_CAN1
    Redo thread mounted by this instance: 0 <none>
    Oracle process number: 5
    Unix process pid: 4432, image: oracle@can-clust01 (LMD0)
    *** SESSION ID:(4.1) 2010-08-15 08:07:02.736
    open lock on RM 0 0
    *** 2010-08-15 08:07:31.353
    open lock on RM 0 0
    *** 2010-08-16 11:17:21.469
    user session for deadlock lock 40972c9c0
      pid=50 serial=6956 audsid=189500961 user: 61/IIMS_UWR
      O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.1] :
    BLOCKED 40972c570 5 [0x90014][0x19bb82],[TX] [131094,2] 1
    BLOCKER 40972bb98 5 [0x90014][0x19bb82],[TX] [65586,6177] 0
    BLOCKED 40972c9c0 5 [0x110014][0x12ec40],[TX] [65586,6177] 0
    BLOCKER 40972ba18 5 [0x110014][0x12ec40],[TX] [131094,2] 1
    user session for deadlock lock 40972c9c0
      pid=50 serial=6956 audsid=189500961 user: 61/IIMS_UWR
      O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.2] :
    BLOCKED 40972c9c0 5 [0x110014][0x12ec40],[TX] [65586,6177] 0
    BLOCKER 40972ba18 5 [0x110014][0x12ec40],[TX] [131094,2] 1
    BLOCKED 40972c570 5 [0x90014][0x19bb82],[TX] [131094,2] 1
    BLOCKER 40972bb98 5 [0x90014][0x19bb82],[TX] [65586,6177] 0
    *** 2010-08-16 11:17:42.495
    user session for deadlock lock 4098bcd08
      pid=59 serial=981 audsid=189501588 user: 61/IIMS_UWR
    O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.3] :
    BLOCKED 41228b128 5 [0x70001][0x178a52],[TX] [131100,2] 1
    BLOCKER 4098bade8 5 [0x70001][0x178a52],[TX] [65595,583] 0
    BLOCKED 4098bcd08 5 [0x130025][0x1475c9],[TX] [65595,583] 0
    BLOCKER 412275b78 5 [0x130025][0x1475c9],[TX] [131100,2] 1
    user session for deadlock lock 4098bcd08
      pid=59 serial=981 audsid=189501588 user: 61/IIMS_UWR
      O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.4] :
    BLOCKED 4098bcd08 5 [0x130025][0x1475c9],[TX] [65595,583] 0
    BLOCKER 412275b78 5 [0x130025][0x1475c9],[TX] [131100,2] 1
    BLOCKED 41228b128 5 [0x70001][0x178a52],[TX] [131100,2] 1
    BLOCKER 4098bade8 5 [0x70001][0x178a52],[TX] [65595,583] 0Let's see what we can get out of this now :)

  • V$session and gV$session

    Can anyone explain v$session and gv$session ;

    Prefix G in GV$ means GLOBAL. The best way to find out the the difference between v$session and gv$session is to look in v$fixed_view_definition.
    V$SESSION
    select SADDR,
           SID,
           SERIAL#,
           AUDSID,
      from GV$SESSION
    where inst_id = USERENV('Instance')GV$SESSION
    select s.inst_id,
           s.addr,
           s.indx,
           s.ksuseser,
           s.ksuudses,
           s.ksusepro,
           s.ksuudlui,
           s.ksuudlna,
           s.ksuudoct,
           s.ksusesow,
           decode(s.ksusetrn, hextoraw('00'), null, s.ksusetrn),
           decode(s.ksqpswat, hextoraw('00'), null, s.ksqpswat),
           decode(bitand(s.ksuseidl, 11),
                  1,
                  'ACTIVE',
                  0,
                  decode(bitand(s.ksuseflg, 4096), 0, 'INACTIVE', 'CACHED'),
                  2,
                  'SNIPED',
                  3,
                  'SNIPED',
                  'KILLED'),
           decode(s.ksspatyp, 1, 'DEDICATED', 2, 'SHARED', 3, 'PSEUDO', 'NONE'),
           s.ksuudsid,
           s.ksuudsna,
           s.ksuseunm,
           s.ksusepid,
           s.ksusemnm,
           s.ksusetid,
           s.ksusepnm,
           decode(bitand(s.ksuseflg, 19),
                  17,
                  'BACKGROUND',
                  1,
                  'USER',
                  2,
                  'RECURSIVE',
           s.ksusesql,
           s.ksusesqh,
           s.ksusesqi,
           decode(s.ksusesch, 65535, to_number(null), s.ksusesch),
           s.ksusepsq,
           s.ksusepha,
           s.ksusepsi,
           decode(s.ksusepch, 65535, to_number(null), s.ksusepch),
           decode(s.ksusepeo, 0, to_number(null), s.ksusepeo),
           decode(s.ksusepeo, 0, to_number(null), s.ksusepes),
           decode(s.ksusepco, 0, to_number(null), s.ksusepco),
           decode(s.ksusepco, 0, to_number(null), s.ksusepcs),
           s.ksuseapp,
           s.ksuseaph,
           s.ksuseact,
           s.ksuseach,
           s.ksusecli,
           s.ksusefix,
           s.ksuseobj,
           s.ksusefil,
           s.ksuseblk,
           s.ksuseslt,
           s.ksuseltm,
           s.ksusectm,
           decode(bitand(s.ksusepxopt, 12), 0, 'NO', 'YES'),
           decode(s.ksuseft,
                  2,
                  'SESSION',
                  4,
                  'SELECT',
                  8,
                  'TRANSACTIONAL',
                  'NONE'),
           decode(s.ksusefm, 1, 'BASIC', 2, 'PRECONNECT', 4, 'PREPARSE', 'NONE'),
           decode(s.ksusefs, 1, 'YES', 'NO'),
           s.ksusegrp,
           decode(bitand(s.ksusepxopt, 4),
                  4,
                  'ENABLED',
                  decode(bitand(s.ksusepxopt, 8), 8, 'FORCED', 'DISABLED')),
           decode(bitand(s.ksusepxopt, 2),
                  2,
                  'FORCED',
                  decode(bitand(s.ksusepxopt, 1), 1, 'DISABLED', 'ENABLED')),
           decode(bitand(s.ksusepxopt, 32),
                  32,
                  'FORCED',
                  decode(bitand(s.ksusepxopt, 16), 16, 'DISABLED', 'ENABLED')),
           s.ksusecqd,
           s.ksuseclid,
           decode(s.ksuseblocker,
                  4294967295,
                  'UNKNOWN',
                  4294967294,
                  'UNKNOWN',
                  4294967293,
                  'UNKNOWN',
                  4294967292,
                  'NO HOLDER',
                  4294967291,
                  'NOT IN WAIT',
                  'VALID'),
           decode(s.ksuseblocker,
                  4294967295,
                  to_number(null),
                  4294967294,
                  to_number(null),
                  4294967293,
                  to_number(null),
                  4294967292,
                  to_number(null),
                  4294967291,
                  to_number(null),
                  bitand(s.ksuseblocker, 2147418112) / 65536),
           decode(s.ksuseblocker,
                  4294967295,
                  to_number(null),
                  4294967294,
                  to_number(null),
                  4294967293,
                  to_number(null),
                  4294967292,
                  to_number(null),
                  4294967291,
                  to_number(null),
                  bitand(s.ksuseblocker, 65535)),
           s.ksuseseq,
           s.ksuseopc,
           e.kslednam,
           e.ksledp1,
           s.ksusep1,
           s.ksusep1r,
           e.ksledp2,
           s.ksusep2,
           s.ksusep2r,
           e.ksledp3,
           s.ksusep3,
           s.ksusep3r,
           e.ksledclassid,
           e.ksledclass#,
           e.ksledclass,
           decode(s.ksusetim,
                  0,
                  0,
                  -1,
                  -1,
                  -2,
                  -2,
                  decode(round(s.ksusetim / 10000),
                         0,
                         -1,
                         round(s.ksusetim / 10000))),
           s.ksusewtm,
           decode(s.ksusetim,
                  0,
                  'WAITING',
                  -2,
                  'WAITED UNKNOWN TIME',
                  -1,
                  'WAITED SHORT TIME',
                  decode(round(s.ksusetim / 10000),
                         0,
                         'WAITED SHORT TIME',
                         'WAITED KNOWN TIME')),
           s.ksusesvc,
           decode(bitand(s.ksuseflg2, 32), 32, 'ENABLED', 'DISABLED'),
           decode(bitand(s.ksuseflg2, 64), 64, 'TRUE', 'FALSE'),
           decode(bitand(s.ksuseflg2, 128), 128, 'TRUE', 'FALSE')
      from x$ksuse s, x$ksled e
    where bitand(s.ksspaflg, 1) != 0
       and bitand(s.ksuseflg, 1) != 0
       and s.ksuseopc = e.indxAlexander Anokhin
    http://alexanderanokhin.wordpress.com/

  • GV$SESSION and V$SESSION | Find who is connecting

    Any one please brief what is the diff b/w
    GV$SESSION and V$SESSION
    and what is the use os both...
    Can we find the user who is connecting to the oracle server using gv$session view.
    Oracle Version is 9i R2
    OS is Solaris 9

    You can find the users connecting to each node if you query the v$session. You must be aware of the node you are connecting when issuing this query because the information is exclusive from the node you are connected to.
    If you query the gv$session the information gathered is the same, but as you can see it reports information from all RAC participant users.
    If you take a look at the dynamic views, you will find a lot of gv$ views, those are global views that can be seen from whichever instance you are connected to and it will report information about all the instances in a single query. As you can see the gv$ views include an INST_ID (instance ID) column, which declares the number of instance the information comes from.
    ~ Madrid
    http://hrivera99.blogspot.com

  • Reset JSF session and the managed beans with sesison scope

    Hi,
    this is a very general question and maybe stupid for most of you. I have my jsf/facelets web application and i use inside of this application some managed beans, which are session beans. I want to know how is it possible to reset this beans. I'm asking this question beacuse i have this kind of problem: i built my web application which has a login form and i use the browser to test it. When i browse to the login page and I login with my credentials i get my customized home page. Then i open another istance of the browser and i browse to the login page again but this time i login as a different user. The result home page is the same as i got before with my login credentials, so the session is always the same. Instead i want the session and all its objects to be resetted for the new user! Do youn know which is the solution?

    The fact is that i want to have two sessions in parallel, so using the same browser and opening two tabs, i want to browse to the login page and access as two totaly different users and using in parallel the application without the problem of one user's action affecting the other user beacuse of session sharing. So I want to force the application to create two different session for the two users logins, because as i told you before as it is now, they are sharing the same sesison. And i think that if i at the login time I iterate thorugh the session and delete all the objects i will be able to have only one session per time. Isn't it?

  • Stateful session and stateless session

    i want to use session pool, but in document being stateful session or stateless session are one of standards.
    i do not understand the difference of them. who can tell me something about this?
    thanks! and the session we commonly used is stateful or stateless ?

    A stateful session is one that must maintain a state across requests; such as one that may require package states and the like. As such, it cannot be reused by other requests until it is completely finished.
    On the other hand, a stateless session is one that performs somewhat like a singleton action (statement cache for example) which, upon completion, can be reused in the pool for any other request as it does not require the state to be maintained.
    The most commonly used depends on the application, but I would say stateless is more common as it's used for performing small simple things (queries or small transactions) without requiring procedural-type processing overhead.
    Not sure if that description really helps you though.

  • Web.Show_document and oracle session

    Hi,
    I am uploading a file on to Oracle Portal through web util. After this, I am calling the web.showdocument to view the uploaded file. But I am seeing only a blank page. This is the sequence flow.
    1. Forms call a procedure which will create a dummy record of the document to be uploaded. This insert is happening as an autonomous transaction.
    2. The Forms call webutil and uploads the document
    3. Then I am calling web.show_document to view the document. The browser is opening an empty page. But once I did an explicit commit, I can open and view the document successfully in the same way.
    I am using '_blank' option.
    So, what I infer from this is that web.show_document opens the browser with a new oracle session by passing authentication details internally. Is there any way view the document without doing an explicit commit?
    Thank you.
    Warm Regards,
    Raja.
    Message was edited by:
    Raja M

    Check
    [b]Mozilla Firefox Options
    File Types
    The Download Actions dialog, which can be opened by clicking the
    Manage... button, contains file types that you have downloaded.
    You can choose what Firefox should do when clicking on a specific
    file type by selecting the file type you want to modify and clicking the
    Change Action... button.

  • Clearing Session and/or App variables with Log-out Page?

    Greetings
    I have 3 distinct user types for my app- admins, appraisers and clients.
    All have their own directories and each directory has it's own Application.cfm:
    1) <cfapplication name="appraiseri"
    applicationtimeout="#CreateTimeSpan(0,2,0,0)#"
    clientmanagement="Yes"
    sessionmanagement="Yes"
    sessiontimeout="#CreateTimeSpan(0,2,0,0)#"
    SetClientCookies="Yes">
    2) <cfapplication name="appraiserview" ......
    3) <cfapplication name="clientview" .......
    Each have their own login which simply uses their ID in the DB as the session variable.
    login_do.cfm:
    1) Appraisers: <CFIF auth_direct_appraiser.RecordCount NEQ 0 >
    <cfset Session.appraiser_user_id =auth_direct_appraiser.appraiser_ID>
    <cfset Session.appraiser_fname =auth_direct_appraiser.appraiser_fname>
    <cfset Session.appraiser_lname =auth_direct_appraiser.appraiser_lname>
    2) Admins: <cfset Session.user_id =auth_direct.staff_ID> ......
    3) Clients: <cfset Session.processor_user_id =auth_direct_processor.processor_ID>
    I have had a session persisting for a week now- I have no idea how to get rid of it, and if one simply hits the "login" submit button with no UN or PW, it runs a query on a client (the same one) ?
    My logout page is not working at all- if the code were correct, it would clear any session variable? I have not really set an app variable (except timeout) so no need to clear that?
    Here is the code:
    <CFLOCK SCOPE="Session" TYPE="Exclusive" TIMEOUT="60">
        <CFLOOP COLLECTION="#Session#" ITEM="Key">
            <CFIF NOT ListFindNoCase('IveSeenIT', Key)>
                <CFSET StructDelete(Session, Key)>
            </CFIF>
        </CFLOOP>
    </CFLOCK>
    <SCRIPT LANGUAGE="JavaScript">
        alert("You have been logged out from the XXXXX Intranet")
        location.href='login.cfm';
    </SCRIPT>
    Any help would be appreciated- this is leaving a huge security gap in the app right now.
    Thanks

    It in unnecessary to delete session keys to invalidate them. With proper coding they should be invalidated once the session times out.
    Sessiontimeout values are usually around half an hour and applicationtimeout values are usually of the order of 1 day. Also, one way to relate session to login is to use the loginStorage attribute. If you have no need for client management, switch it off.
    Hence, for example,
    <cfapplication name="appraiseri"
    applicationtimeout="#CreateTimeSpan(1,0,0,0)#"
    clientmanagement="no"
    sessionmanagement="Yes"
    sessiontimeout="#CreateTimeSpan(0,0,30,0)#"
    SetClientCookies="Yes"
    loginStorage="session">
    I am assuming that, for login and logout pages, you will - ignoring the details - have something like
    Login:
    <cflogin>
            <cfloginuser name = "some_name" password = "some_password"   roles = "appraiser"/>
    </cflogin>
    Logout:
    <cflogout>

  • Web contexts and http session

    Is there anyway to share a HTTP session between 2 web contexts?
    Both web contexts are running on the same server.
    I wanted to redirect a user from one web context to another and the share
    session so that
    i don't have ask the user to authenticate again and share the session
    content from the
    previous web context.
    Thanks
    /selvan
    Captura Software, Inc

    THanks for the info.
    I am using WLS 6.1 version.
    /selvan
    "Cameron Purdy" <[email protected]> wrote in message
    news:3ba0b484$[email protected]..
    Look at the J2EE / Servlet specs for "single sign on" discussions. I've
    never tried it specifically, and I know from others that various releases
    either did it by default or didn't seem to support it at all. What WL
    version are you using?
    Peace,
    Cameron Purdy
    Tangosol Inc.
    << Tangosol Server: How Weblogic applications are customized >>
    << Download now from http://www.tangosol.com/download.jsp >>
    "Selvan Ramasamy" <[email protected]> wrote in message
    news:[email protected]..
    Is there anyway to share a HTTP session between 2 web contexts?
    Both web contexts are running on the same server.
    I wanted to redirect a user from one web context to another and the
    share
    session so that
    i don't have ask the user to authenticate again and share the session
    content from the
    previous web context.
    Thanks
    /selvan
    Captura Software, Inc

  • Scope of component session and http session

    Hi,
    I wish multiple iviews to share the same information.  I am unsure however of the scope of portalcomponentsession, as opposed to http session. I have read the docs, and they are unclear as to the life and scope of these 2 sessions within portal.  Which one is tied to the user?  And which one is available over multiple iviews.
    I would appreciate any help with this
    Thanks
    Mariana

    Hi Mariana,
    > I am sorry
    No problem at all
    > I did not want to close the topic by mistake
    Just for explanation: If you give ten points (they call it blue, my eyes say black), this star is marked in the overview and somehow displaying "solved". In addtion, if you have marked a question as question, you can mark it as answered. As long as you don't do one of both things, you can reward points (2, 6) also in between without trimming your chances to get additional answers.
    > I did not de-mark the question,
    > I just replied to the post.
    When you initially opened the thread (that was no reply), it <i>seems</i> that you've de-marked this thread as question (the standard is: it is a question).
    Anyhow, some people seem to have made the experience that they definitely did not de-mark the thread as question, but it wasn't marked as question, anyhow.
    In this case, a short and friendly mail to [email protected] with the problem stated and alink to the thread concernced will help to repair everything...
    Best regards
    Detlev

  • Idle session and active session

    how can I clear/remove the session user in oracle 10g express, via asp.net (1.1), is it possible?
    is idle session can affect the number of concurrent users? or only active session...

    coz right we're having a problem. first of all, i would like to say that I'm a oracle novice.
    this is the scenario, we have 1 server (p4 2.2ghz w/ 2gig of memory), oracle 10g express install and our application front end (asp.net 1.1 is also install). while running of application and reached 5 or more that users have connected tru asp.net, the connection to the oracle is refuse.
    can you help me regarding our problem.
    thanks in advance

  • Although browser.sessionstore.resume_from_crash = false, it still is restoring session and even session which where password protected! how to solve

    In the config browser.sessionstore.resume_from_crash is set to false, However when restarting FF all sessions can be restored by pressing the button session restore on the home page.
    '''It restores also password protected sessions without asking for any password! This is unacceptible!'''

    See:
    * http://kb.mozillazine.org/Browser.sessionstore.privacy_level
    * http://kb.mozillazine.org/Session_Restore

  • Oracle portal  session and pl/sql

    Hi all i use portal v.10.1.2.2.0 and i would like to play with a session variable. all i do is
    grant execute on wwsto_api_session to myportal from portal schema. and then i want to do
    l_store := portal.wwsto_api_session.load_session (p_domain, p_sub_domain);
    l_store.set_attribute ('myname', 'name');
    l_store.save_session;
    1) i do not know what is the p_domain, p_sub_domain
    2) when i do wwsto_api_session.get_sub_domain and wwsto_api_session.get_domain i get an error.
    How can i read and write to a variable session in oracle portal? to to like java set session and get session?
    Thank you in Advance,
    Antonis

    [email protected] wrote:
    Hi all i use portal v.10.1.2.2.0 and i would like to play with a session variable. all i do is
    grant execute on wwsto_api_session to myportal from portal schema. and then i want to do
    l_store := portal.wwsto_api_session.load_session (p_domain, p_sub_domain);
    l_store.set_attribute ('myname', 'name');
    l_store.save_session;
    1) i do not know what is the p_domain, p_sub_domain
    2) when i do wwsto_api_session.get_sub_domain and wwsto_api_session.get_domain i get an error."Storage is located by the combination of the domain and subdomain parameters, and the Login session ID.
    If a session store object has not previously been created for this combination of domain, sub-domain, and session ID, then an empty session store object is created and returned. "
    How can i read and write to a variable session in oracle portal? to to like java set session and get session?Hi,
    You may want to see the wwsto_api_session here in [Portal APIs|http://www.oracle.com/technology/products/ias/portal/html/plsqldoc/pldoc1012/index.html].
    "Working with the session object
    The general procedure for working with the session object is:
    1. Load the session object, with an appropriate domain and sub-domain combination, using the load_session method.
    2. Manipulate the content of the object using the set_attribute methods, or just access its content using the get_attribute methods.
    3. Force these changes to be saved, using the save_session method.
    Typically this sequence occurs within the scope of one client routine that extracts and/or sets all of the client states. For example:
    declare
    l_store portal30.wwsto_api_session;
    l_date date;
    begin
    l_store := portal30.wwsto_api_session.load_session ('PORTAL', 'TEST');
    l_store.set_attribute ('LAST_ACCESSED', sysdate);
    l_store.set_attribute ('USERNAME', 'SMITH');
    l_store.set_attribute ('COUNRTY_CODE', 1);
    l_store.set_attribute ('LOCATION', 'US');
    l_store.set_attribute ('LAST_LOGGED_ON', sysdate);
    l_store.set_attribute_as_string
    ('OFFICE_LOCATION', 'CALIFORNIA', 'US', 'STRING');
    l_store.save_session;
    end;
    The login session that creates the session storage object is defined by wwctx_api.get_sessionid. "
    ref: wwsto_api_session for Portal 10.1.2
    then, look for the functions for getting attributes as number, varchar2, string or index, etc. in the above link.
    hope that helps!
    AMN

  • Hi Friends ! Wishing you a happy and prosperous new year  with my problem !

    I need your help to understand Debugging ! I really dont know Please provide me with best links according to you !
    thanks

    hi,
    Please find the below points regding debugging:
    Debugger
    This section of the ABAP Workbench documentation provides information on how to use the Debugger as a test tool for finding errors in the source code of an ABAP program.
    Functional Overview
    Use
    The ABAP Debugger is an integrated test tool within the ABAP Workbench. You use it to check the program logic and to find errors in the source code of an ABAP program. In the Debugger, you can step through the source code of a program. The running program is interrupted after each step, allowing you to check its processing logic and the results of individual statements.
    As of Release 6.10, you can also run Business Server Pages (BSP) in the debugging mode. You can also display and set breakpoints here. Business Server Pages can be displayed in the Object Navigator when you select an appropriate application under BSP Application.
    Features
    The Debugger provides an efficient means of identifying errors in ABAP programs. It contains the following functions:
    Ways of starting the Debugger
    Choosing different views
    Choosing different execution options in the Debugger
    Displaying source code in the Debugger
    • Setting and deleting breakpoints
    • Setting and deleting watchpoints
    • Stopping a program at a particular statement or event
    Displaying and changing field contents at runtime
    Displaying ABAP Objects and references
    Displaying and positioning strings
    Setting and deleting database locks
    Opening the ABAP Editor, or Object Navigator
    System settings and runtime warnings
    Starting the Debugger
    There are two possible strategies for starting the Debugger in the ABAP Workbench:
    By setting breakpoints then running the program
    By running the program in debugging mode.
    Setting Breakpoints
    A breakpoint is a signal in a specific line of the program source code. This signal indicates to the ABAP runtime processor to stop the program at the relevant line and start the ABAP Debugger. A distinction is made between static and dynamic breakpoints. For further information about the different types of breakpoints and how to use them, refer to Breakpoints.
    Direct Processing
    You can start the Debugger without previously having set breakpoints. This is the best procedure to use when you want to test a program right from the beginning. It is also a useful procedure if you are not overly familiar with the program and therefore are not sure where best to set breakpoints. You can start the Debugger as follows:
    From the Object Navigator
    Select a report or transaction and choose Program ® Test ® Debugging.
    From the ABAP Editor
    Choose Program ® Execute ® Debugging (or the Debugging pushbutton).
    From any screen
    Choose System ® Utilities ® Debug ABAP.
    From any screen
    Enter /h in the command field.
    Display Modes in the Debugger
    When you are debugging a program, there are various display modes that you can use. All of the display modes have the same structure. The top part of the screen displays an extract of the program source code. The bottom part displays the information specifically available in that display mode. There are also pushbuttons on the screen allowing you to switch to the most frequently-used display modes.
    Display Modes Available Using Pushbuttons
    Fields
    The scrollable field display contains the contents of up to eight fields. The contents of the three most important system fields are always displayed. This is the default display mode in the Debugger. See also Processing Fields
    Table
    Displays the contents of an internal table. This mode allows you to display and edit the entries in an internal table. See also Processing Internal Tables
    Breakpoints
    A scrollable display containing up to 30 breakpoints. Next to each breakpoint is a counter. You can also delete breakpoints in this display. See also Managing Dynamic Breakpoints
    Watchpoints
    You can set a watchpoint for a field so that the program is interrupted whenever the value of that field changes. This display mode contains a list of watchpoints, the fields and programs to which they are assigned, the current values of the fields, and the conditions upon which the watchpoint is activated. See also Setting Watchpoints
    Calls
    This mode displays the current sequence of events, and the sequence of calls up to the current breakpoint. The last active call is displayed at the top of the list; previous calls are listed in reverse chronological order. When an event (for example, START-OF-SELECTION) concludes, it is deleted from the display.
    Overview
    This mode displays the structure of the program. It lists its events, subroutines, and modules, and shows which sections belong to which events. It also displays the section currently being processed.
    Settings
    This mode displays the current Debugger settings. You can change the settings by selecting or deselecting various options. For further information, refer to Settings and Warnings
    Other Display Modes
    You can access other display modes by choosing Goto ® Display data object.
    Single field
    Displays the contents and technical attributes of a field.
    Structured
    field
    Displays the components of a structure, along with their contents and attributes. If you double-click a component, the system displays detailed information for it.
    Strings
    Display the content and current length of the string. You can also display part of the content by means of offset and length.
    Internal table
    Displays the type, line numbers and contents of an internal table.
    Object
    Displays the structure of an ABAP Object.
    For further information on these displays, refer to Displaying Attributes and Displaying ABAP Objects
    Checking System Programs for Errors
    To check a program or program component that is part of the ABAP Workbench (for example, the Screen Painter), you must use the system Debugger. To start the system Debugger, choose System ® Utilities ® Debug System from any screen. To stop the system Debugger, choose Debugger ® Debugging off.
    Displaying Program Attributes
    You can display the attributes Fixed Point Arithmetic, System Program, and Unicode Checks of the program that has just been executed by choosing Goto ® Further Information ® Program Attributes.
    Restarting the Debugger
    If you choose Debugging ® Restart, debugging mode is stopped and the system takes you to the initial screen of the last transaction you called. If, for example, you started an ABAP program in debugging mode from transaction SE38 (ABAP Editor), choosing Debugging ® Restart will take you back to the screen titled ABAP Editor: Initial Screen. If you want to restart the program in debugging mode, choose Debugging.
    Breakpoints
    Apart from direct execution of an ABAP program in the Debugger, it is also possible to start the Debugger call by the exact setting of a breakpoint. This is achieved by setting one or more of these breakpoints in the program. A breakpoint is a signal at a particular point in the program that tells the ABAP runtime processor to interrupt processing and start the Debugger. The program runs normally until the breakpoint is reached.
    There is also a special kind of breakpoint called a watchpoint. When you use watchpoints, the Debugger is not activated until the contents of a particular field change. For further information, refer to Watchpoints.
    Breakpoint Variants
    The Debugger contains different breakpoint variants:
    Static
    The BREAK-POINT statement in an ABAP program. Static breakpoints are not normally user-specific. However, you can make them user-specific.
    Directly-set
    dynamic breakpoints
    Can be set in the ABAP Editor or the Debugger. Dynamic breakpoints are always user-specific, and are deleted when you log off from the R/3 System.
    Breakpoints
    at statement
    The Debugger stops the program directly before the specified statement is executed.
    Breakpoints
    at subroutine
    The Debugger stops the program directly before the specified subroutine is called.
    Breakpoint at function module
    The Debugger stops the program directly before the specified function module is called.
    Breakpoint at method
    The Debugger stops the program directly before the specified method is called.
    Breakpoints at system exceptions
    The Debugger stops the program directly after a system exception, that is, after a runtime error has been intercepted.
    Static Breakpoints
    Static breakpoints are not normally user-specific. Once a user has inserted the statement BREAK-POINT or BREAK name in an ABAP program, the system always interrupts the program at that point for that user or only for the user name. This procedure is only useful in the development phase of an application, when the program execution is always to be interrupted at the same place. For further information, refer to Static Breakpoints.
    In HTTP sessions, a static breakpoint is skipped if you did not set additional dynamic HTTP breakpoints in the editor of a BSP page. Instead, a corresponding system log entry is written, which can be checked using transaction SM21.
    Dynamic Breakpoints
    Dynamic breakpoints are user-specific. Therefore, you should use them if you only want the program to be interrupted when you run it yourself, not when it is being executed by other users. All dynamic breakpoints are deleted when you log off from the R/3 System.
    Dynamic breakpoints are more flexible than static breakpoints, because you can deactivate or delete them at runtime. They have the following advantages:
    You do not have to change the program code
    You can set them even when the program is locked by another programmer
    You can define a counter that only activates the breakpoint after it has been reached
    Special dynamic breakpoints are useful when you want to interrupt a program directly before a particular ABAP statement, a subroutine, or an event, but do not know exactly where to find it in the source code. Event here is used to refer to the occurrence of a particular statement, for example, or calling up a method. Special dynamic breakpoints are user-specific. You can only set them in the Debugger. For further information, refer to Dynamic Breakpoints.
    In HTTP sessions, the system stops both at static and dynamic breakpoints if a dynamic breakpoint was set in the editor of a BSP page before program execution.
    Lifetime and Transfer of Breakpoints
    A static breakpoint remains intact as long as the BREAK-POINT or BREAK-POINT name statement is not removed from the source code. Without saving, dynamic breakpoints only remain intact in the relevant internal session. However, they are effective during the entire user session, if they are saved by choosing Breakpoints ® Save in the ABAP Debugger. For more details on the subject of sessions and user sessions, refer to Modularization Techniques in the ABAP keyword documentation.
    If you call an HTTP session during a user session, only the HTTP breakpoints are loaded when the HTTP session is started. You activate HTTP debugging in the ABAP Editor by choosing Utilities ® Settings ® HTTP Debugging. Depending on the setting, the system then displays either the HTTP or standard breakpoints in the Editor.
    If you call an update session during a user session, breakpoints that were defined beforehand in the calling processing unit are copied to the new update session, where they can be displayed under Breakpoints. If, in the ABAP Debugger, you check Update Debugging under Settings and then, for example, call the update module func using CALL FUNCTION func IN UPDATE TASK, a new window is opened in which you can debug this function module in the update session. All the breakpoints that were set in the calling processing unit can also be processed here.
    Breakpoints at Statements
    You can use this special kind of dynamic breakpoint to interrupt a program directly before an ABAP statement is processed.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint at an ABAP statement:
    1.Choose Breakpoint ® Breakpoint at ® Statement...
    The following dialog box appears:
    2.Enter the ABAP statement.
    The system sets a breakpoint at all points in the program at which the ABAP statement occurs.
    3.Choose ENTER.
    The breakpoint applies to all lines containing the specified statement.
    Result
    The system confirms the breakpoint and adds it to the list in the display. When you finish your debugging session, the breakpoint is automatically deleted unless you have explicitly saved it.
    Breakpoints at Subroutines
    You can use this special kind of dynamic breakpoint to interrupt a program directly before a subroutine is called.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint for a subroutine:
    Choose Breakpoint ® Breakpoint at ® Event/Subroutine.
    The following dialog box then appears:
    Enter the name of the subroutine before which you want to interrupt the program. By default, the Program field contains the name of the program that is currently active. The system sets a breakpoint wherever the specified subroutine occurs in the program code.
    Choose ENTER.
    Result
    The system confirms the breakpoint. The breakpoint is added to the breakpoints displayed.
    Breakpoints at Function Module
    You can use this kind of dynamic breakpoint to interrupt a program directly before a function module is called.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint for a function module:
    Choose Breakpoint ® Breakpoint at ® Function module...
    The following dialog box appears:
    Enter the name of the function module before which you want to interrupt the program. The system sets a breakpoint wherever the specified event, module pool, or subroutine occurs in the program code.
    Choose ENTER.
    Result
    If you entered a valid function module name, the system confirms that the breakpoint has been set. If the function module exists in the system, the new breakpoint is added to the display list.
    Breakpoints at Methods
    You can use this special kind of dynamic breakpoint to interrupt a program directly before a method is called.
    Prerequisites
    You must be already running the program in the debugger.
    Procedure
    To set a breakpoint for methods:
    1. Choose Breakpoint ® Breakpoint at ® Method...
    The following dialog box then appears:
    2. Enter the name of the method and class before which you want to interrupt the program. A breakpoint is then set each time the specified processing block appears in the source code.
    3. Choose ENTER.
    Result
    The system confirms the breakpoint. The breakpoint is added to the list in the display.
    Breakpoints at System Exceptions
    You can use this special form of dynamic breakpoint to interrupt a program immediately after a runtime error has occurred.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint at a system exception:
    Choose Breakpoint ® Breakpoint at ® System exception.
    Result
    The system confirms the breakpoint. The breakpoint is added to the breakpoints displayed.
    When a system exception is triggered, a warning triangle appears in the line containing the statement that caused it. If you double-click the warning triangle, the internal name of the runtime error appears.
    Static Breakpoints
    You should only use static breakpoints during the development phase of an application. You must remove them from your program before you transport it.
    Setting Breakpoints
    To set a static breakpoint, use the ABAP statement BREAK-POINT . Place the breakpoint in the line at which you want to interrupt the program.
    program RSDEBUG_01.
    if SY-SUBRC 0.
    break-point.
    endif.
    When you run the program, the runtime processor interrupts it when the breakpoints occur. You can number your breakpoints to make them easier to identify ( BREAK-POINT 1, BREAK-POINT 2 …).
    Static breakpoints are not normally user-specific. The program is, therefore, always interrupted as soon as the runtime processor reaches the line containing the breakpoint. The program is interrupted regardless of the user who executes it.
    However, you can set user-specific static breakpoints using the BREAK statement followed by your user name. For example, if you use the statement BREAK SMITH , the program is only interrupted when user Smith runs it. Although user-specific breakpoints appear in the program code, they are not active when other users run the program. You should, however, be careful if an application is being used by several users with the same name.
    Deleting Breakpoints
    Since static breakpoints apply to all users, you must remove them from the program once you have finished testing it. In the ABAP Editor, you can find breakpoints quickly by choosing Utilities ® Global search. You can also use the Extended Program Check to find them.
    If you do not remove static breakpoints from your program, they will be transported to your production system. This could cause serious problems in the production system.
    Dynamic Breakpoints
    You can set up to 30 dynamic breakpoints without changing the program code. Dynamic breakpoints can be set either in the ABAP Editor or directly in the Debugger.
    Setting Dynamic Breakpoints in the ABAP Editor
    You can set dynamic breakpoints in the ABAP Editor regardless of whether you are in display or change mode. You can also set breakpoints directly from within the Debugger at runtime. To set a dynamic breakpoint in the ABAP Editor:
    Position the cursor on the line of the source code at which you want to set the breakpoint.
    Choose Utilities ® Breakpoints ® Set or the Stop icon. The system confirms that the breakpoint has been set.
    To display a list of all dynamic breakpoints in a program, choose Utilities ® Breakpoints ® Display. You can use this list to navigate to a particular breakpoint or to delete one or more breakpoints from the program.
    Setting Dynamic Breakpoints in Debugging Mode
    To set a dynamic breakpoint in the Debugger:
    Position the cursor on the line in which you want to set the breakpoint.
    Select the line by double-clicking it or choosing Breakpoint ® Set/delete.
    The system sets the breakpoint, and displays a small stop sign to the left of the relevant line. If the line already contained a breakpoint, it is deleted.
    When you finish your debugging session, the breakpoint is automatically deleted unless you have explicitly saved it.
    Saving Breakpoints
    If you want to leave the Debugger temporarily, you can save your dynamic breakpoints so that they are still active when you return to the Debugger within the same terminal session.
    To save the breakpoints that you have set in the Debugger:
    Choose Breakpoint ® Save.
    The system saves all of the breakpoints that you have set in the current program. These breakpoints will remain active until you either explicitly delete them or log off from the system.
    You can also delete breakpoints that you have saved:
    By deleting individual breakpoints from the display and then saving again. In this case, only your selected breakpoints will be deleted.
    By choosing Breakpoint ® Delete all. In this case, the system deletes all dynamic breakpoints.
    Managing Dynamic Breakpoints
    The ABAP Debugger provides a convenient user interface for managing breakpoints. To open the breakpoint display, choose Breakpoints, or, from the menu, Goto ® Control debugging ® Breakpoints.
    Example
    Functions
    This display mode contains the following functions for breakpoints:
    Breakpoint Display
    The scrollable breakpoint display contains up to 30 dynamic breakpoints. For breakpoints that you set directly, the program name and line number at which the breakpoint occurs are displayed. For special breakpoint forms, the list displays the statements, events, subroutines, and module calls at which the relevant breakpoints are set.
    Counter
    In the breakpoint display, you can specify a counter. When you use a counter, the breakpoint is not activated until it has been reached a specified number of times. For example, if you enter 5 for the counter, the breakpoint is not activated until it is reached for the fifth time. After the breakpoint has been activated, it remains so, and the counter no longer appears in the breakpoint display.
    Deleting Breakpoints
    Position the cursor on the breakpoint that you want to delete, and either double-click the line or choose Breakpoint ® Set/delete. To delete all breakpoints, choose Breakpoint ® Delete all.
    Activating and Deactivating Breakpoints
    Position the cursor on the breakpoint that you want to activate or deactivate and choose Breakpoint ® Activate/deactivate.
    Watchpoints
    Like a breakpoint, a watchpoint is an indicator in a program that tells the ABAP runtime processor to interrupt the program at a particular point. Unlike breakpoints, however, watchpoints are not activated until the contents of a specified field change. Watchpoints, like dynamic breakpoints, are user-specific, and so do not affect other users running the same program. You can only define watchpoints in the Debugger.
    Use
    You set watchpoints in the Debugger to monitor the contents of specific fields. They inform you when the value of a field changes. When the value changes, the Debugger interrupts the program.
    Features
    You can set up to five watchpoints in a program.
    See also Setting Watchpoints.
    You can also specify the conditions on which a watchpoint is to become active.
    You can specify logical conditions between up to five conditional watchpoints.
    See Specifying a Logical Expression.
    You can define watchpoints as either local or global. If you define a global watchpoint, it is active in all called programs. Local watchpoints are only active in the specified program.
    You can change and delete watchpoints.
    See Changing Watchpoints.
    You can use watchpoints to display changes to the references of strings, data and object references, and internal tables.
    See Memory Monitoring with Watchpoints
    Setting Watchpoints
    If you want to interrupt a program when the contents of a field or structure change, use a watchpoint. You can set up to five watchpoints, including watchpoints for strings.
    A watchpoint can be either local or global. Local watchpoints are only valid in the specified program. Global watchpoints are valid in the specified program, and also in all the other programs it calls.
    Procedure
    To set a watchpoint, start the Debugger and proceed as follows:
    Choose Breakpoint ® Create watchpoint or the corresponding pushbutton. The Create Watchpoint dialog box appears:
    Decide whether you want to set a local or global watchpoint.
    Enter the program and the name of the field for which you want to set the watchpoint. In the Program field, the name of the program currently running is always defaulted.
    If you want your watchpoint to be activated each time the contents of the field change, the definition is now complete, and you can return to the Debugger by pressing ENTER .
    To create a conditional watchpoint, that is only activated when a particular situation arises, choose one of the following relational operators.
    Operator
    Meaning
    <
    Less than
    <=
    Less than or equal
    =
    Equal
    <>
    Not equal
    =
    Greater than or equal
    Greater than
    You can use the Comparison field option to specify whether the comparison is to be carried out with a value that you specify or with the contents of another field. Depending on your choice from step 6, enter a value or a field for the comparison.
    Result
    The system confirms the watchpoint and adds it to the list in the display. When you finish your debugging session, the watchpoint is automatically deleted unless you have explicitly saved it.
    Specifying Logical Links
    If you have more than one conditional watchpoint, you can specify a logical link between them:
    OR
    Only one of the specified conditions must be met
    AND
    All of the conditions must be met.
    Changing Watchpoints
    Choose Goto ® Control debugging ® Watchpoints or the Watchpoints pushbutton to display the watchpoint list. The following dialog box appears:
    Choose the pencil icon in the line containing the watchpoint you want to change.
    Change the watchpoint attributes in the Create/Change Watchpoint.
    Choose ENTER .
    Deleting Watchpoints
    You cannot delete watchpoints by choosing Breakpoint ® Delete or Breakpoint ® Deactivate/activate. Instead, proceed as follows:
    Choose Goto ® Control debugging ® Watchpoints or the Watchpoints pushbutton to display the watchpoint list.
    Choose the trashcan icon in the line containing the watchpoint you want to delete.
    Memory Monitoring with Watchpoints
    You can use watchpoints to display changes to the references of strings, data and object references, and internal tables. By placing an ampersand (&) in front of the object name, you can display the reference in question in hexadecimal format. With internal tables, you can also display the table header by placing an asterisk (*) at the beginning of the name.
    &objectname
    Displays the references of strings, internal tables as well as data and object references
    *itab
    Displays the table header of the internal table itab
    Example
    If a watchpoint is set for the object in question at runtime, the program is stopped as soon as the reference is changed. A short dump can be intercepted in this way to stop the program being terminated when the memory is overwritten.
    Analyzing Source Code
    The Debugger contains an extensive range of functions that help you to analyze the source code of a program. You can step through the source code of a program in four different ways. For further information, refer to Stepping Through the Source Code
    For information about functions within the source code display, see Displaying the Source Code
    There are also different display modes that provide various information and display the contents of individual fields, tables, and so on:
    To create a logical link between watchpoints:
    Choose Goto ® Control debugging ® Watchpoints or the Watchpoints pushbutton to open the watchpoint display.
    Set the Logical operator between watchpoints option.
    The default value is always OR .
    Reward if usefull
    Sivaparvathi

Maybe you are looking for

  • 10.1.3 Faces: Javascript error on PPR

    Hi all, I'm getting a Javascript error during PPR in IE 6.0. This error does not appear in FF 2.0. The error is "Invalid Argument" on line 2984 of adf/jsLibs/Common10_1_3_2_0.js: form.removeChild(tempParams[paramName]); Research suggests that this er

  • How can I copy/paste a page from one pages document into another pages document?

    I have read the directions in the manual, but when I go to the document where I want to put the page the paste function is greyed out.  I assume this has something to do with styles, but can't find what to do. 

  • Deleted music from my ipod

    Just bought a new computer and tried to transfer itunes and music from my old computer to my new computer. I followed the steps itunes layed out, but when i tried to transfer to the new computer, somehow I deleted all of my songs and my playlists on

  • LWAPP with AP and AC communicating over L3

    When the Access Point (AP) and Access Controller (AC) communicate over an IP network (using UDP): 1- Is the MAC address of the AP's wireless clients known at some stage by the Access Controller? 2- I do not have a clear picture about DHCP (for wirele

  • Debit memo and Credit memo

    Dear Expert, I always confused on Debit memo and Credit memo...especially the business scenario behind and how it is reflecting in SAP system. Let's take this example: e.g the Price in the main Invoice is lesser than the actual price, and the differe