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.
          

Similar Messages

  • 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 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?

  • Session state and browser cache - Back button problem

    Hi all,
    I have a problem (and unless I'm missing something I think we all do) with session state and use of the browser's Back button. I really hope I'm just being dumb...
    Background scenario:
    Page P has a sidebar list allowing the user to select what content is displayed (e.g. 'stuff relating to X, Y or Z' where X, Y and Z are rows in, say, a table of projects). When a list entry is clicked, we branch to page P with the value of the list item placed in an application-level item (call it G_PROJECT). Reports on page P use G_PROJECT in their WHERE clauses.
    So, click list entry X and G_PROJECT is set to X and page P shows reports for project X.
    Page P also has a set of buttons which branch to various edit pages which allow attributes of page P's current project to be updated. These pages similarly use G_PROJECT in their WHERE clauses.
    Problem scenario:
    1. The user goes to page P and picks project X off the list. Project X's stuff is displayed (G_PROJECT = X).
    2. The user then picks project Y off the list. Project Y's stuff is displayed (G_PROJECT = Y).
    3. The user then clicks the browser's Back button. The page is served from browser cache, so project X's stuff is displayed, but G_PROJECT still = Y.
    4. The user clicks an 'Edit' button; we submit, and branch to an edit page which displays (and will edit) data for project Y because G_PROJECT still = Y.
    This is SERIOUSLY BAD NEWS - apart from being confusing, the user's edit permissions on projects X and Y may differ, and so the user may be able to perform 'illegal' updates.
    I've read what I can on this forum and the rest of the web looking for ways to a) inhibit browsers' 'Back' functions and/or b) prevent pages being cached by the browser, but none of them have worked for me.
    Short of waiting for browser manufacturers to recognise that the web is now full of applications as well as static pages, and enable robust programmatic control of cache behaviour, does anybody know how the problem can be avoided - or at least detected?
    Thanks,
    jd
    Failed attempts to date:
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="cache-control" content="no-store">
    <meta http-equiv="cache-control" content="private">
    <meta http-equiv="cache-control" content="max-age=0, must-revalidate">
    <meta http-equiv="expires" content="Wed, 09 Aug 2000 01:01:01 GMT">
    <meta http-equiv="pragma" content="no-cache">
    Disallowing duplicate submission (page attribute).
    window.history.go(1);

    Thanks Scott,
    I may be being dumb here but I don't see how that would help...
    P250_PROJECT and G_PROJECT are currently kept in sync by app logic. Whichever is used to drive, if the page is rendered from cache then the app logic is not executed, so the rendered page contents are not those keyed by P250_PROJECT, as illustrated in steps 1-4 of the problem above.
    The user sees X, the session items say Y. The engine doesn't know what the user is seeing.
    when page P is POSTed, its hidden item P250_PROJECT should always be used to derive the application item G_PROJECT. Then whether the page was pulled from cache or rendered anew via a click from the sidebar link, the project ID is determined by the contents of that page.
    As I said above I tried this, with the 'Edit' branch set to:
    Set these items: G_PROJECT
    With these values: &P250_PROJECT.
    but it makes no difference. The project ID is not determined by the rendered page contents - the engine gets the value of P250_PROJECT from session state.
    I can code the 'Edit' pages such that they check permissions and if necessary redirect back to p250 (conditional before-header branch), but that's a clunky cure rather than the prevention I was hoping for.
    Please tell me if my understanding is incorrect.
    jd

  • Facing short dumps when trying to open session in CSA

    Hi
    All am facing Short dump when i am trying to open session in CSA
    Error detials:
    go to System Administration workcenter  task management up CSA. Choose the Solution
    got short dump:
    Short text
        Length error occurred in IMPORT statement.
    What happened?
        Error in the ABAP Application Program
        The current ABAP program "SAPLDSVAS_PROC" had to be terminated because it has
        come across a statement that unfortunately cannot be executed.
    Error analysis
        An exception occurred that is explained in detail below.
        The exception, which is assigned to class 'CX_SY_IMPORT_MISMATCH_ERROR', was
         not caught in
        procedure "LOAD" "(METHOD)", nor was it propagated by a RAISING clause.
        Since the caller of the procedure could not have anticipated that the
        exception would occur, the current program is terminated.
        The reason for the exception is:
        During import the system discovered that the target object has
        a different length than the object to be imported.
    Missing RAISING Clause in Interface
        Program                                 SAPLDSVAS_PROC
        Include                                 LDSVAS_PROCTAI
        Row                                     1.431
        Module type                             (METHOD)
        Module Name                             LOAD
    Trigger Location of Exception
        Program                                 SAPLDSVAS_PROC
        Include                                 LDSVAS_PROCTAI
        Row                                     1.514
        Module type                             (METHOD)
        Module Name                             LOAD
    Please help me to solve this problem
    Regards,
    Neni

    Hello Neni
    According to the information I saw in that post it could be caused by a sort of inconsistency of the program code vs a structure.
    Wether that is a bug that is in your SAP Solution Manager release or something that is caused by administrative actions (perhaps solving SPAU entries after SP stack update or upgrade) I cannot tell.
    I would recommend you either try and find a relative SAP note (narrowing down result to only your SAP Solution Manager system) and searching using the dump keywords. If you cannot find anything I would recommend you to open a customer message so SAP can take a look at the specific error.
    If you give more information, perhaps someone on the forum can help you out abit better, which SAP Solution Manager version and so on.
    You also didn't answer my question, any recent changes you are aware of ?
    Kind regards
    Tom

  • 4.2 select list on mobile page not setting session state

    Hi,
    Like I've done dozens of times in the past, I created a Select list that submits on change, and I expected session state to be updated accordingly.
    I tried this on a mobile page but session state is not updated for the item.
    Has anyone else experienced this?
    Scott

    Hi Scott,
    is it possible that you are hitting bug# 14680379 - PAGE SUBMIT ACTIONS DO NOT WORK FOR LONGER MOBILE SELECT LISTS, WHEN DEFINED TO FIRE WHEN THE SELECT LIST VALUE CHANGES
    on our Known Issues List http://www.oracle.com/technetwork/developer-tools/apex/application-express/apex-42-known-issues-1863578.html ?
    Is your select list selection displayed as native control or as popup? Can you create a test case on apex.oracle.com?
    Thanks
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • Session state value translation issue

    Hello.
    New to APEX and not all that web-savvy. Using version 3.1.2.00.02.
    Little background:
    I have a Select List item, "P1_OPERATOR", working from an LOV of relational operators (=, >, >=, <, <=). I use this item as a string substitute in report queries. This works fine for any reports on the page containing the "P1_OPERATOR" definition itself, "PAGE_1".
    Problem:
    However, when I attempt to set a session state value for a similar item ("P2_OPERATOR") on "PAGE_2" to the value of P1_OPERATOR using the column link of a report on PAGE_1, the value of P1_OPERATOR does not translate correctly for any values involving a right or left angle bracket (it works only for '=').
    Scenario:
    Let's say I'm on PAGE_1 and I select >=. The reports on that page display as expected. When I click on the link to PAGE 2, the reports there display "invalid relational operator". When I view session state from PAGE_2, I can see that...
    P1_OPERATOR is '>='
    P2_OPERATOR is '& gt;=' (space added to get it to display on this post).
    So it's trying to use the html value for >= as a literal value.
    I can also see that APEX has built the URL for the link page as follows...
    (abbreviated) http://...:P2_OPERATOR,P2_DATE:%26gt%3B%3D%2C2009-06-27
    If I type in the expected literal URL myself (outside of APEX) as...
    (abbreviated) http://...:P2_OPERATOR,P2_DATE:>=,2009-06-27
    ...or even the expected hex URL (outside of APEX) as...
    (abbreviated) http://...:P2_OPERATOR,P2_DATE:%5C%3E%3D%5C%2C2009-06-27
    ...PAGE_2 shows the expected results.
    Is there a way to solve this translation problem? Some workaround I haven't thought of?
    Thanks for your help.
    Edited by: user11313762 on Jun 29, 2009 2:30 PM

    Use an PL/SQL process On Load - Before Header with the following:-
    *:P2_OPERATOR := :P1_OPERATOR;*
    You'll have to use a hidden item as your condition (having looked at a page debug, any request value will have expired by the time the process will fire).
    create a hidden item on page 2 called P2_SET_OP
    use Item = value type of condition in your process where exp1 = P2_SET_OP (don't use colon notation here as ITEM has been specified) and exp 2 = Y
    You can even reset P2_SET_OP back to null in the same process as you assighn the operator.
    *:P2_OPERATOR := :P1_OPERATOR;*
    *:P2_SET_OP := NULL;*
    set the value of P2_SET_OP in your link as P2_SET_OP:Y
    Gus..

  • How to save the session states for a tabular form WITHOUT using check boxs?

    Greeting guys,
    As you know that we can use collections to save the session states of a tabular forms, described in the how-to doc of manual tabular forms. However, what I am trying to do ( or have to do) is to provide a manual tabular form, and save the session states for validation, without using the check boxes. Because a user can put contents into some columns in a row without checking the corresponding checkbox, according to the requirements. So basically what I tried is to loop over all the rows and save Every entry into a collection. However, sometimes I got "no data found" error with unknown reasons.
    My current solution is to use the "dirty" Retry button that gets back the history, which IMO is not a good workabout. So, I'd appreciate if somebody can shed some light on a better solution, especially if it is close to the one in that how-to doc.
    Thanks in advance.
    Luc

    The following is the first collection solutin I've tried:
    htmldb_collection.create_or_truncate_collection('TEMP_TABLE');
    for i in 1..p_row_num loop -- Loop on the whole form rows
    if (htmldb_application.g_f01(i) is not null) or (htmldb_application.g_f05(i) <> 0)
    --If either of them has some input values, the row should be saved into the colleciton.
    then
    htmldb_collection.add_member(
    p_collection_name => 'TEMP_TABLE',
    p_c001 => htmldb_application.g_f01(i),
    p_c002 => htmldb_application.g_f03(i),
    p_c003 => htmldb_application.g_f04(i),
    p_c004 => htmldb_application.g_f05(i),
    p_c005 => htmldb_application.g_f06(i),
    p_c006 => htmldb_application.g_f08(i)
    end if;
    end loop;
    Some of columns have null values, but I don't think that's the reason. Because once I clicked all the check boxes, there would be no error no matter what values were in other columns.
    Another issue would be extract the values FROM the collection, which has been tried because I had problem to store the data into the collection. I used "decode" functions inside the SQL to build the tabular form. I am not sure whether it will be the same as a regular SQL for a tabular form, like the example in the How-to doc.
    Also I didn't use the checksum, for it is not an issue at the current stage. I am not sure whether that's the reason which caused the NO DATA FOUND error.

  • Custom Tabular form - Session state values disappear

    Hi,
    I have a custom tabular form page using apex_item and apex_collections. I am using the apex_collection to store the values in memory in order to avoid the data loss in session state. The page is working fine after a validation failure and it shows the values on the second report (as advised for custom tabular forms).
    In this, some of the rows have clob value which needs to be edit on a rich text editor. Since apex_item does not provide a solution to have rich text editor, I have to branch to another page on an Edit link for the CLOB data using a modal window. However When I return back from the modal page, the values disappear from session state, and the validation (using htmldb_application.g_fxx arrays) does not take place.
    Is there any workaround to overcome this issue?
    Apex version: 4.1
    Thanks in advance.
    Natarajan

    Thanks Daniel for your reply.
    Actually its an interface with a custom tabular form on page 1 with apex collections and rich text editor on page 2. Since it is not possible to have the rich text editor, I need to have it in another page (I could have it the same page, that is the way I am trying now) however I open the next page as a modal window.
    I have a link on the tabular form, so that the clob content is opened in the rich text editor on the next page. After the edit, I update it to the same collection and go back to the tabular form page and refreshes the report. It works fine, but causes trouble to the data entered on the other columns in the custom tabular form.
    I have now deviated to another work and put this on a hold. If my explanation is still not clear, I will create the same page in apex.com to simulate the error.
    Thanks again.
    Natarajan
    Edited by: Nattu on Mar 14, 2012 11:35 PM

  • Session state protection and read-only items

    I have a requirement to create a report + form for a database table. In the form, there is mandatory database column that needs to be displayed but it should be read-only and its value derived using values entered elsewhere on the screen.
    It tried Display Only, Read Only and Disabled but they either fall foul of session state protection violation or ORA-01400: cannot insert NULL. The best method that I've found was to add readonly="readonly" the item element, but this causes the input item to lose its APEX classes and I'd prefer a declarative solution anyway.
    Anyone know the best approach?
    I've created a DEMO - http://apex.oracle.com/pls/apex/f?p=READONLY - which demonstrates the 4 methods.
    Edited by: KGelling on 17-May-2012 06:10

    KGelling wrote:
    The best method that I've found was to add readonly="readonly" the item element, but this causes the input item to lose its APEX classes and I'd prefer a declarative solution anyway.Looks like a bug to me. However a possible explanation/justification for this behaviour is that the HTML Form Element Attributes are often used to specify a custom class for the item, so the default class is removed to prevent any conflicts. IMO APEX needs to provide declarative support for the use of multiple, space-separated class values in page, region, item etc attributes.
    As a workaround in this case, just include the class in the HTML Form Element Attributes:
    class="number_field" readonly="readonly"
    I've created a DEMO - http://apex.oracle.com/pls/apex/f?p=READONLY - which demonstrates the 4 methods.
    Thanks for making the effort.

  • Update Session State for only one item

    I have several hidden items (e.g. fund, object and unit) that hold values that are input parameters for a function that returns a SQL statement to a 'PL/SQL Function Body Returning SQL Query' region. These hidden items are set when a user selects a value from a pop-up tree. I want to dynamically set corresponding visible prompt text items (fund_prompt, object_prompt and unit_prompt) to a descriptive value that makes sense to the user. I've tried using a source type of SQL and placing the following SQL statement in the source
    SELECT child_prompt
    FROM fr_hierarchy_fund
    WHERE child = :FUND;
    When the value in one of the hidden items is changed, the visible prompt item displays "undefined" until the page is submitted.
    Is there a way to set the session state of an item without submitting the page?
    Thanks
    David

    David,
    Items, hidden or not, are not set in session state until the page is submitted. You might consider submitting the page with a javascript event on your popups. The request value can be used to control what processing you do or don't do on page submission and a branch right back to the page should allow you to show everything based on current item values.
    Scott

  • Set Session State with Shuttle items

    Is it possible to have session state set with each item selected in a shuttle? You have a shuttle with 4 possible options, you select item 2 from the left portion of shuttle and it is moved to the right.. Can you set the session state at that point?
    What I am trying to do is take the session state after change in the control and use it to populate a text field below. The returned values are used in a sql select to populate the text box with a looked up value...
    Thank you,
    Tony Miller
    Ruckersville, VA

    TexasApexDeveloper wrote:
    Won't this just push the last items value in, as apposed to appending the value?
    Tony,
    No. Because for shuttle items the return value is stored as colon delimited string.
    Means after each change you will have a colon delimited string in the session state with selected values(moved to right).
    See this http://apex.oracle.com/pls/apex/f?p=46417:47

  • Corrupt Session State? - Apex form posts text value as Null

    Recently I've discovered an issue with our Apex installation in which any value chosen as a source for a text field ends up being posted as a null to the database.
    We are running APEX version 3.2 within an Oracle 10.2.0.4 database using the Oracle HTTP Server from the 10g companion disk.
    At first glance, everything appears to function as expected; I have created a simple table called "oracle_sr" with 2 columns both not null:
    SQL> desc capacity.oracle_sr
    Name Null? Type
    ORACLE_SR_ID NOT NULL NUMBER
    TIMESTAMP NOT NULL DATE
    Within APEX the form wizard was used to create a form on this table.
    After executing the pages and entering a value for the timestamp field I can create records without issue.
    The issue arises when I choose a source value for the timestamp field.
    Any of the source options result in the same error (including a static value) so I will focus on the SQL Query for the source as:
    select sysdate from dual;
    This should substitute the system date within the timestamp text field when the page is executed.
    As expected, the value appears in the text box but when I submit the form to create the record I receive the error:
    ORA-01400: cannot insert NULL into ("CAPACITY"."ORACLE_SR"."TIMESTAMP")
    I have been working with APEX for quite some time and have successfully used this technique in many applications but just started to see this error over the past few days. What is particularly odd about this message is that default "not null" validations created by the form wizard sees the timestamp filed as having a value. The session state information included below is reporting a value yet the database is throwing the ORA-01400.
    Has anyone experienced a similar issue? I've spent a fair amount of time trying to research this issue but cannot seem to find any similar posts.
    I have included the debug output from my test page, from what I can see, there does seem to be a value associated with the timestamp filed:
    0.00: A C C E P T: Request="CREATE"
    0.00: Metadata: Fetch application definition and shortcuts
    0.00: NLS: wwv_flow.g_flow_language_derived_from=FLOW_PRIMARY_LANGUAGE: wwv_flow.g_browser_language=en-us
    0.00: alter session set nls_language="AMERICAN"
    0.00: alter session set nls_territory="AMERICA"
    0.00: NLS: CSV charset=WE8MSWIN1252
    0.00: ...NLS: Set Decimal separator="."
    0.00: ...NLS: Set NLS Group separator=","
    0.00: ...NLS: Set date format="DD-MON-RR"
    0.01: ...Setting session time_zone to -06:00
    0.01: Setting NLS_DATE_FORMAT to application date format: DD-MON-RR
    0.01: ...NLS: Set date format="DD-MON-RR"
    0.01: Fetch session state from database
    0.01: ...Check session 2303701116904676 owner
    0.01: Setting NLS_DATE_FORMAT to application date format: DD-MON-RR
    0.02: ...NLS: Set date format="DD-MON-RR"
    0.02: ...Check for session expiration:
    0.02: ...Metadata: Fetch Page, Computation, Process, and Branch
    0.02: Session: Fetch session header information
    0.02: ...Metadata: Fetch page attributes for application 109, page 50
    0.02: ...Validate item page affinity.
    0.02: ...Validate hidden_protected items.
    0.03: ...Check authorization security schemes
    0.03: Session State: Save form items and p_arg_values
    0.03: *...Session State: Save Item "P50_ORACLE_SR_ID" newValue="" "escape_on_input="N"*0.03: *...Session State: Save Item "P50_TIMESTAMP" newValue="26-MAY-09" "escape_on_input="N"*
    0.03: ...Session State: Save "P0_CURRENT_PERSONNEL_ID" - saving same value: "1"
    0.03: ...Session State: Save "P0_OFFSET" - saving same value: "0"
    0.03: ...Session State: Save "P0_ACTIVE_WEEK" - saving same value: "24-MAY-09"
    0.03: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
    0.03: Branch point: BEFORE_COMPUTATION
    0.03: Computation point: AFTER_SUBMIT
    0.03: Tabs: Perform Branching for Tab Requests
    0.03: Branch point: BEFORE_VALIDATION
    0.03: Perform validations:
    0.03: ...Item Not Null Validation: P50_TIMESTAMP
    0.04: Branch point: BEFORE_PROCESSING
    0.04: Processing point: AFTER_SUBMIT
    0.04: ...Process "Get PK": PLSQL (AFTER_SUBMIT) declare function get_pk return varchar2 is begin for c1 in (select ORACLE_SR_SEQ.nextval next_val from dual) loop return c1.next_val; end loop; end; begin :P50_ORACLE_SR_ID := get_pk; end;
    0.04: ...*Session State: Saved Item "P50_ORACLE_SR_ID" New Value="6"*
    0.04: ...Process "Process Row of ORACLE_SR": DML_PROCESS_ROW (AFTER_SUBMIT) #OWNER#:ORACLE_SR:P50_ORACLE_SR_ID:ORACLE_SR_ID|IUD
    0.04: Show ERROR page...
    0.04: Performing rollback...
    ORA-01400: cannot insert NULL into ("CAPACITY"."ORACLE_SR"."TIMESTAMP")
    Unable to process row of table ORACLE_SR.
    Return to application.
    Any thoughts would be appreciated.
    Thank you,
    Justin.

    If you changed the Source Type of an item from Database Column to something else, then it cannot participate in the Automated Row Fetch/Automatic Row Processing (DML) choreography. You should leave the Source Type as it was and change the item's Default Value to populate it when the ARF process fetches a null for the column.
    Scott

  • Application Items/Session State Values and Page Branching

    I have users coming into a specific page in my application, passing in a value on the url that sets the value of an application item, where a validation routine occurs. If their session validates, I want to send them to one page, if it does not, I want to send them to a login error page.
    During validation, I am setting the values of several application items so that these values can be saved and used throughout their session. The values appear to be setting correctly. I am concerned that setting the application items may not be limiting these values to a particular session. So, I have also tried setting the setting session state variables with code like:
    apex_util.set_session_state ('F203_REQ', vReqID);
    I found it curious though when I ran this page, not trying to branch so I could check session state, these values showed up as being application items and I saw nothing under session variables.
    The problem I am having is that once validated I don't know how to branch to these other pages. I have tried adding some javascript in the header to force a page submit so that I could use a branch setup on the page. However, when it comes time to evaluate the branches (it's using one of the application item values I set earlier), I'm getting an error that no branch has been provided. Further research suggests the application item values are being cleared on the page submit.
    So, (1) I either need to know how to preserve those values on submit so the page branch works or (2) I need to branch to the new page without using a page submit and instead doing that in a some code (assuming submit is clearing application item values). I have not been able to find an example of how to do this in code. If there is a way to do this in code, will the application item or session state variable values be retained? I will need these values to be available to the user throughout their session.
    Thanks for the help,
    Steve

    Steve,
    I am concerned that setting the application items may not be limiting these values to a particular session.They are set in the current session only.
    It is hard to know what you are doing exactly without seeing it. If you set up an example on apex.oracle.com we could could address one specific question at at time.
    Scott

  • 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

Maybe you are looking for