How to handle IPortalComponent Session in Dynpage

Hi Guys,
I am using IPortalComponentSession object to hold the bean instances. Evey thing is working, if page is not idle for more than 20 min. If I access the page when the page is idle for more than 20 min, it is throwing Null pointer exception. This is because IPortal
ComponentSession scope gets lost and couldn't get the bean object.
Is there any parameter available to set the Global Portal Sesssion time to IPortalComponent Session, such that when portal session expires IPortalComponent Session expires automatically.
Is there any property exists in portalapp.xml file or iview.
Thanks in Advance
Chinna.

Hi All,
As I said, when ever the component session expires Null pointer exception is showing. Hence I am catching the NullPointer exception and then reloading the page again. It is working in frontend without any issues.
But in the error log monitor(nwa) I can see the below error when reloading the page after component session expires.
Cannot change transaction isolation during distributed transaction and when the connection is shared. DataSource name: "PRODB2
As per my knowledge I understood that this is happening beacuse application is trying to recreate a new connection pool while one pool instance is alive.
If this is correct can any one tell me how to destory the pool of current session when reloading the page.
Thanks in Advance,
Chinna.

Similar Messages

  • How to Handle user Session in JSP

    Help me,
    How to handle user session in JSP.......

    Prakash_Pune wrote:
    tell me some Debugging tech. so i can overcome from my problem.....Do you use an IDE? Any IDE ships with a decent debugger where in you can just execute the code step by step, explore the current variable values and check what exactly is happening. For example Eclipse or IntelliJ. If you don´t use an IDE, then just place some System.out.println() or Logger.debug() statements at strategic locations printing the variables of relevance so that you can track in logs what exactly is happening.
    or tell any other way to find is my page is thread safe or not...Just write correct code and narrow the scope of the variables as much as possible. If you for example assigned the user object to a static variable or as a servlet´s instance variable, then exactly the same user object would be used everywhere in the application. That kind of logical things.

  • How to handle multiple sessions in Script recorder

    Hi,
    I have a requirement to update certain records from a program. For that I have to put a breakpoint the program (which I did manually).
    Now when I use the scripting tool to record the events, only events related to the original session gets recorded. Any events on the newly opened debugger mode is not recorded !
    However, I can record the events in the debugger separately.
    So I have 2 scripts which are session dependent. In Session 1 my program runs and in session 2 (which opens the debugger in runtime) my edits need to be done.
    How to create a VB script which can handle this session issue?
    Went through this blog by Scriptman and since i am new couldnt get it working !!
    Please help me with a framework to handle this issue.
    Activate a session via Gui scripting
    Thanks,
    Jaywant

    Hi Thomas,
    Yes I have to handle both the session simultaneously.  Let me illustrate further.
    I have to update some (10k- 15k) products from a z table in CRM. We have a custom program for this.
    So, i use se38 and insert a breakpoint in the program (to make the updates to a field) and then execute it. Now I start my script recorder. Provide inputs to the program and hit execute.
    At this point my script recorder is running on the se38 window and not on the debugger window !
    I change the values and press F8. These manual updates do not get captured by script recorder.
    But, if I start my recorder once the debugger window was opened already, I can capture all these changes.
    So we have things like this...
    Script1.vbs --> Events captured in se38
    Script2.vbs --> Events captured in the debugger
    If I merge them and run, the recorder is not handling the new debugger session and the execution halts to get the "excel is waiting for another ole action"
    Thanks,
    Jaywant

  • How to handle expired sessions in portals

    Hai all,
      we have implemented a logic which is given in the following blog (to handle expired sessions).
    (Blog from--Thomas Jung)
    /people/thomas.jung3/blog/2004/12/06/bsp-developers-journal-part-xv--stateful-bsp-and-timeouts
    this is working fine when we run application from workbench organizer.but when i run the same application through Portal,it was failed.
    if someone comeacross this situation please kindly send your comments and solution to this problem.
    Thanks in advance,
    Innu.

    Hai Durai,
    Thanks for the immediate response.
    Here i will give the clear idea about the failure situation.
      IF gv_load IS INITIAL.
        DATA: fields TYPE tihttpnvp.
        FIELD-SYMBOLS: <wa_fields> LIKE LINE OF fields.
        CALL METHOD request->get_form_fields
          CHANGING
            fields = fields.
        LOOP AT fields ASSIGNING <wa_fields>.
          IF <wa_fields>-name CS 'htmlb' OR
             <wa_fields>-name CS 'HTMLB'.
            gv_load = '-'.  "False - Problem with ABAP_FALSE
           appearing the same as initial.
          ENDIF.
        ENDLOOP.
        IF gv_load IS INITIAL.
          gv_load = abap_true.
        ENDIF.
      ENDIF.
      IF gv_load NE abap_true.
        DATA: url  TYPE string.
        DATA: page TYPE string.
        page = 'reload.htm'.
        DATA:  params TYPE tihttpnvp.
        FIELD-SYMBOLS: <wa_params> LIKE LINE OF params.
        APPEND INITIAL LINE TO params ASSIGNING <wa_params>.
        <wa_params>-name = 'url1'.
        CONCATENATE 'http://sapcrmdev.server.com:8080/sap/bc/bsp/sap/'
                     'salesord/default.htm'
                    INTO <wa_params>-value.
        CONCATENATE ' ' ' ' INTO <wa_params>-value.
       <b> CALL METHOD
          cl_http_ext_webapp=>create_url_for_bsp_application
          EXPORTING
            bsp_application      = 'SALESORD'
            bsp_start_page       = page
            bsp_start_parameters = params
          IMPORTING
            abs_url            = url.
        navigation->exit( url ).
      ENDIF.</b>
      The imported parameter URL,which loads the reload page with parameter URL1.
    Exactly here i am getting the problem.
    [My application is launching through iViews as external services.Clearly, when i launch the portals that displays different bsp applications as menu options.when i click on my application that opens another window and from there on my application runs in that window.]
    As we are constructing URL1 above, we are unable to construct Portal url to reload from reload page.]
    so what should exactly i send value through url1 parameter to launch my application through portal..?
    if you have any sample code plz send.
    Thanks,
    Innu.

  • How to handle multiple session in ADF using jdevloper11g

    Hello All
    i want to use the form in Multiple sessions.
    i have one sign up form. user enter only 4 to 5 fields & he may not fill the the manditory field & he left.but data base dont give the error to him. but next day he will come at the next day to complet his sign up i.e. when he commit the all detail that time all validation will hapen.
    for that i use one table without constrain to store the temarory detail.& use other table (with constrains) for final submition.
    1) i creat the view n entity for temparory table
    2) & also i create views n entity for Final table
    n i create one methos in viewRowImple file in that file i overrid create method from using this i set the value from tempary to final table...
    but when user left the manditory field then it allow to submit the data in temparory field but when i copy that data to final table(with constrain) n user submit the data then validation happn i.e. "this fild is mandatory".when i click this error message it goes to first screen.
    IS Thiis Possible.. in ADF

    Generally this can be done.
    I see a problem with your use case, which has nothing to do with jdev or java:
    How do you identify the user when he comes back to finish the form?
    For this you can't use information like session cookie or IP address because they change.
    So you have to save some information about the user which lets you identify him when he comes back. All other requirements can be implemented by ADF.
    Timo

  • How to handle screen resolution in bdc session method.

    hi all,
    how to handle screen resolution in bdc session method.

    Hello,
    Why do need that for? Is it to add rows on a table control??
    If it does, add new rows by using the add button instead of adding into the table control directly to each row.
    Bye
    Gabriel.

  • How to handle screen resolution in session method

    how to handle screen resolution in session method  without bdc_insert .

    Hello,
    Why do need that for? Is it to add rows on a table control??
    If it does, add new rows by using the add button instead of adding into the table control directly to each row.
    Bye
    Gabriel.

  • How is table control data handled in Session Method?

    Hi Friends,
    Can any1 plz tell me how is table control data handled in Session Method.
    In Call tran we do it by count. But how in Session Method?
    Thank you.
    Regards,
    Varun.

    Hi,
    u can do it by both methods. u can check out this program. u need to comment the performs of table control fields and write ur own perform statements.And u have to declare the table control fields as separate internal tables.
    report zcustomer_change_bict
           no standard page heading line-size 255.
    include bdcrecx1.
    data: begin of it_record occurs 0,
            kunnr like rf02d-kunnr,
            d0360 like rf02d-d0360,
            anred(30) type c,
            name1(35) type c,
            namev(35) type c,
            telf1(35) type c,
            abtnr(10) type c,
          end of it_record.
    data: begin of it_knvk1 occurs 0,
          anred like knvk-anred,
          end of it_knvk1.
    data: begin of it_knvk2 occurs 0,
          name1 like knvk-name1,
          end of it_knvk2.
    data: begin of it_knvk3 occurs 0,
          namev like knvk-namev,
          end of it_knvk3.
    data: begin of it_knvk4 occurs 0,
          telf1 like knvk-telf1,
          end of it_knvk4.
    data: begin of it_knvk5 occurs 0,
          abtnr like knvk-abtnr,
          end of it_knvk5.
    data : fld(20) type c,
           cnt(2) type n.
    start-of-selection.
      call function 'GUI_UPLOAD'
        exporting
          filename                      = 'C:\CUSTCH.TXT'
         filetype                      = 'ASC'
        has_field_separator            = 'X'
        tables
          data_tab                      = it_record
    exceptions
       file_open_error               = 1
       file_read_error               = 2
       no_batch                      = 3
       gui_refuse_filetransfer       = 4
       invalid_type                  = 5
       no_authority                  = 6
       unknown_error                 = 7
       bad_data_format               = 8
       header_not_allowed            = 9
       separator_not_allowed         = 10
       header_too_long               = 11
       unknown_dp_error              = 12
       access_denied                 = 13
       dp_out_of_memory              = 14
       disk_full                     = 15
       dp_timeout                    = 16
       others                        = 17
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
      perform open_group.
      loop at it_record.
        refresh bdcdata.
        refresh: it_knvk1,it_knvk2,it_knvk3,it_knvk4,it_knvk5.
        split it_record-anred at ',' into table it_knvk1.
        split it_record-name1 at ',' into table it_knvk2.
        split it_record-namev at ',' into table it_knvk3.
        split it_record-telf1 at ',' into table it_knvk4.
        split it_record-abtnr at ',' into table it_knvk5.
    screen 101
        perform bdc_dynpro      using 'SAPMF02D' '0101'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RF02D-D0360'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'RF02D-KUNNR'
                                      it_record-kunnr.
        perform bdc_field       using 'RF02D-D0360'
                                      it_record-d0360.
    screen 360
        perform bdc_dynpro      using 'SAPMF02D' '0360'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'KNVK-ABTNR(01)'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=ENTR'.
    *perform bdc_field       using 'KNVK-ANRED(01)'
                                 record-ANRED_01_003.
    *perform bdc_field       using 'KNVK-NAMEV(01)'
                                 record-NAMEV_01_004.
    *perform bdc_field       using 'KNVK-NAME1(01)'
                                 record-NAME1_01_005.
    *perform bdc_field       using 'KNVK-TELF1(01)'
                                 record-TELF1_01_006.
    *perform bdc_field       using 'KNVK-ABTNR(01)'
                                 record-ABTNR_01_007.
        move 1 to cnt.
        loop at it_knvk1 .
          concatenate 'knvk-anred( ' cnt ' ) ' into fld.
          perform bdc_field using fld it_knvk1-anred.
          cnt = cnt + 1.
        endloop.
        move 1 to cnt.
        loop at it_knvk2 .
          concatenate 'knvk-name1( ' cnt ' ) ' into fld.
          perform bdc_field using fld it_knvk2-name1.
          cnt = cnt + 1.
        endloop.
        move 1 to cnt.
        loop at it_knvk3 .
          concatenate 'knvk-namev( ' cnt ' ) ' into fld.
          perform bdc_field using fld it_knvk3-namev.
          cnt = cnt + 1.
        endloop.
        move 1 to cnt.
        loop at it_knvk4 .
          concatenate 'knvk-telf1( ' cnt ' ) ' into fld.
          perform bdc_field using fld it_knvk4-telf1.
          cnt = cnt + 1.
        endloop.
        move 1 to cnt.
        loop at it_knvk5 .
          concatenate 'knvk-abtnr( ' cnt ' ) ' into fld.
          perform bdc_field using fld it_knvk5-abtnr.
          cnt = cnt + 1.
        endloop.
    screen 360
        perform bdc_dynpro      using 'SAPMF02D' '0360'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'KNVK-NAMEV(01)'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=ENTR'.
        perform bdc_transaction using 'XD02'.
      endloop.
      perform close_group.

  • Newbie: How to handle a multi-step dialogue with no session?

    I can't see how to handle the following trivial problem:
    1. The user clicks on a button to retrieve values from the database
    2. The values returned are displayed in a table on the same page
    3. The user clicks a button next to the desired element
    4. Some action is performed
    I can achieve steps 1, 2, 3 but fail on step 4: the action is not called.
    One prerequisite is that I don't want to store anything in the session or application scope.
    In the example that follows, when you click on "Show Element" the action is not performed.
    This is myExample.jsp:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <HTML>
    <HEAD>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <TITLE>Test</TITLE>
    </HEAD>
    <f:view>
         <BODY>
         <h:form>
              <h:commandButton action="#{myExample.doSearch}" value="Search Database" />
              <p/>
              <h:dataTable value="#{myExample.elements}" var="elem" binding="#{myExample.dataTable}">
                   <h:column>
                        <h:outputText value="#{elem}"/>
                   </h:column>
                   <h:column>
                        <h:commandButton type="submit" value="Show Element"     action="#{myExample.doShowElement}"/>
                   </h:column>
              </h:dataTable>
         </h:form>
         </BODY>
    </f:view>
    </HTML>This is myExample.java:
    package example;
    import javax.faces.component.html.HtmlDataTable;
    public class MyExample {
         private HtmlDataTable dataTable;
         private String[] elements;
         public MyExample() {
         private String[] readFromDatabase() {
              return new String[] {"one", "two", "three"};
         public String[] getElements() {
              return elements;
         public void setElements(String[] elements) {
              this.elements = elements;
         public HtmlDataTable getDataTable() {
              return dataTable;
         public void setDataTable(HtmlDataTable dataTable) {
              this.dataTable = dataTable;
         public String doSearch() {
              elements = readFromDatabase();
              return "";
         public String doShowElement() {
              String selected = (String) dataTable.getRowData();
              System.out.println("Selected element: " + selected);
              return "";
    }This is in faces-config.xml
         <managed-bean>
              <managed-bean-name>myExample</managed-bean-name>
              <managed-bean-class>example.MyExample</managed-bean-class>
              <managed-bean-scope>request</managed-bean-scope>
         </managed-bean>

    Thank you for your answer.
    I didn't realise I could use inputHidden for anything more complex than a single string...
    I have added a h:inputHidden for the elements array but it still doesn't work.
    How should it be used?
         <h:form>
              <h:inputHidden value="#{myExample.elements}"/>
              <h:commandButton action="#{myExample.doSearch}" value="Search Database" />
    ...While debugging I noticed that at the last button-press the getElements method is called twice before setElements, returning null.

  • How to invalidate the IPortalComponent Session

    Hi,
    I have written one portal component for customizing the session expiry. In this component, based on certain idle time we want to redirect to another customize page saying that session is timed out. Redirection is happening but session is still alive. I want to invalidate the session.
    Can somebody tell me that <b>how can I invalidte the IPortalComponent session</b>. I know how to invalidate the http session but that does not solve my problem.
    Any suggestion?
    Thanks in advance.
    Manish

    Hi,
    By looking at the code of the IPortalComponentSession one can see that it basically stores all values in the httpsession with a certain prefix. Therefore, shouldn't it be sufficient to invalidate the httpsession ? (if this is not the case could you describe the problem closer)
    Note that if there is not component session, the IPortalComponent request creates one the first time it is accessed.
        public IPortalComponentSession getComponentSession()
            if(mm_componentSession == null)
                mm_componentSession = new PortalComponentSession(this);
            return mm_componentSession;
    Dagfinn

  • How to handle multiple tables data in Entity Beans?

    How to handle multiple tables data in Entity Beans?
    i mean, my bean (non trivial) is responsible for frequent
    insertion in one table and some deletion on another table.
    Can anyone of you...please..?

    Is your data model right? If you are adding in one and deleting in another it sounds to me more like a process that an entity, in which case you may revisit your data model and simplify it, add in a session bean with the process method to co-ordinate between the two.
    However, if you want to map multiple different tables within a single entity bean it is possible and just part of the mapping. How you actualyl specify it depends on which implementation you are working with.
    Cheers,
    Peter.

  • How to handle multiple datasources in a web application?

    I have a J2EE Web application with Servlets and Java ServerPages. Beside this I have a in-house developed API for certain services built using Hibernate and Spring with POJO's and some EJB.
    There are 8 databases which will be used by the web application. I have heard that multiple datasources with Spring is hard to design around. Considering that I have no choice not to use Spring or Hibernate as the API's are using it.
    Anyone have a good design spesification for how to handle multiple datasources. The datasource(database) will be chosen by the user in the web application.

    Let me get this straight. You have a web application that uses spring framework and hibernate to access the database. You want the user to be able to select the database that he wants to access using spring and hibernate.
    Hopefully you are using the Spring Framework Hibernate DAO. I know you can have more that one spring application context. You can then trying to load a seperate spring application context for each database. Each application context would have it's own configuration files with the connection parameters for each datasource. You could still use JNDi entries in the web.xml for each datasource.
    Then you would need a service locater so that when a user selected a datasource he would get the application context for that datasource which he would use for the rest of his session.
    I think it is doable. It means a long load time. And you'll need to keep the application contexts as small as possible to conserve resources.

  • How to handle error messages in BDC background mode

    Hi experts,
      I got one problem in BDC, We are uploading data throgh BDC program,that program is calling Standard Batch Input programs,
    Now we got one requirement, i.e., In some special cases we have to send one message as a error message.I handled this in foreground but, how to handle this in background.

    Hi,
    if session is being used
    automatically the log will begenereated in the sm35 transaction
    but if call transaction is used
    put all the error messages in the applicationserver using
    open data set
    and after the exectionof the program in the background
    you have to run another progam which reads the data stroed inthe application server
    that also with open data set only...
    thanks & regards,
    Venkatesh

  • How to handle error for a file to file transform in ODI

    I am doing a lab for file to file transformation where source = CSV file and target = Flat file.
    1) When I am changing the datatype in source two files are getting created where one having the errored out data and the other having the errored message, how how to handle the errored data?
    2) If the target path is changed the session in ODI is showing as completed, it should error out. Here no files are created in source as earlier. Hoe to handle this type of error?

    Hi,
    I have used the following KMs in my transformation with the following options:
    IKM SQL Incremental Update
    INSERT    <Default>:true
    UPDATE    <Default>:true
    COMMIT    <Default>:true
    SYNC_JRN_DELETE    <Default>:true
    FLOW_CONTROL    <Default>:true
    RECYCLE_ERRORS    <Default>:false
    STATIC_CONTROL    <Default>:false
    TRUNCATE    <Default>:false
    DELETE_ALL    <Default>:false
    CREATE_TARG_TABLE    <Default>:false
    DELETE_TEMPORARY_OBJECTS     <Default>:true
    LKM SQL to SQL
    DELETE_TEMPORARY_OBJECTS    <Default>:true
    CKM Oracle
    DROP_ERROR_TABLE    <Default>:false
    DROP_CHECK_TABLE    <Default>:false
    CREATE_ERROR_INDEX    <Default>:true
    COMPATIBLE    <Default>:9
    VALIDATE    <Default>:false
    ENABLE_EDITION_SUPPORT    <Default>:false
    UPGRADE_ERROR_TABLE    true

  • Model of how APEX handles data (values)?

    Reference {thread:id=2486655}
    I'm trying to get a model of how APEX handles data (values). There are several places(?) that data (values) can exist. Or so it seems. I'm trying to understand how these work -- to put all the pieces together.
    Question:
    A) Where data can be?
    1) In the database
    2) In the session
    3) Rendered -- and hence displayed on the screen, if a displayed value -- but not in the session
    4) In perhaps(?) some working memory pool(?) but different from the page rendered values I see on the screen?
    5) Other?
    Why do I think this is relevant?
    Question:
    B) If there are rendered values and session values different from the rendered values, then when code executes, which of these values (rendered or session) is it executing against?
    And maybe the answer is, "You don't understand what's going on." Yes, "Exactly!" Hence the question.
    Best wishes,
    Howard

    Howard (DBA in Training) wrote:
    I'm putting this together now. For example:
    I set the value of a Page Item (say, :P2_DATA) to "BEFORE" in a Before Region process and change it to "AFTER" in an After Region Process. 'BEFORE' was displayed on the screen but 'AFTER' was in the session state. So I see that PL/SQL changes these values in the session state. But it doesn't "go back" to change the HTML after the region has been rendered -- hence we see BEFORE shown on the screen. (I'll have to think about what a Dynamic Action does.)
    Also, if a page item has a default value, say 'DEFAULT' then that value doesn't get into the session state. At least, not with my current settings. Oh, that explains a lot of confusion!! I suppose there's a logical reason for this but who would expect default values to be differently from other PL/SQL operations on the item?
    Questions:
    1) So why does a default value not get put into the session state?Several reasons, among them:
    *1. When/why is the value required?* Region items (and thus their source and default values) are rendered in region/item sequence order. The item's source/default value would therefore not be available in session state until it's rendering point. This is frequently later in page show processing than the value is actually required, such as the common use case of including a data value in the page or region title. Setting the value in a Before Header/Regions computation or process makes it available as required before the item is actually rendered.
    *2. The rendered page might not be submitted.* Default values are typically set when a page will create a new row. Consider the situation where the user clicks a "Create" button and is presented with an order entry form containing several default values. They then decide they don't want to create a new order after all, and navigate away from the form page via some mechanism that uses a redirect rather than a submit (such as a default "Cancel" button). This means that no page submit processing is performed, and generally that no session state management is performed. If the default values were set in session state, the order entry page would contain the default values for the non-existent order despite the user never submitting it. This may have unwanted side-effects if these values are referenced elsewhere in the application, and therefore would require extra session state management to be built into the application.
    *3. A rendered item might not be submitted with the page.* Per the HTML specification, the values of disabled controls unchecked checkboxes are not POSTed on page submit. Consider a situation where a checkbox item is set with several default values, but the application requires that the checkboxes be cleared and disabled by a dynamic action if the user chooses certain options from a select list. In this case, on page submission no values are submitted into session state for the checkbox item. If the defaults had been set in session state, then the application would be in an inconsistent state, with the user-selected option indicating that none of the checkboxes were checked, but with session state holding values showing that they were. This would require additional processing to ensure that the application's state was consistent before saving it to the database.<sup>1</sup>
    2 & 3 are particularly significant in basic wizard-generated applications. Doing things in this way, the wizard-generated DML and navigation "just works", without the need for additional session state management.
    2) Is there a Page Item setting that causes the default value to be saved to the session state?No. Hopefully the explanations above provide sufficient reason to show why this is genearlly not desirable. On the rare occasions when it is required, set the session state value using a computation or process.
    <sup>1</sup> There are other reasons&mdash;mainly security related&mdash;that make it good practice to perform such checks in more complex and internet-facing applications anyway.

Maybe you are looking for