ORB-Eigenschaften

ORB-Eigenschaften (Object Request Broker) ändern das Transportverhalten des Datengrids. Diese Eigenschaften können über eine Datei orb.properties, als Einstellungen in der Administrationskonsole von WebSphere Application Server oder als angepasste Eigenschaften im ORB in der Administrationskonsole von WebSphere Application Server definiert werden.

orb.properties

Sie finden die Datei orb.properties im Verzeichnis java/jre/lib. Wenn Sie die Datei orb.properties im Verzeichnis java/jre/lib von WebSphere Application Server ändern, werden die ORB-Eigenschaften im Node Agent und in allen anderen Java Virtual Machines (JVM), die die Java Runtime Environment (JRE) verwenden, aktualisiert. Wenn Sie dieses Verhalten nicht wünschen, verwenden Sie angepasste Eigenschaften oder die ORB-Einstellungen in der Administrationskonsole von WebSphere Application Server.

Standardeinstellungen von WebSphere Application Server

In WebSphere Application Server werden einige Eigenschaften im ORB standardmäßig definiert. Diese Einstellungen sind in den Container-Services des Anwendungsservers und im Deployment Manager enthalten. Diese Standardeinstellungen überschreiben alle Einstellungen, die Sie in der Datei orb.properties erstellen. Für jede beschriebene Eigenschaft können Sie im Abschnitt Definitionsposition nachlesen, wo der empfohlene Wert zu definieren ist.

Dateideskriptoreinstellungen

Für UNIX- und Linux-Systeme gibt es einen Grenzwert für die zulässige Anzahl offener Dateien pro Prozess. Das Betriebssystem gibt die zulässige Anzahl offener Dateien an. Wenn dieser Wert zu klein ist, tritt ein Fehler bei der Speicherzuordnung unter AIX auf, und es wird protokolliert, dass zu viele Dateien offen sind.

Setzen Sie diese Einstellung im Terminalfenster auf dem UNIX-System auf einen höheren Wert als den Systemstandardwert. Für große SMP-Maschinen mit Klonen legen Sie den Wert für eine uneingeschränkte Anzahl offener Dateien fest.

Für AIX-Konfiguration setzen Sie diese Einstellung mit dem Befehl ulimit -n -1 auf den Wert -1 (uneingeschränkt).

Für Solaris-Konfigurationen setzen Sie diese Einstellung mit dem Befehl ulimit -n 16384 auf den Wert 16384.

Zum Anzeigen des aktuellen Werts verwenden Sie den Befehl ulimit –a.

Basiseinstellungen

Die folgenden Einstellungen bilden eine gute Grundlage, sind aber nicht unbedingt die besten Einstellungen für jede Umgebung. Die Einstellungen helfen Ihnen dabei, eine gute Entscheidung bezüglich der Werte zu treffen, die in Ihrer Umgebung angemessen sind:
com.ibm.CORBA.RequestTimeout=30 
com.ibm.CORBA.ConnectTimeout=10
com.ibm.CORBA.FragmentTimeout=30 
com.ibm.CORBA.LocateRequestTimeout=10
com.ibm.CORBA.ThreadPool.MinimumSize=256 
com.ibm.CORBA.ThreadPool.MaximumSize=256 
com.ibm.CORBA.ThreadPool.IsGrowable=false
com.ibm.CORBA.ConnectionMultiplicity=1 
com.ibm.CORBA.MinOpenConnections=1024 
com.ibm.CORBA.MaxOpenConnections=1024 
com.ibm.CORBA.ServerSocketQueueDepth=1024 
com.ibm.CORBA.FragmentSize=0com.ibm.CORBA.iiop.NoLocalCopies=true 
com.ibm.CORBA.NoLocalInterceptors=true

Beschreibungen der Eigenschaften

Zeitlimiteinstellungen

Die folgenden Einstellungen beziehen sich auf die Zeit, die der ORB wartet, bevor er Anforderungsoperationen aufgibt. Verwenden Sie diese Einstellungen, um zu verhindern, dass in einer abnormalen Situation zu viele Threads erstellt werden.

Anforderungszeitlimit

Eigenschaftsname: com.ibm.CORBA.RequestTimeout

Gültiger Wert: Ganzzahliger Wert (in Sekunden)

Empfohlener Wert: 30

