SHM Shared Object Memory Multiple Server?

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

SHM Shared Object Memory Multiple Server?

Beitrag von sharkofnose (ForumUser / 13 / 0 / 0 ) »
Hallo Zusammen,

ich arbeite mit einem Shared Object Memory und habe nun folgendes Problem:
Im Entwicklungs- und Testsystem haben wir immer nur jeweils einen Application Server und im Produktiv-System natürlich mehrere...
Im Hintergrund läuft ein Job, der den SHM alle paar Minuten updatet.
Der Load Balancer macht leider seine arbeit und führt den Job mal auf dem einen Server und mal auf dem anderen aus.
Im Hinterkopf war mir schon klar, dass der Shared Object Memory Application Server abhängig ist aber das Konzept hat gerade so schön gepasst und jetzt will ich nicht alles neu programmieren 😭 😭 😭 😭

Die Möglichkeit, den Job auf allen Servern laufen zulassen, sodass auf allen Servern ein Gebiet aufgebaut wird kommt leider nicht in Frage bzw. wäre Plan Z + ausführliche Argumentation für die Basis und Systembetrieb.

Meine Frage wäre nun, ob einer der folgenden Wunschgedanken möglich wäre (oder andere Lösungen):

1. Der Job läuft nur auf einem Server und man spiegelt / kopiert das Gebiet auf die anderen Server?

2. Wenn ich in meinem Programm auf den Shared Object Memory zugreife, wäre es natürlich auch cool, wenn ich auf allen Servern suchen könnte, wo das Gebiet vorhanden ist,um dann darauf zuzugreifen?

Mit dem einzigen brauchbaren Google-Treffer, den ich nach Stunden gefunden habe, kann ich nicht wirklich was anfangen...
https://answers.sap.com/questions/93768 ... rvers.html
Hat jemand damit schon mal Erfahrungen sammeln können?

Ich würde mich sehr über eure Erfahrungen und Ratschläge (hoffentlich Lösungsvorschläge) freuen :)

Beste Grüße

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: SHM Shared Object Memory Multiple Server?

Beitrag von a-dead-trousers (Top Expert / 4397 / 223 / 1182 ) »
Du köntest in deinem Job einen RFC-Baustein auf allen Instanzen ausführen lassen der das SHM-Objekt aktualisiert. So hab ich das bei uns gemacht.
Mit TH_SERVER_LIST kriegst du alle Instanzen raus und für das SHM-Upate erstellst du einfach eine RFC-fähige Hülle um dein bestehendes Coding.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: SHM Shared Object Memory Multiple Server?

Beitrag von sharkofnose (ForumUser / 13 / 0 / 0 ) »
Hallo a-dead-trousers,

erstmal vielen Dank für deine Antwort.
Könntest du mir bitte ein Beispiel Coding schicken?

Also angenommen ich habe 5 Server, dann rufe ich in meinem Job den RFC Baustein 4 mal auf und gebe dort den Server an. Dem RFC Baustein übergebe ich dann die Daten, die ich in den SHM Puffer schreiben will und der FB updatet dann den SHM.
Verstehe ich das so richtig?

Beste Grüße

Re: SHM Shared Object Memory Multiple Server?

Beitrag von a-dead-trousers (Top Expert / 4397 / 223 / 1182 ) »
sharkofnose hat geschrieben:
03.04.2020 17:18
Könntest du mir bitte ein Beispiel Coding schicken?
Ich komm leider im Moment nicht an das System ran. Probiers mal selber. Wenn du nicht zurecht kommst postest du was du hast und wir schauen dann gemeinsam weiter. Die Namen die TH_SERVER_LIST zurückliefert kannst du direkt als RFC-Destination einsetzen. In der Hilfe zu CALL FUNCTION ... DESTINATION sollte das auch beschrieben sein.

