on 09-02-2008 1:25 PM
hello,
I've been looking for similar threads but found nothing that would answer my question.
If an SAP Application Server is installed as clustered system, would the shared memory be seen as one for the whole cluster? Means, the developers don't have to worry about whether the system is clustered or not?
Or would the machines have separate shared memories and while updating some kind of synchronization would have to be implemented?
thanks+regards
simon:)
Hi,
Please, define what you call SAP application server.
Do you mean "ABAP application server" or JAVA app server" or "ABAP+JAVA app server" ?
What do you call a cluster ?
Is it a High Availability cluster like an MSCS cluster on windows ?
Or do you mean a cluster of several Java Server processes ?
Without the context it's not posible to give you an answer...
Regards,
Olivier
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
There is no shared memory between different MSCS cluster ressources.
When you have several servers in one SAP system, the only persistance layer is the database.
SAP buffers are in shared memory of each servers and you can have inconsistenties between 2 buffers synchronization. That is why, only unfrequently updated tables should be buffered.
Regards,
Olivier
hi,
Thank you for the quick answer. This is however not good:(
So what is the possible good solution, if I store my data, a lot of it, in cache/shared memory?.
Is tRFC-update of every cache instance.the best solution?
What about the dead-locks, if both updaters will update the same cache table at the same time, lock it and try to tRFC update it on the "other side(s)", what would be the best solution for this? Are there any administration setting that would prevent such a situation?
Are there any other things(system limitations, or restrictions) , however slight, I have to consider when working out this solution or this issue?
Any tipps are more than welcome!:)
regards
simon:)
Hi,
As I said, you should not buffer SAP tables that are frequently updated.
The standard SAP tables which are buffered are usually customizing tables or less often master data tables but not business data tables.
As your real need is not explained, it's not really possible to give you tips...
Regards,
Olivier
Hi,
my scenario is, loading data from DB tables and keeping them in shared memory, in order to access them n-times quicker than from the DB and beeing able to update them quickly as well.
The problem is, if the system is installed on the cluster, there is one database and N shared memories, depending on the number of nodes in the cluster.
Now, I seek for the best solution to update the shared memory, as efficient as possible, avoiding the deadlocks. If an update runs into the Node 1, it has to recognize it landed there in this node, and then update this nodes' shared memory and the other nodes' shared memory.
regards
simon:)
Hi,
This is exactly what is done automatically by table bufferisation.
The buffers on different servers are synchronized if your have set the profile parameters :
rdisp/bufrefmode = sendon,exeauto
rdisp/bufreftime = delay in seconds between synchros
But as I told you, this not adviced to use this feature for tables which are often updated.
Regards,
Olivier
Hi,
Thanks for an answer, but i am mot sure if we are talking about the same thing. The shared memory which i instantiate can be managed/administrated in SHMM and SHMA.
In the SHMA an shared memory area is created which will be administrated using a ABAP Class. This class implements an interface IF_SHM_BUILD_INSTANCE and also administrates a reference object class which inherits from CL_SHM_AREA class.
In the SHMM you can 'run' and monitor the memory areas and see what is inside.
The data which are beeing kept in this shared memory object are put maually into it. And this data doesn't come directly from any SAP tables. So these parameters you suggested will not help in this case.
regards
simon:)
hi,
no, i am not talking about programming, i just wanted to clarify the subject of the shared memory, because you seemed not to understand which shared memory i am talking about.
I cannot ask this question on the programming forum because they will send me here.
How i will implement the update of the multiple shared memories is not in scope of this thread I agree and I am not seeking the technical solution here.
I want to clarify if it is really the case, that a cluster of several nodes have indeed many separate shared memories, or maybe they are beeing syncronized and it could be customized on the server. That has not been answered yet.
regards
simon
just a short feedback,
well, on a clustered system every single node has its own shared memory that has to be updated and only a single DB.
so if one wants to update the shared memory, it has to be done on all nodes if one wants to keep the shared memory in sync. This guarantees that, when a read request comes over the load balancer into the system, there is always the up-to-date data in the shared memory.
regards
simon
Hi Simon,
thanks for following up and posting the results of your research.I have run into the same issue with shared memory access in a clustered environment and am wondering how you've implemented the solution? Your comment indicates that you must explicitly update all nodes in the cluster to maintain synchronization, but is this done in ABAP or is it a configurable option when the Class/Area is created? Any information would be greatly appreciated.
Many thanks,
Hagen
You must be looking to use Enqueue replication server
With standalone enqueue server SAP also introduced an enqueue replication server to provide high availability for the enqueue server. It is also a standalone component and it runs on another host and connects with the enqueue server. Once connected, the enqueue server sends lock table replication data to the replication server. The replication server maintains a shadow lock table with the replication data. The shadow lock table exists in the shared memory and is used to rebuild lock table for the failed enqueue server when it is restarted on the same host where the replication server is running. Thus, the host where the standalone enqueue server is running and the host where the replication server is running must be clustered so that failed enqueue server can be restarted on the host where the shadow lock table is maintained. Once the enqueue server rebuilds the lock table from the shadow lock table, the replication server is shutdown.
In this way in flight transactions are not lost
P.S : Whenever DB is stopped and started buffer data is definately cleared. There is no technology i have heard where you can failover DB adn at the same time get the buffered data also on node 2. If anyone know i do not mind to
add to my knowledge
Hi,
In SAP HA enviornment, generally
- DB instance
- SCS(or ASCS) instance
are the SPOC (Single Point of Components).
Those components should be clustered.
While Application instance(DI, J) is not SPOC and
you can setup mulitiple application servers on sevral machines.
This means each applicatoin server has own shared memory.
For more information
High Availability FAQ is available on the SDN.
Especially for your question following information may help you.
Is there a session failover mechanism for SAP NetWeaver AS Java?
NetWeaver AS Java supports a session failover mechanism using DB, local persistence, or shared memory(7.1) which can be implemented in applications. Please take a look into the documentation for further information on how to do that. See the documentation for Failover System in Version 7.0 or Configuring Shared Memory for Version 7.1
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
thanks for the prompt answer. I've read the links You gave me, but it does not clearly state whether shared memory is common for the whole cluster or not. It also says about 7.1 Release. We currently use 7.0 SPS14
I'll keep looking, I need a definite answer how this issue can be handled. It might as well be configurable, but these are only my suspicions:)
regards
simon:)
User | Count |
---|---|
81 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.