Toplink in a cluster architecture

Hi,
I'm trying to integrate TopLink in a clustered application server architecture (EJB + Servlet) with dynamic memory sharing for HTTP session synchronisation using Datasources for access to the DB.
The DB should also be clustered (this is not sure and will be decided at a later point but should not have any bearing on the configuration of TopLink).
I have only found some very vague information about clustering the cache of TopLink.
Can anyone give me more information about how it works, how to parameter it and the does and don'ts?
Thank you

TopLink's cache-sync using JMS is documented at:
http://download-east.oracle.com/docs/cd/A97688_12/toplink.903/b10064/enterpri.htm#1022229
This shows examples of using sessions.xml and Java API to configure the use of JMS. You will need to configure your JMS to operate in your application server cluster. This will involve you following the instructions of your JMS to create a connection factory and topic that TopLink can make use of.
One note of caution about using cache-sync in general though. It does not eliminate concurrency issues and it does not prevent stale data. It minimizes the chance of stale data and is typically most efficient in systems with a small percentage of writes compared to read operations.
You will need to build your application taking concurrency into effect. This will involve setting up locking (typically optimistic locking) on all concurrently accessed types and also ensuring that the commit of UnitOfWork will catch all locking failure exceptions and handle them correctly.
If you are building a system with a larger (> 15%) percentage of writes you will probably not want to use cache-sync and may be more interested in proper cache configuration (use WeakIdentityMap for volatile data) and using possibly using refresh on queries in critical sections of the application's code. You will still require locking for these configurations as well.
Doug

