IBM i Access Paket hängt sich auf

Post Reply
mhans
Posts: 24
Joined: 27. Jan 2016, 16:18
Contact:

IBM i Access Paket hängt sich auf

Post by mhans » 15. Apr 2021, 11:41

Guten Tag zusammen,

ich habe ein Problem, welches ich hoffentlich verständlich wiedergeben kann :)

Und zwar möchte ich IBM i Access paketieren.
Das Ganze soll relativ simpel komplett nach %Public%\IBM kopiert werden und im Anschluss sollen die Session Dateien (*.hod) mit acslaunch_win-32.exe verknüpft werden.

Diesen Aufruf habe ich dazu der IBM KB entnommen:

Code: Select all

%Public%\IBM\ClientSolutions\Start_Programs\Windows_i386-32\acslaunch_win-32.exe -Dcom.ibm.iaccess.AcceptEndUserLicenseAgreement=true /PLUGIN=fileassoc hod
Da i Access nun noch JRE benötigt und wir seit längerer Zeit nicht mehr Oracle installiert haben, habe ich diesen Leitfaden genutzt um OpenJDK zu nutzen:
https://www.ibm.com/support/pages/getti ... -ibm-i-acs
Kurz: OpenJDK-JRE als zip herunterladen, in den Start Programmorder von i Access entpacken, fertig.

Kopiere ich das Ganze jetzt manuell an den gewünschten Ort (%Public%\IBM\...) und führe über eine Admin CMD den oben genannten Befehl aus, dann funktioniert es. Führe ich das ganze über das Matrix Paket aus (SYSTEM Account), dann sehe ich dass die Dateien an den gewünschten Ort kopiert werden und die acslaunch_win-32.exe auch ausgeführt wird (Task Manager), allerdings bleibt es dabei und die EXE schließt nicht mehr.

Es sieht nach einem Problem aus, welches durch den von Matrix genutzen SYSTEM account verursacht wird.

So sieht der CMD Output aus wenn ich eine Admin CMD nutze:

Code: Select all

C:\WINDOWS\system32>%Public%\IBM\ClientSolutions\Start_Programs\Windows_i386-32\acslaunch_win-32.exe -Dcom.ibm.iaccess.AcceptEndUserLicenseAgreement=true /PLUGIN=fileassoc hod
MSGGEN002 - The function completed successfully.
...EXE wird entsprechend korrekt geschlossen

Führe ich eine SYSTEM CMD aus, dann erhalte ich diesen Output und die EXE bleibt hängen, bis ich sie im Task Manager schließe:

Code: Select all

C:\WINDOWS\system32>%Public%\IBM\ClientSolutions\Start_Programs\Windows_i386-32\acslaunch_win-32.exe -Dcom.ibm.iaccess.AcceptEndUserLicenseAgreement=true /PLUGIN=fileassoc hod                                                       
Apr 15, 2021 11:25:17 AM sun.awt.shell.Win32ShellFolderManager2 getDesktop      
WARNING: Cannot access 'Desktop'                                                
java.io.IOException: Could not get shell folder ID list                         
        at sun.awt.shell.Win32ShellFolder2.getFileSystemPath0(Native Method)    
        at sun.awt.shell.Win32ShellFolder2.access$800(Win32ShellFolder2.java:72)
                                                                                
        at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:588)   
        at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:586)   
        at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Win32ShellFo
lderManager2.java:610)                                                          
        at sun.awt.shell.ShellFolder.invoke(ShellFolder.java:518)               
        at sun.awt.shell.Win32ShellFolder2.getFileSystemPath(Win32ShellFolder2.j
ava:586)                                                                        
        at sun.awt.shell.Win32ShellFolder2.composePathForCsidl(Win32ShellFolder2
.java:222)                                                                      
        at sun.awt.shell.Win32ShellFolder2.<init>(Win32ShellFolder2.java:235)   
        at sun.awt.shell.Win32ShellFolderManager2.getDesktop(Win32ShellFolderMan
ager2.java:158)                                                                 
        at sun.awt.shell.Win32ShellFolder2.getDesktop(Win32ShellFolder2.java:466
)                                                                               
        at sun.awt.shell.Win32ShellFolder2$1.call(Win32ShellFolder2.java:242)   
        at sun.awt.shell.Win32ShellFolder2$1.call(Win32ShellFolder2.java:237)   
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)             
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1149)                                                                      
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:624)                                                                      
        at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Win32ShellFol
