View previous topic :: View next topic
|
Author |
Message |
Stefan
Active User
Joined: 12 Jan 2006 Posts: 110 Location: Germany
|
|
|
|
Hi,
my client recently migrated my workstation to Windows 7 64bit.
Now the ISPF Workstation Agent (WSA) acts a little bit strange.
Whenever WSA gets a command and spawns a process (i.e. opens a command window) the function is performed successfully but the separate window is not closed. It stays open although the connection to the mainframe is closed. It even can't be closed manually because the WSA itself obviously has exclusive access to it.
As I use complex mainframe-based processes where WSA is an integral part of at many points within the process chain, my desktop gets cluttered within minutes and open command windows spread over my screen.
The only way to get rid of them is to close WSA itself.
Did anyone experienced this before and have any solution or suggestions for this problem? |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 767 Location: Whitby, ON, Canada
|
|
|
|
I use WSA under Windows 7 and haven't noticed any change in behaviour. I am just grateful that it still works given IBM's indifference to it.
There aren't many settings to tweak in WSA itself. Have you looked at the Windows settings for WSA.EXE? |
|
Back to top |
|
|
Ed Goodman
Active Member
Joined: 08 Jun 2011 Posts: 556 Location: USA
|
|
|
|
Do you know how WSA spawns the process? I mean, is there a batch file being built, or a shell command being run?
I've seen something similar with command windows when the program uses the "cmd" program to run them. There are defaults on the machine that can leave the window open.
Open a command prompt and do "cmd /?" to see what I'm referring to. I think it's the /C /K switches that can change based on defaults. |
|
Back to top |
|
|
Stefan
Active User
Joined: 12 Jan 2006 Posts: 110 Location: Germany
|
|
|
|
Many thanks for your replies.
to don.leahy:
I played around with the compatibility settings of the wsa.exe file. But this had no effect.
to Ed Goodman:
I have no idea how WSA spawns the processes. The product consists of only a few data files (translation tables, msg files etc.), a single DLL, and a single EXE file. There is no chance to configure anything besides the settings offered by the product's user interface. But these options only belong to TCP/IP settings and user authorities. I know what you're thinking of when you refer to the switches used by the CMD.exe. But it's not the way the product start a process because the same installation runs successfully on a Windows XP machine.
Any further ideas? |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 767 Location: Whitby, ON, Canada
|
|
|
|
How does your host application use WSA? Does it issue workstation commands via the Select ISPF service? |
|
Back to top |
|
|
Stefan
Active User
Joined: 12 Jan 2006 Posts: 110 Location: Germany
|
|
|
|
Yes, the typical sequence of services is as follows:
Code: |
'ISPEXEC VGET ZIPADDR SHARED'
'ISPEXEC WSCON IP(ZIPADDR) NOGUIDSP'
h = 'MY.HOST.DATASET'
w = 'c:\list.txt'
'ISPEXEC VPUT (H W)'
'ISPEXEC FILEXFER HOST(H) WS(W) TO(WS) TEXT'
'ISPEXEC SELECT WSCMD(%COMSPEC% /C START /MAX' w !! ') MODELESS'
'ISPEXEC WSDISCON' |
Currently I'm checking if it has something to do with authorization. I haven't found any entry in the Windows event log, but there are fundamental changes in this area between Windows XP and Windows 7.
By the way: Sorry for the delay in my responses. I'm busy with other tasks too, and I'm in Europe (+ 6 hours to U.S. east coast). |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 767 Location: Whitby, ON, Canada
|
|
|
|
Have you tried the MAX|MIN VIS|INVIS parameters of the SELECT service?
I'm not a Windows guy so I don't know much about the START command, but perhaps they've added a switch that might be useful. |
|
Back to top |
|
|
Stefan
Active User
Joined: 12 Jan 2006 Posts: 110 Location: Germany
|
|
|
|
don.leahy wrote: |
Have you tried the MAX|MIN VIS|INVIS parameters of the SELECT service?. |
Many thanks, Don.
This did the trick.
For the SELECT WSCMD service I simply added the INVIS parameter. This surpressed the command window but not the application itself started by the command. Fortunately all of my REXX programs use a central WSA connection module. So I only had to change it once and do a thorough test.
What still doesn't work is the interactive use of the WS command. As this command does not allow any parameter, the command window always comes up and "hangs".
As a sample:
I type "WSCON" and enter the connection details.
Then I type "WS dir p:\*.* >p:\dirlist.txt" to create a directory list and write it to the specified file.
Now "WS notepad p:\dirlist.txt" will start Notepad on that file.
Finally "WSDISCON" closes the connection to WSA.
In this scenario both WS commands create a command window which stays open.
This behaviour was definitely different with Windows XP on my client's site.
But my main focus is on the programmatical integration of WSA via "SELECT WSCMD" and "FILEXFER".
Thanks to Don this works now. |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 767 Location: Whitby, ON, Canada
|
|
Back to top |
|
|
Graham Hannington
New User
Joined: 14 Dec 2009 Posts: 6 Location: Perth, Western Australia
|
|
|
|
I'm using WSA to open a web page in the default browser on a Windows 7 PC:
Code: |
"SELECT WSCMD(cmd /c ""start /max " url """) INVIS" |
where url is a variable that contains the address of the web page.
As you say, specifying INVIS suppresses the command window, but each SELECT WSCMD creates a cmd.exe *32 (Windows Command Processor) process (that I can see in Windows Task Manager) that doesn't end until I end the Workstation Agent (wsa.exe). |
|
Back to top |
|
|
Stefan
Active User
Joined: 12 Jan 2006 Posts: 110 Location: Germany
|
|
|
|
What's about this:
Code: |
'ispexec select wscmd(%comspec% /c start /min' url ') modeless min invis' |
Give it a try |
|
Back to top |
|
|
Graham Hannington
New User
Joined: 14 Dec 2009 Posts: 6 Location: Perth, Western Australia
|
|
|
|
Thanks very much for the suggestion, but nope, the cmd.exe remains.
I suspect (but I do not know) that this has nothing to do with WSA, and everything to do with the Windows START command.
From the help for the START command:
Quote: |
If it is an internal cmd command or a batch file then [...] the window will remain after the command has been run. |
I could try explicitly referring to the .exe for a particular browser, but that isn't what I want: I do not want to rely on a particular browser being installed in a particular path, and I do not want to start another browser instance each time. |
|
Back to top |
|
|
|