Categories
IBM WebSphere Application Server Middleware

WebSphere Application Server Support bis 2030

IBM hat für WebSphere Application Server die Support Laufzeit bis mindestens Ende 2030 verlängert. Das gilt für diese Produkte:
– IBM WebSphere Application Server V8.5.5
– IBM WebSphere Application Server V9.0.5
– IBM WebSphere Application Server Network Deployment V8.5.5
– IBM WebSphere Application Server Network Deployment V9.0.5
– IBM WebSphere Application Server Family Edition V8.5.5
– IBM WebSphere Application Server Family Edition V9.0.5
– IBM WebSphere Application Server – Express® V8.5.5
– IBM WebSphere Application Server for z/OS®, V8.5.5
– IBM WebSphere Application Server for z/OS, V9.0.5

Original Bekanntmachung

Categories
IBM WebSphere Application Server Middleware

WebSphere Application Server Configuration Comparison Tool

A few days ago a found the WebSphere Configuration Comparison Tool (WCCT), developed by IBM. Is is a comparison utility written in python for WebSphere Application Server traditional.

The sources can be found in Github project websphere-cct. IBM announced it here: www.ibm.com/support/pages/node/711615

In times of automated installations, such a tool should actually no longer be necessary.

Categories
IBM WebSphere Application Server Java Middleware

Java Bug in WAS 8.5.5.17

Die WebSphere Application Server 8.5.5.17 Pakete haben einen Java Bug, der dazu führt, dass die JVMs gelegentlich einen Java-Dump mit dem Auslöser „traceassert“ schreiben und sich beenden.
Der Bug kam mit Java 8.0.6.5 und soll mit 8.0.6.10 gefixed werden.
Ursprünglich war die korrigierte Version 8.0.6.10 für 14. Mai 2020 angekündigt. Inzwischen teilt IBM mit, dass die Korrektur für 8.5.5.17 bundled java schon verfügbar ist.

Da WAS 9.0.5.3 die Java Version 8.0.6.7 nutzt, ist es ziemlich sicher auch betroffen.

Categories
Middleware PowerShell

Umbenennung von Dateien per powershell

In Linux Umgebungen haben Administratoren für Logdateien von WebSphere Application Server, Tomcat und andere Middleware Produkte meist Skripte, um die Protokolle täglich oder wöchentlich umzubenennen (per crontab).

Unter Windows habe ich auf die schnelle keine vernünftige Scriptlösung gefunden. Meine Lösung stelle ich in meinem Azure DevOps Projekt pwshLogSwitch zur Verfügung.

Das kleine Script erwartet mindestens ein Startverzeichnis als Parameter. Alle Dateien in diesem Verzeichnis und darunter werden umbenannt, solange die Kriterien passen.

Die Auswahlkriterien werden mit den Parametern
-Filter
-IncludePattern
-ExcludePattern
definiert und entsprechen den gleichnamigen Parametern von Get-ChildItem. Es können auch reguläre Ausdrücke und Wildcards übergeben werden.

Als Verzeichnis können mehrere Verzeichnisnamen per : getrennt übergeben werden.

IncludePattern und ExcludePattern können ebenfalls mehrere Werte enthalten. Diese sind per Komma zu trennen.

Beispiele:

logswitch.ps1 -s -x *.ps1 -i ‘*.ot,*.out’ -d folder1:folder2:nonexistingFolder

logswitch.ps1 -simulate -ExcludePattern *.ps1 -IncludePattern ‘*.ot,*.out’ -Directories folder1:folder2:nonexistingFolder

logswitch.ps1 -x ‘[2][0][12][0-9]*,1.*’ -f *.log -d folder1:folder2:nonexistingFolder

Categories
Middleware Tomcat

Tomcat Versionen 7.0.100, 8.5.51, 9.0.31 – neue Parameter

Die Tomcat-Versionen 7.0.100, 8.5.51, 9.0.31 führen zwei neue Parameter in den AJP-Connectoren verpflichtend ein, die bei vielen Instanzen bisher sicher nicht verwendet wurden, bzw. nicht gesetzt ware.