derManager2.java:586)                                                           
        at java.lang.Thread.run(Thread.java:823)                                
                                                                                
Apr 15, 2021 11:25:17 AM sun.awt.shell.Win32ShellFolderManager2 getPersonal     
WARNING: Cannot access 'Personal'                                               
java.io.IOException: Could not get shell folder ID list                         
        at sun.awt.shell.Win32ShellFolder2.getFileSystemPath0(Native Method)    
        at sun.awt.shell.Win32ShellFolder2.access$800(Win32ShellFolder2.java:72)
                                                                                
        at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:588)   
        at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:586)   
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)             
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1149)                                                                      
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:624)                                                                      
        at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Win32ShellFol
derManager2.java:586)                                                           
        at java.lang.Thread.run(Thread.java:823)                                
                                                                                
Apr 15, 2021 11:25:17 AM sun.awt.shell.Win32ShellFolderManager2 getDesktop      
WARNING: Cannot access 'Desktop'                                                
java.io.IOException: Could not get shell folder ID list                         
        at sun.awt.shell.Win32ShellFolder2.getFileSystemPath0(Native Method)    
        at sun.awt.shell.Win32ShellFolder2.access$800(Win32ShellFolder2.java:72)
                                                                                
        at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:588)   
        at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:586)   
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)             
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1149)                                                                      
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:624)                                                                      
        at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Win32ShellFol
derManager2.java:586)                                                           
        at java.lang.Thread.run(Thread.java:823)                                
                                                                                
Exception in thread "main" java.lang.ExceptionInInitializerError                
        at java.lang.J9VMInternals.ensureError(J9VMInternals.java:146)          
        at java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.jav
a:135)                                                                          
        at com.ibm.iaccess.launch.AcsLaunchPad.main(AcsLaunchPad.java:467)      
Caused by: java.lang.NullPointerException                                       
        at com.ibm.iaccess.launch.AcsProperties.processKeywordsForProperty(AcsPr
operties.java:256)                                                              
        at com.ibm.iaccess.launch.AcsProperties.<init>(AcsProperties.java:162)  
        at com.ibm.iaccess.launch.AcsProperties.<clinit>(AcsProperties.java:59) 
        ... 1 more
"... 1 more" zeigt er mir in der realität nicht an :twisted:
Mir fehlt gerade ehrlich gesagt das Verständnis. Vielleicht hat jemand den passenden Hint für mich :idea:

Viele Grüße

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7962
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: IBM i Access Paket hängt sich auf

Post by Hendrik_Ambrosius » 16. Apr 2021, 09:26

Zwei Ideen:
RUNAS nutzen damit der SYSTEM User nicht mehr genutzt wird
oder
den Aufruf per Differenzverfahren mitprotokollieren und darüber das Paket erstellen
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

BLindmueller
Posts: 10
Joined: 08. Dec 2020, 12:11
Contact:

Re: IBM i Access Paket hängt sich auf

Post by BLindmueller » 28. Apr 2021, 16:09

Moin MHANS...

ich hab unser IBM iACS "geliebt" ich habe es auch nur mit Kopieren gelöst...hier hassu meine Lösung:

[SetupInfo]
Author =Benjamin Lindmueller
CreationDate =20.01.2021 09:07:51
InventoryID =
Description =
Method =
Tested on =Windows 10 Pro Build 20H2 64 Bit
Dependencies =
Command line options =/S2 /AW
Last Change =09:56 21.01.2021
Build =