Definitionsposition: Administrationskonsole von WebSphere Application Server

Beschreibung: Gibt an, wie lange (in Sekunden) eine Anforderung auf eine Antwort warten soll, bevor sie aufgibt. Diese Eigenschaft beeinflusst die Zeit, die ein Client für das Failover benötigt, wenn ein Netzausfall eintritt. Wenn Sie einen zu niedrigen Wert für diese Eigenschaft wählen, können nicht beabsichtigte Zeitlimitüberschreitungen bei Anforderungen auftreten. Sie können dies verhindern, indem Sie den Wert für diese Eigenschaft sorgfältig auswählen.

Verbindungszeitlimit

Eigenschaftsname: com.ibm.CORBA.ConnectTimeout

Gültiger Wert: Ganzzahliger Wert (in Sekunden)

Empfohlener Wert: 10

Definitionsposition: Datei orb.properties

Beschreibung: Gibt an, wie viele Sekunden bei einem Versuch, eine Socket-Verbindung herzustellen, gewartet werden soll, bis der Versuch eingestellt wird. Diese Eigenschaft kann wie das Anforderungszeitlimit die Zeit beeinflussen, die ein Client für das Failover benötigt, wenn ein Netzausfall eintritt. Im Allgemeinen setzen Sie diese Eigenschaft auf einen kleineren Wert als das Anforderungszeitlimit, weil die Zeit zum Herstellen einer Verbindung relativ konstant sein sollte.

Fragmentzeitlimit

Eigenschaftsname: com.ibm.CORBA.FragmentTimeout

Gültiger Wert: Ganzzahliger Wert (in Sekunden)

Empfohlener Wert: 30

Definitionsposition: Datei orb.properties

Beschreibung: Gibt an, wie lange (in Sekunden) eine Fragmentanforderung auf eine Antwort warten soll, bevor sie aufgibt. Diese Eigenschaft ist der Eigenschaft "Anforderungszeitlimit" ähnlich.

Einstellungen des Thread-Pools

Diese Eigenschaften beschränken die Größe des Thread-Pools auf eine bestimmte Anzahl an Threads. Die Threads werden vom ORB verwendet, um die Serveranforderungen auszugliedern, nachdem sie am Socket empfangen wurden. Wenn Sie zu niedrige Werte für diese Eigenschaften wählen, kann dies zu einer erhöhten Socket-Warteschlangenlänge und zu möglichen Zeitlimitüberschreitungen führen.

Verbindungsmultiplizität

Eigenschaftsname: com.ibm.CORBA.ConnectionMultiplicity

Gültiger Wert: Ganzzahliger Wert für die Anzahl der Verbindungen zwischen dem Client und dem Server. Der Standardwert ist 1. Die Festlegung eines höheren Werts definiert das Multiplexing für mehrere Verbindungen.

Empfohlener Wert: 1

Definitionsposition: Datei orb.properties

Beschreibung: Ermöglicht dem ORB, mehrere Verbindungen zu jedem Server herzustellen. In der Theorie sollte die Definition dieses Werts die Parallelität der Verbindungen fördern. In der Praxis profitiert die Leistung nicht von der Festlegung der Verbindungsmultiplizität. Setzen Sie diesen Parameter nicht.
Offene Verbindungen

Eigenschaftsnamen: com.ibm.CORBA.MinOpenConnections, com.ibm.CORBA.MaxOpenConnections

Gültiger Wert: Ein ganzzahliger Wert für die Anzahl der Verbindungen.

Empfohlener Wert: 1024

Definitionsposition: Administrationskonsole von WebSphere Application Server

Beschreibung: Gibt eine Mindest- und eine maximale Anzahl offener Verbindungen an. Der ORB verwaltet einen Cache mit den Verbindungen, die mit Clients hergestellt wurden. Diese Verbindungen werden nach Ablauf dieses Werts bereinigt. Das Löschen von Verbindungen kann zu einem mangelhaften Verhalten im Datengrid führen.
Ist erweiterbar

Eigenschaftsname: com.ibm.CORBA.ThreadPool.IsGrowable

Gültiger Wert: Die gültigen Werte sind true und false (Boolean).

Empfohlener Wert: false

Definitionsposition: Datei orb.properties