Bis auf weiteres bitte das hier in der server.xml bei den AJP-Connectoren hinzufügen:

secretRequired=”false”
address=”${host.ip}”

Erläuterung:
secret sichert die Verbindung so ab, daß sie nur von authorisierten Gegenstellen (die das secret kennen) genutzt werden können. Bis diese zusätzliche Absicherung genutzt wird, kann es explizit deaktiviert werden. Das entspricht dem Zustand der Vorgängerversionen von Tomcat.
Ohne Angabe von „address“ bindet sich der AJP-Connector nur auf localhost und ist dann von außen nicht mehr erreichbar.

Achtung: Wenn die host.ip in der catalina.properties mit Anführungszeichen gesetzt ist oder leer, dann startet der AJP-Connector nur auf loopback.

../conf/catalina.properties
host.ip=”1.2.3.4″

oder

host.ip=

Die richtige Angabe der IP Adresse erfolgt ohne Hochkomma:

../conf/catalina.properties
host.ip=1.2.3.4

Hier noch die offiziellen Aussagen von offizieller Seite (Apache Tomcat 8 Configuration Reference – The AJP Connector)

address
For servers with more than one IP address, this attribute specifies which address will be used for listening on the specified port. By default, the loopback address will be used.

secretRequired
If this attribute is true, the AJP Connector will only start if the secret attribute is configured with a non-null, non-zero length value. The default value is true. This attributue should only be set to false when the Connector is used on a trusted network.

Categories
DevOps Docker Java Middleware

Befehl in mehreren Docker-Containern ausführen

Möchte man bei vielen aktiven Containern bestimmte Inhalte abfragen, kann dies mit eier Schleife elegant als Einzeiler durchgeführt werden. Zuerst ist der Containername zu ermitteln und dann kann via docker exec der eigentliche Befehl im Container ausgeführt werden.

Beispiel: Ermittlung der java Version in allen Containern (zur besseren Lesbarkeit auf mehrere Zeilen umgebrochen)
for i in $(sudo docker ps --format '{{.Names}}') ; do
echo "------" ;
echo $i ;
sudo docker exec $i bash -c "java -version" ;
done

——
important01.service
openjdk version “1.8.0_171”
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
——
container02.service
openjdk version “1.8.0_171”
… usw.

Categories
IBM WebSphere Application Server Middleware

 WebSphere AS Global Security – ADMS0036E: The configuration synchronization failed

Nach dem Aktivieren der Global Security schlägt die Node Synchronisation aus dem Deployment Manager fehl.

Das Problem ist mir zumindest in diesen WebSphere Versionen begegnet:

  • IBM WebSphere Application Server Network Deployment 8.5
  • WAS ND bis 8.5.5 Fixpack 15

In den Protokollen finden sich folgende Fehlermeldungen:

[3/25/19 19:53:27:932 CET] 0000008a NodeSyncTask  A    ADMS0036E: The configuration synchronization failed.
[3/25/19 19:53:30:636 CET] 00000048 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /log/HSL_CELL85/ffdc/nodeagent_2875f3_19.03.25_19.53.30.628307621416607723793.txt com.ibm.ejs.util.am._Alarm.run 95
[3/25/19 19:54:04:409 CET] 00000044 DefaultTokenP I   HMGR0149E: An attempt to open a connection to core group DefaultCoreGroup has been rejected. The sending process has a name of HSL_CELL85\DMGR1\dmgr and an IP address of 192.168.1.100. Global security in the local process is Disabled. Global security in the sending process is Enabled. The received token starts with . The exception is .
[3/25/19 19:54:27:370 CET] 00000087 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /log/HSL_CELL85/ffdc/nodeagent_c0ba1e0f_19.03.25_19.54.27.1057436260776741690282.txt com.ibm.ws.management.status.NodeAgentStatusCache$StatusCacheTimedThread.run 1371
[3/25/19 19:54:27:785 CET] 0000009f NodeSync    ADMS0005E: The system is unable to generate synchronization request java.lang.reflect.UndeclaredThrowableException
        at com.sun.proxy.$Proxy15.queryNames(Unknown Source)
        at com.ibm.ws.management.AdminClientImpl.queryNames(AdminClientImpl.java:108)