sharkofnose hat geschrieben:
03.04.2020 17:18
Also angenommen ich habe 5 Server, dann rufe ich in meinem Job den RFC Baustein 4 mal auf und gebe dort den Server an. Dem RFC Baustein übergebe ich dann die Daten, die ich in den SHM Puffer schreiben will und der FB updatet dann den SHM.
Verstehe ich das so richtig?
Korrekt. Ich würde nur der Einfachheit halber den RFC-Baustein für alle 5 Server ident ausführen lassen, weil du sonst eine Weiche für die aktuelle Serverinstanz einbauen müsstest und das macht es nur wieder kompliziert.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: SHM Shared Object Memory Multiple Server?

Beitrag von edwin (Specialist / 302 / 10 / 68 ) »
Hi,
ich habe mal so etwas ähnliches gehabt:

ein RFC fähiger Baustein (ZZ_REFRESH_RFC_SHARED_MEM) , und ein normaler(zz_refresh_shared_mem) der diesen in allen Servern aufruft:

Code: Alles auswählen.

FUNCTION zz_refresh_shared_mem.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(CLIENT)  TYPE  SYMANDT DEFAULT SY-MANDT
*"     VALUE(DATA)    TYPE  ZDATA
*"----------------------------------------------------------------------
  DATA  it_srv_list TYPE TABLE OF  msxxlist.
  FIELD-SYMBOLS <fs_srv> TYPE  msxxlist.


  CALL FUNCTION 'TH_SERVER_LIST'
*   EXPORTING
*     SERVICES             = 255
    TABLES
      list                 = it_srv_list
    EXCEPTIONS
      no_server_list       = 1
      OTHERS               = 2.

  IF sy-subrc <> 0.     EXIT.  ENDIF.

  LOOP AT it_srv_list ASSIGNING <fs_srv>.
    CALL FUNCTION 'ZZ_REFRESH_RFC_SHARED_MEM' IN BACKGROUND TASK
      DESTINATION <fs_srv>-name
      EXPORTING
        client  = client
        data    = zdata
  ENDLOOP.
  COMMIT WORK.
ENDFUNCTION.

/Edwin

Re: SHM Shared Object Memory Multiple Server?

Beitrag von sharkofnose (ForumUser / 13 / 0 / 0 ) »
Hallo edwin,

vielen Dank für das Beispiel.
Das hilft mir sehr weiter.
Meine Welt ist ODATA und nicht RFC...

Leider kann ich das nur im Produktiv System testen...
Sobald ich ein Ergebnis habe, gebe ich nochmal Bescheid ;)

Danke für eure Hilfe

Beste Grüße

Re: SHM Shared Object Memory Multiple Server?

Beitrag von sharkofnose (ForumUser / 13 / 0 / 0 ) »
Hallo Zusammen,

der Lösungsvorschlag von edwin hat funktioniert. Der SHM wird auf allen AS geladen. bzw. erstellt.

Vielen Dank.

Beste Grüße

Seite 1 von 1

Vergleichbare Themen

0
Antw.
416
Views
Shared Memory: Probleme beim Ändern von Daten
von chhe001 » 28.08.2019 14:05 • Verfasst in ABAP® Core
0
Antw.
753
Views
Multiple Belieferungswege
von Grey_M » 07.08.2006 11:35 • Verfasst in Basis
4
Antw.
3684
Views
SAPScript multiple Struktur drucken
von Tgut » 15.05.2014 11:29 • Verfasst in Web-Dynpro, BSP + BHTML
1
Antw.
1187
Views
Implementation of Tree upto multiple levels
von sumanth » 02.06.2005 14:31 • Verfasst in ABAP® Core
2
Antw.
2496
Views
Datei vom Appl Server auf Präsent. Server
von codierknecht » 29.04.2008 08:51 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor einer Stunde von black_adept gelöst 27 / 3954
IT0024 Qualifikationen CP-ID
vor 2 Stunden von ArjenR 1 / 30
Trennen Strasse und Hausnummer
vor 3 Stunden von ewx 17 / 10835

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor einer Stunde von black_adept gelöst 27 / 3954
IT0024 Qualifikationen CP-ID
vor 2 Stunden von ArjenR 1 / 30
Trennen Strasse und Hausnummer
vor 3 Stunden von ewx 17 / 10835

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 2 Stunden von ArjenR 1 / 30
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2967
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9556