[VarDefInfo]
; <Variable>, <Type: 0=Computer 1=User>, <Allow NULL values: 0=No 1=Yes>

[Setup]
Version=14.2
ShowCaption=1
BlockInput=0
Platform=*

[Requirements]

[Application]
ProductName=iACS_(NormalUser)
DeveloperName=IBM
Version=1.1.8.6
Revision=0
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%", Arial, 30, , 2170F3, 4, , LEFT BOLD ITALIC
Text2="%DeveloperName%", Arial, 24, , 2170F3, 4, , LEFT BOLD ITALIC
Text8="%Company%", Arial, 18, , 2170F3, 4, 10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial, 16, , 2170F3, 4, -18, BOTTOM ITALIC LEFT
BackgroundColor=EFEFEF,000000
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER

; Register all installations in common registry key
UserKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%
MachineKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallDisplayName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
;UninstallDisplayIcon="%ApplicationDir%\%SetupInfDir%\Setup.ico",0
UninstallOptions=NOREMOVE NOREPAIR NOMODIFY
ReinstallMode=1
SrcDir=..

; Matrix42 Scripts are copied in a common scripts directory
ApplicationDir=%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%\%Version%

SetupInfDir=Install
DataDir=%Personal%
AskUninstallOld=1
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
DateWarning=1
SizeWarning=0
Reboot=0
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%

[Strings:07]
Disk1=Installationsmedium 1
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren
ErrorText=Fehler
CallingText=beim Aufruf von

[Strings:09]
Disk1=Installation media 1
EndMessageDesc=Installation was completed successfully!
ErrorLogMessage=The installation/uninstallation aborted with an error message!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
SetupWizard=Installation Wizard
Uninstallation=Uninstallation
ErrorText=Error
CallingText=launching

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=\\%EmpirumServer%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

[Encryption]

[Disks]
1=%Disk1%

