View previous topic :: View next topic |
Author |
Message |
shekar123 Advanced
Joined: 22 Jul 2005 Posts: 525 Topics: 89 Location: Bangalore India
|
Posted: Mon Aug 10, 2015 2:49 am Post subject: Unable to display DB2 sub system name dynamically SSID |
|
|
Hi All,
I am trying to connect to DB2 sub system and I am failing with -924 which indicates that connection to DB2 is not happening.
Code: |
ADDRESS TSO "SUBCOM DSNREXX"
IF RC = 0 THEN
DO
S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
END
ELSE
DO
SAY 'ENVIRONMENT NOT AVAILABLE'
END
ADDRESS DSNREXX "CONNECT" SSID
IF SQLCODE = 0 THEN
DO
SAY 'DB2 SUB SYSTEM ID IS :' SSID 'AND WE ARE CONNECTED TO DB2 NOW'
END
ELSE
DO
CALL SQLCA
END
EXIT
/**********************************************************************/
/* DISPLAY SQLCA */
/**********************************************************************/
SQLCA:
SAY "SQLCODE = :" SQLCODE
SAY "SQLERRMC = :" SQLERRMC
SAY "SQLSTATE = :" SQLSTATE
SAY "SQLERRP = :" SQLERRP
SAY "SQLWARN0 = :" SQLWARN.0
SAY "SQLWARN1 = :" SQLWARN.1
SAY "SQLWARN2 = :" SQLWARN.2
SAY "SQLWARN3 = :" SQLWARN.3
SAY "SQLWARN4 = :" SQLWARN.4
SAY "SQLWARN5 = :" SQLWARN.5
SAY "SQLWARN6 = :" SQLWARN.6
SAY "SQLWARN7 = :" SQLWARN.7
SAY "SQLWARN8 = :" SQLWARN.8
SAY "SQLWARN9 = :" SQLWARN.9
SAY "SQLWARN10 = :" SQLWARN.10
SAY "SQLERRD1 = :" SQLERRD.1
SAY "SQLERRD2 = :" SQLERRD.2
SAY "SQLERRD3 = :" SQLERRD.3
SAY "SQLERRD4 = :" SQLERRD.4
SAY "SQLERRD5 = :" SQLERRD.5
SAY "SQLERRD6 = :" SQLERRD.6
RETURN
When I execute the REXX I get the below display
SQLCODE = : -924
SQLERRMC = : 00000002:0000000C:00F30006
SQLSTATE = : 58006
SQLERRP = : DSNTZALI
SQLWARN0 = :
SQLWARN1 = :
SQLWARN2 = :
SQLWARN3 = :
SQLWARN4 = :
SQLWARN5 = :
SQLWARN6 = :
SQLWARN7 = :
SQLWARN8 = :
SQLWARN9 = :
SQLWARN10 = :
SQLERRD1 = : 0
SQLERRD2 = : 0
SQLERRD3 = : 0
SQLERRD4 = : 0
SQLERRD5 = : 0
SQLERRD6 = : 0
|
What is happening to my understanding is that SSID is not getting the value dynamically. But if I assign the DB2 sub system value to SSID then connection is happening to DB2.
Can anyone help me in this regard. _________________ Shekar
Grow Technically |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12357 Topics: 75 Location: San Jose
|
Posted: Mon Aug 10, 2015 10:21 am Post subject: |
|
|
shekar123,
What does the TRACE show? Either way try this code
Code: |
TRACE I
SSID = DB2P
ADDRESS TSO "SUBCOM DSNREXX" /* HOST CMD ENV AVAILABLE ? */
IF RC THEN S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
ADDRESS DSNREXX "CONNECT" SSID
IF SQLCODE <> 0 THEN CALL SQLCA
...
|
_________________ Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
www.linkedin.com/in/kolusu |
|
Back to top |
|
|
shekar123 Advanced
Joined: 22 Jul 2005 Posts: 525 Topics: 89 Location: Bangalore India
|
Posted: Mon Aug 10, 2015 12:30 pm Post subject: |
|
|
Kolusu - Thanks for for your help.
If I hard code SSID = my current DB2 sub system name my code works fine
Basically when I try to use without hard coding I do not get connected to DB2.
Here is the output when I use TRACE I
Code: |
17 *-* ADDRESS TSO "SUBCOM DSNREXX"
>L> "SUBCOM DSNREXX"
+++ RC(1) +++
18 *-* IF RC = 0
>V> "1"
>L> "0"
>O> "0"
22 *-* ELSE
23 *-* DO
24 *-* SAY 'ENVIRONMENT NOT AVAILABLE'
>L> "ENVIRONMENT NOT AVAILABLE"
ENVIRONMENT NOT AVAILABLE
25 *-* END
27 *-* ADDRESS DSNREXX "CONNECT" SSID
>L> "CONNECT"
>L> "SSID"
>O> "CONNECT SSID"
+++ RC(-3) +++
28 *-* IF SQLCODE = 0
>L> "SQLCODE"
>L> "0"
>O> "0"
32 *-* ELSE
33 *-* DO
34 *-* CALL SQLCA
73 *-* SQLCA:
74 *-* SAY "SQLCODE = :" SQLCODE
>L> "SQLCODE = :"
>L> "SQLCODE"
>O> "SQLCODE = : SQLCODE"
SQLCODE = : SQLCODE
75 *-* SAY "SQLERRMC = :" SQLERRMC
>L> "SQLERRMC = :"
>L> "SQLERRMC"
>O> "SQLERRMC = : SQLERRMC"
SQLERRMC = : SQLERRMC
76 *-* SAY "SQLSTATE = :" SQLSTATE
>L> "SQLSTATE = :"
>L> "SQLSTATE"
>O> "SQLSTATE = : SQLSTATE"
SQLSTATE = : SQLSTATE
77 *-* SAY "SQLERRP = :" SQLERRP
>L> "SQLERRP = :"
>L> "SQLERRP"
>O> "SQLERRP = : SQLERRP"
SQLERRP = : SQLERRP
78 *-* SAY "SQLWARN0 = :" SQLWARN.0
>L> "SQLWARN0 = :"
>L> "SQLWARN.0"
>O> "SQLWARN0 = : SQLWARN.0"
SQLWARN0 = : SQLWARN.0
79 *-* SAY "SQLWARN1 = :" SQLWARN.1
>L> "SQLWARN1 = :"
>L> "SQLWARN.1"
>O> "SQLWARN1 = : SQLWARN.1"
SQLWARN1 = : SQLWARN.1
80 *-* SAY "SQLWARN2 = :" SQLWARN.2
>L> "SQLWARN2 = :"
>L> "SQLWARN.2"
>O> "SQLWARN2 = : SQLWARN.2"
SQLWARN2 = : SQLWARN.2
81 *-* SAY "SQLWARN3 = :" SQLWARN.3
>L> "SQLWARN3 = :"
>L> "SQLWARN.3"
>O> "SQLWARN3 = : SQLWARN.3"
SQLWARN3 = : SQLWARN.3
82 *-* SAY "SQLWARN4 = :" SQLWARN.4
>L> "SQLWARN4 = :"
>L> "SQLWARN.4"
>O> "SQLWARN4 = : SQLWARN.4"
SQLWARN4 = : SQLWARN.4
83 *-* SAY "SQLWARN5 = :" SQLWARN.5
>L> "SQLWARN5 = :"
>L> "SQLWARN.5"
>O> "SQLWARN5 = : SQLWARN.5"
SQLWARN5 = : SQLWARN.5
84 *-* SAY "SQLWARN6 = :" SQLWARN.6
>L> "SQLWARN6 = :"
>L> "SQLWARN.6"
>O> "SQLWARN6 = : SQLWARN.6"
SQLWARN6 = : SQLWARN.6
85 *-* SAY "SQLWARN7 = :" SQLWARN.7
>L> "SQLWARN7 = :"
>L> "SQLWARN.7"
>O> "SQLWARN7 = : SQLWARN.7"
SQLWARN7 = : SQLWARN.7
86 *-* SAY "SQLWARN8 = :" SQLWARN.8
>L> "SQLWARN8 = :"
>L> "SQLWARN.8"
>O> "SQLWARN8 = : SQLWARN.8"
SQLWARN8 = : SQLWARN.8
87 *-* SAY "SQLWARN9 = :" SQLWARN.9
>L> "SQLWARN9 = :"
>L> "SQLWARN.9"
>O> "SQLWARN9 = : SQLWARN.9"
SQLWARN9 = : SQLWARN.9
88 *-* SAY "SQLWARN10 = :" SQLWARN.10
>L> "SQLWARN10 = :"
>L> "SQLWARN.10"
>O> "SQLWARN10 = : SQLWARN.10"
SQLWARN10 = : SQLWARN.10
89 *-* SAY "SQLERRD1 = :" SQLERRD.1
>L> "SQLERRD1 = :"
>L> "SQLERRD.1"
>O> "SQLERRD1 = : SQLERRD.1"
SQLERRD1 = : SQLERRD.1
90 *-* SAY "SQLERRD2 = :" SQLERRD.2
>L> "SQLERRD2 = :"
>L> "SQLERRD.2"
>O> "SQLERRD2 = : SQLERRD.2"
SQLERRD2 = : SQLERRD.2
91 *-* SAY "SQLERRD3 = :" SQLERRD.3
>L> "SQLERRD3 = :"
>L> "SQLERRD.3"
>O> "SQLERRD3 = : SQLERRD.3"
SQLERRD3 = : SQLERRD.3
92 *-* SAY "SQLERRD4 = :" SQLERRD.4
>L> "SQLERRD4 = :"
>L> "SQLERRD.4"
>O> "SQLERRD4 = : SQLERRD.4"
SQLERRD4 = : SQLERRD.4
93 *-* SAY "SQLERRD5 = :" SQLERRD.5
>L> "SQLERRD5 = :"
>L> "SQLERRD.5"
>O> "SQLERRD5 = : SQLERRD.5"
SQLERRD5 = : SQLERRD.5
94 *-* SAY "SQLERRD6 = :" SQLERRD.6
>L> "SQLERRD6 = :"
>L> "SQLERRD.6"
>O> "SQLERRD6 = : SQLERRD.6"
SQLERRD6 = : SQLERRD.6
95 *-* RETURN
35 *-* END
37 *-* EXIT
|
_________________ Shekar
Grow Technically |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12357 Topics: 75 Location: San Jose
|
Posted: Mon Aug 10, 2015 1:05 pm Post subject: |
|
|
shekar123 wrote: | Kolusu - Thanks for for your help.
If I hard code SSID = my current DB2 sub system name my code works fine
Basically when I try to use without hard coding I do not get connected to DB2. |
Shekhar123,
If you want to dynamically pass the DB2 Sub System name then you need to have the Code for it and I don't see any where in your existing code to handle that.
Code: |
PULL ARG
SSID = STRIP(ARG(1))
|
_________________ Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
www.linkedin.com/in/kolusu |
|
Back to top |
|
|
shekar123 Advanced
Joined: 22 Jul 2005 Posts: 525 Topics: 89 Location: Bangalore India
|
Posted: Mon Aug 10, 2015 1:49 pm Post subject: |
|
|
Kolusu - extremely sorry for the confusion. What I meant dynamically was - instead of me assigning the hard coded value of the current db2 sub system to SSID , REXX should pick it up from SSID for the current DB2 subsystem and get connected to the DB2. I am trying to do that and not able to get connected.
What you have shown to pass the DB2 sub system to REXX as an ARG works fine. _________________ Shekar
Grow Technically |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12357 Topics: 75 Location: San Jose
|
Posted: Mon Aug 10, 2015 2:22 pm Post subject: |
|
|
shekar123 wrote: | Kolusu - extremely sorry for the confusion. What I meant dynamically was - instead of me assigning the hard coded value of the current db2 sub system to SSID , REXX should pick it up from SSID for the current DB2 subsystem and get connected to the DB2. I am trying to do that and not able to get connected.
What you have shown to pass the DB2 sub system to REXX as an ARG works fine. |
Shekhar123,
You really need to change your approach of how to ask the right questions. If your Initial post had been this question, the answers would have been different.
Either way if your shop has standard practice of updating the system variables then you can use DSNEOV01 or DSNEMV01 which lists the current DB2 subsystem that your Lpar has. You can look them up with option 7.3 from your ISPF main panel.
Code: |
ADDRESS ISPEXEC "VGET (DSNEOV01) PROFILE"
SSID = DSNEOV01
ADDRESS TSO "SUBCOM DSNREXX" /* HOST CMD ENV AVAILABLE ? */
IF RC THEN S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
ADDRESS DSNREXX "CONNECT" SSID
IF SQLCODE <> 0 THEN CALL SQLCA
....
|
_________________ Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
www.linkedin.com/in/kolusu |
|
Back to top |
|
|
shekar123 Advanced
Joined: 22 Jul 2005 Posts: 525 Topics: 89 Location: Bangalore India
|
Posted: Tue Aug 11, 2015 6:29 pm Post subject: |
|
|
Thank you very much Kolusu , it has helped me a lot . I am clear now.
I will surely change my approach going forward with the way I put my questions. _________________ Shekar
Grow Technically |
|
Back to top |
|
|
|
|