Session state replication taking time to replicate in weblogic cluster

I have a application fully serialized code with WEB-INF/lib containing the below configs with Unicast communication.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
  <session-descriptor>
    <session-param>
      <param-name>TimeoutSecs</param-name>
      <param-value>1800</param-value>
    </session-param>
                <cookie-http-only>false</cookie-http-only>
  <persistent-store-type>replicated_if_clustered</persistent-store-type>
                </session-descriptor>
</weblogic-web-app>
OHS plugin is having below config
LoadModule weblogic_module   "${ORACLE_HOME}/ohs/modules/mod_wl_ohs.so"
<IfModule mod_weblogic.c>
WebLogicCluster 172.12.113.141:7006,172.12.113.140:7006
        MatchExpression /finapp/*
</IfModule>
And weblogic cluster is replicating session instantly when ever there is some activities happening in the application.
It is having a problem only in below scenario when the session is open but the user is not doing anything.
I have 2 nodes in the cluster if one goes down(currently request serving one) it is failing over to the next but the session is not getting copied instantly. Below is the scenario where it works fine and where the replication is delayed.
1. Both servers(server1,server2) up for some time and user logs in and is continuing work.
2. primary server(server1) crashes in middle, secondary(server2) will take over the existing session and you will see user will be continuing the work without any issues(no logouts).
3. After sometime server1 comes up online, user keeps on testing(clicking some tab which makes a request to server), you will see the server1 will have a replica of server2 instantly.
4. You can bring down the server2 now and you will see the users session will not interrupt and user will be able to continue session with the server1.
Now coming to the scenario where you will be able to delayed replication :
1. Both servers up and user logged in and started work.
2. Primary server(server1) goes down and secondary server(server2) will take over the session and let the user continue its work without any logout.
2. server1 comes back online and user is not doing anything(no clicks) with application just kept the session open and server2(primary session) goes down within the replication time then the user will get logged out and might see some erratic behavior in any applications deployed to that weblogic. (We saw that if we dont shutdown server2 immediately(within 1min) and wait for 5mins+ weblogic is copying  the session from server2 to server1. After that copy if we shutdown the primary server(server2) user is not having any issues)
To summerize if a session is active(logged in) and some activity(clicking) is going on then replication is happening instantly from primary to secondary but if the user is active(logged in) and not doing anything(not clicking) then the session from primary to secondary is taking 5minutes+
Please let me know if there is some weblogic configs to check to reduce this time lag and let weblogic copy the session continuously either the user is performing any activity or not in the logged in session.
Thanks,

Hi,
This is the expected behavior. Please take a look at this document: WebLogic Server - Session Replication/Failover Scenario When Only One Server In Cluster is RUNNING (Doc ID 1292033.1)
In a WebLogic Server domain, with a Cluster of 2 Managed Servers and a web application deployed on this Cluster, you have only one managed server running and then you make a request through a proxy server to access the application.
The default cookie which is JSESSIONID will be created something like
<SessionID>!<PrimaryJVMID>!NONE
Here, you see the secondary server as NONE as there is only one server in cluster running.
Now, you leave HTTP session idle, meaning there will be no activity and requests in it.
Now, you bring up the second managed server instance in the cluster. The JSESSIONID for the earlier created HTTPSession will be unchanged: still
<SessionID>!<PrimaryJVMID>!NONE
unless there are any requests made or activity in it.
At this point of time, if there is a failure of the Managed server, the idle in-flight HTTP Sessions which were created earlier when this managed server was RUNNING, will be dropped and there will be no failover. Only active HTTP Sessions which have a secondary JVM ID will be failed over to the secondary managed server.
At any point, if subsequent requests are made and if any activity is made to the Idle HTTP sessions which were earlier created, the JSESSIONID gets updated with the secondary JVMID and sessions gets replicated and failed over in case of server crash.

Similar Messages

  • Session State Replication of Referenced Objects

    Here is question on Clustering and Session state replication:
              Scenario:
              Consider two Session Objects A and B.
              Object A has-a reference to object B.
              So whatever changes done to Object B is reflected in Object A.
              In-memory Session replication happens on every HttpSession.setAttribute() call.
              The question is will the two session objects(A and B) be replicated to the other cluster and will still maintain the reference relationship or will they be two separate objects with same data (in different memory locations).
              regards,
              Jaiganesh

    Ok, I have been meaning to dig into session replication in a bit more detail and your question is a good excuse to do it!
              First stop the docs:
              Bea Docs
              The bits that jump out are under:
              Programming Considerations for Clustered Servlets and JSPs
              1) Session Data Must Be Serializable, so both your objects are serializable.
              2) Use setAttribute to Change Session State In an HTTP servlet that implements javax.servlet.http.HttpSession, use HttpSession.setAttribute (which replaces the deprecated putValue) to change attributes in a session object. If you set attributes in a session object with setAttribute, the object and its attributes are replicated in a cluster using in-memory replication. If you use other set methods to change objects within a session, WebLogic Server does not replicate those changes. Every time a change is made to an object that is in the session, setAttribute() should be called to update that object across the cluster.
              Likewise, use removeAttribute (which, in turn, replaces the deprecated removeValue) to remove an attribute from a session object.
              >Will the reference as shown in the step 3 will be >maintained after replication on the other cluster ?? I >guess not!!
              I don't understand "on the other cluster" There is normally one cluster made up of a few servers. The session state is maintained on one primary server and a secondary server. So you have aObj.a2 = bObj, from the docs I would understand that at the momment you called session.setAttribute the aObj and all its fields provided they are seriliazable will be replicated in Mememory.
              >There the aObj and bObj stored in the two different >session objects will not have a reference relationship >in other words if i change bObj on the other cluster >will the reference a2 of aObj be able see it ??
              This is testing the limits of my understanding, but would have thought if the objects are in different sessions they should not be able to reference each other in the manner I think you are suggesting, so if I access aObj.a2 (an instance of bObj) and changed it in one session it should not affet any other bObj unless bObj is a singleton....I think!
              What say you?

  • Clustered session state replication

              We are new to WebLogic, vrs 8.1 server, and are trying to get session states to
              replicate within a cluster. We believe everything is set up per the Bea docs but
              in the end "the state" on the secondary does not seem to exist, or we do not know
              how to see it.
              Our environment:
              A domain with one admin server and four managed servers on a Sun server. Three
              of the managed servers are in a cluster, the fourth is the proxy server dispatching
              to the cluster using WebLogic HttpCluteredServlet. The app deployed to the cluster
              has the weblogic.xml session parameter for PersistentStoreType set to replciated.
              Everything runs fine till the end: A call to the app is received at the ProxyServer
              and is routed to a server in the cluster. The servlet creates a session object
              for the user. When the user executes the servlet a second time the session object
              is updated and a count is displayed to the user for each subsequent hit to the
              servlet. The session object (a java object) is serialized. Then we kill the primary
              server that is used to comunicate with the user requests. The proxyServer then
              directs the user to a different server within the cluster as it should, but the
              session object from the primary server (now killed) does not appear to be on the
              new server since a new session object gets created.
              Any ideas?
              

    Warren Anderson wrote:
              > We are new to WebLogic, vrs 8.1 server, and are trying to get session states to
              > replicate within a cluster. We believe everything is set up per the Bea docs but
              > in the end "the state" on the secondary does not seem to exist, or we do not know
              > how to see it.
              >
              > Our environment:
              >
              > A domain with one admin server and four managed servers on a Sun server. Three
              > of the managed servers are in a cluster, the fourth is the proxy server dispatching
              > to the cluster using WebLogic HttpCluteredServlet. The app deployed to the cluster
              > has the weblogic.xml session parameter for PersistentStoreType set to replciated.
              >
              > Everything runs fine till the end: A call to the app is received at the ProxyServer
              > and is routed to a server in the cluster. The servlet creates a session object
              > for the user. When the user executes the servlet a second time the session object
              > is updated and a count is displayed to the user for each subsequent hit to the
              > servlet. The session object (a java object) is serialized. Then we kill the primary
              > server that is used to comunicate with the user requests. The proxyServer then
              > directs the user to a different server within the cluster as it should, but the
              > session object from the primary server (now killed) does not appear to be on the
              > new server since a new session object gets created.
              >
              > Any ideas?
              Did you make sure everything in the session is serializable or remote?
              -- Prasad
              

  • Session state replication

    Hi.
    Has anyone got the session replication in OC4J to work
    on Windows 2000?
    We're running a 9.0.2 infrastructure and two clustered
    9.0.3 9iAS application servers, that are supposed to
    replicate HTTPServletSession state.
    We are using the default_island on a separate OC4J
    instance that are configured via Enterprice Manager to
    use multicast IP 230.0.0.1 and port 9127 (default).
    The tag <cluster-config/> is present in the file
    orion-web.xml and the <distributable/> tag is present in
    the web.xml in the WAR-file.
    No EJBs are used - only JSPs and servlets.
    Any suggestions?
    Thanks!
    Jesper

    Hi,
    This is the expected behavior. Please take a look at this document: WebLogic Server - Session Replication/Failover Scenario When Only One Server In Cluster is RUNNING (Doc ID 1292033.1)
    In a WebLogic Server domain, with a Cluster of 2 Managed Servers and a web application deployed on this Cluster, you have only one managed server running and then you make a request through a proxy server to access the application.
    The default cookie which is JSESSIONID will be created something like
    <SessionID>!<PrimaryJVMID>!NONE
    Here, you see the secondary server as NONE as there is only one server in cluster running.
    Now, you leave HTTP session idle, meaning there will be no activity and requests in it.
    Now, you bring up the second managed server instance in the cluster. The JSESSIONID for the earlier created HTTPSession will be unchanged: still
    <SessionID>!<PrimaryJVMID>!NONE
    unless there are any requests made or activity in it.
    At this point of time, if there is a failure of the Managed server, the idle in-flight HTTP Sessions which were created earlier when this managed server was RUNNING, will be dropped and there will be no failover. Only active HTTP Sessions which have a secondary JVM ID will be failed over to the secondary managed server.
    At any point, if subsequent requests are made and if any activity is made to the Idle HTTP sessions which were earlier created, the JSESSIONID gets updated with the secondary JVMID and sessions gets replicated and failed over in case of server crash.

  • Replicated session state with WLS 5.1 sp 6 in cluster

              Hello, i've seen in BEA documentation this:
              Applications Using Frames Must Coordinate Session Access
              If you are designing a web application that utilizes multiple frames, keep in mind
              that there is no synchronization of requests made by frames in a given frameset.
              For example, it is possible for multiple frames in a frameset to create multiple
              sessions on behalf of the client application, even though the client should logically
              create only a single session.
              In a clustered environment, poor coordination of frame requests can cause unexpected
              application behavior. For example, multiple frame requests can "reset" the application's
              association with a clustered instance, because the proxy plug-in treats each request
              independently. It is also possible for an application to corrupt session data by
              modifying the same session attribute via multiple frames in a frameset.
              To avoid unexpected application behavior, always use careful planning when accessing
              session data with frames. You can apply one of the following general rules to avoid
              common problems:
              ·     In a given frameset, ensure that only one frame creates and modifies session data.
              ·     Always create the session in a frame of the first frameset your application uses
              (for example, create the session in the first HTML page that is visited). After the
              session has been created, access the session data only in framesets other than the
              first frameset.
              My environment is clustered(multi-tier) and jsp and servlets use frameset, could
              you explane this?
              I don't understand very well
              Thanks and regards
              Fabio
              

              Thanks for you suggest!
              Fabio
              "Mike Reiche" <[email protected]> wrote:
              >
              >It means that all the jsps executed from the same browser use the same
              >httpsession
              >- so be aware of it.
              >
              >If the jsp in the first frame does ---
              >
              > httpSession.put("MYNAME", "GOODVALUE");
              >
              >and the jsp the second frame does ....
              >
              > httpSession.put("MYNAME", "BADVALUE");
              >
              >then the jsp in the first frame does ...
              >
              > value = httpSession.get("MYNAME");
              >
              >You might get "GOODVALUE" or you might get "BADVALUE" since both
              >JSPs execute concurrently without synchronization and they both store
              >something under
              >the same key in the same httpSession.
              >
              >Mike
              >
              >"Fabio Rossi" <[email protected]> wrote:
              >>
              >>Hello, i've seen in BEA documentation this:
              >>
              >>Applications Using Frames Must Coordinate Session Access
              >>
              >>If you are designing a web application that utilizes multiple frames,
              >keep
              >>in mind
              >>that there is no synchronization of requests made by frames in a given
              >frameset.
              >>For example, it is possible for multiple frames in a frameset to create
              >>multiple
              >>sessions on behalf of the client application, even though the client
              >should
              >>logically
              >>create only a single session.
              >>In a clustered environment, poor coordination of frame requests can
              >cause
              >>unexpected
              >>application behavior. For example, multiple frame requests can "reset"
              >the
              >>application's
              >>association with a clustered instance, because the proxy plug-in treats
              >>each request
              >>independently. It is also possible for an application to corrupt session
              >>data by
              >>modifying the same session attribute via multiple frames in a frameset.
              >>To avoid unexpected application behavior, always use careful planning
              >when
              >>accessing
              >>session data with frames. You can apply one of the following general
              >rules
              >>to avoid
              >>common problems:
              >>·     In a given frameset, ensure that only one frame creates and modifies
              >session
              >>data.
              >>
              >>·     Always create the session in a frame of the first frameset your application
              >>uses
              >>(for example, create the session in the first HTML page that is visited).
              >>After the
              >>session has been created, access the session data only in framesets
              >other
              >>than the
              >>first frameset.
              >>
              >>My environment is clustered(multi-tier) and jsp and servlets use frameset,
              >>could
              >>you explane this?
              >>I don't understand very well
              >>
              >>Thanks and regards
              >>Fabio
              >>
              >
              

  • ClassNotFoundException trying to replication session state...

              Help! This has been bugging me for almost a week now and noone's been able to shed
              any light on it. My evaluation of the product is about to end and, as things currently
              stand, I've concluded that "it doesn't work"! Surely that's not right?!
              I'm getting a ClassNotFoundException when I try to store one of my classes in
              the session.
              If I have session state replication disabled then I don't get it. As soon as I
              enable replication it gets thrown. Clearly 6.1b is unable to replicate my object
              to the secondary server. Session persistence and failover is working fine with
              Strings, ArrayLists etc. It doesn't want to know about my Serializable class,
              though!
              The class is definitely on both servers since I've deployed the web application
              from the admin server and can successfully run the application on both servers
              in the cluster. It's just the persistence mechanism that is unable to find the
              class!
              Anyone got any ideas as to what I'm doing wrong?
              I'm not too keen on having to replace 6.1b with 6.0sp2 since 6.1b was recommended
              by BEA support for our evaluation and it would undo a week's work.
              Thanks,
              K.
              

    Which machine gets the error, the primary where you are doing the
              session.putValue() or does it appear on the replicated server?
              I assume your class is Serializable..
              Is the class in question in the Java classpath, or just in the web app? Try
              placing the class in the java classpath during boot on both sides, see if
              that helps.
              A full error stack would be helpful..
              -Greg
              "KPSeal" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Help! This has been bugging me for almost a week now and noone's been able
              to shed
              > any light on it. My evaluation of the product is about to end and, as
              things currently
              > stand, I've concluded that "it doesn't work"! Surely that's not right?!
              >
              > I'm getting a ClassNotFoundException when I try to store one of my classes
              in
              > the session.
              > If I have session state replication disabled then I don't get it. As soon
              as I
              > enable replication it gets thrown. Clearly 6.1b is unable to replicate my
              object
              > to the secondary server. Session persistence and failover is working fine
              with
              > Strings, ArrayLists etc. It doesn't want to know about my Serializable
              class,
              > though!
              > The class is definitely on both servers since I've deployed the web
              application
              > from the admin server and can successfully run the application on both
              servers
              > in the cluster. It's just the persistence mechanism that is unable to find
              the
              > class!
              >
              > Anyone got any ideas as to what I'm doing wrong?
              >
              > I'm not too keen on having to replace 6.1b with 6.0sp2 since 6.1b was
              recommended
              > by BEA support for our evaluation and it would undo a week's work.
              >
              > Thanks,
              > K.
              

  • Insert statement taking time on oracle 10g

    Hi,
    My procedure taking time in following statement while database upgrading from oracle 9i to oracle 10g.
    I m using oracle version 10.2.0.4.0.
    cust_item is matiralize view in procedure and it is refreshing in the procedure
    Index is dropping before inserting data into cust_item_tbl TABLE and after inserting data index is created.
    There are almost 6 lac records into MV which are going to insert into TABLE.
    In 9i below insert statement is taking 1 hr time to insert while in 10g it is taking 2.30 hrs.
    EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL QUERY';
    EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML';
    INSERT INTO /*+ APPEND PARALLEL */ cust_item_tbl  NOLOGGING
             (SELECT /*+ PARALLEL */
                     ctry_code, co_code, srce_loc_nbr, srce_loc_type_code,
                     cust_nbr, item_nbr, lu_eff_dt,
                     0, 0, 0, lu_end_dt,
                     bus_seg_code, 0, rt_nbr, 0, '', 0, '', SYSDATE, '', SYSDATE,
                     '', 0, ' ',
                                   case
                                 when cust_nbr in (select distinct cust_nbr from aml.log_t where CTRY_CODE = p_country_code and co_code = p_company_code)
                                 THEN
                                         case
                                            when trunc(sysdate) NOT BETWEEN trunc(lu_eff_dt) AND trunc(lu_end_dt)
                                            then NVL((select cases_per_pallet from cust_item c where c.ctry_code = a.ctry_code and c.co_code = a.co_code
                                                          and c.cust_nbr = a.cust_nbr and c.GTIN_CO_PREFX = a.GTIN_CO_PREFX and c.GTIN_ITEM_REF_NBR = a.GTIN_ITEM_REF_NBR
                                                          and c.GTIN_CK_DIGIT = a.GTIN_CK_DIGIT and trunc(sysdate) BETWEEN trunc(c.lu_eff_dt) AND trunc(c.lu_end_dt) and rownum = 1),
                                                          a.cases_per_pallet)
                                      else cases_per_pallet
                                  end
                          else cases_per_pallet
                     END cases_per_pallet,
                     cases_per_layer
                FROM cust_item a
               WHERE a.ctry_code = p_country_code ----varible passing by procedure
                 AND a.co_code = p_company_code   ----varible passing by procedure
                 AND a.ROWID =
                        (SELECT MAX (b.ROWID)
                           FROM cust_item b
                          WHERE b.ctry_code = a.ctry_code
                            AND b.co_code = a.co_code
                            AND b.ctry_code = p_country_code ----varible passing by procedure
                            AND b.co_code = p_company_code   ----varible passing by procedure
                            AND b.srce_loc_nbr = a.srce_loc_nbr
                            AND b.srce_loc_type_code = a.srce_loc_type_code
                            AND b.cust_nbr = a.cust_nbr
                            AND b.item_nbr = a.item_nbr
                            AND b.lu_eff_dt = a.lu_eff_dt));explain plan of oracle 10g
    Plan
    INSERT STATEMENT  CHOOSECost: 133,310  Bytes: 248  Cardinality: 1                      
         5 FILTER                 
              4 HASH GROUP BY  Cost: 133,310  Bytes: 248  Cardinality: 1            
                   3 HASH JOIN  Cost: 132,424  Bytes: 1,273,090,640  Cardinality: 5,133,430       
                        1 INDEX FAST FULL SCAN INDEX MFIPROCESS.INDX_TEMP_CUST_AUTH_PERF_MV Cost: 10,026  Bytes: 554,410,440  Cardinality: 5,133,430 
                        2 MAT_VIEW ACCESS FULL MAT_VIEW MFIPROCESS.TEMP_CUST_AUTH_PERF_MV Cost: 24,570  Bytes: 718,680,200  Cardinality: 5,133,430  can you please look into the issue?
    Thanks.

    According to the execution plan you posted parallelism is not taking place - no parallel operations listed
    Check the hint syntax. In particular, "PARALLEL" does not look right.
    Running queries in parallel can either help performance, hurt performance, or do nothing for performance. In your case a parallel index scan on MFIPROCESS.INDX_TEMP_CUST_AUTH_PERF_MV using the PARALLEL_INDEX hint and the PARALLEL hint specifying the table for MAT_VIEW MFIPROCESS.TEMP_CUST_AUTH_PERF_MV Cost might help, something like (untested)
    select /*+ PARALLEL_INDEX(INDX_TEMP_CST_AUTH_PERF_MV) PARALLEL(TEMP_CUST_AUTHPERF_MV) */Is query rewrite causing the MVs to be read? If so hinting the query will be tricky

  • Which statement is taking more time in a block?

    Hi,
    I have a plsql block with thousands of sql statements in it, line by line.
    My query is how can i know which particular sql statement is taking more time.
    Thanks,
    VInod

    910575 wrote:
    This is not the answer i expected.Having a 1000 SQLs statements in a single PL/SQL does not make any sense. Fact.
    This is not how one modularise software. And modularisation is a critically important fundamental.
    Each SQL means I/O. I/O is the single most expensive database operation. More I/O means slower performance.
    So why is a 1000+ SQL statements needed? Do these pull data into PL/SQL? If so, why? What does PL/SQL do with the data returned by these SQLs? Do the SQLs use bind variables? Can the SQLs be combined? What are the business requirements that need to be met?
    I just want to find which sql statement is taking more time in a procedure/bock.Not the correct approach. Performance need to look at the COMPLETE process. Not a single step in the process.
    Performance is a result of a sound design and proper implementation of this design into programming language code. It is not focusing on a single line of code and saying that is the problem and need to be fixed. The problem can be in the design. Can be in how that was written. And not in a single line of code.
    And seeing that you have 1000+ SQL statements in a single PL/SQL block - that IS an indication of a basic design flaw.

  • Session manager is taking 10% of the total response time

    Hi
    As per our recent analyses session manager is taking around
    10% of the total response time, we have done the archiving of data
    however it still taking around 9% of the total response time, I have checked few notes from service market place. However i would request you to suggest something
    sap notes
    164102
    203617
    161053
    26417
    203924
    My system configuration
    SAP System ID WCP
    SAP Component ECC 5.0
    SAP Release ERP 2004
    Database System Oracle 10.2.0.4
    Operating System Windows Server 2003 on x86_32, AIX 5.3,
    Windows Server 2003 on x86_64
    Thanks in advance
    Regards
    Rizvi
    +919874428887

    Hi,
    first check the user nodes from PROFGEN_CORR_REPORT_5 (from SE38)
    Here you can find the user nodes for all users, and disable user nodes if any user had high utilization.
    Please check SAP Note 203617
    Regards
    Nick Loy

  • Query referencing session state not consistently returning data

    Hi,
    I have a form that summarizes expense data by category for employees, per fiscal year, fiscal period, and project.
    Clicking on a button next to a particular category takes the user to a new page that should display the detail of those expenses, based on expense_code.
    The expense_code is passed via URL to the second page, and the query region for the detail has the following source:
    select exp_code, JRNL_ID_NO, DESCRIPTION, REFERENCE, CUR_PER_TRAN, CUM_YTD
    from fgspec_ac where exp_code between :P118_EXPENSE_CODE_FROM and :P118_EXPENSE_CODE_TO and project=:P114_PROJECT and fis_year=:P114_FIS_YEAR and fis_period=:P114_FIS_PERIOD
    :P118_EXPENSE_CODE_FROM and :P118_EXPENSE_CODE_TO are passed via URL, and the :P114_% fields reference data on the initial form.
    The problem is that when I click on the button to bring up the detail for the first time, the query returns no rows. If I return to the original form and click on the button a second time, the query the displays the required data. This behavior is consistent, regardless of expense category, fiscal period, etc. The first time I try to access detail, no records returned, but the second time, it works.
    I have used the 'SESSION' link to debug and view the session state in each case, and the results are IDENTICAL whether the query returns data or not. That is, all 5 variables contain the exact same data.
    Do you know what I might be doing wrong?
    Thanks,
    Michelle

    Hi guys,
    Thanks very much for your replies. In fact, I have tried both methods. Yes, I am navigating from page 114 to 118, and passing values to page 118 from page 114 (ie: P114_PROJECT passes to P118_PROJECT, etc...). In my query, I have tried referencing both, with the same results.
    When checking values in session state (by using the 'SESSION' link), values from page 114 are available in both cases (when the query returns rows and when it does not). It is very strange behavior.
    I have been developing with HTMLDB for over a year now, and never seen anything like it!!! I will try loading this on HTMLDB.oracle.com, and see if it replicates, and if so, maybe you can have a look...............
    Thanks!
    Michelle

  • Prcedure taking time

    Hello Experts,
    I am running a procedure which is taking too much time during execution. How can I found that which statement or query in the procedure is taking time. Is there any package available to check this out.
    Thanks & Regards,
    Manish

    Execute the below query to find out the session id of the session in which your procedure is getting executed.
    [c]
    SELECT s.sid
    ,s.serial#
    ,ddl.name
    ,ddl.type
    ,ddl.owner
    ,s.status
    ,s.osuser
    ,s.machine
    FROM dba_ddl_locks ddl
    ,v$session s
    WHERE ddl.session_id = s.sid;
    [\c]
    Once you get the sid,execute the below query to know which DML its executing:
    [c]
    SELECT /*+ leading(s) */
    s.sid
    ,s.serial#
    ,st.piece
    ,st.sql_text
    ,s.status
    ,s.osuser
    ,s.machine
    FROM v$session s
    ,v$sqltext st
    WHERE s.sql_hash_value = st.hash_value(+)
    AND s.sid = &sid_from_above_query
    ORDER BY st.piece;
    [\c]
    Regards
    Arun

  • State Replication option..

    Is there some way of specifying whether the state replication should happen synchronously or asynchronously.
              Also, is there some way that the state replication decision can be made custom driven. By this i mean user writing the code which decides whether the state has changed and needs to be communicated. This could be useful in a Stateful session bean where one might like to decide when to replicate (i.e. on change of which all atrributes should the replication occur).
              JBoss has a mechanism by which we can specify a mehtod isModified which should return boolean, which is called before replicating the state. THis helps in achieving fine-grained replcation.

    For stateful sessoin EJBs the container automatically determines whether you've modified anything and sends the minimal diff across the wire. There's no need to write an isModified method (which I would consider a little error-prone and cumbersome).
              The replication is always done synchronously. There is no option currently to make it async but other people have asked for it.
              -- Rob
              WLS Blog http://dev2dev.bea.com/blog/rwoollen/

  • In SQL Trace how to see which statement getting more time .

    Hi Expart,
    In SQL Trace (T-code ST05) . I am running the standard transaction . how to see which statement
    running more time and less time . suppose one statement running more time so how resolve the
    performance .
    Plz. reply me
    Regards
    Razz

    > The ones in 'RED' color are the statement which are taking a lot of time and you need to
    > optimise the same.
    No, that is incorrect, the red ones show only the ones which need several hundret milliseconds in one execution. This can even be correct for hard tasks. And there are lots of problem, which you will not see
    I have said everything here:
    SQL trace:
    /people/siegfried.boes/blog/2007/09/05/the-sql-trace-st05-150-quick-and-easy
    Go to 'Tracelist' -> Summarize by SQL statements', this is the view which you want to see!
    I summarizes all executions of the same statement.
    There are even the checks explained, the slow ones are the one which need a lot of time per record!
    See MinTime/Rec > 10.000 microseconds.
    Check all number of records, executions, buffer, identicals.
    The SE30 Tipps and Tricks will not help much.
    Siegfried

  • Row fetching, session state, multi-page processing of 1 row - problems

    I'm building an application that's updating a couple of tables via an updateable view and an instead-of trigger. That portion of it works OK, EXCEPT for the problems that I'm having with the APEX end.
    I've got 3 pages; the first page reads the row in via the automated row fetch and has, say columns 1-20.
    Page 2 has, say, columns 20-40 and page 3 has the remainder.
    I have the row fetch set up conditionally so that it only executes the first time that page 1 is displayed. All the columns are set as Database Columns.
    It seems that if I fill in fields on page 1, move to page 2, and back to page 1, the contents of the fields on page 1 are destroyed unless I set their 'Source used' to 'Only when the current value in session state is null'.
    Furthermore, upon update (which is on page 3, via an automated row update), the only columns that get updated are those that exist on page 3. The column values from the other pages no longer exist.
    Does navigation to another page not retain the session-state of database-column items?
    Am I better off just writing my own processes to perform the updates?
    Any other suggestions?
    Frank

    Hello Frank,
    >>I have the row fetch set up conditionally so
    that it only executes the first time that page 1 is
    displayed …
    It seems that if I fill in fields on page 1, moveto page 2, and back to page 1, the contents of the
    fields on page 1 are destroyed unless I set their
    'Source used' to 'Only when the current value in
    session state is null'.
    It seems that the first sentence is not consistent
    with the second one. The only reason the values are
    destroyed, as you call it, is that the ARF is running
    again. What condition are you using on your ARF?
    In any case, the right way to deal with it is to
    change the source used to "Only …", as I understand
    you already did.
    Hi Arie,
    I set an item after the first ARF. I then have the ARF set to execute conditionally based on the presence of that item. (I also display a success message on the ARF, so I know that the ARF is only occurring once). I move to subsequent pages by submitting the current pages.
    >>Does navigation to another page not retain the
    session-state of database-column items?
    Navigating to another page does retain the session state values.
    It's depends on what you mean by navigating.
    Submitting the page set/update session state.
    Redirect without submitting the page will not
    set/update the session state.
    >>Furthermore, upon update (which is on page 3,
    via an automated row update), the only columns that
    get updated are those that exist on page 3. The
    column values from the other pages no longer
    exist.
    Automatic DML is working only with the current page
    items. You can't use it to insert/update other page
    items, even if they are in session state. However, in
    your case, it's not the Automatic DML performing the
    actual updates, but your triggers. Are your triggers
    relying on session state values?
    I think this statement 'Automatic DML is working only with the current page
    items.' answers my question. My trigger is working on session state values. It's an 'instead-of' trigger, so I was letting the automatic DML perform the 'update' on the view, while allowing the trigger to do the actual update of several tables that the view joins by referring to their :NEW. values in the trigger. Since the DML occurs on my last page, those were the only session state values that my trigger ultimately saw.
    >>Am I better off just writing my own processes to
    perform the updates?
    I believe the correct way is to submit the page and
    then branch to the next one. Submitting the page will
    save all your items in session state, and allow these
    items to be available for page 3 DML.
    Regards,
    Arie.I'm doing that already - all the values do appear to be in session sate, except only the items that are on the last page actually make it to the automatic DML update, which seems to agree with your previous statement.
    I suppose I could write my own process to perform the update, as the values are available in session state.
    Thanks,
    Frank

  • Saving session state in database table rather in websever for Ordering App

    Hi all,
    Ours is a ordering application (telecomm) domain.
    Currently, we are storing user sessions data (Order shopping cart session data) in middle tier (iPlanet web server) which inturn consumes lot of memory resources.
    Shopping cart could be in MBs if order is a huge business order.
    So in order to not to overtax web server (middle tier), we are thinking of storing session data directly in a database table to relieve the overhead on web server and make use of database for storage.
    I read that APEX (html db) is already using this "single metadata table" approach for session data management. But we are not using HTML DB to really look into.
    Can some one advise how to go about storing "user session data" directly in a "database table" for both storage and retrieval purposes instead of storing it in "webserver".
    How does this "metadata table" structure looks like. Is it more generic ?
    Really appreciate your time and help/suggestions.

    Joel,
    Thanks for your response. sorry, i meant to say that "the current application does not use APEX but will look into it".
    To build this is an utterly non-trivial exercise. Oh - it may not be so hard to save session state to a table when you POST a page. But you may want to reference this in many places, and it's a question of can you change all of these references to indirect references from session state in your application.In order to free up the load on webserver, we want to maintain session management in database. Could you please explain the above little more :
    How do we maintain the "user session" with "database table" ?
    Do we need to store "session data" at java object level or by page in database table ? How does the structure of this "metadata table" looks like.
    Thanks for your time.