Similar Messages

  • Deadlocks & Toplink in a cluster

    We need to cluster a very critical 7x24 app for both scalability and failover.
    Given that the performance of synchrous commits to a distributed cache (on a cluster) isn't recommended the only way to run a cluster of weblogic app servers seems to eliminate the use of an identity map. We are pinning most, if not all of the operational data in ram on the oracle db server to improve performance to compensate for the absence of a toplink cache.
    Has anyone run toplink in a cluster ??? If so what toplink configurations were used.
    Is there a possiblity of a deadlock if indirection is used with no identity map. I've read that some deadlock detection algorithms were added with version 9.0.x. Will these work in the absence of an identity map

    TopLink's cache-sync using JMS is documented at:
    http://download-east.oracle.com/docs/cd/A97688_12/toplink.903/b10064/enterpri.htm#1022229
    This shows examples of using sessions.xml and Java API to configure the use of JMS. You will need to configure your JMS to operate in your application server cluster. This will involve you following the instructions of your JMS to create a connection factory and topic that TopLink can make use of.
    One note of caution about using cache-sync in general though. It does not eliminate concurrency issues and it does not prevent stale data. It minimizes the chance of stale data and is typically most efficient in systems with a small percentage of writes compared to read operations.
    You will need to build your application taking concurrency into effect. This will involve setting up locking (typically optimistic locking) on all concurrently accessed types and also ensuring that the commit of UnitOfWork will catch all locking failure exceptions and handle them correctly.
    If you are building a system with a larger (> 15%) percentage of writes you will probably not want to use cache-sync and may be more interested in proper cache configuration (use WeakIdentityMap for volatile data) and using possibly using refresh on queries in critical sections of the application's code. You will still require locking for these configurations as well.
    Doug

  • BPC for Microsoft Cluster Architecture

    Hello Everybody,
    please could you share any slide concerning BPC fo M Cluster Architecture ?
    I've found on SAP repository but nothing seem interestering.
    Thanks in advance for your kind collaboration !
    Regards,
         Fabrizio

    From functionalities point of view are justfew slight sifferences between M and NW version of SAP BPC.
    Just into background is the difference that M version is using just Microsoft technologies:
    .NET Application Server developed into .NET technologies
    OLAP database using SSAS from Microsoft
    Relational Database using SQL Server database
    and NW version is using standard SAP technologies:
    ABAP application server
    OLAP datbase - part of BW
    Relational Database - any database supported by NW
    Regarding the performances between the two versions I will say it is depending by number of users and volume of data but in general are not big differences. If the design of application is done correct following the Best Practices documentantion I think the performances are more anlless the same.
    In any case I don't see any reason to have both version of SAP BPC M and NW version.
    You have to decide the right version function by IT requirements and future developments using NW or Microsoft technologies.
    But it doesn't make sense to have BPC M and BPC NW for the same customer.
    I hope this will help you.
    Regards
    Sorin Radulescu

  • Oracle cluster architecture

    We have a problem of creating Oracle 9i 24/7 environment. Is any way to implement Oracle cluster solution if my Microsoft cluster is using majority node quorum clustering and nodes do not have physically shared drive?
    I will appreciate any clues.
    Stas

    9i RAC can only be configured as specified in the documentation. Nodes must have shared drive access, only way for a node to see data if the other node goes down.
    9i RAC costs a lot of money and setting it up in a none Oracle certified configuration makes no sense.

  • SAPLPD problem on cluster

    Hello experts,
    On our BI 7.0 system, we have our Dev and QA environments on single servers. However, for the Production system we use Microsoft Clustering (MSCS).
    I am not sure if my problem is related to the cluster architecture at all, but I am having problems printing to printer named LP01 which is supposed to call the SAPLPD program and pass the print job to the default printer as defined in my Windows XP desktop OS.
    The LP01 printing works perfectly when I am printing to LP01 from my Dev and QA machines, but on the Prod server if I use LP01 it "doesn't call" the SAPLPD program -- I don't see the SAPLPD listener popping up on my screen and transferring the job to the OS.
    Can you please help me with this?
    Thank you in advance.

    hi ugur,
    what kind of cluster arcithecture you're using ? Is your DB and CI reside on same server or different server ?
    If it is reside on same server, make sure that this server has minimumly one spool WP. If you're CI and DB is reside on different server, just make sure both server have minimumly one spool WP.
    ardhian
    http://ardhian.kioslinux.com
    http://sapbasis.wordpress.com

  • Clone R12.1.3 in Windows Cluster environment

    Hi Oracle gurus,
    I’m currently “fighting” with cloning the already fresh installed R12.1.3 instance on Windows Cluster architecture:
    Source system:
    Fresh install EBS 12.1.3 on 1 physical server:
    - Windows 2008 R2;
    - Application on drive D;
    - DB 11.2.0.2 on drive E;
    Target system (single instance):
    - MS Windows failover Cluster – 2 physical servers with shared SAN drives D: and E:
    o oracleHQ1 – active;
    o oracleHQ2 – passive;
    o OracleERP – virtual cluster hostname;
    - Windows 2008 R2 on both server’s C: drive;
    - ApplicationTier on shared D: ;
    - DB on shared E: ;
    - Oracle FailSafe on both server’s C: ;
    - DB (DB and DB Listener) and Apps (APPS_listener, ConcManager and OPMN) services are running on oracleHQ1 when active; same services started on oracleHQ2 in case of oracleHQ1 (hardware) fail.
    - EndUsers logging through one url: http:\\oracleerp.domain.com:8000 to the active server;
    - (My customer will prevent hardware failover through this solution.)
    What are the steps to clone the source instance to the target, in order to have active/passive failover solution? I prefer to spare the steps, I’ve already done so far, to avoid misleading.
    Please advise/guide, as I’m in a stuck for 2 weeks.
    Thanks in advance.

    Hi,
    here are the details:
    First try:
    All the preclone steps are done as per DocID 406982.1
    On the target (logged onto oracleHQ1):
    -     Successfully cloned and configured the DB with hostname OracleERP (virtual cluster hostname);
    -     Successful appsTier adcfgclone.pl and AutoConfig with hostname OracleERP (virtual cluster hostname);
    -     All the DB and apps services (named with “*OracleERP*”) are starting on oracleHQ1, except the Concurent Manager (fails 30sec. after start);
    -     Not tried to clone on oracleHQ2 with with hostname OracleERP;
    Second try:
    On the target (logged onto oracleHQ1):
    -     Successfully cloned and configured the DB with hostname OracleERP (virtual cluster hostname);
    -     Successful appsTier adcfgclone.pl and AutoConfig with hostname oracleHQ1 (virtual cluster hostname);
    -     All the DB (named with “*OracleERP*”) and apps services (named with “*oracleHQ1*”) are starting on oracleHQ1;
    -     The instance is working fine, but unable to clone the same services on oracleHQ2;
    My question is:
    Should I clone the DB and the Apps firstly with hostname oracleHQ1 (logged through oracleHQ1), or I should clone it with hostname OracleERP (virtual cluster hostname)? And how are the same services created and configured on the second server oracleHQ2 (should the services have the identical names), in case of failover.
    Thank you
    Krasen

  • 2xC350 in High Availability Mode (Cluster Mode)

    Hello all,
    first of all, i`m a newbie in ironport. So Sorry for my basic questions, but i can`t find anything in the manuals.
    I want to configure the two boxes in High Availability Mode (Cluster Mode) but i don`t understand the ironport cluster architecture.
    1) in machine mode i can configure IP-Adresses -> OK
    2) in Clustermode i can configure listeners and bind them to a IP-Address -> OK
    But how works the HA?
    A) Should i configure on both boxes the same IP to use one MX Record? And if one box is down the other takes over?
    B) Or should i configure different IPs and configure two MX Records?
    And if one box is down the second MX will be used.
    Thanks in advance
    Michael

    The ironport clustering is for policy distribution only - not for smtp load mgmt.
    A) Should i configure on both boxes the same IP to use one MX Record? And if one box is down the other takes over?
    Could do - using NAT'ing on the f/w but few large business take this approach today.
    Many/most large businesses use a HW loadbalancer like an F5, Foundry ServerIron, etc. The appliances themselves would be set up on seperate IP addresses. Depending on the implementation requirements, the internal IP address could be a public IP or a private IP.
    B) Or should i configure different IPs and configure two MX Records?
    And if one box is down the second MX will be used.
    If you set up two boxes, even with a different MX preference, mail will be delivered to both MX records. There are broken SMTP implementations that get the priority backwards, and many spammers will intentionally attempt to exploit less-restrictive accept rules on secondary MX recievers and will send to them first.

  • Architecture Sanity Check

    I'm just getting started with TopLink and need some architectural advice. My TopLink project will be used by two different web applications that may or may not be hosted on the same server. The first application uses Jakarta Struts to create a web interface. The second uses Apache SOAP to provide a web service interface. Both applications use the same database.
    Given this, what is the best practice for using TopLink while taking into account concurrency issues? Do I need to use the Remote Sessions (RMI) approach?
    Thanks!

    Thomas,
    Remote Session is not the answer. It is used to get TopLink access from another tier. For multiple applications using the same project os multiple instances of the same project there are a couple of issues to address in your configuration of TopLink.
    1. Concurrency
    2. Stale Cache
    To address concurrency I would recommend using optimistic locking on all tables. This is typically done using a version field (numeric or timestamp) but can also be accomplished using some or all of the fields of the table. Refer to the docs for how to setup this feature. You will also need to ensure that each transaction also check for OptimisticLockingException.
    Dealing with the potential for stale cache is caused by multiple applications (including non-Java/legacy) modifying the same database. TopLink's cache can be configured on a per class basis. For reference/static data I would use a FullCacheWeakIdentityMap. For classes of data that may change more frequently you could use a SoftCacheWekaIdentityMap or to hold objects for the minimal amount of time a WeakIdentityMap.
    Additionally there are some settings that may be of interest.
    - query.refreshIdentyMapResult() - will force the refresh on a given query/finder.
    - descriptor.onlyRefreshIfNewerVersion() - makes use of optimistic locking field(s) to determine if refresh is required
    - Cache-Synchronization will allow changes made in one TopLink session (application instance) to be notified and updated in other sessions using the same project. This will minimize stale cache situations.
    Every application has a different profile for how to handle stale cache and TopLink offers a number of features that are easily and externally configurable. Ensuring that concurrency is addressed through locking is crucial then the configuration can be adjusted to minimize stale objects and optimize the performance benefits of the cache.
    Doug

  • Microsoft cluster environment and DR

    Hi all,
    I wonder if anyone can help me with this question. We are running SAP in a HA environment on two physical servers and have virtual servers as additional dialog servers.
    My undertsanding of the new 7.0 cluster architecture is the the message and enqueue server has been split out of the CI. So therefor a CI is built up of a enqueue server, a message server and a dialog server.
    So in our site we have two clustered servers vic1 and vic2 and 1 virtual server vicvm1 ECC6.0 CI install was done on vic1and the message server and enque server was set up on the cluster nodes running in separate resource groups. vicvm1 was deployed as a secondary application server. This is a pure abap environment
    Now to my question.
    We are building a dr environment where there is a db server vicdr1 and the application server vicvm1 is being replicated into the DR site.
    Is it possible to do a ASCS install on vicdr1 and bring up the replicated server vicvm1 for the system to work? The reason i ask this is there seems to be no clear information on this, and if the instance on vic1 crashed vicvm1 still works and users see no difference. One user has pointed out that there always needs to be a CI running but once you split the message and enqueue server out the CI becomes meaningless and simply another application server.

    Hi David
    1st - you asked "if the instance on vic1 crashed vicvm1 still works and users see no difference". So in your system if vic1 and vic2 are clustered and vic 1 crashes, doesn't the Ci automatically fail over to the vic 2 cluster node? That would be why the users can keep running transactions on the app server vicvm1.
    2nd - "Is it possible to do a ASCS install on vicdr1 and bring up the replicated server vicvm1 for the system to work?"  I'm not exactly sure what you are asking here, but I think you will need to re-install the application on the dr systems vicvm1, pointing it to the vicdr1 system. Not just replicate or copy the vicvm1 onto another server and have it work.
    Ken

  • Using equalizer with reports server cluster

    Hello World!
    Just wonder if anybody using equalizer with Reports servers cluster, if yes what type?
    what is the cluster architecture?
    such as Machine A, B, C.... machine A has infra and mid , machine B has only infra, machine C has only mid...
    The problem we are having when the second member of a cluster is down the report server component complaints with somw internal error...
    TIA

    3. Connection factories target: admin server; JMS server target: admin          server
              > -> Potential drawback - The MDB has to maintain a queue connection with a
              server
              > that is not part of the cluster. (Again, please correct me if I'm wrong.)
              I'm
              > not sure if this introduces extra time taken for the MDB to receive its
              messages
              > and for it to send the processed messages to the queue.
              Admin server is not supposed to participate in the cluster. I wouldn't
              deploy anything on the admin server.
              I think my personal preferene would be connection factories to the cluster
              and use distributed destinations.
              Regards...
              

  • Deployable architecture

    Hi,
    I have a portal application, some EJBs and Web Services. I was wondering what should be the deployed architecture should look like in a clustered environment that should facilitate both fail over and work load management. should I include all my portal application, ejbs and web services in one ear file?, or should I seperate them out and deploy them on two different clusters?, portal application on a portal cluster and EJB's and Web Services on a different cluster?. Do I need a web server with load balancer in front?
    I would appreciate any feed back on the architecture.
    thanks,
    Srinivas

    Hello,
    Lets assume you have two machines for WLS servers, a load balancer and two machines for databases.
    Here are two suggestions to get you started:
    1) Basic Cluster Architecture
    Your Portal App, Web Services and EJBs are all deployed on the same WLS instance and it is replicated on both machines. The load balancer sits infront of your WLS machines. The advantages of this setup are easy adminstration, flexible load balancing and you can stick a firewall infront of the load balancer to create a DMZ with minimal firewall policies.
    2) Multi Cluster Architecture
    You configure a pair of WLS server on different machines to run your Web applications/static content and another pair of servers for your EJBs. With this setup you can load balance method calls to clustered EJB and you also have less points of failure.
    With respect to deploying all your apps in one EAR or not I would consider:
    1) Are your applications dependant on each other, do they share functionality or components if so putting them in one EAR may be appropriate.
    2) Can you cope with the increased maintenance of having different applications with possibly different versions running on your server, if not sticking them all in an EAR might help reduce this effort although it wont be popular with everyone.
    3) Are they already deployed seperatley, if so is there any justification in the effort required to unify them?
    These are just a few suggestions to help get you started.
    Cheers,
    Hoos

  • Load balancing on the local host only (6.40 Java)

    Hello!
    When configuring load balancing for Web AS 6.20 (Java), the property "LocalLoadBalancing" was available in the ServiceManager of the dispatcher. See Note 772561.
    This property is not available in Web AS 6.40 (SP14).
    How can I now ensure that a dispatcher does not connect to a server process on another physical server?
    // Mikael

    Hi Mikael,
    In Web AS 6.40 this property is invalidated by the new <b>instance-based</b> cluster concept. In other words, when installing a Web AS 6.40 system you're installing instances (i.e. one central services instance, one java central instance, and 1-n dialog instances). A Web AS 6.40 instance contains one dispatcher and 1-n servers. The installation software (SAPinst) lets you install an instance on the same physical host only. Therefore, in 6.40 all servers that are behind the J2EE dispatcher are <b>always</b> on the same physical machine => the behavior of the LocalLoadBalancing property.
    In 6.20, the installable unit is a dispatcher/server, and you can choose to distribute them to different physical hosts => the need to have the LocalLoadBalancing property to control remote/local LB.
    Hope this explains things a bit.
    P.S. In case you need more info about the cluster architecture of the Web AS Java 6.40, you can have a look <a href="http://help.sap.com/saphelp_nw04/helpdata/en/2e/611724f410254ca12a3f396ec5ae85/frameset.htm">here</a>.

  • Installation of Project Server 2010 over 2 App, 2 WFE, NLB Farm

    We are installing Project Server 2010 in a 6-server farm with 2 App, 2 WFE, 2 DB (Cluster) architecture on Win 2012 R2 Serrvers. And will be using hardware NLB.
    Though I am aware of setting up MS Project Server in 3-tier architecture using NLB, I am not sure how to set up in the farm mentioned above.
    Till now, I have installed and configured SharePoint 2010 in both the App servers and WFE's. Created SP site collection and Project Server Service application in App01. Now how do I proceed with App02 and 2 WFE's.
    Do I need to extend the SharePoint Application on App01 to App02 or create a new SharePoint Application and site collection on App02? I am hoping to extend the SP Application from App01 to App02 using "Donot host website on this server option".
    I have enabled all the services and features required for SharePoint and Project Server on App01. I am thinking of will do the same on App02 as well, but not sure if that is what I am supposed to do.
    What about the WFE's. If I create Service application and enable services on App servers, what will I be hosting on WFE's. Am I supposed to only enable services and Features on App servers and create service applications on WFE's.
    As we have two WFE's am I supposed to create Project Server Service applications on each of the WFE or configure the WFE01 with project server service application created on App01 with "Host Website on this server" option and then extend the same
    to WFE02. 
    I am sure, I will use the host header name, used for creating DNS alias while setting up NLB, in WFE's.
    Sorry for many questions but it is currently my state of mind on this.

    Hello,
    In a typical 2 app and 2 WFE topology I would have the Project Server Service Application running on both App servers so that SharePoint internally load balances the requests then have the PWA site load balanced between the 2 WFEs - set up the web application
    that hosts the PWA site using a DNS name, point the DNS name to the load balanced IP. So most of the SharePoint services will run across both App servers once started on both, some services will only run on one App but the additional services (not including
    the minimum for SharePoint) required by Project Server (Excel Calc, PerformancePoint, Secure Store, Project Server) can safely run on both app servers. I wouldn't start the Project Server service application on the WFEs as the WFE wouldn't be true
    WFE.
    Paul
    Paul Mather | Twitter |
    http://pwmather.wordpress.com | CPS

  • Rebooting the servers

    DB version: 10.2.0.4.0
    OS : Solaris 5.10
    Lets say for a 2 node RAC, you want to restart both the machines.
    After bringing down the CRS on both machines , Is it true that you shouldn't reboot both machines simultaneously?

    Tom wrote:
    Lets say for a 2 node RAC, you want to restart both the machines.
    After bringing down the CRS on both machines , Is it true that you shouldn't reboot both machines simultaneously?Why shutdown CRS? I simply pull the power cable.. or hit the reset button... or press Ctrl-Alt-Del on the console.. or use the shutdown -r now command in a root shell. And that suffices in downing (and/or rebooting) the server.
    And if that does not result in a clean and working restart of that server as part of the cluster, then your hardware is badly configured, your cluster architecture poorly chosen, or your s/w (o/s and rest) is incorrectly installed and configured.
    It is a myth that one needs to shutdown RAC/CRS services in a neat little sequence. If you cannot pull the power cord and get a successful reboot and working server when you plug that cable back, then you do not have a "real and working" cluster. You have something far less and inferior - you have a waste of money that you should not be calling Oracle RAC.

  • Load balancing multiple J2ee servers - each running it's own CI

    Is it possible to load balance multiple J2ee servers(running Portal), both running it's own Central Instance?
    We do not have the resources (SAN storage) to implement MSCS for Portal...so instead we want to use two complete Portal servers HW load balanced with the ability to keep running in case one fails.
    thanks for any info !
    Linwood

    Hi Linwood,
    in a nutshell, the difference between an ordinary J2EE server instance and the central instance are the central services. The central services (enqueue server, message server) are only needed once. Basically, they are required for the communication between the server instances (and to the load balancer). What you should go for is a cluster installation with one central instance and another ordinary server instance (both running the SAP NetWeaver Portal). But be aware that you have to use the same database for both server instances (otherwise you cannot guarantee consistent data).
    For load balancing the two server you can use the SAP Web Dispatcher  or any other load balancer tool you like. 
    You will find more and detailed information on load balancing in the SAP Library. Have a look into section <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/611724f410254ca12a3f396ec5ae85/frameset.htm">Java Cluster Architecture</a>.
    Hope I could help!
    Best regards,
    Martin

Maybe you are looking for