[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product = %ProductName%, COPYALWAYS, Product, "%ProductDesc%"

[Installer]
1:..\..\..\..\User\Setup.exe, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupDeu.chm, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupEnu.chm, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:%Temp%\Setup64.exe, %CommonSetupDir%\Setup.exe, OPTIONAL ALWAYS NOSIZEWARNING SETUP WINDOWS64, 0
1:..\..\..\..\User\Setup64.exe, %CommonSetupDir%\Setup.exe, OPTIONAL ALWAYS NOSIZEWARNING SETUP WINDOWS64, 0
1:%SetupInfDir%\Setup.inf, , ALWAYS, 0
; 1:%SetupInfDir%\Setup.ico, , NORMAL, 0
; 1:%SetupInfDir%\Logo.bmp, , NORMAL, 0

[Processes]
ACS=acslaunch_win-64.exe, IBM i Access Client Solutions, KILLPROCESS CONTINUE
JAVA=java.exe, Java Binary, KILLPROCESS CONTINUE
WSCRIPT=wscript.exe, Windows Script Host, KILLPROCESS CONTINUE

[Product]
#Set:Installation, MACHINE DONTDELETE
#Set:UserSettings, CLIENT DONTDELETE
#Set:Deinstallation, DELETE
#Set:DelUserSettings, CLIENT DELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product
#Ini:Product
#Security:Product

[Set:Installation]
; Animierten Fortschrittsbalken einblenden
AddMeter -1

; Verzeihnis im Public-Desktop erstellen
; MD "C:\Users\Public\IBM\"
; gepacketen Programpfad in den Public-Desktop Ordner kopieren
Callhidden xcopy "%SRC%\IBM.7z" "C:\Users\Public\" /Q /Y
sleep 10000
Callhidden "%SRC%\7z.exe" x C:\Users\Public\IBM.7z -oc:\Users\Public -aoa
sleep 35000
MD "%USERPROFILE%\Documents\IBM"
Callhidden xcopy "%SRC%\IBM\*.*" "%App%\IBM\" /E /C /Y
Callhidden xcopy "%SRC%\KA-IWM.lnk" "%App%"
Callhidden xcopy "%SRC%\KA-IWM-Login.lnk" "%App%"
Callhidden xcopy "%SRC%\KA-IWM-Schulung.lnk" "%App%"
Callhidden xcopy "%SRC%\cacerts" "%App%"
Del "C:\Users\Public\IBM.7z"

[Set:UserSettings]
AddMeter -1
; Verzeichnis erstellen
MD "%USERPROFILE%\Documents\IBM\iAccessClient\Private\%USERNAME%\"

; Verzeichnis erstellen
MD "%USERPROFILE%\Documents\IBM\iAccessClient\Emulator\"

; User-Konfiguration kopieren
Callhidden xcopy "%App%\IBM\*.*" "C:\Users\%USERNAME%\Documents\IBM" /E /C /Y

; Desktopverknüpfungen auf UserDesktop erzeugen
Callhidden xCopy "%App%\KA-IWM.lnk" "%USERPROFILE%\Desktop\"
Callhidden xCopy "%App%\KA-IWM-Login.lnk" "%USERPROFILE%\Desktop\"
Callhidden xCopy "%App%\KA-IWM-Schulung.lnk" "%USERPROFILE%\Desktop\"

; CopyCacertsFile kopieren
Callhidden xCopy "%App%\cacerts" "C:\Users\%USERNAME%\Documents\IBM\iAccessClient\Private\%USERNAME%\" /E /C /Y

[Set:DelUserSettings]
; Komplettes Verzeichnis löschen
-Deltree "C:\Users\%USERNAME%\IBM"

; Benutzerdefinierte Einstellungen löschen
; Sinnvoll?
; Ggf. sollen benutzerdefinierten Einstellungen ein Programm-Update überleben
; -Deltree "C:\Users\%USERNAME%\Documents\IBM\"

; Desktopverknüpfungen auf UserDesktop löschen
-Del "%USERPROFILE%\Desktop\KA-IWM.lnk"
-Del "%USERPROFILE%\Desktop\KA-IWM-Login.lnk"
-Del "%USERPROFILE%\Desktop\KA-IWM-Schulung.lnk"

-AddMeter -1

[Set:Deinstallation]
; Verzeichnis löschen
-Deltree "%PUBLIC%\IBM"

; Windows Script Host beenden
-AskKillProcesses 0, WSCRIPT

; Schlägt fehl mit Meldung Windows Scripting Host; Laufzeitfehler Zeile 151, Zeichen 5 "Erlaubnis verweigert"
; Zeile fso.DeleteFolder(alluser_install_path);
; // Delete product files for all users

; Falls acslaunch_win-64.exe aktiv Schließen-Dialogfenster einblenden
;-CallHidden taskkill /IM acslaunch_win-64.exe /f
-AskKillProcesses 0, ACS

; Java Binary sofort beenden
-AskKillProcesses 0, JAVA

; Animierten Fortschrittsbalken einblenden
-AddMeter -1

; Reihenfolge bei Deinstallation beachten
; Verarbeitung von unten nach oben !!!
;
; Ende
; ...
; Start

[Reg:OnUninstallProduct]

[Reg:Product]
; Lizenzbedingungen bereits akzeptiert in Windows Registrierung aktivieren
HKLM,"SOFTWARE\JavaSoft\Prefs\com\ibm\iaccess\base","eula_g_accepted",0x00000000,"1"

[Ini:Product]

[Security:Product]

[Shell:Product]

[Set:InstallationError]
ErrorLogMsg %ErrorText% %ErrorLevel% %CallingText% setup.exe
Abort

[Set:DeInstallationError]
-Abort
-ErrorLogMsg %ErrorText% %ErrorLevel% %CallingText% setup.exe




Ich hoffe das ist eine Inspiration. Viele Spaß :-)

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 4 guests