Making the application cluster-aware

Hi,
          I have just been assigned a multi-tier J2EE application with the task of
          making it "work in a cluster". The earlier architects (if i may use the
          term), just "assumed" that weblogic would provide support for
          high-availability and they would not need to do any code changes.
          So I have this application that has about 100 EJBs - about 40 Entity Beans,
          only two SFSB and the rest are SLSB.
          What would be the best strategy to go about making this application
          cluster-aware?
          I could think of the following points so far:
          1. Identify idempotent methods in all EJBs.
          2. Make all session-stored objects serializable in the web-tier. Make sure
          objects are not too huge to be serialized (don't know if I would be actually
          able to modify - too late for that).
          3. Modify bean descriptors to make them clusterable.
          4. Make web app clusterable.
          5. Look for code that uses non-replicable services (file system access,
          sockets, etc.).
          I'm sure there must be more that I've missed. Anything more that needs to be
          added to the list above? Would there be a scenario where the EJB clients
          (other beans themselves, the web tier, RMI clients, etc) would need to be
          changed?
          I understand identification of idempotent methods would be manual (or is
          not?). But what would be the best way to modify the deployment descriptors
          of all these beans?
          TIA
          With Warm Regards,
          Manav.
          

Hi Manavendra,
          By default all EJBs are clusterable because the default value of
          <home-is-clusterable/> is true and <stateless-bean-is-clusterable/> default
          is true. For stateful session EJBs, you will have to configure the
          replication type to InMemory as it defaults to none. Unless you have
          specifically added these elements to turn off clustering, they should
          already be clusterable.
          Typically, you will find performance is better if the web app and EJBs are
          deployed in the same JVM, because there are no remote calls. By default
          <enable-call-by-reference/> is set to true which allows arguments to be
          passed by reference rather than copying parameters. If calls are remote,
          then <enable-call-by-reference/> must be false as pass by value will always
          be necessary in this case.
          Jane
          "Manavendra Gupta" <[email protected]> wrote in message
          news:[email protected]...
          > Jane,
          >
          > I appreciate you taking out time to reply.
          >
          > <headers trimmed>
          > > > 1. Identify idempotent methods in all EJBs.
          > >
          > > You only need to do this if your EJB clients are remote. If the client
          is
          > a
          > > web app deployed in the same JVM as your EJBs, you don't need to worry
          > about
          > > it since WebLogic will create the EJBs on the same JVM as the web app.
          > Like I said, its a multi-tier application, so there is the web-tier making
          > calls to the EJB tier (though thankfully, there is a EJB "API" layer -
          that
          > consists of multiple Session Facades, ensuring network calls are
          minimized).
          > I'm not sure if the web-tier and the EJB-tier in the same application are
          in
          > the same VM in weblogic?
          >
          > Finally, I might need to separate the two tiers physically, though I'm
          still
          > trying to find out the parameters on which I'd need to do that (when to
          farm
          > and when to cluster?).
          >
          > So, the short reply, yes, the clients would be remote.
          >
          > > > 3. Modify bean descriptors to make them clusterable.
          > >
          > > They are clusterable by default. For stateful session EJBs you will
          want
          > to
          > > use in-memory replication. You didn't mention the version of WLS you
          are
          > > using pre-6.1SP3 has a few problems with this, so you might want to
          check
          > > with Customer Support if you are using SP1 or SP2.
          >
          > Sorry about that. The OS used is RHL6.2 and we are using weblogic 6.1 with
          > SP1 (thats the only one certified on 6.2). Its intriguing when you say
          that
          > all EJBs in WL 6.1 SP3 would be "clusterable by default". How does it do
          > that? Does it generate clustering descriptors for all beans deployed?
          Could
          > you shed more light on this?
          >
          > > > 4. Make web app clusterable.
          > > If using in-memory replication for HttpSession state, make sure you set
          > the
          > > session descriptor persistence type to "replicated" not "memory". This
          is
          > a
          > > point of confusion for a lot of folks.
          >
          > Thanks for the heads-up on the that. I'll keep this in mind.
          >
          > > > 5. Look for code that uses non-replicable services (file system
          access,
          > > > sockets, etc.).
          > > EJBs should not do things like this even if not running in a cluster.
          >
          > I agree EJBs should not be doing this, and chances are they will not be
          > doing this in the code either. But I'm not sure. Also, they might be
          using
          > objects that are doing this, and I'm not sure if everything will work
          > seamlessly in that case.
          >
          > > > I'm sure there must be more that I've missed. Anything more that needs
          > to
          > > be
          > > > added to the list above? Would there be a scenario where the EJB
          clients
          > > > (other beans themselves, the web tier, RMI clients, etc) would need to
          > be
          > > > changed?
          > >
          > > If your EJB clients are remote clients, you might need to modify code to
          > > handle failover (depending on the type of EJB you are using). The
          > > examples.ejb.cluster sample that ships with WebLogic is a good example
          to
          > > look at.
          >
          > Thanks again. I'll check this one out.
          >
          > Finally, the prime reason for posting this was to gain insights into such
          a
          > situation that I was hoping someone on this list had handled before.
          >
          > --
          > With Warm Regards,
          > Manav.
          >
          >
          >
          

