Bucketerstellung Parameter
S3 Buckets werden durch autodigit erstellt.
Parameter zur Erstellung mehrerer Buckets zur Objektverteilung. (Erfordert, dass mehere Suchen ausgefüht werden müssen damit die Objekte gefunden werden)
bucketGroups = Anzahl der Bucketgroups (Darf nachträglich erhöht werden, nie verringert)
bucketsPerGroup = Anzahl der Buckets innerhalb einer Gruppe (darf sich nicht ändern, da der Alorithmus zum Ablegen und auffinden hierauf basiert)
Bucketerstellung erfolgt erst bei Zugrif. Es werden nur benötigte Buckets erstellt. Objekte in einem Ordner (z.B. AL-Componenten) können in meheren Buckets verteilt werden. Dazu zählen auch die KGS-Metainformationen. Ein AL-Dokument kann dadurch in mehreren Buckets verteilt liegen.
Bei der Ablage wird anhand eines Algorithmus entschieden welche Buckets angelegt werden.
Bei der Suche (z.B. AL-Info Command für ein AL-Dokument) wird in allen Buckets gesucht, auch, wenn diese noch nicht erzeugt sind um alle AL-Componentent zu finden.
Bei AL-Get wird der mögliche Zielbucket anhand des Algorighmus gefunden. Es wird die Anzahl an Suchen gleich der Einstellung von bucketGroups durchgeführt. Die Suche ist hier parallelisiert.
Erzeugung von Buckets:
Benötigte Buckets werden erst bei Zugriff (z.B. durch eine Ablage) erzeugt.
Timeout Bucketerzeugung:
Bei der Erzeugung der Buckets wird für maximal 40 Sekunden gewartet.
10 Sekunden wird auf die Erzeugung des Buckets gewartet. Maximal 30 Sekunden danach wird geprüft, ob der Bucket erstellt wurde. Dies ergibt eine maximale Wartezeit von 40 Sekunden.
Kann der Bucket nicht erzeugt werden wird Fehlermeldung “Bucket '<Bucketname>' cannot be created" als Error-Log geschrieben.
Skriptausführung
Danach wird das “onBucketCreate“-Skript ausgeführt. Core of tia wartet, bis die Ausführung Erfolgreich zu Ende war oder mit einem Fehler abgelehnt wurde. Es wird kein Timeout gesetzt.
Als Fehler kommen zwei Möglichkeiten in Frage:
...
Fehler vor der Ausführung (Skript nicht gefunden, Befehl falsch …) führt zu Log Eintrag: “createBucket failed <Bucketname> with Eception Message: <Fehlermeldung>
...
Parameters for automatic bucket creation
S3 buckets are created by tia Core.
Parameters for creating multiple buckets for object distribution. (Requires that several searches need to be executed in order to find objects).
bucketGroups = number of bucketgroups (may be increased later, never decreased)
bucketsPerGroup = number of buckets within a group (must not change, because the algorithm for storing and finding is based on this)
Buckets are only created when they are accessed. Only required buckets are created. Objects in a folder (e.g. AL components) may be distributed in several buckets. This also includes kgs meta information. Thus, an AL document can be distributed in several buckets.
During storage, an algorithm is used to decide which buckets are created.
During the search (e.g. AL-Info Command for an AL document), all buckets are searched, even if they have not yet been created, in order to find all AL components.
With AL-Get, the possible target bucket is found using the algorithm. The number of searches is equal to the setting of bucketGroups. The search is parallelized in this case.
Creation of Buckets:
Required Buckets are created when accessing (e.g. by document creation).
Timeout for bucket creation:
When the bucket is created, the process waits for a maximum of 40 seconds.
10 seconds is waited for the bucket creation. A maximum of 30 seconds is then used to check whether the bucket has been created. This results in a maximum waiting time of 40 seconds.
If the bucket cannot be created, the error message "Bucket '<Bucketname>' cannot be created" is written as error log.
Script execution
After creation of a bucket the "onBucketCreate" script is executed, tia Core waits until the execution was successful to finish or rejected with an error. No timeout is set.
There are two possible errors:
Error before execution (script not found, command wrong ...) leads to log entry: "createBucket failed <Bucketname> with Eception Message: <Error message>.
Error executing the script (script cannot finish successfully): "ScriptExecution failed in create-bucket <Bucketname> <bucketname> for repository <Repository> <repository> failed"
Timeoutüberlegungen mit zugreifenden Applikationen
...
.
Timeout consideration for accessing applications
If multiple buckets are needed (e.g. a document can be split into multiple buckets) these times add up. Per created bucket there is a maximum waiting time of 40 seconds for the creation plus the time for script execution. It must be ensured that accessing applications have their own timeouts. These must be configured accordingly and observed during initial storage. If the buckets are already created, only the direct access takes place.