Lösung

Eine erste Synchronisation vom DMGR funktioniert nicht nach dem Einschalten der Global Security. Der Node muss die Synchronisation einmalig starten: 

cd Profile_dir/bin/
./stopServer.sh nodeagent

./syncNode.sh localhost SOAPPORT
ADMU0116I: Tool information is being logged in file /logs/syncNode.log
ADMU0128I: Starting tool with the node profile
ADMU0401I: Begin syncNode operation for node NODE01 with Deployment Manager
ADMU0016I: Synchronizing configuration between node and cell.
ADMU0402I: The configuration for node NODE01 has been synchronized with Deployment Manager

./startServer.sh nodeagent
ADMU3000I: Server nodeagent open for e-business; process id is 20059

Danach kann die Synchronisation auch erfolgreich vom WebSphere Deployment Manager aus gestartet werden.

Categories
IBM WebSphere Application Server Middleware

Neuerungen in WebSphere 8.5.5 Fixpack 14

Mit Fixpack 14 für IBM WebSphere Application Server entfällt Java 6:

When updating to 8.5.5.14, any existing profile that uses Java SDK 6 is replaced by Java SDK 8. You can continue to use the optional Java SDK Java Technology Edition Version 7.0 and Version 7.1, but no service can be provided after the end of support in September 2019, which could expose your environment to security risks.

Bisher war im WebSphere-Verzeichnis Java SDK 6 installiert, jetzt findet man dort das Java SDK 8. In der WebSphere Konsole schaut das dann so aus:

Installierte Java SDKs bis WebSphere 8.5.5 Fixpack 13

Ab WebSpehre 8.5.5 FP14 fehlt Java SDK 6:

Installierte Java SDKs bis WebSphere 8.5.5 Fixpack 14

Daher ist vor dem Ausbringen von Fixpack 14 zu prüfen, ob Java 6 auch wirklich nicht mehr verwendet wird. Eine Übersicht über die verwendeten Java-Versionen erhält man einfachsten mit dem Tool managesdk.sh:

<PROFILE_DIR>/bin/managesdk.sh -listEnabledProfileAll
CWSDK1004I: Profile node-profile1 :
CWSDK1006I: PROFILE_COMMAND_SDK = 1.7_64
CWSDK1008I: Node node01 SDK name: 1.7_64
CWSDK1009I: Server jvm01 SDK name: 1.8_64_bundled
CWSDK1009I: Server nodeagent SDK name: 1.8_64
 
CWSDK1004I: Profile dmgr :
CWSDK1006I: PROFILE_COMMAND_SDK = 1.7_64
CWSDK1008I: Node dmgr SDK name: 1.7_64
CWSDK1009I: Server dmgr SDK name: 1.8_64
CWSDK1001I: Successfully performed the requested managesdk task.

Version 1.6 sollte in dieser Ausgabe nicht mehr erscheinen.

Categories
Middleware PowerShell

Powershell tail für Textdateien

In Powershell kann die Ausgabe der letzten n Zeilen in grossen Text/Ascii Dateien mit der -tail Option von Get-Content erfolgen:

Get-Content meineRiesigeDatei.csv -tail 25

Seit Powershell v3 bietet Get-Content (oder der zugehörige alias gc) die Option -tail. Leider gibt es keinen tail -f zur fortlaufenden Aktualisierung.

Categories
Middleware PowerShell

Powershell Equivalent zu Unix ‘ls -ltr | tail’

In Powershell kann die Ausgabe der neuesten n-Dateien mit diesem Befehl erfolgen:

  gci | sort LastWriteTime | select -last 60

In diesem Beispiel werden die Dateien im aktuellen Verzeichnis mit gci ausgegeben, nach letztem Schreibzugriff mit sort sortiert (neueste zuletzt) und dann werden nur die letzten 60 per select last 60 ausgegeben.