Maybe you are looking for

  • How to transfer data in A tableview control in transaction ME21n

    Dear friends, I m new in the field of SAP ABAP. And right now i m trying to transfer the data in a tableview control in transaction ME21n. I've recorded the sequence of mandatory fields in transaction ME21n but, when i try to transfer the data using

  • Assigning more than 1000 orders in one WBS

    Hi Experts, I have a requirement of assigning more than 1000 Orders to one WBS element. As per SAP note, a maximum of 1000 Orders can be asssigned to one WBS otherwise system performance may get affected. But as per the client requirement, either I s

  • Missing Bcc: functionality in Tiger Mail--and worse: no Bcc: button!

    MISSING IN ACTION! Pre-Tiger, if you wanted to include a bunch of Bcc: addresses from your Address Book within Mail you could double-click each one from the mini Address Book window IF YOU HAVE THE CURSOR in the Bcc: field. Even worse is that since M

  • Once again File

    When one taps the File menu he sees New and New form Template Chooser at the top. Whichever one chooses he gets presented with Template Chooser anyway. My Q is why IWork 09 still has both options on its File menu?

  • Back and Menu Button

    My back and menu button on my Galaxy S4 just randomly stopped working yesterday and haven't worked since. I've tried turning my phone off for a while and turning it back on, but still nothing. Everything else on the screen works except the back and m