FAQ 98
- Section 3
#SUBJECT:
COOL:Gen Server to Server call in MVS/CICS
#BY : jo jo calora
Does anyone
know whether a CICS START or a CICS LINK is used in a COOL:Gen Server to
Server Call in MVS/CICS via a USE Procedure Step statement? Is there a way
to influence the USE Procedure Step statement to force a CICS START instead
of a CICS LINK and vice versa? Any info would be greatly appeciated!
RE: COOL:Gen
Server to Server call in MVS/CICS
#BY : Glenn
Server to server
flows are not supported (in any environemnt including MVS). You will not
be able to package a procedure containing a procedure step use as a server.
You can obviously hand-code this (a bit tricky but can be done) in which
case you can choose whether to use a LINK or a START (or, as I would recommend,
a START RETURN IMMEDIATE).
RE: COOL:Gen
Server to Server call in MVS/CICS
#BY : jo jo
I am doing
it right now via the USE (of a procedure step) statement. I have not encountered
any problem packaging the server that uses a USE(procedure step) statement.
I do not know if it works via dialog flows. The generated code for the USE(procedure
step) statement calls a TI module which I do not have source code to help
me figure out if it uses a CICS LINK or a CICS START transaction. We have
multiple CICS regions and I want to call a server from one region to another
and the only way that would work in our shop is to start the called transaction
in the other region using a CICS START. The called transaction must be remotely
defined to the CICS region which the calling server resides. I am trying
to avoid coding a EAB.Client 1 is in a Windows NT box, Server A & B
are in MVS/CICSClient 1 USEs Server A, Server A USEs Server B.
RE: COOL:Gen
Server to Server call in MVS/CICS
#BY : jo jo
....was
not able to get info needed so ended up coding an EAB to CICS START another
COOL:Gen Transaction in a different CICS region...
#SUBJECT:
Use server procedurestep MVS/CICS
#BY : Kees van Winden
I try to use
a server procedure step from another server procedure step on our target
environment MVS/CICS. The first transaction is started successfully, but
the second transaction gets an ASRA/0C4 abend. I changed the code a few
times. Nothing seems to help.
RE: Use
server procedurestep MVS/CICS
#BY : Predrag
As I know,
the primary funktion of the USE ProcedureStep is aimedat client/server applications.
In that kind of applications it works fine. Still, it should be possible
within CICS,a) but there are some restrictions (something like "not within
the same load-module" or so)b) something has to be done in CICS (settings
or so) to make it possible.That is my knowledge in our shop.
RE: Use
server procedurestep MVS/CICS
#BY : JoJo
I have used
the USE(procedure step) statement without any problem.The application was
a client server application.Client A was on Windows NT. Server A & Server
B was on MVS/CICS. Client A USEd Server B and Server B USEd Server C.Cooperative
Packaging was used for the client and each of the Servers.How did you package
your Servers? If I remember it correctly, OC4 errors are linkage errors.I
remember having linkage errors sometimes when the High Performance View
Passing is turned on. Have you tried turning off the High Performance View
Passingin your server procedures and then re-installing them?
#SUBJECT:
Calling CABs from CICS/Cobol
#BY : DAVID MORRIS
Is it possible
(without too much grief) and, if so, does anyone have an API that enables
a CAB to be called from a (non COOL:Gen / Composer) CICS / Cobol / DB2 program?
Can calling the Servermanager to invoke the CAB be avoided? Alternatively,
is there a guide to what fields of Globdata need to be populated so the
CAB will function correctly. Any help/ideas would be appreciated.
RE: Calling
CABs from CICS/Cobol
#BY : Glenn Smyth
I can e-mail
you a paper on how to do this I wrote at DEETYA .Yes it is possible (even
desireable, and certainly easier) to call action blocks bypassing the server
manager.
.Glenn@emeryworld.com
#SUBJECT:
passing CICS Pointers
#BY : David Gest
Please can
someone tell me how I can pass a CICS Pointer from an EAB (Written in Cobol
II) to a Composer CAB (Coolgen 4.1A) and thenpass the pointer to another
EAB witout losing the Pointer address.
MATIF France
RE: passing
CICS Pointers
#BY : Glenn Smyth
1) If you mean
the pointers to the CICS control blocks then IEF-RUNTIME-PARM1 and IEFRUNTIME-PARM2
will contain pointers to DFHEIBLK and DFHCOMMAREA already (populated by
the dialog manager and passed around).
2) If you
need pass another pointer then you have two choices :
a) If you have
Composer 4 or later you can pass it in any 9 digit numeric field with the
COBOL data type set to COMP in the TD properties (you will need to redefine
it as POINTER in the receiving EAB to do a SET ADDRESS). b) Without Composer
4 (or later) your only option is to use (abuse) a field in GLOBDATA. Set
PSMGR-EABPCB-ADR(1) to be the address you want and it will be passed through
to your receiving EAB. Assuming you don't use IMSDB from the EABs then this
won't cause you any problem. You could also use PSTEP-FAIL-MSG-PTR (assuming
you are running Compsoer 3 or later and can set HPVM on for EABs). If you
feel nervous about playing with these fields save the before value in the
first EAB and restore it afterwards.
RE: passing
CICS Pointers
#BY : Pier
assuming that
with "pointer address" you mean the content of a pointer field, I would
suggest you try:
- pass a
CHAR(4) field to thr first EAB
- redefine
the field in the EAB to be a PIC s9(8) COMP or a POINTER
- initialize
it
- set it
with your pointer value
- send it
back to the calling CAB
- pass it
to the second EAB, where you'll still need to redefine it to be either
a PIC s9(8) COMP or a POINTER
#SUBJECT:
CICS Password expiration/change
#BY : Theresa Ellis
We are deploying
with Windows NT client and MVS/CICS/DB2 server and would like to handle
signon errors, invalid password, expired password, etc. From what I've beenable
to find from Electronic books, CICS manuals, and such I THINK that what
we need to do is write an APPC requestor to interface with the CICS PEM
(Password Expiration Managment) Server. I've found the CIDEXIT program for
the client manager and am guessing that this is where the code would go.
Has anyone ever had any experience with this or have any other (better or
correct) ways of handling CICS signon/password errors from the Client side?
I can't imagine that this hasn't already been done somewhere else.
RE: CICS
Password expiration/change
#BY : Preben_Nilsson
I have seen
the same problem in another danish company. They had to build a WWW system
with arranger and have people sign on, passing the userid/password to CICS.
They solved it by having a general userid/password combination for thelogon
screen/server. The server was then responsible for doing an EXEC CICS VERIFY
PASSWORD and return the result to the WWW application. The WWW application
could then safely pass the validated userid/password combination to all
the business transactions/servers, which where secured in the standard way.
RE: CICS
Password expiration/change
#BY : SHIRIEF_NOSSEIR
There is a
white paper published by Sterling Software titled "APPC Password Expiration
Management for Composer 4 or COOL:Gen." The author is Teresa Bredenkamp.
It seems like it would help you with all your needs (see below). I have
an electronic copy of the document. The solution covers the following requirements:
1. The user
must be able to change the password when required.
2. The user
must be notified when the failure of a Client/Server application is due
to incorrectly supplied userid and/or password.
3. The user
would be able to find out when the password will expire (number of days
left until password expires).
#SUBJECT:
Changing Passwords NT / CICS
#BY : jim c
Our distributed
process Cool:Gen application has NT clients, CICS servers, and uses the
client manager and comm bridge. We would like to enable the client user
to change the mainframe password from the application, withoutleaving the
application and signing onto TSO or a CICS region. Has anyonedone this;
where can I found out more about doing this?
RE: Changing
Passwords NT / CICS
#BY : Gsmyth Smyth
There maybe
another way of doing it but the way I have done it is by using an EAB called
by the CICS server transaction (I assume you are referring to changing the
users own password). In the implementation I was involved withACF2 was the
security system and an API was developed for us to call so I can'thelp you
out with the actual coding of the ACF2 bit (and the Composer bit is trivial).
#SUBJECT:
Security on CICS with Cool:Gen
#BY : David Gest
We implement
an Cool:Gen application for NT-SNA Server- CICS -DB2.
I try to
get the Userid on CICS for security checking purposes but this userid
is still set to the local value (the name of the CICS server).
I changed
the WRSCTOKEN section of the user exit WREXITN.c in order to set up the
SecurityUSed. After i saw on the log file of client manager that the userid
was passed within the common buffer. I have few questions about it. Do
i need to set up the "bClnMgrSecurity" option to true ? Do i need to set
up the tokenlen option to an other value than zero ?
I try to
understand if there is something else to implement on the server part
to get the userid passed by the client manager. Is there someone could
help me to understand what i need ?
RE: Security
on CICS with Cool:Gen
#BY : karl erik bergaust
Have you
deployed the wre410n.dll file to the CommsBridge and the Client Manager?
RE: Security
on CICS with Cool:Gen
#BY : murat_gungor
All you
have to do is to set the bClntMgrSecurity to TRUE and return SecurityUsed
in WRSECTOKEN exit. But the userid value is in ClientUserid attribute,
not in USERID !
#SUBJECT:
Obtaining IMS messages through block mode
#BY : glenn .c.achtemeier
How does one
go about accepting an IMS message in a non-display block mode procedure?
I've written an external to do the call to IMS in order to get the message
which worksin batch but it doesn't find a valid message online. It appears
the dialog manager has already gotten my message but doesn't pass it to
the procedure. Has anyone encountered this?
RE: Obtaining
IMS messages through block mode
#BY : Darius Panahy
The dialog
manager calls an TI runtime module to issue the GU and GN calls thus removing
the message from the message queue, so your external will not work as you
expect. If you want to start a COOL:Gen generated application from an IMS
message, you will have to structure the message to use standard COOL:Gen
message formats, ie, use clear screen input parameters.
RE: Obtaining
IMS messages through block mode
#BY : glenn.c.achtemeier
Thanks for
the quick response, Darius.
Using the
clear screen inputs was my first idea too...but the tool doesn't allow
them with non-display procedures. Thats why I went the external route.
I need to find a way to get at the GU info that was read by the dialog
manager.
RE: Obtaining
IMS messages through block mode
#BY : Darius Panahy
There are
a few things you could try:
1) Try and
use clear screen input passing just COMMAND. This will have a limit on
the number of characters. See the BB archive several postings last year
on this subject
2) Create
a screened procedure to enable the use of clear screen input and then
don't ever display the screen, for example execute first and then flow
to a non screened procedure at the end so that the screen is not displayed.
RE: Obtaining
IMS messages through block mode
#BY : Anders Romell
Just a comment
on Darius' last message; We have used alternative 2 and it works just
fine. Two procedure steps in one procedure. The first one screened and
the second one non-screened. Don't forget to define the transactions an
non-response in IMS by the way...
Apart from
tuning (which is always the issue), the databases/applications worked
well.
#SUBJECT:
screenlist client/server windows
#BY : Greg Nesheim
We are trying
to build a "screenless" server. For testing we created a client/server transaction
which we use to test the server. We plan to have this same server called
to by some middleware software. Does anyone have a suggestion on how a person
can package a server both as client/server and "screenless" transaction?
And are there any gotcha's? all done in MVS...
I thought
this was an option we learned in IEF class.... Thanks
RE: screenlist
client/server windows
#BY : Glenn Smyth
I just tested
this on the 4.11 toolset and had it allowed me to package a screenless procedure
step simultaneously in a server manager and an online dialog manager. Is
the issue that this is lost on check-in or how to do this on the CE (I can't
get to MVS right now to test it)? If not then you should be able to add
it to two different load modules, one using online packaging and one using
coop packaging.
|