Einstellungen für Verbindungspool mit dem Tool "wsadmin" ändern
Mit dem Scripting-Tool "wsadmin" können Sie die Einstellungen für Verbindungspools ändern.
Informationen zu diesem Vorgang
Das Tool "wsadmin" führt Scripts aus. Sie können das Tool "wsadmin" verwenden, um eine Installation und Konfiguration von WebSphere Application Server, eine Anwendungsimplementierung und Serverlaufzeitoperationen zu verwalten. Das Produkt unterstützt nur die scriptbasierten Sprachen Jacl und Jython. Weitere Informationen zum Tool "wsadmin" finden Sie im Artikel "Scripting-Client 'wsadmin' starten".
Gehen Sie wie folgt vor, um mit dem Tool "wsadmin" die Einstellungen für Verbindungspools zu ändern:
Vorgehensweise
Beispiel: Einstellungen für Verbindungspool mit dem Tool wsadmin ändern
Mit dem wsadmin-Objekt AdminControl können Sie Änderungen in den Einstellungen des Verbindungspools festlegen.
Das Tool "wsadmin" führt nur Scripts in den Sprachen Jacl und Jython aus. Zur Ausführung einer Scripting-Task muss der wsadmin-Scripting-Client gestartet werden. Weitere Informationen finden Sie im Artikel "Scripting-Client 'wsadmin' starten".
Weitere Informationen zur Verwendung des Scripting-Objekts "AdminControl" finden Sie im Artikel "Objekt 'AdminControl' für scriptgesteuerte Vrwaltung verwenden".
Das Verbindungszeitlimit kann jederzeit geändert werden, auch wenn der Pool aktiv ist. Wenn Sie den Wert für das Verbindungszeitlimit ändern, wird das Verbindungszeitlimit für alle wartenden Verbindungsanforderungen in den neuen Wert abzüglich der Zeit, die die Verbindung bereits gewartet hat, geändert, und Anforderungen werden zurück in den Wartestatus versetzt, wenn keine Verbindungen verfügbar sind.
Beispiel: Wenn das Verbindungszeitlimit in 300 Sekunden geändert wird und eine Verbindung bereits 100 Sekunden gewartet hat, wartet die Verbindungsanforderung weitere 200 Sekunden, falls keine Verbindung verfügbar ist.
$AdminControl getAttribute $objectname connectionTimeout
$AdminControl setAttribute $objectname connectionTimeout 200
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools". .
Die maximale Anzahl an Verbindungen kann jederzeit geändert werden, sofern die Unterstützung für blockierte Verbindungen nicht aktiviert ist.
Falls die Unterstützung für blockierte Verbindungen aktiviert ist, wird versucht, die maximale Anzahl von Verbindungen zu ändern. Sollte dieser Versuch fehlschlagen, wird eine Ausnahme des Typs IllegalState ausgelöst. Weitere Informationen finden Sie im Artikel zu den erweiterten Einstellungen des Verbindungspools.
Falls die Unterstützung für blockierte Verbindungen nicht aktiviert ist, wird die maximale Anzahl von Verbindungen in den neuen Wert geändert. Sollte der neue Wert höher sein als der aktuelle Wert, wird die Anzahl der Verbindungen auf neuen Wert erhöht. Alle wartenden Anforderungen werden benachrichtigt. Falls der neue Wert kleiner ist als der aktuelle Wert und Sie die Einstellung "Zeitlimit für veraltete Verbindungen" oder "Bereinigungsintervall" verwenden, wird die Anzahl der Verbindungen je nach Poolaktivität auf den neuen Wert verringert. Wenn "agedTimeout" oder "Bereinigungsintervall" nicht verwendet wird, wird nicht automatisch versucht, die Gesamtverbindungsanzahl zu reduzieren. Sie können die MBean-Funktion "purgePoolContents" verwenden, um die Verbindungsanzahl auf den neuen Maximalwert zu verringern.
$AdminControl getAttribute $objectname maxConnections
$AdminControl setAttribute $objectname maxConnections 200
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools".
Die Mindestanzahl von Verbindungen kann jederzeit geändert werden.
$AdminControl getAttribute $objectname minConnections
$AdminControl setAttribute $objectname minConnections 200
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools".
Das Bereinigungsintervall kann jederzeit geändert werden. Die Änderung auf den neuen Wert erfolgt, wenn das nächste Intervall ansteht.
$AdminControl getAttribute $objectname reapTime
$AdminControl setAttribute $objectname reapTime 30
Zeitlimit für nicht verwendete VerbindungenDas Zeitlimit für nicht verwendete Verbindungen kann jederzeit geändert werden.
$AdminControl getAttribute $objectname unusedTimeout
$AdminControl setAttribute $objectname unusedTimeout 900
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools".
Das Zeitlimit für veraltete Verbindungen kann jederzeit geändert werden.
$AdminControl getAttribute $objectname agedTimeout
$AdminControl setAttribute $objectname agedTimeout 900
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools".
Die Löschrichtlinie kann jederzeit geändert werden.
$AdminControl getAttribute $objectname purgePolicy
$AdminControl setAttribute $objectname purgePolicy "Failing Connection Only"
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools".
Die Unterstützung für den Schutz bei Spitzenauslastung beginnt, wenn der Wert von "surgeThreshold" größer als -1 und der Wert von "surgeCreationInterval" größer als 0 ist. Die Eigenschaften für den Schutz bei Spitzenauslastung können jederzeit geändert werden.
$AdminControl getAttribute $objectname surgeCreationInterval
$AdminControl setAttribute $objectname surgeCreationInterval 30
$AdminControl getAttribute $objectname surgeThreshold
$AdminControl setAttribute $objectname surgeThreshold 15
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools".
Es wird versucht, die Eigenschaft "stuckTime", "stuckTimerTime" oder "stuckThreshold" zu ändern. Sollte dieser Versuch fehlschlagen, wird eine Ausnahme des Typs IllegalState ausgelöst. Der Pool kann während der Ausführung dieser Anforderung keine aktiven Anforderungen oder aktiven Verbindungen haben. Damit die Unterstützung für blockierte Verbindungen beginnen kann, müssen alle drei Eigenschaftswerte für blockierte Verbindungen größer als 0 sein, und der Wert für die maximale Verbindungsanzahl muss größer als 0 sein.
Falls der Verbindungspool blockiert ist, können Sie die Eigenschaften für Blockierung und die maximale Verbindungsanzahl nicht ändern. Bei einer Blockierung sind aktive Verbindungen vorhanden.
$AdminControl getAttribute $objectname stuckTime
$AdminControl setAttribute $objectname stuckTime 30
$AdminControl getAttribute $objectname stuckTimerTime
$AdminControl setAttribute $objectname stuckTimerTime 15
$AdminControl getAttribute $objectname stuckThreshold
$AdminControl setAttribute $objectname stuckThreshold 10
Weitere Informationen zu dieser Einstellung finden Sie im Artikel zu den erweiterten Einstellungen des Verbindungspools.
Die Unterstützung für Verbindungstests beginnt, wenn die Eigenschaft "testConnection" auf "true" gesetzt und das Intervall größer als 0 ist. Die Eigenschaften für Verbindungstests können jederzeit geändert werden.
$AdminControl getAttribute $objectname testConnection
$AdminControl setAttribute $objectname testConnection 30
$AdminControl getAttribute $objectname testConnectionInterval
$AdminControl setAttribute $objectname testConnectionInterval 15
Weitere Informationen zu dieser Einstellung finden Sie im Artikel zum Service für das Testen von Verbindungen.
$AdminControl invoke $objectname freePoolDistributionTableSize
$AdminControl invoke $objectname numberOfFreePoolPartitions
$AdminControl invoke $objectname numberOfSharedPoolPartitions
$AdminControl invoke $objectname gatherPoolStatisticalData
$AdminControl invoke $objectname enablePoolStatisticalData
Weitere Informationen zu dieser Einstellung finden Sie im Artikel "Einstellungen des Verbindungspools".
Die Operationen für die Anzeige von Poolinformationen können jederzeit geändert werden.
$AdminControl invoke $objectname showAllPoolContents
$AdminControl invoke $objectname showPoolContents
$AdminControl invoke $objectname showAllocationHandleList
Die Eigenschaft "PurgePool" kann jederzeit geändert werden.
$AdminControl invoke $objectname purgePoolContents normal
$AdminControl invoke $objectname purgePoolContents immediate
- Vorhandene unvollständige Transaktionen werden fortgesetzt.
- Anforderungen für gemeinsam genutzte Verbindungen werden berücksichtigt.
- Freie Verbindungen werden bereinigt und gelöscht.
- Verwendete Verbindungen (Verbindungen in Transaktionen) werden bereinigt und gelöscht, wenn sie an den Verbindungspool zurückgegeben werden.
- Aufrufe der Methode close() in Verbindungen, die vor dem Aufruf von purgePoolContents abgerufen wurden, werden synchron ausgeführt (sie warten auf die Rückkehr des JDBC-Treibers, bevor die Verarbeitung fortgesetzt wird).
- Anforderungen neuer Verbindungen (keine Handles zu vorhandenen alten Verbindungen) werden berücksichtigt.
- Der Start neuer Transaktionen in Verbindungen, die vor dem Aufruf von purgePoolContents abgerufen wurden, wird nicht zugelassen. Stattdessen wird eine Ausnahme des Typs "StaleConnectionException" ausgelöst.
- Die Ausgabe neuer Handles in Verbindungen, die vor dem Aufruf von purgePoolContents abgerufen wurden, wird nicht zugelassen. Stattdessen wird eine Ausnahme des Typs "StaleConnectionException" ausgelöst.
- Vorhandene unvollständige Transaktionen werden fortgesetzt, aber alle neuen Aktivitäten in der bereinigten Verbindung lösen eine Ausnahme des Typs "StaleConnectionException" oder XAER_FAIL aus.
- Aufrufe der Methode close() in Verbindungen, die vor dem Aufruf von purgePoolContents() abgerufen wurden, werden asynchron ausgeführt (keine Wartezeit).
- Anforderungen neuer Verbindungen (keine Handles zu vorhandenen alten Verbindungen) werden berücksichtigt.
- Die Anzahl der Verbindungen wird unverzüglich verringert. Dies kann dazu führen, dass die Gesamtanzahl der Verbindungen im Anwendungsserver vorübergehend nicht mit der Gesamtanzahl der Verbindungen in der Datenbank synchron ist.
- Aufrufe der Methode close() in Verbindungen, die vor dem Aufruf von purgePoolContents() abgerufen wurden, werden asynchron ausgeführt (keine Wartezeit).
- Anforderungen neuer Verbindungen (keine Handles zu vorhandenen alten Verbindungen) werden berücksichtigt.
- Die Anzahl der Verbindungen wird unverzüglich verringert. Dies kann dazu führen, dass die Gesamtanzahl der Verbindungen im Anwendungsserver vorübergehend nicht mit der Gesamtanzahl der Verbindungen in der Back-End-Ressource synchron ist.
Die Eigenschaften "Pause" und "resume" können jederzeit geändert werden.
$AdminControl invoke $objectname pause
$AdminControl invoke $objectname resume
Mit den wsadmin-Befehlen können Sie auf die MBeans für Verbindungsfactorys und Datenquellen zugreifen. MBeans können Eigenschaften für eine Verbindungsfactory oder eine Datenquelle abrufen oder aktualisieren.
Zum Abrufen einer Liste mit MBean-Objektnamen für J2C-Verbindungsfactorys oder Datenquellen führen Sie über die wsadmin-Befehlszeile einen der folgenden Verwaltungsssteuerbefehle aus:
$AdminControl queryNames *:type=J2CConnectionFactory,*
$AdminControl queryNames *:type=DataSource,*
Beispielausgabe für Datenquellenabfrage:
wsadmin>$AdminControl queryNames *:type=DataSource,*
"WebSphere:name=Default Datasource,process=server1,platform=dynamicproxy,node=
system1Node01,JDBCProvider=Derby JDBC Provider,j2eeType=JDBCDataSource,J2EESe
rver=server1,Server=server1,version=6.0.0.0,type=DataSource,mbeanIdentifier=cell
s/system1Node01Cell/nodes/system1Node01/servers/server1/resources.xml#DataSource
_1094760149902,JDBCResource=Derby JDBC Provider,cell=system1Node01Cell"
Mit dem Objektnamen der MBean für die J2C-Verbindungsfactory oder Datenquelle können Sie auf die MBean zugreifen. Der Name steht hinter dem Ausdruck webSphere:name=. Im folgenden Beispiel wird mit der ersten set-Anweisung die Variable name mit dem Namen der Standarddatenquelle belegt. Mit der zweiten set-Anweisung wird der Objektname auf die Variable objectName gesetzt.
Beispiel für die Verwendung der Standarddatenquelle (Default DataSource)
- wsadmin>set name [list Default Datasource]
Standarddatenquelle
- wsadmin>set objectName [$AdminControl queryNames *:name=$name,*]
"WebSphere:name=Default Datasource,process=server1,platform=dynamicproxy,node=
system1Node01,JDBCProvider=Derby JDBC Provider,j2eeType=JDBCDataSource,J2EESe
rver=server1,Server=server1,version=6.0.0.0,type=DataSource,mbeanIdentifier=cell
s/system1Node01Cell/nodes/system1Node01/servers/server1/resources.xml#DataSource
_1094760149902,JDBCResource=Derby JDBC Provider,cell=system1Node01Cell"
Jetzt können Sie objectName verwenden, um Hilfe zu Attributen und Operationen abzurufen, die für diese MBean verfügbar sind.
$Help attributes $objectName
$Help operations $objectName
Verwenden Sie einen der folgenden Befehle, um ein Attribut anzuzeigen oder zu definieren oder eine Operation zu verwenden:
$AdminControl getAttribute $objectName "attribute name"
$AdminControl setAttribute $objectName "Attributname" value
$AdminControl invoke $objectName "Operation"
Beispiele mit Attribut, Operation:
Rufen Sie ein Attribut "maxConnections" ab, und definieren Sie es. Wenn Sie keinen Wert, einen Nullwert
oder eine Ausnahme des Typs "java.lang.IllegalStateException" erhalten, wurde die Verbindungsfactory bzw.
Datenquelle für diese MBean nicht erstellt. Die Verbindungsfactory oder Datenquelle wird bei der ersten
JNDI-Lookup-Operation erstellt. Für dieses Beispiel muss Default DataSource verwendet werden,
bevor get, set und invoke funktionieren.
wsadmin>$AdminControl getAttribute $objectName maxConnections
10
wsadmin>$AdminControl setAttribute $objectName maxConnections 20
wsadmin>$AdminControl getAttribute $objectName maxConnections
20
Using invoke
wsadmin>$AdminControl invoke $objectName showPoolContents
PoolManager name:DefaultDatasource
PoolManager object:746354514
Total number of connections: 3 (max/min 20/1, reap/unused/aged 180/1800/0,
connectiontimeout/purge 1800/EntirePool)
(testConnection/inteval false/0, stuck timer/time
/threshold 0/0/0, surge time/connections 0/-1)
Shared Connection information (shared partitions 200)
No shared connections
Free Connection information (free distribution table/partitions 5/1)
(2)(0)MCWrapper id 5c6af75b Managed connection WSRdbManagedConnectionImpl@4b5
a775b State:STATE_ACTIVE_FREE
(2)(0)MCWrapper id 3394375a Managed connection WSRdbManagedConnectionImpl@328
5f75a State:STATE_ACTIVE_FREE
(2)(0)MCWrapper id 4795b75a Managed connection WSRdbManagedConnectionImpl@46a
4b75a State:STATE_ACTIVE_FREE
Total number of connections in free pool: 3
UnShared Connection information
No unshared connections