Similar Messages

  • Info on how to make application cluster aware

    Hi All,
    Can somebody provide help/pointers on how to make (java or c++) application cluster aware ?
    In our application We are making cluster of two solaris m/cs
    for higher availability.The application which are running on
    the m/c are written in java and c++.
    TIA
    Regards
    Praveen

    Not a developer myself, but by chance do you have the API
    documentation? If not here is the SC 2.2 link for the API.
    http://docs.sun.com:80/ab2/coll.650.1/CLUSTAPIPG/@Ab2TocView?Ab2Lang=C&Ab2Enc=iso-8859-1
    and the 3.0 data services developer guide.
    http://docs.sun.com:80/ab2/coll.572.7/CLUSTAPIPG/@Ab2TocView?Ab2Lang=C&Ab2Enc=iso-8859-1
    Heath

  • Cluster - Non-cluster aware application

    Hi everyone,
    I need to migrate some non-cluster aware application from windows server 2003 to windows server 2008 R2 or windows server 2012.
    On windows server 2003, the cluster service start with a specific domain user to let some access.
    I have seen some solutions like "RUNAS" in cmd or a powershell script or VBS.
    But my problem is:
    How can i start or create non-cluster aware application with user domain access and with "clean work" ?
    Thanks

    Windows services are installed with an associated account.  You can define that to be whatever you want, either a local machine account, local system account, or a domain account.
    To make it much, much easier than was possible with clustering in 2003, Windows Server 2012 (suggest using R2) comes with a cluster role of Generic Service.
    . : | : . : | : . tim

  • Is it cluster awared application?

    Hi,
              My company has purchased for an e-commerce applications from our vendor.
              That applications was running on WebLogic 4.5.1. Our vendor claim that their
              application is cluster awared application. The user interface of the client
              is managed by Java Applet. In the weblogic.properties, I didn't see any jdbc
              connection pool configuration and has only a
              weblogic.ejb.deploy.something=something.ser. I know that some cluster
              awared application config. can be setup in META-INF file by using
              weblogic.deployer. But, I don't know how to check it on .ser file.
              My question is how can I verify that the application that we purchase is
              cluster awared application. If it's not cluster program, what do we get from
              install this kind of application into the WL clustering machine.
              Thanks in advance
              Skon L.
              

    I think it is better to talk to your vendor and ask them to give your some
              test cases on failover and load-balancing of their products built on top of
              WLAS.
              Cheers - Wei
              Skon Lapamnuaypol <[email protected]> wrote in message
              news:[email protected]...
              > Hi,
              > I think my question might be uncleared. I know how to setup a WLAS
              cluster.
              > But, I want to verify that the application itself is cluster awared
              program.
              > Do I have any way to verify this?
              >
              > Thanks,
              > Skon L.
              >
              > Wei Guan wrote in message <[email protected]>...
              > >1) Go to $WL_HOME/licence, check WebLogicLicense.xml to see if it has an
              > >entry called "WebLogic/ClusterII"
              > >2) Follow instructions to install WLAS instances in a cluster and install
              > >their application.
              > >3) Run it, and go to weblogic.Console to verity that those WLAS instances
              > >are in the same cluster.
              > >
              > >Hope it helps.
              > >--
              > >Cheers - Wei
              > >
              > >
              > >
              > >Skon Lapamnuaypol <[email protected]> wrote in message
              > >news:[email protected]...
              > >> Hi,
              > >> My company has purchased for an e-commerce applications from our
              vendor.
              > >> That applications was running on WebLogic 4.5.1. Our vendor claim that
              > >their
              > >> application is cluster awared application. The user interface of the
              > >client
              > >> is managed by Java Applet. In the weblogic.properties, I didn't see any
              > >jdbc
              > >> connection pool configuration and has only a
              > >> weblogic.ejb.deploy.something=something.ser. I know that some cluster
              > >> awared application config. can be setup in META-INF file by using
              > >> weblogic.deployer. But, I don't know how to check it on .ser file.
              > >> My question is how can I verify that the application that we purchase
              is
              > >> cluster awared application. If it's not cluster program, what do we get
              > >from
              > >> install this kind of application into the WL clustering machine.
              > >>
              > >> Thanks in advance
              > >> Skon L.
              > >>
              > >>
              > >>
              > >
              > >
              >
              >
              

  • Unable to bind a cluster-aware stateless session EJBObject to the name

    I have been struggling with "Unable to deploy EJB" because of
    "Unable to bind a cluster-aware stateless session EJBObject to the name"
    I'm using WL6.1 sp2.
    Anyone could give me a hint?
    Thanks!

    In config.xml remove the <Application></Application> tag for Ejb.
    Application Deployed="" Name=""
    Path="">
    <EJBComponent Name="" Targets="" URI=""/> </Application>
    gary <[email protected]> wrote:
    Hi guys, hope you can help:
    I had to change the packages of some ejbs and now when I try to deploy
    the new .jar file I get the error below. I have tried deleting the ejb's
    off the server, rebooted the server and nothing seems to work. Any help
    would be appreciated. (Weblogic version 6.1)
    Thanks in advance,
    Gary
    Unable to deploy EJB: quizinterface from etvquiz-ejb.jar:
    Unable to bind a cluster-aware stateless session EJBObject to the name:
    channel4.quizinterface_EO. Please ensure that the jndi-name in the weblogic-ejb-jar.xml
    is correct. The error was:
    javax.naming.NameAlreadyBoundException: Can't rebind anything but a replica-aware
    stub to a name that is currently bound to a replica-aware stub; remaining
    name ''
    <<no stack trace available>>
    >
    <Nov 1, 2002 1:57:46 PM GMT> <Error> <Management> <Error deploying application
    .\config\mydomain\app
    lications\etvquiz: java.lang.reflect.UndeclaredThrowableException>

  • Cluster Aware Updating - Failed to restart - The RPC Server is unavailable

    I have a 3 node Windows Server 2012 R2 Failover Cluster, and I'm having trouble getting Cluster Aware Updating to work properly. I have been able to successfully apply updates that do not require a reboot, however, anytime I have updates that
    do require a reboot, the process fails. The error message says:
    Failed to restart <ServerName>:(ClusterUpdateException) Failed to restart <ServerName>:(Win32Exception) The RPC server is unavailable ==> (Win32Exception) The RPC server is unavailable
    I have verified that the firewall rule to allow automatic restarts is configured according to Technet: Requirements and Best Practices for Cluster-Aware Updating
    I have also made sure that the CAU AD account has local admin rights, as well as "Force shutdown from a remote system" rights on each of the cluster nodes. In this case, I have been applying updates manually from my workstation (which is not a
    member of the cluster) while logged in with Domain Admin rights (as opposed to letting the cluster update itself based on a schedule). I'd like to verify that the entire process works properly before letting it update itself. What am I missing?

     Hi Duct tape and super glue,
    Could you offer us more information about your environment status now, such as
     CUA Role name is online or not, firewall settings and the event ID, “The RPC server is unavailable” is the typical caused by the WMI or DCOM communication was not running or block, please verified that the firewall was set correctly, WinRM
    is enabled.
    More information:
    What is Cluster Aware Updating in Windows Server 2012? (Part 2) [VIDEO]
    http://blogs.technet.com/b/mspfe/archive/2013/03/07/what-is-cluster-aware-updating-in-windows-server-2012-part-2-video.aspx
    Configure Remote Management in Server Manager
    http://technet.microsoft.com/en-us/library/hh921475.aspx
    I’m glad to be of help to you!
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • Error While open the application in a Cluster on HFM Client

    Hi,
    I have added Cluster in Clinet configuration in HFm, after adding the cluster successfully i have logged into finacial management client then i have selected the Cluster and it opens pop up windows which we need to Select the temp folder for that application
    my problem starts here after givingthe folder it thorws me an error( some times we were able to select the application and assigned the folder with out any issues, but some times we could not)
    we tried with different credentials but no luck.
    Here is the Error
    "Could not Authenticate the specified user"
    Error Reference Number: {5895D16C-F1B9-475B-A3A4-F577D1A28449}
    Num: 0x8004021a;Type: 0;DTime: 3/6/2012 9:30:02 AM;Svr: HFM Client machine;File: CHsxClient.cpp;Line: 2343;Ver: 11.1.1.1.0.2120;ExErr: Unknown Error;
    Can any body please help me!
    Thanks
    Ashok
    Edited by: Ashok on Mar 6, 2012 6:40 AM

    Hi Ashok,
    Please check the below link which might resolve the issue.
         Financial Management Error "There was some communication error" (Doc ID 1280613.1)
    Hope this helps,
    Thank you,
    Charles Babu J

  • User is thrown from the Application under Cluster stress test

    Hi All,
    i have ADF/ADF faces application running on WLS 10.3.5.0 Cluster Environment (with 2 nodes).
    I'm running application using in memory Session replication.
    The problem which i have is that under the stress test (about 10-20 users) sometimes user suddenly is presented with Login Screen (more rare with session expired message) ! This also can happens immediately after user login .
    That happens randomly on different part of the System. In more of the cases user is thrown independently from other users but
    sometimes all the users are thrown simultaniously.
    When the System is tested with only one user this effect appears very rare.
    What i have done is to enable Cluster and Replication debugging to see if there some errors within Http Session Replication. However there isn't any errors appeared. From the application part everything seems fine.
    I suspect that the proxy could cause a problem (by forwarding the request to secondary instead of primary server). Currenltly i'm using HttpClusterSerlvet installed by default from WebLogic Configurator on dedicated Managed Server.
    Can somebody give any advice with this ?
    Thanks in advance,
    Krasimir

    Krashmir,
    Did you find any solution for this problem. I am also facing the similar issue.
    Thanks,
    Ram

  • Warning:The EXPORT data cluster is too large for the application buffer.

    Hi Friends,
    I am getting following warning messages whenever I click on costing in "Accounting" tab.
    1. Costing data may not be up to date  Display Help
    2.  No costing variant exists in controlling scenario CPR0001
    3.  An error occurred in Accounting (system ID3DEV310)
    4. The EXPORT data cluster is too large for the application buffer.
      I can create project automatically from cprojects. PLan costs, budget and actuals maintain in WBS elements can be visible in cproject Object Links.
    Your reply is highly appreciated.
    Regards,
    Aryan

    Hi;
    Please, check the Note --> 1166365
    We are facing the same problem in R3, but apply this no fix it.
    Best regards.
    Mariano

  • Will the Application Scope be shared across the cluster in a multi-node OC4

    Hi,
    I have the following requirement:
    Users of the application can only have single (browser) session. When a user who already has a session connects again, he should no longer be allowed to access the older session.
    My proposed implementation is:
    -     After successful login – possibly using a Session Listener - an entry is made in a HashMap UserSessions that lives in the application scope. Key is the username, value is the session id (HttpSession.getId()).
    -     For every request, using a ServletFilter, we check whether the session is still in the UserSessions HashMap for the current user. If a new session has been created for the same user, the session id for that new session is in the UserSessions map and the servletfilter will not find the session. In that case, the filter should invalidate the session and forward to the user to an error page.
    However, the application will run on a multi-node OC4J cluster. I am starting to wonder:
    Will the Application Scope be shared across the cluster in a multi-node OC4J environment?
    I know session state can be shared. But what application state/scope?
    Does anyone know? Do I have to do anything special in the cluster or the application to get this to work?
    Thanks for your help.
    Lucas

    gday Lucas --
    Application scope is not replicated across JVM boundaries with OC4J.
    I'm sure this used to be described in the doc, but I can't find it now from a quick scan.
    If you wanted to use this type of pattern, you could look to use a Coherence cache as distribution mechanism to share objects across multiple JVMs/nodes.
    -steve-

  • How to find which instance in the RAC cluster the application is connected

    How to find which instance in the RAC cluster the application is connected to ?
    Raees

    well if you know the user through which your application is connected to instance, you can easily find out by querying gv$session view.
    select inst_id,sid,serial#,program,username from gv$session where username is not null;
    Thanks
    Gaurav

  • Why the itunes always must sync all data another file if making update application for iphone ?

    Why the itunes always must sync all data another file if making update application for iphone ?

    I'm not sure I understand the question

  • Need help on making desktop application to web application having individual controls for users at the same time

    Hi,
    I have an desktop application and the following are the functionalities of the same.
    1. User inputs the data file with path (log file) to parse the required data.
    2. Once the user enters the path and starts the tool with start button, the tool parse the required data in terms of records and gives the records (creates output file containing all the useful records).
    3. Have popup window to display a group of data.
    4. Have popup to Plot graph. When a button is pressed in main GUI, the popup is opened giving scroll bar menus to choose the data for the graph. User after selecting the data (multiple Y axis) press another button to plot the graph. The input to this popup is the output file generated by this tool.
    5. The main GUI has buttons (play, step forward, step backward, reverse play, pause, stop, 1st record, last record - like tape recorder buttons) to play the records one by one.
    This application is used by many people and since its a desktop application (created in labview 2009), the user every time has to manually install the newer version.
    "So it is required to make the application into web based so that, the user can individually access the tool at the same time (different instances same as desktop app) and run their own data files from their system. The output files to be stored in the respective user's system."
    Can this be done using Web Publishing or Web Services present in LabView?
    I tried using Web Publishing but it gives control to only one user at a time and loading the files from the client path to run the tool is not possible.

    Simple. 
    If all you are worried about are updates, just put the EXE on a shared network drive and have your users launch it from there.

  • Starting the Oracle Identity Manager 9.1.0.2 Application Cluster (OWS)

    Hello friends,
    I have a question about how to start the Oracle Identity Manager 9.1.0.2 application that is deployed on Oracle WebLogic Server (OWS) 11g on 2 nodes (OIM_SERVER_01 and OIM_SERVER_02).
    What is the procedure to start the Admin Server and then the nodes where the application is deployed Oracle Identity Manager 9.1.0.2
    I left wondering the commands:
    1. xlStartServer.sh
    2. xlStartWLS.sh
    3. xlStartManagedServer.sh
    4. startNodeManager.sh
    Thanks for the support...

    First you need to start the AdminServer by the command xlStartWLS.sh then you can start the nodemanager on the hosts where your OIM server are located via the startNodeManager.sh command and then start the OIM Server via the xlStartManagerServer.sh command. Nodemanager is required to control the managed server if you plan to control them via the weblogic admin console. If you don't want to do that via console then xlStartManagerServer.sh and xlStopNManagedServer.sh would be able to control your oim servers. There is no specific order required for starting the oim servers, just that the admin server should be in running mode before you start the managed servers.
    -Bikash

  • The Mail application on my iMac is making the entire computer act up.

    I tried printing off my itinerary for my flight I'm taking tomorrow. The email was sent from WestJet directly to my email within the Mail application. When I tried to print the email itself, my computer started acting weird and froze, so I shut off the computer, and rebooted it (so I thought). When I turned it back on, none of the processes had stopped, and it just started back up to where it was before. My computer was no longer being recognized as my own for some reason. I originally got the computer used from a family member, and it was recognizing the computer as his, as if it had just rebooted from a previous date when he had owned the computer itself. It showed his name in all of the applications, and when I tried opening Microsoft Word to print it from there, it acted as if I had never run the application before (The previous owner never had the application installed). The default printer was not mine, although the drivers for my printer were still downloaded, and the printer was being recognized. The printer was the previous owner's. I just tried printing another document with just plain text, and it printed fine. No errors, (after I made the default printer back to mine) and nothing went wrong whatsoever. No lag time between when I clicked on print, and the actual printing of the document.
    Just wanting to see if anyone has encountered this problem before I have. IT just seems weird that it would "act" as if it had booted from a previous date.
    Thanks,
    Brad.

    Hey Leonard1207,
    You may want to try removing your mail account from the Mail application, then re-adding it:
    Mail (Mavericks): Remove mail accounts
    http://support.apple.com/kb/PH14944
    Take care, and thanks for visiting the Apple Support Communities.
    Cheers,
    Braden

Maybe you are looking for