Beschreibung: Wenn Sie diese Einstellung auf true setzen, kann der vom ORB für eingehende Anforderungen verwendete Thread-Pool über die vom Pool unterstützte Größe hinweg anwachsen. Wenn die Poolgröße überschritten wird, werden neue Threads für die Bearbeitung der Anforderungen erstellt, aber die Threads werden nicht in den Pool gestellt. Sie können das Wachstum des Thread-Pools verhindern, indem Sie die Einstellung auf false setzen.
Länge der Server-Socket-Warteschlange

Eigenschaftsname: com.ibm.CORBA.ServerSocketQueueDepth

Gültiger Wert: Ein ganzzahliger Wert für die Anzahl der Verbindungen.

Empfohlener Wert: 1024

Definitionsposition: Datei orb.properties

Beschreibung: Gibt die Länge der Warteschlange für eingehende Verbindungen von Clients an. Der ORB reiht eingehende Verbindungen von Clients in Warteschlangen ein. Wenn die Warteschlange voll ist, werden Verbindungen zurückgewiesen. Das Zurückweisen von Verbindungen kann zu einem mangelhaften Verhalten im Datengrid führen.
Fragmentgröße

Eigenschaftsname: com.ibm.CORBA.FragmentSize

Gültiger Wert: Eine ganzzahliger Wert, der die Anzahl der Bytes angibt. Der Standardwert ist 1024.

Empfohlener Wert: 0

Definitionsposition: Datei orb.properties

Beschreibung: Gibt die maximale Paketgröße an, die der ORB verwendet, wenn er eine Anforderung sendet. Wenn eine Anforderung den Grenzwert für die Fragmentgröße überschreitet, wird diese Anforderung in Anforderungsfragmente aufgeteilt, die jeweils separat gesendet und dann im Server erneut assembliert werden. Das Fragmentieren von Anforderungen ist in unzuverlässigen Netzen hilfreich, in denen Paket unter Umständen erneut gesendet werden müssen. Wenn das Netz jedoch zuverlässig ist, kann das Aufteilen von Anforderungen in Fragmente zu einer unnötigen Verarbeitung führen.
Keine lokalen Kopien

Eigenschaftsname: com.ibm.CORBA.iiop.NoLocalCopies

Gültiger Wert: Die gültigen Werte sind true und false (Boolean).

Empfohlener Wert: true

Definitionsposition: Administrationskonsole von WebSphere Application Server, Einstellung Durch Referenz übergeben (Pass-by-Reference)

Beschreibung: Gibt an, ob der ORB nach Referenz übergibt. Der ORB verwendet standardmäßig Aufrufe des Typs "pass by value" (Übergeben nach Wert). Aufrufe des Typs "pass by value" verursachen zusätzliche Kosten für Garbage-Collection und Serialisierung im Pfad, wenn die Schnittstelle lokal gestartet wird. Wenn Sie diese Einstellung auf "true" setzen, verwendet der ORB die Methode "pass by reference" (Übergeben nach Referenz), die effizienter ist als der Aufruf des Typs "pass by value".
Keine lokalen Interceptor

Eigenschaftsname: com.ibm.CORBA.NoLocalInterceptors

Gültiger Wert: Die gültigen Werte sind true und false (Boolean).

Empfohlener Wert: true

Definitionsposition: Datei orb.properties

Beschreibung: Gibt an, ob der ORB Anforderungsinterceptor auch dann startet, wenn lokale Anforderungen (prozessintern) gestellt werden. Die von WebSphere eXtreme Scale verwendeten Interceptor sind für die Sicherheit und Routenverarbeitung bestimmt und nicht erforderlich, wenn die Anforderung innerhalb des Prozesses verarbeitet wird. Interceptor zwischen Prozessen sind nur für RPC-Operationen (Remote Procedure Call) erforderlich. Wenn Sie die Eigenschaft "Keine lokalen Interceptor" aktivieren, können Sie die zusätzliche Verarbeitung vermeiden, den lokale Interceptor mit sich bringen.
Achtung: Wenn Sie die Sicherheit von WebSphere eXtreme Scale verwenden, setzen Sie die Eigenschaft "com.ibm.CORBA.NoLocalInterceptors" auf den Wert false. Die Sicherheitsinfrastruktur verwendet Interceptor für die Authentifizierung.