Http session distributed on different servers?

Hello.
I have several webapps, running on different servers (I mean hardware servers). Say, several tomcats each runnig a webapp. Say, one of these servers is the main server and others are performing some auxillary web actions. I'd like that a client would authenticate on the main server and then her session will become valid for other non-main servers. What are the standard mechanisms for distributing an http-session? Can I have some ready solution because I do not want to invent it myself..
Thank you, any advice is appreciated!

As i know, Any client can't access a session of other client.
The client of ServerA's session is a first browser.
"A new browser window" is a new client on ServerB.
That mean first browser and second new browser are different clients for weblogic.
So new browser can't access first browser's session on ServerA.
This is not issue of cluster or browser.

Similar Messages

  • Session Sharing on Different Servers

    Is it possible to access the data of a session created in one server
              instance from a different server instance, without necessarily
              clustering? And if so - how?
              For example:
              User has a session created and some data stored on session of
              server1.domain.com.
              User then goes to server2.domain.com and accesses data of session
              created on server1.domain.com.
              TJS
              

    hi!
    you look them up, just the same way as at the same container. you just have to specify the location of the JNDI, where the beans should be looked up (environment settings).
    Hashtable env = new Hashtable();
    // com.evermind.server.rmi.RMIInitialContextFactory IS IMPORTANT
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
    env.put(Context.SECURITY_PRINCIPAL, "admin"); // user
    env.put(Context.SECURITY_CREDENTIALS, "admin"); // pwd
    env.put(Context.PROVIDER_URL, "ormi://OC4J2/BeanAppl"); //location + applname
    Context context = new InitialContext(env);
    SBHome sbHome = (SBHome)PortableRemoteObject.narrow(context.lookup("SB"), SB.class);
    SB sb = SBHome.create();
    hope 2 help you ;o)
    ed

  • How to disable weblogic built-in HTTP session filter?

    Hi,
    I want to use my own HTTP seesion filter to manage HTTP session on weblogic clustered servers. It seems that weblogic servers plugin its HTTP session filter already for servlet. How can I use my own HTTP session filter to replace WebLogic built-in session filter?
    Thank you for your help.

    Could you be more elaborate on your requirement.
    Weblogic servers plugin provides a way to handle requests based on url content. or content type and so on, it dosent do much with users sessions other than for session stickyness.

  • [svn:bz-trunk] 21394: bug fix for watson 2887837 Not getting duplicate session detected error when same flex client id is used from two different HTTP sessions in CRX .

    Revision: 21394
    Revision: 21394
    Author:   [email protected]
    Date:     2011-06-16 12:34:13 -0700 (Thu, 16 Jun 2011)
    Log Message:
    bug fix for watson 2887837 Not getting duplicate session detected error when same flex client id is used from two different HTTP sessions in CRX.
    get the sessions id before we invalidate the duplicate session.
    Checkintests pass
    Modified Paths:
        blazeds/trunk/modules/core/src/flex/messaging/endpoints/BaseHTTPEndpoint.java

    For our profect I think this issue was caused as follows:
    Believing that remoting was full asynchronous we fired a 2 or 3 remote calls to the server at the same time ( within the same function ) - usually when the users goes to a new section of the app.
    This seemed to trigger the duplicate http session error since according to http://blogs.adobe.com/lin/2011/05/duplication-session-error.html  two remote calls arriving before a session is created will cause 2 sessions to be created.
    Our current solution ( too early to say it works ) is to daisy chain the multiple calls together .
    Also there seemed to be an issue where mobile apps that never quit ( thanks Apple! )  caused the error when activated after a few hours.
    I guess the session expires on the server and the error above occurs on activation.
    So the mobile apps now ping the server with a remote call when activated after sleeping for more than one hour.
    All duplicate http errors are silently caught and reported.
    Fingers crossed we won't get any more!

  • 10g: HTTP Server and OC4J on different servers?

    Can anyone assist with configuring HTTP Server and OC4J on different servers?
    I installed AS 10g on both; our application runs fine on one server, with the HTTP Server and OC4J both on the same box.
    I need to also test this with the HTTP Server on a separate box.
    I added this to mod_ocj4.conf:
    Oc4jMount /indox-qa1
    instance://cvodev2:oas_dev2.cvodev2.int.sys.com:indox-qa1
    Oc4jMount /indox-qa1/*
    instance://cvodev2:oas_dev2.cvodev2.int.sys.com:indox-qa1
    But when I try to access something like http://cvodev4/indox-qa1 I get this in the logs:
    [Wed Jul 06 16:54:10 2005] [warn] [client 10.1.1.231] [ecid: 1120683250:192.152.136.127:1248:1544:1,0] MOD_OC4J_0184: Failed to find an oc4j process for destination: instance://cvodev2.int.camsys.com:oas_dev2.cvodev2.int.camsys.com:indor-qa1
    [Wed Jul 06 16:54:10 2005] [error] [client 10.1.1.231] [ecid: 1120683250:192.152.136.127:1248:1544:1,0] MOD_OC4J_0145: There is no oc4j process (for destination: instance://cvodev2.int.camsys.com:oas_dev2.cvodev2.int.camsys.com:indor-qa1) available to service request.
    [Wed Jul 06 16:54:10 2005] [error] [client 10.1.1.231] [ecid: 1120683250:192.152.136.127:1248:1544:1,0] MOD_OC4J_0119: Failed to get an oc4j process for destination: instance://cvodev2.int.camsys.com:oas_dev2.cvodev2.int.camsys.com:indor-qa1
    [Wed Jul 06 16:54:10 2005] [error] [client 10.1.1.231] [ecid: 1120683250:192.152.136.127:1248:1544:1,0] MOD_OC4J_0013: Failed to call destination: instance://cvodev2.int.camsys.com:oas_dev2.cvodev2.int.camsys.com:indor-qa1's service() to service the request.
    I did some ethernet sniffing and it doesn't look to me like the OHS box is even trying to contact the OC4J box.
    Is there more configuration I need to do beyond this?
    Thanks,
    dwh

    hi user11159690
    Maybe this can help:
    "Oracle® HTTP Server Administrator's Guide 10g Release 3 (10.1.3) B25211-02"
    "7.32 mod_oc4j"
    http://download.oracle.com/docs/cd/B25221_04/web.1013/b25211/confmods.htm#i1025739
    Maybe more specifically "Oc4jMount":
    http://download.oracle.com/docs/cd/B25221_04/web.1013/b25211/confmods.htm#CIHJBGFB
    (tip : You can use "Your Control Panel" to make your name visible in forum posts.)
    success
    Jan Vervecken

  • Getting attributes from session between two different applications

    I'm developing with JDK 1.3 and deploying my webapp at ORACLE 9iAS.
    I would like to jump between JSPs deployed at differents OC4J instances and
    keep session object. I've seen I can get sessionID and it's the same but the attributes have disapeared.
    I jump using JavaScript code (document.location.href).
    Should I use a <form> ?
    Should I use getServletContext() method ?
    I dont know even if it's possible and I don't want to loose my time looking for a solution that doesn't exist.
    NEED HELP, AN EXAMPLE OR WHATEVER USEFUL.
    ... THE SOON AS POSSIBLE
    THANX in advance
    PS..- I have already look for in this forum but I didn't get any info to solve my doubts. If I mistaken please let me know

    Ok.
    getServletContext().getContext() may return null in 'security conscious' servers. Apparently this is your case, therefore you wouldn't be able to use it to store global data...
    As for sharing sessions directly between different web apps, the servlet spec (since 2.2 at least) explicitely prohibits it.
    The link provided by tolmank about pseudo-sessions should address your issue, since it will allow you to distribute your session data on your different webapps.
    Some other alternatives would be :
    -store the session data in the DB (slow)
    -use java serialization
    -use RMI
    -use JNDI
    -if you're using Tomcat, you can implement single-signon accross multiple apps using cookies :
    http://www.ingrid.org/jajakarta/tomcat/tomcat-4.0b5/src/catalina/docs/singlesignon.html

  • In-memory replication of http session is not working in BEA7 cluster

              Hi everyone,
              I have 3 managed servers in Bea7.0 SP4 in a cluster. The client requests are sent
              through apache web server. I have given cluster address as URL in httpd.conf of
              apache server which sends the client requests for dynamic pages such as JSPs and
              servlets to the weblogic cluster.
              Load balancing is working fine. I ensured this from the log files of all the 3
              servers. All the 3 servers are getting different client requests and thus load
              balancing is working.
              Now, I wanted to achieve Fail-over. I do not think that i should use proxy plug-in
              for this. I feel the cluster itself will handle fail-over provided i make the
              http session as memory replicated.
              I updated the weblogic.xml with the following entry :
              <session-descriptor>
              <param-name>PersistentStoreType</param-name>
              <param-value>replicated</param-value>
              </session-param>
              </session-descriptor>
              I guess this is sufficient to make the http session as cluster aware.
              But when I shutdown server1, the user connected to server1 will be kicked out
              of the session and come to login page through server2 or server3 which are running
              fine.
              Could anyone help me to achieve http session as cluster aware. Does it indicate
              that I have to go for WLS proxy – HttpClusterServlet to achieve fail over for
              http session ?
              BTW, for your info, i am using setAttribute() and getAttribute() while manipulating
              the session.
              thanks in advance.
              

              Hi Ryan,
              Thanks for ur valuable input.
              I can see failover working.
              But, I can not continue with the same session in my application.
              I printed session Ids before and after failover, I found both are different.
              I guess session replication is a responsibility of weblogic/apache plugin.
              If not please let me know which all settings I should do to make failover working?
              Thanks again.
              Plad
              "ryan upton" <ryanjupton at learningvoyage dot com> wrote:
              >Plad,
              >
              >Are you trying to gracefully shut down the server? If you are then the
              >problem that you say you can't identify is simply the server's default
              >behavior which is to wait for all non-replicated sessions to be dropped
              >or
              >timed out before killing the process. Try forcing the shutdown: kill
              >-9 the
              >PID or CTRL-C if you started the server from the command line. You can
              >also
              >check the ``Ignore Sessions During Shutdown" checkbox under the server's
              >control tab in the admin console, this should allow you to shut down
              >gracefully without waiting for session timeout. BTW your sequence is
              >off
              >in #5 below, the replication doesn't occur upon failure, the replication
              >has
              >already happened once you created the session object on the first server,
              >I
              >think maybe you're confusing replication with failover.
              >
              >~RU
              >
              >"Plad" <[email protected]> wrote in message
              >news:[email protected]...
              >>
              >> Hi,
              >> I have 2 managed servers in a cluster.
              >>
              >> 1. I have got a DNS name configured which maps to these 2 managed server's
              >IP
              >> addresses.
              >> 2. I can browse my site using this DNS name.
              >> In HTTPD.conf I have :
              >>
              >> ServerName dev.a.b.net
              >>
              >> <IfModule mod_weblogic.c>
              >> WebLogicCluster 10.1.38.232:7023,10.1.34.51:7023
              >> MatchExpression *.*
              >> </IfModule>
              >>
              >> LoadModule weblogic_module modules/mod_wl_20.so
              >>
              >> 3. I have adeded session descriptor in weblogic.xml , also enabled
              >proxy
              >plugin
              >> in weblogic console.
              >>
              >> 4. I tested accessing my application using DNS url after shutting down
              >alternatively
              >> each manaed server. I can access application.
              >>
              >> 5. Now, problem comes when I access a managed server1 , keeping server2
              >down.
              >> I am able to access my application.
              >> Now, I start the server2.
              >> (Here I am supposing that replication should occur)
              >> Then I am shutting down server1.
              >> But, this time the server log shows me following:
              >>
              >>
              >> 9:58:51 AM GMT+05:30 NOTICE Web application(s) chlist still have
              >non-replicated
              >> sessions after 2 minutes of initiating SUSPEND. Waiting for non-replicated
              >sessions
              >> to finish.
              >> 10:00:51 AM GMT+05:30 NOTICE Web application(s) chlist still have
              >non-replicated
              >> sessions after 4 minutes of initiating SUSPEND. Waiting for non-replicated
              >sessions
              >> to finish.
              >>
              >> I am unable to make out where the problem is?
              >> Can it be a problem of Liecense? Is there any specialcluster liecense
              >for
              >weblogic8?
              >>
              >> Hoping to get replies.
              >> Thanx.
              >> Plad
              >>
              >> "ryan upton" <ryanjupton at learningvoyage dot com> wrote:
              >> >See my reply to your first post, but I've also added a few comments
              >here.
              >> >
              >> >"jyothi" <[email protected]> wrote in message
              >> >news:[email protected]...
              >> >>
              >> >> I guess someone from bea support team only can answer both your
              >question
              >> >and mine.
              >> >> As per my knowledge, we do not need to do any setup at Apache
              >side
              >> >regarding
              >> >> cluster other than mentioning cluster address as URL while
              >contacting
              >> >WLS
              >> >> from apache.
              >> >>
              >> >> I hope someone from Bea, will help us. I do not think that we
              >> >go for
              >> >WLS
              >> >> proxy plug-in using HttpClusterServlet for making session replication.
              >> > I
              >> >strongly
              >> >> feel that the cluster itself be able to manage the fail-over of
              >> >http
              >> >sessions
              >> >> provided we put the entry "PersistentStoreType" in weblogic.xml
              >> >regarding
              >> >> the session replication.
              >> >>
              >> >
              >> >The cluster does handle the management of Sessions. The clustered
              >> >applications still create the Session objects and the cluster manages
              >> >them
              >> >as per your deployment descriptor settings (replicated, JDBC, File)
              >however
              >> >the proxy has to be aware of which server the client has an affinity
              >> >for
              >> >(only with replicated sessions) and it does that by reading a cookie
              >> >passed
              >> >back from the server that handled the initial request and created
              >the
              >> >primary session object. The proxy has a list of both the primary
              >and
              >> >secondary server locations from this cookie that it can use to failover
              >> >the
              >> >request if the primary server fails. Clusters _DO NOT_ failover nor
              >> >do they
              >> >load balance, that's the job of your proxy, whether you're using the
              >> >HTTPClusterServlet, WLS Plug-in or a more sophisticated hardware load
              >> >balancer like Big IPs F5
              >> >
              >> >> jyothi
              >> >>
              >> >
              >> >~RU
              >> >
              >> >
              >>
              >
              >
              

  • Redirect service from http to https, session is lost

    I have setup two web sites using NT 4.0 IIS so that both
              "http://nossl/mybeanbeans" and "https://ssltest/mybeanbeans"
              can execute the commerce server mybuybeans example.
              Then I modify the shoppingCartDetail.jsp and commandAssembler.jsp
              (files attached) hoping that when I click the "Checkout" button
              on the Shopping Cart screen, it will redirect the service from
              http to https.
              The URL is redirected to "https" but it depicts the welcome page
              instead of showing the Order Check Out page.
              Previous session information is lost.
              Can anyone help me?
              Thanks
              <!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
              <%@ page errorPage="../error.jsp" %>
              <%@ page import="java.lang.reflect.*" %>
              <%@ page import="theory.smartx.command.*" %>
              <%@ page import="examples.buybeans.client.*" %>
              <%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase" %>
              <%@ page implements="BuyBeansJspConstants" %>
              <pt:monitorsession />
              <%@ include file="monitorSessionTracker.jsp" %>
              <%
              // Get the Command class name to instantiate
              String commandClassName = request.getParameter(COMMAND_CLASS_NAME_PARAM);
              System.out.println("COMMAND_CLASS_NAME_PARAM : " + commandClassName);
              if (commandClassName != null) {
              // Get the BuyBeansSessionTracker
              BuyBeansSessionTracker sessionTracker = (BuyBeansSessionTracker)session.getValue(com.beasys.commerce.portal.admin.PortalAdminHelper.qualifiedName(BUYBEANS_SESSION_TRACKER_KEY ,request));
              // Construct an array of 1 element to hold the BuyBeansSessionTracker
              // parameter type that the constructor takes.
              Class constructorParamTypes[] = new Class[1];
              constructorParamTypes[0] = sessionTracker.getClass();
              try {
              // Get the Class for the concrete Command
              Class commandClass = Class.forName(commandClassName);
              // Get constructor that takes the BuyBeansSessionTracker as argument
              Constructor commandClassCtor = commandClass.getConstructor(constructorParamTypes);
              // Set the BuyBeansSessionTracker argument for the constructor
              Object ctorParams[] = new Object[1];
              ctorParams[0] = sessionTracker;
              // Create the instance of the concrete Command
              Command command = (Command) commandClassCtor.newInstance(ctorParams);
              // Pass the HttpRequest to the command so that it can
              // read the parameter and then execute it.
              command.assemble(request);
                   // Store the outstanding command in the session tracker so that
                   // the main portal page can execute it.
                   sessionTracker.setCommand(command);
                   setOverrideDestination(request, getHomePage(request));
              %>
              <%-- Added by Warren --%>
              <%
              String queryString = request.getQueryString();
              String encodeURL=response.encodeURL(getTrafficURI(request));
              String redirectURL=response.encodeRedirectURL("https://ssltest"+encodeURL);
              System.out.println("====================");
              System.out.println("queryString:" + queryString);
              System.out.println("encodeURL:" + encodeURL);
              System.out.println("redirectURL:" + redirectURL);
              System.out.println("========before sendRedirect============");
              response.sendRedirect(redirectURL);
              System.out.println("========after sendRedirect============");
              %>
              <%
              System.out.println("======== end commandAssemblerSSL ============");
              catch (ClassNotFoundException cnfe) {
                   throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, cnfe);
              catch (NoSuchMethodException nsme) {
                   throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, nsme);
              catch (IllegalAccessException illegalAccessEx) {
                   throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, illegalAccessEx);
              catch (IllegalArgumentException illegalArgEx) {
                   throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, illegalArgEx);
              catch (InstantiationException ie) {
                   throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ie);
              catch (InvocationTargetException ite) {
                   throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ite);
              %>
              <!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
              <%@ taglib uri="lib/wljsp.jar" prefix="wl" %>
              <%@ taglib uri="lib/esportal.jar" prefix="pt" %>
              <%@ page errorPage="../error.jsp" %>
              <%@ page import="com.beasys.commerce.portal.Portlet" %>
              <%@ page import="examples.buybeans.client.*" %>
              <%@ page import="theory.smart.ebusiness.item.*" %>
              <%@ page import="theory.smart.ebusiness.order.*" %>
              <%@ page import="theory.smart.axiom.units.*" %>
              <%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants" %>
              <%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
              <%@ page implements="BuyBeansJspConstants"%>
              <pt:monitorsession />
              <%@ include file="monitorSessionTracker.jsp" %>
              <SCRIPT LANGUAGE="JavaScript">
              <!--
              function submitShoppingCartDetailsForm(commandClassName, bbContent)
              document.ShoppingCartDetailForm.<%= COMMAND_CLASS_NAME_PARAM %>.value = commandClassName;
              document.ShoppingCartDetailForm.<%= BUYBEANS_CONTENT_PARAM %>.value = bbContent;
              document.ShoppingCartDetailForm.submit();
              //-->
              </SCRIPT>
              <%
              BuyBeansSessionTracker sessionTracker = (BuyBeansSessionTracker)getSessionValue( BUYBEANS_SESSION_TRACKER_KEY, request );
              // Get the current Order
              Order currOrder = sessionTracker.getEBusinessSession().getOrder();
              // Get all the items in the cart as a Vector of orderlines from the session tracker
              java.util.Vector orderLines = sessionTracker.getCartOrderLines();
              %>
              <!-- Display the items from the shopping cart -->
              <table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
              <tr bgcolor=FFFFFF>
              <td> </td>
              <tr bgcolor="#FFFFFF">
              <td>
              <table width="95%" border="0" cellspacing="0" cellpadding="3" align="center" dwcopytype="CopyTableRow">
              <tr>
              <td colspan="6"><font face="Arial, Helvetica, Verdana, sans-serif"><%@ include file="contentMessages.jsp" %></font></td>
              </tr>
              <tr>
              <td colspan="6"> <%= JspHelperBase.formatAsTitle("Shopping Cart - SSL*** ") %> </td>
              </tr>
              <tr>
              <td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Product ID</b></font></td>
              <td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Description</b></font></td>
              <td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Quantity</b></font></td>
              <td align="right"><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Price</b></font></td>
              <td align="right"><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Subtotal</b></font></td>
              <td></td>
              </tr>
              <form method="get" name="ShoppingCartDetailForm" action="<%= response.encodeURL(getTrafficURI(request)) %>" >
              <%
              // Declare a currency format type
              Quantity one = QuantityHome.create();
              one.setCount(1);
              // Print out all the items in the cart
              for(int i = 0; i<orderLines.size(); i++ ) {
              OrderLine currOrderLine = (OrderLine)orderLines.elementAt(i);
              Item myItem = currOrderLine.getItem();
              ItemValue iv = myItem.getItemByValue();
              String desc = iv.description;
              String id = iv.identifier;
              // Specify the color of the row
              String rowColor = (i%2 == 0) ? ROW_BACKGROUND_COLOR_1 : ROW_BACKGROUND_COLOR_2 ;
              // Specify the name of the quantity text field - name it as qty+i
              String qtyInputName = ORDER_QUANTITY + i;
              // Specify the name of the remove checkbox
              String removeInputName = REMOVE_CHECKED + i;
              %>
              <!-- print out the details of each item -->
              <tr bgcolor="<%= rowColor %>">
              <td><%= id %></td>
              <td><%= desc %></td>
              <td>
              <input type="text" name="<%= qtyInputName %>" size=3 maxlength=3 value= "<%= JspHelperBase.formatQuantityAsInteger(currOrderLine.getQuantity()) %>" >
              </td>
              <td align="right"><%= JspHelperBase.formatPriceAsCurrency(myItem.calculatePrice(one, null)) %></td>
              <td align="right"><%= JspHelperBase.formatPriceAsCurrency(currOrderLine.getLinePrice(null)) %></td>
              <td><input type="checkbox" name="<%= removeInputName %>" value="<%=REMOVE_CHECKED %>" > Remove </td>
              </tr>
              <%
              %>
              <tr>
              <td> </td>
              <td> </td>
              <td> </td>
              <td align="right"> <font face="Arial,Helvetica,sans-serif" size="3" color="#666600"><b>Total:</b></font></td>
              <td>
              <div align="right"><font face="Arial, Helvetica, sans-serif" size="3" color="#990000"><b><%= JspHelperBase.formatPriceAsCurrency(currOrder.getTotalPrice()) %>
              </b> </font> </div>
              </td>
              <td>
              <input type="button" name="<%=UPDATE_CART_BUTTON %>"
              onClick="submitShoppingCartDetailsForm('examples.buybeans.client.UpdateShoppingCartCommand', '<%= SHOPPING_CART_DETAILS_JSP %>')"
              value="Update">
              </td>
              </tr>
              <tr>
              <td> </td>
              <td> </td>
              <td> </td>
              <td> </td>
              <td> </td>
              <td>
              <input type="button" name="<%=CHECKOUT_BUTTON %>"
              onClick="submitShoppingCartDetailsForm('examples.buybeans.client.CheckOutCommand', '<%= CHECKOUT_JSP %>')"
              value="Checkout">
              </td>
              </tr>
              <tr colspan="6">
              <td> </td>
              </tr>
              <%-- DESTINATION_TAG is required because the form action goes to getTrafficURI() --%>
              <%-- In this case, the destination is the command assembler --%>
              <%-- <input type=hidden name="<%= DESTINATION_TAG %>" value="<%= COMMAND_ASSEMBLER_JSP %>"> --%>
              <%-- The following line is used for testing SSL redirect --%>
              <input type=hidden name="<%= DESTINATION_TAG %>" value="/portals/buybeans/portlets/commandAssemblerSSL.jsp" >
              <%-- The following two parameters are set by the JavaScript function based --%>
              <%-- on the button that the user presses (default value are provided ) --%>
              <input type=hidden name="<%= BUYBEANS_CONTENT_PARAM %>" value="<%= SHOPPING_CART_DETAILS_JSP %>">
              <input type=hidden name="<%= COMMAND_CLASS_NAME_PARAM %>" value="examples.buybeans.client.UpdateShoppingCartCommand">
              </form>
              </table>
              </td>
              </tr>
              <tr>
              <td> </td>
              </tr>
              </table>
              

    the problem is when the cookie is exchanged between the browser
              and the app server IE treats request coming from http://bc.com:7001
              and http://bc.com:7002 as one and the same : so the browser maintains
              the same session but netscape treats this as responses coming from two
              different servers and hence u lost the session.
              I assume u are having this problem with netscape and not IE.
              the solution is set this property in the weblogic.properties file
              weblogic.httpd.session.cookie.domain=.bc.com
              -Sumanth
              "senthil ramiah" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Hi,
              > Did you receive any replies for this question.
              > thanx
              > senthil
              >
              > Warren Li <[email protected]> wrote:
              > >
              > >I have setup two web sites using NT 4.0 IIS so that both
              > > "http://nossl/mybeanbeans" and "https://ssltest/mybeanbeans"
              > >can execute the commerce server mybuybeans example.
              > >
              > > Then I modify the shoppingCartDetail.jsp and commandAssembler.jsp
              > > (files attached) hoping that when I click the "Checkout" button
              > > on the Shopping Cart screen, it will redirect the service from
              > > http to https.
              > >
              > >The URL is redirected to "https" but it depicts the welcome page
              > > instead of showing the Order Check Out page.
              > > Previous session information is lost.
              > >
              > >Can anyone help me?
              > >
              > >Thanks
              > >
              > >
              > >
              > ><!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
              > >
              > ><%@ page errorPage="../error.jsp" %>
              > ><%@ page import="java.lang.reflect.*" %>
              > ><%@ page import="theory.smartx.command.*" %>
              > ><%@ page import="examples.buybeans.client.*" %>
              > >
              > ><%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase" %>
              > ><%@ page implements="BuyBeansJspConstants" %>
              > >
              > ><pt:monitorsession />
              > >
              > ><%@ include file="monitorSessionTracker.jsp" %>
              > >
              > ><%
              > > // Get the Command class name to instantiate
              > > String commandClassName =
              request.getParameter(COMMAND_CLASS_NAME_PARAM);
              > > System.out.println("COMMAND_CLASS_NAME_PARAM : " + commandClassName);
              > > if (commandClassName != null) {
              > >
              > > // Get the BuyBeansSessionTracker
              > > BuyBeansSessionTracker sessionTracker =
              (BuyBeansSessionTracker)session.getValue(com.beasys.commerce.portal.admin.Po
              rtalAdminHelper.qualifiedName(BUYBEANS_SESSION_TRACKER_KEY ,request));
              > >
              > > // Construct an array of 1 element to hold the
              BuyBeansSessionTracker
              > > // parameter type that the constructor takes.
              > > Class constructorParamTypes[] = new Class[1];
              > > constructorParamTypes[0] = sessionTracker.getClass();
              > >
              > > try {
              > > // Get the Class for the concrete Command
              > > Class commandClass = Class.forName(commandClassName);
              > >
              > > // Get constructor that takes the BuyBeansSessionTracker as
              argument
              > > Constructor commandClassCtor =
              commandClass.getConstructor(constructorParamTypes);
              > >
              > > // Set the BuyBeansSessionTracker argument for the constructor
              > > Object ctorParams[] = new Object[1];
              > > ctorParams[0] = sessionTracker;
              > >
              > > // Create the instance of the concrete Command
              > > Command command = (Command)
              commandClassCtor.newInstance(ctorParams);
              > >
              > > // Pass the HttpRequest to the command so that it can
              > > // read the parameter and then execute it.
              > > command.assemble(request);
              > >
              > > // Store the outstanding command in the session tracker so that
              > > // the main portal page can execute it.
              > > sessionTracker.setCommand(command);
              > > setOverrideDestination(request, getHomePage(request));
              > >%>
              > >
              > ><%-- Added by Warren --%>
              > ><%
              > > String queryString = request.getQueryString();
              > > String encodeURL=response.encodeURL(getTrafficURI(request));
              > > String
              redirectURL=response.encodeRedirectURL("https://ssltest"+encodeURL);
              > > System.out.println("====================");
              > > System.out.println("queryString:" + queryString);
              > > System.out.println("encodeURL:" + encodeURL);
              > > System.out.println("redirectURL:" + redirectURL);
              > > System.out.println("========before sendRedirect============");
              > > response.sendRedirect(redirectURL);
              > > System.out.println("========after sendRedirect============");
              > >%>
              > >
              > ><%
              > > System.out.println("======== end commandAssemblerSSL ============");
              > > }
              > > catch (ClassNotFoundException cnfe) {
              > > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, cnfe);
              > > }
              > > catch (NoSuchMethodException nsme) {
              > > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, nsme);
              > > }
              > > catch (IllegalAccessException illegalAccessEx) {
              > > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600,
              illegalAccessEx);
              > > }
              > > catch (IllegalArgumentException illegalArgEx) {
              > > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600,
              illegalArgEx);
              > > }
              > > catch (InstantiationException ie) {
              > > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ie);
              > > }
              > > catch (InvocationTargetException ite) {
              > > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ite);
              > > }
              > > }
              > >
              > >%>
              > >
              > >
              > ><!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
              > >
              > ><%@ taglib uri="lib/wljsp.jar" prefix="wl" %>
              > ><%@ taglib uri="lib/esportal.jar" prefix="pt" %>
              > >
              > ><%@ page errorPage="../error.jsp" %>
              > ><%@ page import="com.beasys.commerce.portal.Portlet" %>
              > ><%@ page import="examples.buybeans.client.*" %>
              > ><%@ page import="theory.smart.ebusiness.item.*" %>
              > ><%@ page import="theory.smart.ebusiness.order.*" %>
              > ><%@ page import="theory.smart.axiom.units.*" %>
              > ><%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants" %>
              > >
              > ><%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
              > ><%@ page implements="BuyBeansJspConstants"%>
              > >
              > >
              > ><pt:monitorsession />
              > >
              > ><%@ include file="monitorSessionTracker.jsp" %>
              > >
              > ><SCRIPT LANGUAGE="JavaScript">
              > ><!--
              > >function submitShoppingCartDetailsForm(commandClassName, bbContent)
              > >{
              > > document.ShoppingCartDetailForm.<%= COMMAND_CLASS_NAME_PARAM %>.value
              = commandClassName;
              > > document.ShoppingCartDetailForm.<%= BUYBEANS_CONTENT_PARAM %>.value =
              bbContent;
              > > document.ShoppingCartDetailForm.submit();
              > >}
              > >//-->
              > ></SCRIPT>
              > >
              > ><%
              > > BuyBeansSessionTracker sessionTracker =
              (BuyBeansSessionTracker)getSessionValue( BUYBEANS_SESSION_TRACKER_KEY,
              request );
              > >
              > > // Get the current Order
              > > Order currOrder = sessionTracker.getEBusinessSession().getOrder();
              > >
              > > // Get all the items in the cart as a Vector of orderlines from the
              session tracker
              > > java.util.Vector orderLines = sessionTracker.getCartOrderLines();
              > >%>
              > >
              > >
              > ><!-- Display the items from the shopping cart -->
              > > <table width="99%" border="0" cellspacing="0" cellpadding="0"
              align="center">
              > > <tr bgcolor=FFFFFF>
              > > <td> </td>
              > > <tr bgcolor="#FFFFFF">
              > > <td>
              > > <table width="95%" border="0" cellspacing="0" cellpadding="3"
              align="center" dwcopytype="CopyTableRow">
              > > <tr>
              > > <td colspan="6"><font face="Arial, Helvetica, Verdana,
              sans-serif"><%@ include file="contentMessages.jsp" %></font></td>
              > > </tr>
              > > <tr>
              > > <td colspan="6"> <%= JspHelperBase.formatAsTitle("Shopping
              Cart - SSL*** ") %> </td>
              > > </tr>
              > > <tr>
              > > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
              size="2"><b>Product ID</b></font></td>
              > > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
              size="2"><b>Description</b></font></td>
              > > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
              size="2"><b>Quantity</b></font></td>
              > > <td align="right"><font face="Arial,Helvetica,sans-serif"
              color="#666600" size="2"><b>Price</b></font></td>
              > > <td align="right"><font face="Arial,Helvetica,sans-serif"
              color="#666600" size="2"><b>Subtotal</b></font></td>
              > > <td></td>
              > > </tr>
              > >
              > > <form method="get" name="ShoppingCartDetailForm" action="<%=
              response.encodeURL(getTrafficURI(request)) %>" >
              > > <%
              > > // Declare a currency format type
              > > Quantity one = QuantityHome.create();
              > > one.setCount(1);
              > >
              > > // Print out all the items in the cart
              > > for(int i = 0; i<orderLines.size(); i++ ) {
              > > OrderLine currOrderLine =
              (OrderLine)orderLines.elementAt(i);
              > > Item myItem = currOrderLine.getItem();
              > > ItemValue iv = myItem.getItemByValue();
              > > String desc = iv.description;
              > > String id = iv.identifier;
              > >
              > > // Specify the color of the row
              > > String rowColor = (i%2 == 0) ? ROW_BACKGROUND_COLOR_1 :
              ROW_BACKGROUND_COLOR_2 ;
              > >
              > > // Specify the name of the quantity text field - name
              it as qty+i
              > > String qtyInputName = ORDER_QUANTITY + i;
              > >
              > > // Specify the name of the remove checkbox
              > > String removeInputName = REMOVE_CHECKED + i;
              > >
              > >
              > > %>
              > > <!-- print out the details of each item -->
              > > <tr bgcolor="<%= rowColor %>">
              > > <td><%= id %></td>
              > > <td><%= desc %></td>
              > > <td>
              > > <input type="text" name="<%= qtyInputName %>" size=3
              maxlength=3 value= "<%=
              JspHelperBase.formatQuantityAsInteger(currOrderLine.getQuantity()) %>" >
              > > </td>
              > > <td align="right"><%=
              JspHelperBase.formatPriceAsCurrency(myItem.calculatePrice(one, null))
              %></td>
              > > <td align="right"><%=
              JspHelperBase.formatPriceAsCurrency(currOrderLine.getLinePrice(null))
              %></td>
              > > <td><input type="checkbox" name="<%= removeInputName %>"
              value="<%=REMOVE_CHECKED %>" > Remove </td>
              > > </tr>
              > > <%
              > > }
              > > %>
              > > <tr>
              > > <td> </td>
              > > <td> </td>
              > > <td> </td>
              > > <td align="right"> <font face="Arial,Helvetica,sans-serif"
              size="3" color="#666600"><b>Total:</b></font></td>
              > > <td>
              > > <div align="right"><font face="Arial, Helvetica,
              sans-serif" size="3" color="#990000"><b><%=
              JspHelperBase.formatPriceAsCurrency(currOrder.getTotalPrice()) %>
              > > </b> </font> </div>
              > > </td>
              > > <td>
              > > <input type="button" name="<%=UPDATE_CART_BUTTON %>"
              > >
              onClick="submitShoppingCartDetailsForm('examples.buybeans.client.UpdateShopp
              ingCartCommand', '<%= SHOPPING_CART_DETAILS_JSP %>')"
              > > value="Update">
              > > </td>
              > > </tr>
              > > <tr>
              > > <td> </td>
              > > <td> </td>
              > > <td> </td>
              > > <td> </td>
              > > <td> </td>
              > > <td>
              > > <input type="button" name="<%=CHECKOUT_BUTTON %>"
              > >
              onClick="submitShoppingCartDetailsForm('examples.buybeans.client.CheckOutCom
              mand', '<%= CHECKOUT_JSP %>')"
              > > value="Checkout">
              > > </td>
              > > </tr>
              > > <tr colspan="6">
              > > <td> </td>
              > > </tr>
              > >
              > > <%-- DESTINATION_TAG is required because the form action goes
              to getTrafficURI() --%>
              > > <%-- In this case, the destination is the command
              --%>
              > ><%-- <input type=hidden name="<%= DESTINATION_TAG %>" value="<%=
              COMMAND_ASSEMBLER_JSP %>"> --%>
              > >
              > > <%-- The following line is used for testing SSL redirect --%>
              > > <input type=hidden name="<%= DESTINATION_TAG %>"
              value="/portals/buybeans/portlets/commandAssemblerSSL.jsp" >
              > >
              > > <%-- The following two parameters are set by the JavaScript
              function based --%>
              > > <%-- on the button that the user presses (default value are
              provided ) --%>
              > > <input type=hidden name="<%= BUYBEANS_CONTENT_PARAM %>"
              value="<%= SHOPPING_CART_DETAILS_JSP %>">
              > > <input type=hidden name="<%= COMMAND_CLASS_NAME_PARAM %>"
              value="examples.buybeans.client.UpdateShoppingCartCommand">
              > >
              > > </form>
              > > </table>
              > > </td>
              > > </tr>
              > > <tr>
              > > <td> </td>
              > > </tr>
              > ></table>
              > >
              >
              

  • CFLOGIN works, but not simultaneously on different servers/broswers

    I'm using CFLOGIN with application.cfc which works great when I test it - I'll call it login session A in browser window 1.
    When I simultaneously log into the same app on a different server with a different username (login session B in browser window 2), I can't login - unless I log out out of session A/browser window 1 first. Something in my new code is preventing me from logging into my app more than one time, even when the apps are on separate servers and I'm using different usernames.
    We have the same app on various servers (test/development/production), and I used to be able to login on 2-3 browsers or servers at a time - and I never had a problem until recently when I made some changes to the application.cfc and login code.
    I updated the code because before the session scopes and login credentials were not being initiated and terminated together (upon login/logout). Before, a user was clicking 'logout' and it was clearing the session scopes without invoking CFLOGOUT. Now, I fixed that, but I have another problem, which is that I can't log into the application on two different browsers or servers at the same time (even if I'm using different login usernames). Any suggestions would be appreciated.
    <cfcomponent displayname="Application" output="false">
        <cfset this.name = 'SampleApp'>
        <cfset this.SessionManagement = true>
        <cfset this.SetClientCookies = true>
        <cfset this.SessionTimeout = CreateTimeSpan( 0, 0, 5, 0 ) />
    <cffunction name="onSessionStart" access="public" returntype="void" output="false">
        <cfset session.hostname = 'http://'&#CGI.HTTP_HOST#&'/'>
        <cfset session.dbase = 'localdb'>
        <cfset session.roles = ArrayNew(1)>
        <cfreturn>
    </cffunction>
    <cffunction name="onApplicationStart" access="public" returntype="boolean" output="false">
        <cflog file="SampleApp" type="information" text="Application started." />
        <cfreturn true>
    </cffunction>
    <cffunction name="onApplicationEnd" returntype="void" output="false" hint="Executes on session timeout or if server shuts down.">
        <cfcookie name="CFID" value="#CFID#" expires="now">
        <cfcookie name="CFTOKEN" value="#CFTOKEN#"  expires="now">
        <cfreturn>
    </cffunction>
    <cffunction name="onRequestStart" access="public" returntype="void" output="true" hint="Executes before each page processes.">
        <cfargument name="targetPage" type="String" required="true"/>
            <cfsilent>
            <cfif GetAuthUser() NEQ ''>
                <cfif NOT isDefined('session.uname')>
                    <cfif CGI.HTTP_REFERER DOES NOT CONTAIN "login.cfm">
                        <cfinclude template="expired.cfm">
                        <cfabort>
                    </cfif>
                </cfif>
            </cfif>
            <cflogin>  
                <!--- Flash Remoting setCredentials() passes cflogin.user and cflogin.password using checklogin.cfc --->
                <cfif IsDefined('cflogin')>        
                    <cfquery name="qValidateLogin" datasource="#session.dbase#" username="#cflogin.name#" password="#cflogin.password#">
                        SELECT    role
                        FROM    session_roles
                    </cfquery>
                    <cfif qValidateLogin.RecordCount GT 0>
                        <cfloginuser name="#cflogin.name#" password="#cflogin.password#" roles="#qValidateLogin.ROLE#">
                        <cflog text="User - #cflogin.name#" type="Information" file="Filename" date="yes" time="yes">
                    <cfelse>
                        <cfinclude template="login.cfm">
                        <cfabort>
                    </cfif>
                <cfelse>
                    <cfif right(arguments.targetPage,10) is "logout.cfm">
                        <cflocation url="index.cfm">
                        <cfabort>
                    <cfelse>              
                        <cfinclude template="login.cfm">
                        <cfabort>  
                    </cfif>          
                </cfif>
            </cflogin>
            </cfsilent>      
    </cffunction>
    </cfcomponent>

    Oh no, that was my mistake. Thank you for catching that! That query is currently not being used on my Application.cfc page, which is why I wasn't having problems with it, but I'm glad you pointed it out to me. I had that code in my Application.cfc file just incase I wanted to check login from somewhere else, but my login query is actually being called with Flash Remoting using setCredentials() to connect to login.cfc. This is the correct query in my login.cfc file:
                <cfquery name="qValidateLogin" username="#session.uname#" password="#session.pword#" datasource="#session.dbase#">
                    select role from session_roles where role like 'xxxxx%'     
                </cfquery>
    I do think I figured out a solution to my problem though. I found out how to use applicationToken, which I understand if it is not set, by default will be the value of application.Name. If you want users to be able to log into multiple instances of  your application at the same time, you would give the applicationToken the same value. This would be great for clustered servers or sites with sub-domains.
    If you wanted to force only one login for the three different sites, you could give this a different value. VERY useful. So I have:
    <cfcomponent displayname="Application" output="false">
        <cfset this.name = 'SampleApp'>
        <cfset this.SessionManagement = true>
        <cfset this.SetClientCookies = true>
        <cfset this.SessionTimeout = CreateTimeSpan( 0, 0, 5, 0 ) />
        <cfset this.loginStorgage = "session">
        <cfset this.applicationtoken = 'SampleAppSub'>
    Now, I can log into this site on my development machine with multiple browsers pointing to the same site hosted on different servers - with no problem. I never had an issue with this before, but something else I recently added into my code in Application.cfc made this not work. I should probably also mention that I work on many different applications that all use the same application.Name even though they are different sites - we do this so the same settings can be deployed on different servers.
    With the applicationToken settings, I have it working again. Perhaps what made it break was setting this.loginStorage = "session"? Before this was not set and was using the default value of  "cookies" which I didn't want - because my site is used by different people on the same box and we have clustered servers.

  • How to do http session stickiness based on URL patterns?

    Is there a feature within the WL plugin for Apache that would allow me to emulate the "jvmroute" session stickiness behaviour as provided by Tomcat and its plugin. I would like to have the control to tie requests from http clients to particular WLS servers in a cluster depending on the URL. For example http://foo.com/web01 requests would be forwarded to an appsererver app01 and so on. For all other requests (e.g http://foo.com/web), the WL plugin would do its normal load balancing ignoring the stickiness. From my understanding the WLS inbuilt http session stickiness is based on JSessionIDs which are exchanged using cookies - which is something i cannot use in my case since i want the stickiness based on URL patterns.
    I am using WLS 10.0 with Apache 2.2.4 on Linux.
    Thanks
    Ramdas

    Session is not replicated across all the servers in the Cluster.
    Apache knows which server to go using the JSession ID.
    There is a concept of primary and secondary, secondary is selected based on the replication groups there are configured in the cluster.
    you can configure the cluster so that /web01 requests go to different cluster, and /web requests go to different cluster.
    but you can get all the funtiionalities from the single cluster.
    Do you have any java caching that you are not able to replicate across the cluster ?(I know this can be done too).
    let me know what you are actually trying to solve by doing the behavior you explained.

  • RD Gateway and RD Web Access - better together or on different servers?

    I am evaluating Remote Desktop Services with 2012 R2 and initially I had all the roles on 1 server for testing.  I began thinking it would be a better setup to split the RD Gateway role and the RD Webaccess role into different servers for security purposes.
     This way I could expose only the RD Gateway to the internet and the Web Access role would not be exposed.  In all my reading and searching it seems that nearly every article I come upon has both RD Gateway and Web Access installed on the same system.
    What is the ideal setup from a security standpoint to have the these two roles separate or does it not mater?  If it does not mater then I will setup 1 server with Gateway and Web Access and I will then have other servers for licensing, broker, session
    host, and visualization host once I move this into production.
    If these roles are on the same system how do I know if the gateway role is doing anything?  Is the FQDN\rdweb the correct URL to use even when the gateway is implemented?  
    If they are separate how do I tell the gateway and web access servers to use each other?  

    Hi,
    As far as I know, it’s fine to have RD Gateway and RD Web Access roles installed on the same server.
     “Normally external users would log on to RD Web Access via tcp port 443, click on a RemoteApp and connect to RD Gateway via
    tcp 443/udp 3391, RDG connects them to RDCB on tcp 3389 which redirects them to a RDSH server, finally the RDG connects to the RDSH on tcp 3389/udp 3389.”
    Quoted from TP in this post below:
    RD Gateway and RD web issue
    https://social.technet.microsoft.com/Forums/windowsserver/en-US/5ab40559-23f7-4ebc-b60d-87375cc55674/rd-gateway-and-rd-web-issue?forum=winserverTS
    More links below for you:
    RD Gateway deployment in a perimeter network & Firewall rules
    http://blogs.msdn.com/b/rds/archive/2009/07/31/rd-gateway-deployment-in-a-perimeter-network-firewall-rules.aspx
    Remote Desktop Gateway/Web Server Placement
    https://social.technet.microsoft.com/forums/windowsserver/en-US/b2970cf5-a5b5-494c-88b7-cd6e01f84bb6/remote-desktop-gatewayweb-server-placement
    Best Regards,
    Amy
    Please remember to mark the replies as answers if they help and un-mark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]

  • Monitor HTTP Sessions

    Hi,
    I want to monitor all http sessions on the SAP Portal. For this I know two possibilities
    - In the Visual Administrator -> Security Provider you can access the login sessions, but these are only the sessions of the authenticated users
    - In the NetWeaver Administrator -> System Monitoring, but there you can only see the amount of currenthttpsessions on the different servers
    I hope you can tell me where I'm able to see all current http sessions (anonymous and authenticated), and not only the amount.
    Bye,
    Timo

    Dear Timo,
    maybe Actiivty report can help on your case.
    http://help.sap.com/saphelp_nw04/helpdata/en/58/728ea01cf64fff996b827f2a06f9b1/content.htm
    http://wiki.sdn.sap.com/wiki/display/EP/CreatingaPortalActivityReportIviewformonitoringPageandIview+activities
    Please remember to evaluate the replays, this incentive the SDN to keep growing,
    regards,
    Fabio

  • EJBTransactionRolledbackException occurs when load EJB from HTTP session

    A stateful session bean that contains user information is stored to HTTP session once a user is successfully logged in. Subsequent requests has to go through a security filter where in the filter it validates if the session contains this stateful session bean. For some reason I get EJBTransactionRolledbackException when I try to call a method from the EJB.
    The method is called and User object that contains correct information is returned. However on client side it always throws EJBTransactionRolledbackException. Following is stack trace. Any suggestion or help is much appreciated:
    javax.ejb.EJBTransactionRolledbackException
         at com.sun.ejb.containers.BaseContainer.mapBusinessInterfaceException(BaseContainer.java:1482)
         at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1396)
         at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
         at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:205)
         at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83)
         at $Proxy494.getUser(Unknown Source)
         at com.company.comm.server.security.SecurityFilter.validSession(SecurityFilter.java:112)
         at com.company.comm.server.security.SecurityFilter.doFilter(SecurityFilter.java:78)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
         at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
         at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
         at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
         at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
         at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
         at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
         at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
         at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
         at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
         at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
         at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
         at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
         at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
         at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
         at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361)
         at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
         at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
    Caused by: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
         at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:3394)
         at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:3274)
         at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1244)
         at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:195)
         ... 32 more

    Apparently the GlassFish installation (or the environment) has got some problem. Tested the deployment on 4 different GlassFish servers that are installed on different machines and none of them has this problem.

  • HTTPS - HTTP session lost !!

     

    Support
    I am cross posting because of possible implications that might arise and users
    NEED to be aware of these issues.
    Now you are asking me to change the port settings to 80 instead of 7001. I
    wonder why Weblogic documentation never gave me a heads up once they knew this
    is happening with many a client. If only the SUPPORT had any idea of how many
    servlets we have to change ( we did NOT hardcode the portnumber). The servlet
    developer was using getServerPort() and using it for redirecting. Hopefully the
    future docs would say something on these lines:
    If you plan to open up 7001 as WL system port, do it at your own risk. You might
    NOT be able to use HTTPS to HTTP chaining (if you will) or vice versa if you go
    for any non-standard ports, especially when you dont want to use cookies. ALWAYS
    use 443 for SSL.
    On the same note, I have one other question, as dumb as it may seem.
    Are there any implications that I should be aware of for opening up the HTTP
    system port for WL server. How are people dealing with this if they are behind
    firewalls, etc? I am looking more for security implications, proxy requests,
    etc.
    Thanks and you all have a great weekend.
    Madhu
    [email protected]
    404-639-2462
    Mark Griffith wrote:
    You should be ok if you are using the default ports for the respective
    protocols AND you dont include them in the URL. Browsers interpret the
    presence of the port as a differentiator in determining what is unique and
    not. In otherwords it has to be:
    http://localhost/foo
    https://localhost/foo
    No port.s
    mbg
    "Madhusudan R Chaganthi" <[email protected]> wrote in message
    news:[email protected]...
    i am not using cookies.
    i am trying to use urlencoding by calling the following code in
    the Login page whose url is
    https://localhost:"portNumber"/LoginPage
    I tried with 7002 and 443 for the portNumber
    String encodedNextURL =
    res.encodeRedirectURL("http://"+calledServer+"/"+"WelcomePage");
    res.sendRedirect(encodedNextURL);
    // this encodedNextURL is http://localhost:7001/WelcomePage
    Thanks
    Madhu
    sumanth wrote:
    sorry that i did not read ur complete mail.
    are u using urlencoding? u are not using cookies or is url encoding
    a fall back mechanism when cookies are disabled by the user's browser.
    could u send me the complete url's of the loginpage(https) vs welcome
    page(http). I will
    see if that can help me in answering ur question.
    -Sumanth
    "Madhusudan R Chaganthi" <[email protected]> wrote in message
    news:[email protected]...
    Sumanth
    I have tried that but it doesnt work. Now it bombs out in IE too.
    The reason might be this:
    One other person told me that I have to call all my servlets with
    "myserver" instead of "localhost".
    That takes away flexibility for one and means a lot of change to myexisting
    code.
    I have read Alexander's idea [17Sept 1999] but I wanted to make sure
    his
    idea of
    persisting session in DBMS is OK.
    Any other ideas would be immensely helpful.
    Thanks for your response.
    Madhu
    sumanth wrote:
    set the following property
    weblogic.httpd.session.cookie.domain=.abc.com
    where .abc.com is the domain name of ur site.
    U encounter this problem because netscape treats requests coming
    from
    different
    portnumbers as requests coming from two different servers where asIE
    treats it
    to be the request coming from the same servers....
    I have provided detailed explaination in one of earlier posts...butfor
    now
    setting
    the above property in the weblogic.properties file should keep u
    going.
    -Sumanth
    "Madhusudan R Chaganthi" <[email protected]> wrote in message
    news:[email protected]...
    Addendum to the previous post
    The call in the login page is
    String
    encodedNextURL=loginResponse.encodeRedirectURL("http://myserver.com/WelcomeP
    age");
    loginResponse.sendRedirect(encodedNextURL);
    When IE the encodedNextURL has value
    http:...........WelcomePage?TengahSession=blahblahblah
    When Netscape the encodedNextURL has value
    http:...........WelcomePage
    Any reason why this is happening ??
    Thanks
    Madhu
    Madhusudan R Chaganthi wrote:
    Hi All
    I am using WL 4.5.1 SP11 on NT.
    We are using HTTPS (Using Verisign SSL certs) on our login page
    and
    from
    there on everything else runs on HTTP.
    For name sake,
    LoginPage - HTTPS
    Welcome Page - HTTP
    Login page calls Welcome page,
    the session is set to null when the browser is Netscape
    the session is fine when the browser is IE.
    Both the browsers are the latest versions.
    According to a posting on 17Sept 1999 [sessions between HTTP andHTTPS,
    Alexander says we can workaround this using some kind of
    persistence.
    Does anyone have some kind of doc as to how to do it in detail?
    Thanks
    Madhu
    [att1.html]

  • Logical systems assignment when SRM and ECC are on 2 different servers

    Hi SRM guru's,
    What is the standard practice for Logical system creation and assignment when  ECC and SRM are on 2 different servers.
    I could not able to find which i created a logical system  in SRM server which i created in ECC
    Same for the ECC also.
    how do i assign logical system of SRM to ECC
    vice versa.
    your prompt response is appreciated.
    Regards

    Hi Sai,
    Logical System Naming/Creation procedure is not dependent on the servers but it is just a logical representation of a system.
    As you are trying to name logical systems for ECC & SRM, please follow the below procedure which is usually recommeded by SAP and followed.
    Logical System : <SID>CLNT<Client Number>
    For Example if you have a client 300 in system DE0 (also called SID), the logical system name will be DE0CLNT300. And it will be same for SRM system.
    You can refer the below document which eplains the creation of logical system and RFC destinations etc
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFAALEQS/CABFAALEQS.pdf
    Note: Only while configuring the RFC Destination, the servers will play a crucial role.
    Regards
    Kathirvel

Maybe you are looking for