Announcement

Collapse
No announcement yet.

Sperren von zu bearbeitenden Objekten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sperren von zu bearbeitenden Objekten

    Wie kann ich bei der Implementierung einer EJB das gleichzeitiges ändern von einem Objekt kontrollieren?
    Folgendes Szenarium:

    Zwei unabhängigen Clients bearbeiten die Daten von einem Objekt und jeder darf eigentlich die gleichen Daten gegenseitig ueberschreiben. Da gewinnt eigentlich der zuletz auf Speichern drueckt.

    Wie kann ich das Objekt vorm Ueberschreiben schuetzen?

    fuer einen Tipp danke ich

    Victor

  • #2
    Hallo Victor,

    ich gehe mal davon aus, dass es sich bei der EJB um eine Entity Bean handelt!? Wenn die EJB mit BMP arbeitet, musst du selbst für die Concurrency-Steuerung (konkurrierende Zugriffe) vornehmen. Das kann man beispielsweise ganz einfach dadurch erreichen, dass man sich einen Zeitstempel (oder ein ähnlichen gearteten Wert z.B. Counter) holt, bevor man die Daten einer entsprechenden INstanz ändert. Beim speichern der Daten durch die Methode ejbStore() wird dann einfach vor dem update geprüft, ob der Zeitstempel, der vom Client wieder mitgegeben worden ist, gleich dem Zeitstempel in der DB ist. Wenn nicht, dann ist der Satz in der Zwischenzeit verändert worden, und der Updatevorgang wird nicht vorgenommen.

    Bei CMP kümmert sich der Container darum, konkurrierende Zugriffe abzufedern. Dies geschieht beispielsweise dadurch, dass der EJB-Container permanent versucht bei Zugriffen auf die EJB-Komponente die Daten konistent mit der Datenhaltungsschicht zu halten.

    Ich hoffe, diese allgemein Kurzbeschreibung kann helfen??

    Gruss,
    Olive

    Comment


    • #3
      Hallo Oliver,

      vielen Dank für den Tipp.

      Gruss Victo

      Comment

      Working...
      X