Session persistence across web apps

Hi,
I am working on a project where we have two web applications deployed in single enterprise application. I want the session object to be shared across the web applications.
Does weblogic had any mechanism to allow for the session object to be shared across the multiple Servlet contexts inside a single enterprise application?
I am using Weblogic 8.1
Thanks,
Anil

Session data is not shared between web applications. User data is definantly important to share between applications. The single-sign-on security option is an example of this. But that's kindof a black box. If you use single-sign-on, then simply getting the remote user from the request in your servlet can be used as a key to get user data from your persistance layer (ejb's or jdbc or even jms).
If you don't want to use single-sign-on, you can use a filter. There's some url prestidigitation, also, but otherwise this approach is pretty simple:
1. Protect access to all of your web-app's urls with some naming convention /webappname/secure*. However, don't use these urls in any web page. All servlets and jsps you use should map names beginning with "secure".
2. Filter all access to your webapp (this is a new feature in servlet spec 2.3). Within the filter, use the session id as a key to find out if the user is already login to any other web application. You will need a stateless session bean to do this. The doFilter would be something like this:
SecurityBean securitybean = Utilities.getSecurityBean();
HttpSession session = request.getSession(true);
if (session.getAttribute("myuserdata") == null){
UserData userdata = securitybean.getUserdata(sessionid);
if(userdata != null)
session.setAttribute("myuserdata",userdata);
... now forward the request to the "secure*" url in the filter. If the user was logged in with the slsb securitybean, then your web app will have all of your user data. If the user is not logged in by the securitybean, then the login prompt established in your web.xml will pop-up.
The only extra work is to have a slsb securitybean. This can use the RoleManager in oc4j or it can use the jaas implementation in oc4j to log the user in, using the sessionid to get the username.
The shared="true" attribute should be used for all application in the *-web-site.xml, so that the sessionid's are the same.
regards,
the elephantwalker
www.elephantwalker.com

Similar Messages

  • Distributed sessions for multiple web-apps in a single App. Server (v.8.1)

    I have 3 applications on App. Server 8.1 (running on JDK 1.5)
    App-A handles login
    App-B and App-C are functions that are accessible after login is validated.
    It works fine with App. Server 6.5 (JDK 1.3)
    But the distributed session cannot be shared in App. Server 8.1 (JDK 1.5)
    So App-A handles sign on and stores the user's Login Name on the session.
    App-B and App-C read the user's login name from the session object and grant access to different modules.
    1. Starting App-A and perform login
    2. Starting App-B from App-A (it is linked there)
    3. Starting App-C from App-A (it is linked there)
    In step 1, a new session is created for the user, an attribute ("LoginName") is put in the session - ie. using HttpSession.setAttribute()
    In step 2, the program checks for attribute "LoginName" from the session object - ie. using HttpSession.getAttribute()
    If not found, redirect to login; if found, then continue with App-B
    In step 3, same as in step 2 above.
    It works fine with App. Server 6.5 but problem occurs in step 2 and 3.
    web.xml of App-A, App-B and App-C:
    <i>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>App-A</display-name>
         <distributable/>
    </i>
    sun-web.xml of App-A, App-B and App-C
    <i>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-1.dtd">
    <sun-web-app>
    <session-config>
    <session-manager persistence-type="memory">
    <manager-properties>
    <property name="persistenceFrequency" value="web-method"/>
    </manager-properties>
    <store-properties>
    <property name="persistenceScope" value="session"/>
    </store-properties>
    </session-manager>
    </session-config>
    </i>

    Distributed sessions has nothing to do with different web applications. The concept is about distributing load for the same application between several appserver instances running on the same box(different jvm) or on some other box in the network.
    What you used with iAS 6.5 is not available in 8.1 because sharing sessions between web apps is forbidden by the servlet spec. You should consider repackaging your apps. into a single web app. or using other way of signing/verifying user identity(check Sun Access Manager for example).
    Have a look at this thread as well: http://swforum.sun.com/jive/thread.jspa?threadID=100931

  • Session sharing across web applications in an EAR File

    Hi,
    I have an ear file which further has 5 war files. I want to share the same session
    object across all these war files in the ear file. Can u pls tell me if this is
    possible in weblogic. If yes how?
    Thanks,
    Akash

    I'm sorry, by the J2EE 1.3 specification this isn't allowed. I have sent it on
    to the servlet team to add as an option but that won't be in time for you. If
    you need to share state between them I would probably try and put it in another
    place like an EJB or a singleton class in the system classpath.
    Sam
    [email protected] wrote:
    Hi,
    I have an ear file which further has 5 war files. I want to share the same session
    object across all these war files in the ear file. Can u pls tell me if this is
    possible in weblogic. If yes how?
    Thanks,
    Akash

  • Sessions across Web Applications (WARs)

    I've heard that you can't share session information (http session) across web applications or war files in the j2ee framework. However, I haven't seen any proof of this? I'm struggling to find information telling that I can't do this. Can someone elaborate a bit?
    Thanks.

    Hi !
    It is TOTALLY WRONG that someone wrote here that a
    separate JVM is started for each web-app! No way. Run
    any appserver and do a 'ps -ef|grep java' and I bet
    you will see only one forever :-). Correct
    Steve, it is the classloader hierarchy in all
    appservers that prevents you from sharing sessions (i
    would say classes loaded by various web-apps). There
    is something called a web-app / WAR classloader, which
    is 4th in the hierarchy of JVm classloader hierarchy.
    Since all your web-app loaded classes are loaded by
    this classloader and since each web-app has a "peer"
    classloader at same level for its own web-app, you
    will never be able to share across web-apps. Incorrect, just because you can have separate classloaders for separate web applications does not mean that those web applications cannot share instances.
    It is also possible to have classes which are globally available to ALL web applications which are loaded as part of the servlet container. Tomcat versions 4+ have a common area where classes can be made available. These classes are not loaded within the Web Application classloader at all.
    Not only that but it is possible to configure web application contexts such that they can also share things like sessions. This feature is definitely part of the Apache Tomcat release and as this is taken by Sun to be the Reference Implementation of the Servlet Container I would assume that is also part of the J2EE Standard as well.
    YOu can always use the DB stuff that other genltmen
    has already suggested.

  • Event ID: 1280 Server 2012 RDS - web app fail on second session host

    Hello there
    Topography
    SBS 2011 (domain controller)
    Two VM’s:
    VM1 – All RDS rolls: RD Gateway , Connection broker, Licensing and RD access installed and acting as a session host with an active collection for RD web apps. A CA trusted certificate is installed.
    VM2 – Session host with a second collection for RD web apps
    Problem
    I have a single app installed on both session hosts (the apps require their own servers). Both appear on the RDWeb site available for use.  I can run the app hosted on VM1 no problem, but when I try to open the second app hosted on VM2 I get
    two issues:
    An error is returned
    “Your computer can’t connect to the remote computer because the Remote Desktop Gateway server address and the certificate subject name do not match. Contact your network administrator for assistance".
    When viewing the certificate, it actually shows the CA cert installed on the
    SBS server for RWW, not the cert on VM1. This has me puzzled
    Secondly on VM 2, I get
    Event ID: 1280 Warning Microsoft Windows TerminalServcies-session broker client
    Remote Desktop Services failed to join the Connection Broker on server sever-vm1.local.
    Error: Current async message was dropped by async dispatcher, because there is a new message which will override the current one.
    When I run the app internally it seems to load but then disappears.
    Some further config info if it is relevant:
    I have port 4043 (443 used) as the only port directed to the gateway
    Am I missing something simple? DNS? Port forwarding issue on the router?  Its my first deployment of this nature with RDS 2012
    Regards
    MIS5000

    Hi,
    Thank you for posting in Windows Server Forum.
    Firstly please check the RDP version you are using. I suggest you to update to RDP 8.1 for better feature and functionality. Now other thing verify that you have the RD Gateway certificate name matches the external FQDN of the RD Gateway Server. Also please
    check that certificate is added under local computer\personal store and must be signed by trusted root authority. 
    Please check below article for more detail.
    TS Gateway Certificates Part III: Connection Time Issues related to TS Gateway Certificates
    http://blogs.msdn.com/b/rds/archive/2008/12/18/ts-gateway-certificates-part-iii-connection-time-issues-related-to-ts-gateway-certificates.aspx
    In regards to resolve other issue (Event ID 1280), identify and fix any connectivity problems between the RD Session Host server and the RD Connection Broker by doing the following:
    • Check network connectivity to the RD Connection Broker.
    • Start the Remote Desktop Connection Broker service. 
    • Add the RD Session Host server to the Session Broker Computers group.
    More information.
    Event ID 1280 — RD Connection Broker Communication
    http://technet.microsoft.com/en-us/library/ee890889(v=ws.10).aspx
    Hope it helps!
    Thanks.
    Dharmesh Solanki
    TechNet Community Support

  • Delivering serialized session or logon token to external web app?

    Hello,
    I have the following situation, the user logs into SAP BO 4.0 Launch pad application, he needs to start our external web application and therefore we created an hyperlink. The application opens in a new tab, that's running fine. Our application uses BO SDK to provide some functionality (browse user SAP folders, reports or so), and therefore we need to log in into the current user session.
    Is there any way to deliver either the serialized session or logon token to external application? Are there any internal variables to be used? Or should I use totally different approach? 
    There would be a workaround by delivering just the current BO user name to the external app, and than using a separate (administrators) login to fetch only the current user's data. But this I guess is not the right way to do the job.
    Any help is greatly appreciated

    Hi Martin,
    I am facing same situation than you and I also considered using the trusted authentication until I reads following statement in java docs
    To enable trusted authentication on a client machine, create a text file named TrustedPrincipal.conf on the client machine and add the following text:
    SharedSecret=<secret>
    where <secret> is the trusted authentication shared secret configured in BusinessObjects Enterprise.
    So, if the external web app may be launched from any user this would mean having to install this file in all BI LaunchPad desktop computers. It isn´t? This does not sound very elegant. Is this what you did?
    Thanks

  • Preserve session across web applications.

    I've deployed 2 different web applications, each part of their own .ear . Is
    there any way to make the two web applications use the SAME session object
    ? My problem is that when I store an object in the session within one
    application, the object isn't available in the session-context for the other
    application.
    I've also verified that they are actually using two different sessions by
    tracking the session-id at script-level. I'm using wl 6.1 if that helps
    //Linus Nikander - [email protected]

    Linus,
    We were faced with a similar situation but our team responsible for the
    Web applications decided to go with a single web-app in the end and we
    bear the cost of not very nice build.
    An alternative solution for you will be instead of setting the
    authentication in the session to set the user object in a cookie and
    then use it for all web applications.
    I believe that is the idea behind the Weblogic Identity Assertion
    security providers
    (http://e-docs.bea.com/wls/docs70/dvspisec/ia.html#1145598) but we've
    never had to deal with it yet.
    Regards,
    Dejan
    Linus Nikander wrote:
    Thank you for your answer, a few follow-up questions.
    As you point out I definitely don't want to implement something that is
    outside the spec. and vendor specific. But how then would you suggest
    solving the following situation:
    At the moment we are co-operating with other actors within a larger project.
    Our task is to design and code one of the modules, which consists of EJBs,
    JSPs and Servlets. From the beginning this was successfully deployed and
    packaged in a single EAR.
    Problems arose when we started to integrate our EAR with a WAR written by
    one of the other participants in the project. The problem was that they are
    responsible for authentication for the whole site, i.e. the login-module.
    The've implemented the login so that when a user successfully logs in, a
    "user"-object is stored in the session. The very fact that the user-object
    exists means that the user is validated. The method for verifying that a
    user is authenticated is thus to check the session for the occurence of this
    object before execution of any JSP or Servlet. For files within their WAR
    this works fine, but as soon as a call is made to a JSP or Servlet within
    our EAR the method of authentication breaks because a new session is
    generated, void of the user-object.
    We've solved the problem by co-deploying a single WAR. In my opinion this is
    a really ugly solution because there is no longer a clean separation of
    "their" and our files, and it makes deployment a real hassle.
    Skipping any points of view as to their chosen method of authentication (we
    don't like it either but its going to remain unchanged no matter what), do
    you see any other way for us to get things to work where we (hopefully) can
    keep our files separate from one another.
    //Linus Nikander - [email protected]
    "Deyan D. Bektchiev" <[email protected]> wrote in message
    news:[email protected]...
    It would be a violation of the Servlet spec to do so and although in 6.0
    you could share the session at least in 7.0 it isn't the case.
    I'm not familiar with 6.1 but even if you could do it there then your
    application is not going to be portable since you'll be relying on a
    specific vendor implementation.
    Regards,
    Dejan
    Linus Nikander wrote:
    I've deployed 2 different web applications, each part of their own .ear .
    Is
    there any way to make the two web applications use the SAME session
    object
    ? My problem is that when I store an object in the session within one
    application, the object isn't available in the session-context for the
    other
    application.
    I've also verified that they are actually using two different sessions by
    tracking the session-id at script-level. I'm using wl 6.1 if that helps
    //Linus Nikander - [email protected]

  • Session expiration across different adf web applications

    Version of jdeveloper is 11.1.1.4.0. I have two adf jsf applications deployed in two different weblogic servers. Web application 1 navigates web application 2 in an external window or inline popup using a url view activity. I navigate from web application 1 to web application 2 without a problem. However when navigating back from web application 2 to web application 1 any action made in the ui of web app 1 throws an exception:
    javax.faces.application.ViewExpiredException: viewId:/main.jspx - ADF_FACES-30108:The view state of the page has expired because of inactivity. Reload the page.
    This problem does not occur when the 2 web applications are deployed in the same weblogic managed server. Is there any way to overcome this session inactivity issue.
    Thanks in advance

    you can set session timeout in
    web.xml
    weblogic.xml
    weblogic-aplication.xml

  • Implementing single sign on across multiple web apps

    Hi
    I was wondering if somebody could help me. I need to implement single sign on
    for multiple web apps deployed in separate WARs in a single EAR file. I need
    to authenticate against an LDAP server and ensure that the user only has to sign
    on once per user session even if the user navigates between web apps. The weblogic
    docs only seem to go so far, i.e. "Single sign on works if each web app uses the
    same cookie" etc. So I see that, apart from buying WebLogic Enterprise Security
    there are only two ways of doing this:
    1. Implement single sign on.
    2. Create my own security realm with my own authenticator implementations.
    So my questions are:
    1. We don't want to effect the normal weblogic user/passwords used to access the
    WLS console but need to have single sign on. Should we implement single sign on
    (option 1,above) or create our own realm?
    2. Can somebody point me to somewhere on the web/in the the WLS documentation
    that shows me how to implement single sign on using session cookies?
    TIA
    Mik

    "Mik Quinlan" <[email protected]> wrote in message
    news:[email protected]..
    >
    Hi
    I was wondering if somebody could help me. I need to implement singlesign on
    for multiple web apps deployed in separate WARs in a single EAR file. Ineed
    to authenticate against an LDAP server and ensure that the user only hasto sign
    on once per user session even if the user navigates between web apps. Theweblogic
    docs only seem to go so far, i.e. "Single sign on works if each web appuses the
    same cookie" etc. So I see that, apart from buying WebLogic EnterpriseSecurity
    there are only two ways of doing this:
    1. Implement single sign on.
    2. Create my own security realm with my own authenticator implementations.
    So my questions are:
    1. We don't want to effect the normal weblogic user/passwords used toaccess the
    WLS console but need to have single sign on. Should we implement singlesign on
    (option 1,above) or create our own realm?
    2. Can somebody point me to somewhere on the web/in the the WLSdocumentation
    that shows me how to implement single sign on using session cookies?
    http://e-docs.bea.com/wls/docs81/security/thin_client.html#1039551
    That also has a pointer to:
    For more information, see session-descriptor in Assembling and Configuring
    Web Applications.

  • Office Web Apps Farm Across Multiple Data Centers?

    I have not been able to find any definitive information about this but the article below seems to suggest what I have in mind is not recommended.  I am not sure about supported.
    "Stick to one data center.  Servers in an Office Web Apps Server farm must be in the same data center. Don’t distribute them geographically. Generally you need only one farm, unless you have security needs
    that require an isolated network that has its own Office Web Apps Server farm."
    http://technet.microsoft.com/en-us/library/jj219435.aspx#topology
    What I have is two very well connected data centers located in the same metro area.  We will be deploying a Lync EE pool at each site and use pool pairing for DR.  What I am wondering is should I:
    Create a single Office Web Apps farm with the server from each data center as members?
    Create a farm in each site with a single member, but both farms sharing the same URL?
    Create a farm in each site with a single member, but both farms have different names.  This seems unnecessarily ugly, but throwing it out there.
    Since Lync is using Office Web Apps in read only mode the question is different than if SharePoint were involved.  However, I can't rule out this farm also being used for SharePoint down the road.
    The LB/RP device of choice is Citrix NetScaler.  Another thought I had is can that be configured so incoming requests for Office Web Apps at each data center can prioritize traffic to the server or farm within that data center?  If that is unavailable
    then switch to the server at the other data center?
    Thanks.

    Hi,
    An Office Web Apps farm can be deployed to provide functionality for multiple sites.
    Also you can deploy one Web Apps farm on each site.
    So I think you can choose to deploy with the option one and three as you said.
    Here is a case about deploying Lync deploy Office Web Apps server may help you:
    http://social.technet.microsoft.com/Forums/lync/en-US/7e67bacf-4895-4bdb-95b8-0aff8a0c575f/geographical-placement-of-office-web-app-servers?forum=lyncdeploy
    Best Regards,
    Eason Huang
    Eason Huang
    TechNet Community Support

  • Fatal bug with shared JDBC Session Persistence

    We are attempting to launch a three-tier site with two clusters, one at the
              web layer (JSP/servlet/images) and a separate cluster at the app server
              layer (EJBs). We are running WebLogic server 4.5.1 Service Pack 8 on Solaris
              2.7. In production we use Solaris JDK 1.2.1.04, and in development we use
              JavaSoft JDK 1.2.2. We are able to duplicate this problem with both JDKs. We
              are using the WebLogic kona/oracle driver for session persistence because
              the Oracle JDBC driver would not work for this purpose - we are using the
              Oracle OCI driver for our EJB persistence in a separate pool in the app
              server cluster.
              We attempted to configure our web cluster to work with in-memory session
              replication. We found the performance of the WebLogic proxy to be abysmal -
              causing a 5x to 10x performance degredation over shared JDBC persistence. We
              were running the proxy on WebLogic, which we were advised would be slow. Its
              performance is beyond slow, it is completely unusable and should NEVER be a
              recommended or even supported configuration. We do not wish to purchase
              separate licenses for iPlanet, refuse to run IIS in a production setting,
              and cannot use Apache until WebLogic 5.1, so we are stuck with shared JDBC
              persistence until we can upgrade to 5.1.
              Using JDBC session persistence with a shared persistent store amongst all
              the clustered web servers results in our users getting brand-new sessions
              populated with data from OTHER USERS' SESSIONS. This is very easy to
              replicate using the provided test JSP and java class. This behavior results
              in new users coming to the site and finding themselves logged in as other
              users.
              The test.jsp file simply accesses the session, prints out some information,
              and then adds a few values to the session. The JSP prints out the value of
              session.isNew(), the session's ID, and the number of values in the session
              space. If you hit this jsp with a new browser window, the session should be
              new, and the number of values should be zero.
              The test Java class hits a URL with this test.jsp file repeatedly, and
              checks to make sure that the session is empty. It keeps a counter of the
              number of hits which resulted in non-empty sessions and the total number of
              hits. Because this java class does not maintain cookie data of any kind and
              merely opens new HTTP connections, it should always receive a brand-new,
              non-empty session.
              When we set the JDBC session persistence property
              weblogic.httpd.session.persistentStoreShared=true and run the test, we see
              periodically see the test.jsp file receiving a brand-new (session.isNew() =
              true), yet non-empty (session.getValueNames().length != 0) session. This is
              extremely bad behavior and makes the shared JDBC session persistence setting
              worthless. We were able to duplicate this behavior with both a single server
              and multiple servers in a cluster.
              If we set weblogic.httpd.session.persistentStoreShared=false, then this test
              works fine. This also means that we cannot cluster web servers.
              To run the test, simply start a WebLogic instance using the provided
              properties file, put the jsp in the document-root somewhere, and then run
              SessionTest.java, providing the URL of the test JSP as the only command-line
              argument. You will need to modify the properties file to have the proper
              database settings and document-root. The java class will display a running
              tally of the number of hits, and the number of hits that result in
              non-empty, illegal sessions, with a total at the end.
              So, we are now in a position where we are completely unable to launch our
              site in a clustered, no-single-point-of-failure configuration. Obviously,
              clustering was one of the main reasons to choose WebLogic, and we are
              extremely distressed that we are unable to get this configuration to work.
              Any help would be appreciated.
              [web.standalone.properties]
              [SessionTest.java]
              [test.jsp]
              

    I hope this is not too far fetched, but we are expieriencing a similar
              problem with jms (messages are mixed up between queues). This happens only
              if we are using message persistence in an oracle db (everything works ok
              when we are not using persistent messages). Could it be that there is a
              serious bug in the jdbc code/oracle driver code or connection handling
              (regarding multi threading)? This would explain that, whenever you use
              persistence with oracle databases, messages/sessions (or other) are mixed
              up.
              - Falk
              "Grant Kushida" <[email protected]> wrote in message
              news:[email protected]...
              > We are attempting to launch a three-tier site with two clusters, one at
              the
              > web layer (JSP/servlet/images) and a separate cluster at the app server
              > layer (EJBs). We are running WebLogic server 4.5.1 Service Pack 8 on
              Solaris
              > 2.7. In production we use Solaris JDK 1.2.1.04, and in development we use
              > JavaSoft JDK 1.2.2. We are able to duplicate this problem with both JDKs.
              We
              > are using the WebLogic kona/oracle driver for session persistence because
              > the Oracle JDBC driver would not work for this purpose - we are using the
              > Oracle OCI driver for our EJB persistence in a separate pool in the app
              > server cluster.
              >
              > We attempted to configure our web cluster to work with in-memory session
              > replication. We found the performance of the WebLogic proxy to be
              abysmal -
              > causing a 5x to 10x performance degredation over shared JDBC persistence.
              We
              > were running the proxy on WebLogic, which we were advised would be slow.
              Its
              > performance is beyond slow, it is completely unusable and should NEVER be
              a
              > recommended or even supported configuration. We do not wish to purchase
              > separate licenses for iPlanet, refuse to run IIS in a production setting,
              > and cannot use Apache until WebLogic 5.1, so we are stuck with shared JDBC
              > persistence until we can upgrade to 5.1.
              >
              > Using JDBC session persistence with a shared persistent store amongst all
              > the clustered web servers results in our users getting brand-new sessions
              > populated with data from OTHER USERS' SESSIONS. This is very easy to
              > replicate using the provided test JSP and java class. This behavior
              results
              > in new users coming to the site and finding themselves logged in as other
              > users.
              >
              > The test.jsp file simply accesses the session, prints out some
              information,
              > and then adds a few values to the session. The JSP prints out the value of
              > session.isNew(), the session's ID, and the number of values in the session
              > space. If you hit this jsp with a new browser window, the session should
              be
              > new, and the number of values should be zero.
              >
              > The test Java class hits a URL with this test.jsp file repeatedly, and
              > checks to make sure that the session is empty. It keeps a counter of the
              > number of hits which resulted in non-empty sessions and the total number
              of
              > hits. Because this java class does not maintain cookie data of any kind
              and
              > merely opens new HTTP connections, it should always receive a brand-new,
              > non-empty session.
              >
              > When we set the JDBC session persistence property
              > weblogic.httpd.session.persistentStoreShared=true and run the test, we see
              > periodically see the test.jsp file receiving a brand-new (session.isNew()
              =
              > true), yet non-empty (session.getValueNames().length != 0) session. This
              is
              > extremely bad behavior and makes the shared JDBC session persistence
              setting
              > worthless. We were able to duplicate this behavior with both a single
              server
              > and multiple servers in a cluster.
              >
              > If we set weblogic.httpd.session.persistentStoreShared=false, then this
              test
              > works fine. This also means that we cannot cluster web servers.
              >
              > To run the test, simply start a WebLogic instance using the provided
              > properties file, put the jsp in the document-root somewhere, and then run
              > SessionTest.java, providing the URL of the test JSP as the only
              command-line
              > argument. You will need to modify the properties file to have the proper
              > database settings and document-root. The java class will display a running
              > tally of the number of hits, and the number of hits that result in
              > non-empty, illegal sessions, with a total at the end.
              >
              > So, we are now in a position where we are completely unable to launch our
              > site in a clustered, no-single-point-of-failure configuration. Obviously,
              > clustering was one of the main reasons to choose WebLogic, and we are
              > extremely distressed that we are unable to get this configuration to work.
              > Any help would be appreciated.
              >
              >
              >
              >
              

  • SAP EP5 SP5 Java web app problem

    Hi
    Recently I developed a Java web app for a Portal client. The client is on EP5 SP5 with ITS and LDAP servers (a 3 server architecture). I then used the deployment tool to create the necessary ear file and then successfully deployed it to the SAP J2EE Engine. I then navigated to the following url:
    http://<portal_server>:8100/<web_app>/welcome.jsp
    However I am having trouble with the following:
    1) the jsp pages are not being rendered properly. in fact welcome.jsp does not have any jsp tags at all but I am still getting a compiling exception. as soon as I change the extension to .html the page is displayed fine. issue: why am i not able to view the jsp pages. error: com.inqmy.services.servlets_jsp.jsp.CompilingException ID 17013
    2) the web app I have developed utilises the sapjco functionality to connect to the relevant R3 system. in my web app directory structure I have included the necessary sapjco.jar in the WEB-INF/lib directory but get the attached jco error. (I shouldnt need to set the classpath since the sapjaco.jar file must get picked up from WEB-INF/lib directory). Error: At times I get a NoClassDefFoundError stopping at the line which requires the sapjco.jar file (where it uses JCo.Pool class) and at other times I get the "could not load middleware layer".
    I have tried numerous things to fix it but in vain. Any thoughts around how I could go about resolving the issues will be greatly appreciated.
    Willing to provide screenshots if required.
    Cheers
    Ankit

    Hi Ravi
    I used the SAP J2EE Engine Deploy Tool to create the war and ear archives as well as deploy the ear archive.  As I used this tool I included the required jar files inclusing the sapjco.jar inside WEB-INF\lib of the web archive (WAR).  I tested this in a tomcat environment before deploying it to the portal environment.
    1) The screendump is as below:
    Internal Server Error 500!
    com.inqmy.services.servlets_jsp.server.jsp.CompilingException: ID17013: Error in compiling : java.io.IOException: CreateProcess: javac -encoding UTF8 -nowarn C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\work\jsp_welcome1092865716140.java -classpath ".;.\system-lib\boot.jar;.\system-lib\jaas.jar;;.;.\additional-lib\jnet.jar;.\additional-lib\jdbc20.jar;.\services\iiop\iiop.jar;.\services\servlet_jsp\servlet_jsp.jar;.\services\p4\p4.jar;.\additional-lib\mail.jar;.\services\dbpool\dbpool.jar;.\additional-lib\connector.jar;.\additional-lib\activation.jar;.\services\deploy\deploy.jar;.\additional-lib\jta.jar;.\services\ts\ts.jar;.\additional-lib\jsse.jar;.\additional-lib\servlet.jar;.\additional-lib\ejb11.jar;.\additional-lib\jms.jar;.\services\ejb\ejb.jar;;C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\root\WEB-INF\lib\activation.jar;C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\root\WEB-INF\lib\inqmyxml.jar;C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\root\WEB-INF\lib\jcoapi.jar;C:\SAP_J2EEngine6.20\alone\D
         at com.inqmy.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:296)
         at com.inqmy.services.servlets_jsp.server.jsp.JSPServlet.getClassName(JSPServlet.java:333)
         at com.inqmy.services.servlets_jsp.server.jsp.JSPServlet.service(JSPServlet.java:207)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:136)
         at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:856)
         at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:598)
         at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:260)
         at com.inqmy.services.httpserver.server.Response.handle(Response.java:164)
         at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:909)
         at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
         at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)
         at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)
    As advised by you I included the inqmyxml.jar file in the WEB-INF\lib folder for this application.  But it doesnt seem to have made a difference.
    2) for the second issue where sapjco.jar isnt found the error is as seen below.  At line 42 in R3.java I make a  JCO call -
    pool = JCO.getClientPoolManager().getPool(POOL_NAME);
    Error Dump below:
    java.lang.NoClassDefFoundError
         at R3.(R3.java:42)
         at ChangePassword.doPost(ChangePassword.java:76)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:136)
         at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:856)
         at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:598)
         at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:260)
         at com.inqmy.services.httpserver.server.Response.handle(Response.java:164)
         at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:909)
         at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
         at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)
         at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)
    I would have expected EP5 to be able to find the appropriate jar files.  Especially since it has its own library of jar files to work with.  I was reading some J2EE Engine doco and came across two files library.txt and reference.txt.  Do I need to maintain these files as I deploy my application?
    Your thoughts will be appreciated.
    Cheers

  • BO 3.1 WebTools DataSources Web App Missing

    Can anyone let me know where the DataSources Web Application that can be found under the old release of BO XI R2 under Program Files\Business Objects\BusinessObjects Enterprise 11.5\Web Content\Enterprise115\WebTools\websamples is under the BO 3.1 Release?  I am using .NET version and cannot find this useful Web App Tool.  I thought that it would be integrated with CMC like the Instance Manager but I cannot find it.
    Thanks!

    -The customer has confirmed sticky sessions are enabled.  We are also trying to obtain the LB settings relevant to any sort of timeout/threshold.
    -Persistence is set by source ip address by default and they insert a cookie for server identification only(not sure if this something to note or not).
    -We basically find that the error only occurs in using the LB.  You can have intervals of inactivity of 5,10,20,30 or 45 min without any timeout error whatsoever if you bypass the LB.  The error occurs consistently in the 10-15 min window of activity using LB.
    -When we get the error, a Winshark trace shows the following (I xxx'd out the server names)...
    xxxxxx->xxxx
    GIOP.............................!zI...........LogonWithTokenEx4..............>3&cY=10.10.70.54,8P&cZ=atdc-xxxx.xxx.xxxxxx.com,
    8P......1.4.4.0.5.4.J.8.V.A.0.Y.f.g.G.F.v.Z.B.7.2.G.4.4.0.5.3.J.5.1.h.q.I.a.T.P.S.M.M.C.b.k.p.F.A.I.L.V.R..
    xxxxxxx->xxxx
    GIOP....\...................IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2..)..............o.....O.C.A._.A.b.u.s.e. .e.x.c.e.p.t.i.o.n. .1.0.5.0.3. .a.t. .[...\.e.x.c.e.p.t.i.o.n.m.a.p.p.e.r...c.p.p. .:. .6.7.]. . .4.2.0.1.0. .{.}..........N.o.t. .a. .v.a.l.i.d. .l.o.g.o.n. .t.o.k.e.n... .(.F.W.B. .0.0.0.0.3.). .C.a.n.n.o.t. .f.i.n.d.
    .t.o.k.e.n.
    This error also appears at 15:44:21 during the conversation between webserverxxxxxx and appserverxxxxxx:
    ImplServ/OSCAFactory/connection_failure:1.0...p.....%...S.e.s.s.i.o.n. .I.D. .i.s. .n.o.t. .v.a.l.i.d..
    These errors only seem to show that some event occurred resulting in an invalid/missing token, with no insight to what that event actually was....we are analyzing the rest of the traces.
    BTW, I have a "Message" in w/ BOBJ...so I am hoping we have a breakthrough soon.
    Thanks again for all the ideas.
    Edited by: Kevin Smolkowicz on Jan 29, 2009 3:27 AM

  • Cisco ace Load balancer not maintaining session persistence

    Hi All,
    We have observed from the IIS logs on the internal webservers that loadbalancer is not maintaining session persistence for two specific request for the internal servers.
    https://123.xyz.com/Webresource.axd
    https://123.xyz.com/ScriptResource.axd
    Error
    Webresource.axd : 500
    Scriptresource.axd: 404
    Session persistence is maintained for all other requests hitting loadbalancer.
    Issue is observerd on hits for these two specified components. WebResource.axd and ScriptResource.axd are Http Handlers used by ASP.NET and Ajax to add client-side scripting to the outgoing web page.
    For e.g /WebResource.axd d=t2GXfySdqWmJ-lZSI0KVbw2&t=634868473645172160 is valid for server 1 and return 200 response but the same request is seen on few other servers where the response is 404 even though load balancer cookie is same. This means that if the request for the both the axd contains a valid decrypter and it connects to the right server then the response seen is 200.
    The url passed by the user contains d and t parameters when are unique for each user session.
    Solution tried:
    Accessed website via another VIP without http redirect rule but could not see difference.
    Tried to match machine key across all servers : Failed . Could see the ‘d’ value different for each server.
    Load balancer VIP :
    x.x.x.x
    redirect: http > https
    SSL Offload : ON
    Poool:
    WEB1
    WEB2
    WEB3
    WEB4
    WEB5
    All servers listening on port 80
    sticky config:
    sticky ihttp-cookie cookie1 vip-1.1.1.1-80-stickyfarm
      cookie insert browser-expire
      replicate sticky
      serverfarm vip-1.1.1.1_80
    sticky http-cookie cookie1 vip-farm:1.1.1.1:443
      cookie insert browser-expire
      replicate sticky
      serverfarm farm:1.1.1.1:443
    Has anyone else come across similar issue?
    Can you plese check if there is any config on cisco ace that will ensure that session persistence is maintained for these 2 requests.
    Thank you for all the help.
    regards,
    Sangram

    Hello Sangram,
    We would need simultanous packet traces before and after the ACE to get to the root cause of this issue so I would recommend that you open a cisco tac case for more in depth troubleshooing of this issue.
    Joel Lamousnery
    CCIE R&S - 36768
    Engineer, Customer Support
    Technical Services

  • Multiple web apps sharing same cache in a single JVM ?

    Is it possible to share cache across multiple web apps running in the same app server (multiple web apps, single JVM) ?
    Thanks for any info.

    Hi Bob,
    Cluster membership is scoped to the ClassLoader, so if your application server provides a ClassLoader-per-application, this will work fine.
    This is supported for both Coherence (NamedCaches) and Coherence*Web (HTTP sessions).
    Jon Purdy
    Tangosol, Inc.

Maybe you are looking for