Session Caching in Weblogic

Hi,
I have an application, which retrieves data from a content server and displays it on mobile handsets. The application is designed using struts with ejb2.0. Now if I want to introduce caching in order to reduce the number of calls to the services, which gets the contents from the content server, how do I go about it. I want to avoi the normal session management (session.setAttribute)
Thanks
Nitin Nair

The HttpSession object is designed and made available to cache session
specific data. Why wouldn't you want to use the very thing that is supplied
to solve your problem? You could create a static data structure that holds
the data you want to cache and is accessed by a key, such as the session id,
but that is essentially what the session object already provides you with.
You would also have to synchronize access to this static collection. Use the
session object.
Bill
"Nitin Nair" <[email protected]> wrote in message
news:31611827.1103525040210.JavaMail.root@jserv5...
Hi,
I have an application, which retrieves data from a content server anddisplays it on mobile handsets. The application is designed using struts
with ejb2.0. Now if I want to introduce caching in order to reduce the
number of calls to the services, which gets the contents from the content
server, how do I go about it. I want to avoi the normal session management
(session.setAttribute)
>
Thanks
Nitin Nair

Similar Messages

  • HOWTO:Deploy BC4J as Session Bean in Weblogic

    This document describes Howto deploy a BC4J Appmodule as EJB Session Bean to Weblogic and
    test the appmodule through the BC4J tester.
    =>create a BC4J Application using Business Components Wizard.
    =>test it using BC4J tester
    =>make the Application Module Remotable [list]
    [*]Select Appmodule and right mouse on it to select the edit option
    [*]Select Remote tab
    [*]Select the check box for Remotable Application Module
    [*]Select EJB Session Bean and shuttle it from Available list to Selected list
    [*]Click on the finish button[list]
    => Do File| Save All and a Rebuild on the project
    => create the weblogic XML Deployment Descriptor[list]
    [*]Choose File|New
    [*]Select the web objects tab
    [*]Select XML and click ok
    [*]Rename the file as ejb-jar.xml using File|Rename
    [*]Save it in the JDEV_HOME/myclasses/META-INF directory.
    [*]Open the xml file by double clicking on it.
    [*]Paste the following into the file
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
    <ejb-jar>
    <enterprise-beans>
    <session>
    <ejb-name>wl.WlModule</ejb-name>
    <home>wl.common.ejb.WlModuleHome</home>
    <remote>wl.common.ejb.RemoteWlModule</remote>
    <ejb-class>wl.server.ejb.WlModuleServerEJB</ejb-class>
    <session-type>Stateful</session-type>
    <transaction-type>Bean</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    </assembly-descriptor>
    </ejb-jar>
    [*]Choose File|New
    [*]Select the web objects tab
    [*]Select XML and click ok
    [*]Rename the file as weblogic-ejb-jar.xml using File|Rename
    [*]Save it in the JDEV_HOME/myclasses/META-INF directory.
    [*]Open the xml file by double clicking on it.
    [*]Paste the following into the file
    <!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>wl.WlModule</ejb-name>
    <caching-descriptor>
    <max-beans-in-free-pool>100</max-beans-in-free-pool>
    <max-beans-in-cache>100</max-beans-in-cache>
    <idle-timeout-seconds>60</idle-timeout-seconds>
    </caching-descriptor>
    <jndi-name>wl.WlModule</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    In this example "wl" is the package name and "WlModule" is the Appmodule name.[list]
    => generate the jar file for appmodule along with xml deployment descriptors[list]
    [*]from the command line in JDEV_HOME/myclasses directory run
    [*]jar cvf0 wlappmodule.jar wl META-INF[list]
    => edit the setenv.cmd file in WEBLOGIC_HOME directory[list]
    [*]set JAVA_HOME=f:\jdev32\java1.2
    [*]set JBOLIB=f:\jdev32\lib
    [*]set JDBC_CLASSES=f:\jdev32\jdbc\lib\oracle8.1.7\classes12.zip
    [*]set JBO_RUNTIME=%JBOLIB%\jboorasql.zip;%JDBC_CLASSES%;%JBOLIB%\jbodatum12.zip;%JBOLIB%\xmlparserv2.jar;%JBOLIB%\jbomt.zip;%JBOLIB%\jboejb.jar
    [*]add JBO_RUNTIME in the set CLASSPATH variable[list]
    => create a bc4j deploy batch file "Deploybc4j.cmd" in the WEB_LOGIC HOME
    which will generate the server side jar files
    @setlocal
    set JAVA=java
    set JAVAC=javac
    set BEAN_JAR=%1
    set EJB_TEMP=f:\jdev32\myclasses\wl
    set XMLPARSERV2=f:\jdev32\lib\xmlparserv2.jar;
    set JDBC_LIBS=f:\jdev32\jdbc\oracle8.1.7\lib\classes12.zip
    set JBO_EJB_RUNTIME=f:\jdev32\lib\jbomt.zip;f:\jdev32\lib\jboejb.jar;%XMLPARSERV2%;%JDBC_LIBS%
    set CLASSPATH=%CLASSPATH%;%JBO_EJB_RUNTIME%;%BEAN_JAR%;%EJB_TEMP%
    %JAVA% weblogic.ejbc -compiler javac f:\jdev32\myclasses\wlappmodule.jar f:\jdev32\myclasses\wlAppModuleGenerated.jar;f:\jdev32\lib\jbodomorcl.zip
    pushd %EJB_TEMP%
    @endlocal
    Note: substittue appropriate jar file and directory structure names
    => Run setenv.cmd
    => Run deploybc4j.cmd
    => Configure Weblogic server[list]
    If your weblogic server is residing on a different machine then
    [*]copy wlAppModuleGenerated.jar (generated jar file from deploybc4j.cmd)
    [*]Copy classes12.zip from JDEV_HOME/jdbc/lib/oracle8.1.7/ directory
    [*]Copy jbodomorcl.zip
    [*]jbodatum12.zip
    [*]xmlparserv2.jar
    [*]jbomt.zip
    [*]jboejb.jar from JDEV_HOME/lib directory
    [*]edit weblogic.properties file in WEBLOGIC_HOME directory
    [*]In the WEBLOGIC EJB DEMO PROPERTIES sectio
    [*]add weblogic.ejb.deploy=E:/weblogic/myserver/wlAppModuleGenerated.jar
    (generated jar file from deploybc4j.cmd file)
    [*]edit startweblogic.cmd file in WEBLOGIC_HOME directory
    [*]set POST_CLASSPATH=f:\jdev32\jdbc\oracle8.1.7\lib\classes12.zip;f:\jdev32\lib\jboorasql.zip;f:\jdev32\lib\jbodatum12.zip;f:\jdev32\lib\xmlparserv2.jar;f:\jdev32\lib\jbomt.zip;f:\jdev32 \lib\jboEJB.jar;f:\jdev32\lib\jbodomorcl.zip
    [*]add E:/weblogic/myserver/wlAppModuleGenerated.jar
    (generated jar file from deploybc4j.cmd file) in the weblogic_classpath setting[list]
    Note: modify the directory structure of jar files as apporpriate
    => Run the BC4J tester to test the deployed BC4J Appmodule as session bean to Weblogic[list]
    [*]Add a new library
    [*]Select the Project in which you developed the BC4J Appmodule
    [*]Project | Project Properties
    [*]select libraries tab
    [*]Click on Add
    [*]Click on New
    [*]Specify "JBO WL Client" in the NAME
    [*]Click on ... button for adding the jar files
    [*]Click on Add/Zip jar button to add the following files
    weblogicaux.jar
    jboremoteejb.zip
    jboremote.zip
    <Weblogic_home>/classes
    [*]Click on OK
    [*]Start the weblogic server
    [*]Bring the BC4J Tester by doing a right mouse on the appmodule and selecting Test option
    [*]In the Middle Tier Server Type Select "Weblogic"
    [*]Specify Host name and port # of weblogic server
    [*]Click on Connect[list]
    raghu
    null

    Although this explains how to then deploy to Weblogic on another server, it still presumes that it is installed on the same computer as JDev. I moved the weblogic.jar file over to the computer and fudged a few things to get it to work.
    Also, I am testing this with Weblogic 6.0, so some of the information does not work as prescribed. I edited the config.xml instead of the weblogic.properties file. I am trying to figure out where to put all of the *.jar and *.zip files that I copied over to the Solaris machine with Weblogic. Any suggestions?
    And one of the steps in the section to create the deploybc4j.cmd file is wrong. It says
    "%JAVA% weblogic.ejbc -compiler javac f:\jdev32\myclasses\wlappmodule.jar f:\jdev32\myclasses\wlAppModuleGenerated.jar;f:\jdev32\lib\jbodomorcl.zip"
    Which does not work. I took off the last part:
    "%JAVA% weblogic.ejbc -compiler javac f:\jdev32\myclasses\wlappmodule.jar f:\jdev32\myclasses\wlAppModuleGenerated.jar"
    and it worked. It was getting that whole last part and trying to create a directory with that name and failing.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by David Shanes ([email protected]):
    This seems to assume that JDev and Weblogic are installed on the same server (I refer to the section on setting the setenv.cmd file in the WEBLOGIC_HOME dir that includes the path to the JDev install.
    I have JDev installed on a Win 2k box and Weblogic installed on a Solaris. Any suggestions? I got all the way up to the setenv.cmd step fine.<HR></BLOCKQUOTE>
    null

  • Info on JSP caching in WebLogic 5.1

              Hi,
              I found your name in the Weblogic newsgroup and hence decided to post this
              question to you. Hope you do'nt mind my asking it.
              I would like to know something about caching of Java Server Pages in WebLogic
              5.1. How effective is it for developing and deploying applications on WebLogic
              Server ? Has caching in WebLogic been tried out extensively in deploying applications
              before ? How successful have they been ?
              In particular, I would like to know if any deadlock occurrs in Java Server
              Page caching in WebLogic.
              Also can I force a cache to refresh within the timeout period (i.e., before
              the elapse of the timeout for the particular cache) ?
              Also, how is the async attribute used in <wl:cache> tag ? Is there any performance
              bottleneck occurring due to its usage ?
              I would love to have answers to all my questions. However even if I get some
              answers it will be highly appreciated.
              Regards,
              Sumantu
              

    In WebLogic 6.0 register each jsp in the web.xml with a <servlet-name>, <jsp-file>
              and <load-on-startup>. For example:
              <web-app>
              <servlet>
              <servlet-name></servlet-name>
              <jsp-file></jsp-file>
              <load-on-startup></load-on-startup>
              </servlet>
              <servlet-mapping>
              <servlet-name></servlet-name>
              <url-pattern></url-pattern>
              </servlet-mapping>
              </web-app>
              The optional value of load-on-startup element must be a positive integer indicating
              the order in which the servlet should be loaded.
              In WebLogic 6.1 set the precompile parameter in weblogic.xml.
              <jsp-descriptor>
              <jsp-param>
              <param-name>
              precompile
              </param-name>
              <param-value>
              true
              </param-value>
              </jsp-param>
              </jsp-descriptor>
              Vaibhav wrote:
              > This solution is with web.xml, if I am
              > using weblogic.properties only and no web.xml, How do I specify precompile=true ?
              

  • How to share Sessions between 2 Weblogic ?

    Hello,
    I've some problems in setting on Weblogic. Suppose there are 2
    Weblogic Servers, WebA and WebB. A New Session will be created if user
    go to the page in WebB from WebA. Is there any methods to share the
    Session between them ? I turned on the following properties in
    Weblogic.properties already.
    weblogic.httpd.session.persistence=true
    weblogic.httpd.session.persistentStoreType=jdbc
    weblogic.httpd.session.persistentStorePool=demoPool
    weblogic.httpd.session.persistentStoreShared=true
    But a new entry will be created as long as user go to the page at WebB
    from WebA.
    In fact, I want to use the Session entry created by WebA.
    Thx
    Lim

    You need to make sure that session tracking is enabled,
    either via cookies or url rewriting. Otherwise, the incoming
    request won't be able to tell the server which session it belongs to.
    Jason
    "Cheung" <[email protected]> wrote in message news:[email protected]..
    Hello,
    I've some problems in setting on Weblogic. Suppose there are 2
    Weblogic Servers, WebA and WebB. A New Session will be created if user
    go to the page in WebB from WebA. Is there any methods to share the
    Session between them ? I turned on the following properties in
    Weblogic.properties already.
    weblogic.httpd.session.persistence=true
    weblogic.httpd.session.persistentStoreType=jdbc
    weblogic.httpd.session.persistentStorePool=demoPool
    weblogic.httpd.session.persistentStoreShared=true
    But a new entry will be created as long as user go to the page at WebB
    from WebA.
    In fact, I want to use the Session entry created by WebA.
    Thx
    Lim

  • Possible session caching issue in SSRS2014

    Using custom FormsAuth, User A can sign into our own main asp.net mvc app (WIF cookie), then SSRS (FormsAuth cookie) and all is well.  Here is where things go bad.  User A signs out of our main application (WIF cookie deleted) then back in into
    our main application as User B then back into SSRS.  SSRS report that displays User!UserID show UserA instead of current User B.  Its like there is either a session or cookie caching issue going on but not for sure.  
    1. What is the proper way to sign out of SSRS and prevent session caching?
    2. Do I need to worry about making my SSRS logon page non-cacheable?  If so, what is the recommended way of doing this?
    thanks
    scott

    Hi scott_m,
    According to your description, you used custom FormsAuthentication in Reporting Services, after user A sign out the application an sign in as user B, SSRS built-in user is shows user A instead of user B.
    Based on my search, once we configured SSRS to use Custom (Forms) authentication by deploying a custom security extension, we can logon to MS Report Manager (MSRM) using credentials of our custom security framework via a logon web page. But there is no way
    to logout or to expire the authentication cookie, so we need to close the browser manually. As a workaround, we can add a logout button to the Report Manager which is using Forms Authentication, then use code to clear the cookie and redirect to home page.
    In addition, if you extend Reporting Services to use Forms Authentication, it’s better to use Secure Sockets Layer (SSL) for all communications with the report server to prevent malicious users from gaining access to another user's cookie. SSL enables clients
    and a report server to authenticate each other and to ensure that no other computers can read the contents of communications between the two computers. All data sent from a client through an SSL connection is encrypted so that malicious users cannot intercept
    passwords or data sent to a report server.
    Here is a relevant thread you can reference:
    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/5e33949d-7757-45d1-9c43-6dc3911c3ced/how-do-you-logout-of-report-manager
    For more information about Forms Authentication, please refer to the following document:
    https://technet.microsoft.com/en-us/library/aa902691%28v=sql.80%29.aspx?f=255&MSPPError=-2147217396
    If you have any more questions, please feel free to ask.
    Thanks,
    Wendy Fu
    If you have any feedback on our support, please click
    here.
    Wendy Fu
    TechNet Community Support

  • Http.keepAlive does not turn off SSL session cache?

    Hi there,
    I have a web service client that uses JSSE for making web service calls via https. In an effort to debug problems, I set http.keepAlive to false, I can see from the SSL debug output that KeepAlive timer messages no longer shows up, but I still see text such as "Cached client session" and "try to reuse cached session", etc.
    Should not turning off keepAlive disable the use of persistent sessions?
    Thanks.
    Yan

    They are unrelated features.
    HTTP Keep Alive allows the browser to maintain a Socket to the server and issue multiple HTTP requests over that same socket.
    SSL Session caching is when an SSL Session is assigned an ID, and additional SSL connects may be established with the same ID. These additional sockets then do not need to perform the full SSL handshake, since much of the data has already been negotiated previously.

  • How can I monitor the Session Cache when using HTTP Session-Replication?

    I want to see the session cache content

    To see the list of session IDs in the cache you can iterate over the keys of the cache returned from the following code:
    NamedCache cacheCatalog = CacheFactory.getReplicatedCacheService("$FilterService$").ensureCache("CoherenceSession.CATALOG", getClass().getClassLoader());Then to see the contents of a session you can take a look a the cache returned from the following code:
    String sId = // keys from cacheCatalog
    NamedCache cacheDetails = cacheCatalog.getCacheService().ensureCache(sId, getClass().getClassLoader());Hope this helps.
    We have received your request for a development license and we hould have ti out to you today.
    Later,
    Rob Misek
    Tangosol, Inc.
    Coherence: Cluster your Work. Work your Cluster.

  • How to add a new object to Toplink session cache?

    Toplink Experts,
    I have a question on Toplink 9.0.4.5 (I know this is older version of Toplink but this is what we are using right now). Let me give you little context before I ask the question.
    Toplink server session brokers client sessions (that are spawned by it) and gets changes made in client sessions into server session through transaction commits. Process involved in getting some thing into database using Toplink is: 1) Get client session 2) Register object to be written into database with Toplink's UnitOfWork (UOW). This registration creates two copies of the object registered (original object). Working clone for client application for modifications, backup clone for Toplink to compare the changes made to the working clone later 4) Make changes to the working clone 5) Complete the transaction (and so commit UOW). If transaction commits successfully, Toplink writes the changes from the working clone into database first and applies the same changes made to the working clone to the original object in Toplink server session cache next. Oracle recommends using UOW to write some thing into database. Using UOW involves a transaction and it writes changes into database first before the original object in Toplink server session cache is refreshed.
    Now comes my question: Is there a way to add a brand new object (persistent object) into Toplink server session cache with out writing it first into database? I am OK if I need to use UOW and also to use transaction to make the change but I just want to be able to refresh the original object in the server session cache with out writing any thing into database. If there is a way to do this? What are the disadvantages in doing this way though? I have read Oracle's Toplink developer guide (10.1.3) and Javadocs from Oracle on UnitOfWork/Session etc all related interfaces and classes but I could not find a way. Please help!
    Syam

    There are a couple things wrong with the method you posted. The first being uow.registerObject() is going to cause the object to be treated as new if you are not using the TopLink cache.
    There really is not any supported mechanism to do what you are looking to do. TopLink 11g has the hooks to replace the TopLink cache with a distributed cache (and the TopLink-Grid product uses these to use Coherence as the TopLink cache) but earlier versions did not have this.
    If you are willing to work outside what would be officially supported and no component of the application is using the ServerSession cache (ie all queries refresh) then something like the following may work for you:
    public void prepareObjectForSave(Object userEditedObject, Object gigaSpacesObject)
    UnitOfWork unitOfWork = this.dbContext.getSession().acquireUnitOfWork();
    Descriptor descriptor = this.dbContext.getSession().getDescriptor(gigaSpacesObject);
    Object pkVector = descriptor.getObjectBuilder().extractPrimaryKeyFromObject(gigaSpacesObject, this.dbContext.getSession());
    Object cloneOfMostRecentlyUpdatedObject = (Object)unitOfWork.cloneAndRegisterObject(gigaSpacesObject, new CacheKey(pKVector), descriptor);
    unitOfWork.mergeCloneWithReferences(userEditedObject);
    unitOfWork.commit();
    }You will need to tweak the above code to have it match the APIs in your version of TopLink and you should test thoroughly.
    --Gordon                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to clear cache in weblogic server 10.3

    Hi,
    I am using web logic to handle cache ? How can i clear cache using web logic Mbeans?

    which cache are you talking about? Coherence cache?
    Or maybe you are talking about code cache, as explained here http://wlatricksntips.blogspot.com/2010/07/clearing-cache-for-weblogic-instance.html ?

  • SSL Session cache persistence

    Hello,
    I've been scratching my head for while on a problem concerning SSL session caching. Upon examining memory usage of the session cache I noticed that the number of cached sessions is reset at some point while new session are created. For example sometimes at around 300 -1500 sessions the number drops to under 10. I have set the session cache size to unlimited (via SSLSessionContext.setSessionCacheSize()) and session timeout to 24 hours (via setSessionTimeout()).
    I noticed that this has probably something to do with garbage collection. I made a server application that receives SSL connections and every few seconds prints the number sessions in the cache and the amount of consumed memory (in megs). I also enabled garbace collection information printing and ran java VM with a maximum heap size of 512M. I ran a client application against it that continuously initializes a new sessions. Here's what I got:
    Sessions: 484     Memory: 1.7913589477539062
    [GC [DefNew: 503K->4K(576K), 0.0007350 secs] 2234K->1734K(3796K), 0.0008700 secs]
    [GC [DefNew: 513K->63K(576K), 0.0009260 secs] 2243K->1793K(3796K), 0.0010680 secs]
    Sessions: 490     Memory: 1.7832870483398438
    [GC [DefNew: 569K->37K(576K), 0.0021150 secs] 2299K->1773K(3796K), 0.0022560 secs]
    Sessions: 495     Memory: 2.1244659423828125
    [GC [DefNew: 543K->37K(576K), 0.0019000 secs] 2279K->1775K(3796K), 0.0034750 secs]
    [GC [DefNew: 549K->57K(576K), 0.0009080 secs] 2287K->1796K(3796K), 0.0010290 secs]
    [Full GC [Tenured: 1739K->1635K(3220K), 0.0865340 secs] 1962K->1635K(3796K), [Perm : 3267K->3267K(8192K)], 0.0885000 secs]
    Sessions: 6     Memory: 1.7752304077148438
    [GC [DefNew: 512K->58K(576K), 0.0016310 secs] 2147K->1694K(3796K), 0.0017680 secs]
    [GC [DefNew: 568K->37K(576K), 0.0009750 secs] 2204K->1678K(3796K), 0.0011110 secs]
    Sessions: 12     Memory: 1.7010269165039062
    [GC [DefNew: 549K->56K(576K), 0.0014310 secs] 2190K->1699K(3796K), 0.0015600 secs]Notice how the number of sessions drops from 495 to 6? And in between there's a garbage collection print "[Full GC...". Why is this? Shouldn't the session cache keep the sessions until there's either too many of the them or they get too old? Here only a few minutes have elapsed and memory consumption is under control (1 to 3 megs).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    In my implementation I avoid session renegotiation as
    much as possible to achieve high throughput. My goal
    is to preserve sessions for the entire session
    timeout time. This raises a few questions:Understood, but you also have to protect the server against resource exhaustion. It's in the client's interest to cache lots of sessions for a long time; the server's interest is to conserve resources so it can keep itself running.
    You actually don't want to cache all the sessions, just the 'hot' ones, so you're better off having the SessionContext remove sessions on an LRU basis by having a finite limit, rather than just letting them be GC'd. The fact that so many sessions were collected in your runs indicates pretty severe memory usage.
    (1) Is there any way to tweak this behavior? For
    example can make the sessions live longer by using
    some GC flags for the VM? Allocate more heap space, or cache fewer sessions.
    (2) How about keeping regular references to all the
    sessions in my application?That would save them from GC of course. But then you'll quickly discover that you really do need a finite limit.
    (3) Is the behavior of the session cache or the inner
    workings of the SSL API in general documented
    somewhere?Only in the source code of JSSE, and that's only a property of Sun's JRE implementation. Session caching is not even a required feature, and J2ME implementations for example generally don't do it at all.

  • Transaction cache VS Session cache

    Hi,
    Some one please help me to understand the concepts of ttransaction cache VS Session cache.
    In the user guide its given that
    For AM : Any data stored on the transaction is accessible to all pages that share the same root application module instance .
    For Session : Session cache only when you need to set and access simple values in many pages, which have different root application modules
    (The transaction cache discussed above isn't an option)
    Are these 2 different ? if so how ? Why the transaction cache is different from session cache, both are used to store data and both are available across pages assuming all pages share the same AM.
    Thank you for all your help.

    GustavoJimenez,
    Thank for taking time and explaining it.
    I understand that, if multiple pages share the same AM and retainAM flag ='N' then it will create multiple instances of same AM. so is the AM cache is common for all the AM instances ?
    Can you please explain more about session cache and where it comes into picture ? Is session cache and AM cache has same attributes ?

  • Portlet question- session.invalidate()- with weblogic

    Guys:
    Has anyone had a issue with session.invalidate() using weblogic 8.1.
    we have vignette and weblogic 8.1.
    the problem i have noticed is session.getId retunrns a extra timestamp string in the end. And i am thinking since this changes the entire sessionid, it does not get invalidated. I tried adjusting the weblogic.xml's idlength session-param to 52 but this still happens after that. can anyone suggest any insights. i am unable to kill the session and hence the user is always logged in. the only way is to close to broswer window.
    session id:
    F1z2YTQMyD3Yy1Xs4VBHyq3M7LWVfYMnvWJgYLnrR3cPYnKL9NW9!-682555724!1170191618061
    any help will be appreciated..thanks.
    Harsh

    i havent gone to weblogic support yet. Want to check
    if anyone of us might have seen a similar issue.I haven't used weblogic in a while. I doubt many people here have. I would suggest you ask on a weblogic forum. This is a java forum.

  • UnitOfWork and server session cache

    Hello,
    seems like in some situations UoW does not update server session cache:
    SessionManager manager = SessionManager.getManager();
    Server server = (Server) manager.getDefaultSession();
    Session client = server.acquireClientSession();
    UnitOfWork unit = client.acquireUnitOfWork();
    // stored procedure call preserves caching !
    StoredProcedureCall call = new StoredProcedureCall();
    call.setProcedureName("security.set_current_user");
    call.addNamedArgumentValue("p_user", 123);
    unit.executeNonSelectingCall(call);
    // these objects should always be cached (if caching is enabled) !
    List list = unit.readAllObjects(Naudotojas.class);
    unit.commit();
    client.release();
    server.release();
    The presented source code executes stored procedure and read query within singe transaction. Problem is that selected data is not cached. But if stored procedure call is removed, then records will be cached. Is it expected behaviour ? That workarounds could be applied to force caching ?

    When the first modify call is performed in a UnitOfWork it then assumes that the transactional state of the database is transient and therefore and data read could be non-committed. At this point it is not safe to load the objects into the shared cache.
    If you are attempting to make use of VPD security you should read up on the support offered in TopLink. It will give you additional call-backs for setting the user credentials.
    Doug

  • Session cache vs. uow cache

    I would like to modify an object using one uow and read the updated object using another uow through the session cache. The problem is that once the second uow reads the object it keeps a copy in the uow cache which is not updated and further read queries on this uow always return the old value.
    I've tried to use combinations of dontMaintainCache, refreshIdentityMap, and checkCacheThenDatabase but it either performs a database query or returns obsolete data.
    Since the session cache has the updated data I'm looking for a way to bypass the uow cache and get the data from the session cache, or alternatively synchronize the uow cache with the session cache.

    hello, we put ourselves the same questions and documentation does not explain this point which seems very important to us in the appplication with strong load on smp multi-procesors.
    Thank you with the TopLink managers to light us or indicate the documentation to us which explains it.
    Thank you

  • Session Cache

    Hi,
    The IFS documentation mentions that it maintains a session cache. In a Load balanaced environment when there are several nodes in the IFS, it would need to
    invalidate the cache if the underlying data changes.
    Any idea how does IFS invalidate session cache among the multiple nodes running
    on multiple host machines.
    Thanks,
    --Pravin.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    events are propagated among ifs services; this is how the caches are invalidated. each ifs service polls the database to get new events. the default latency for this event transmission is 4 seconds; you can change this by editing the service properties.

Maybe you are looking for

  • How do I select/deselect a midi controller when 2 are plugged in?

    I am using Garageband rewired to Reason, and I'd like to record from both programs at the same time using 2 different keyboards. In Reason, I can go to the preferences and deselect one of the keyboards so it does not trigger, but there is no option I

  • Unable to insert/add new item in LEGEND visual object

    I'm currently working in Solution manager and I tried to add a legend into one of my view of my web dynpro application. Unfortunatly, the Option 'INSERT ITEM' in the context menu is not visible/ not available. Is it because of Solution manager or is

  • Error: overrides a deprecated API

    Hi: I get the following error when I try to compile my code: Note: CalendarTest.java uses or overrides a deprecated API. Recompile with "-deprecation" for details. 1 warning How do I solve the problem? Thanks. Describes a calendar for a set of appoin

  • FM to find directory of a file

    Hi, Are there any function modules that get a file name and find its directory? Thanks..

  • Aperture 2.1 crop bug? Feature?

    I'm going nuts with something that is either a bug or a really annoying feature. When trying to crop an image, I may select the 8 x 10 aspect ratio and draw a crop frame on the image. However, if I try to select of the corner anchors for the first ti