MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Unable to display DB2 sub system name dynamically SSID

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF
View previous topic :: View next topic  
Author Message
shekar123
Advanced


Joined: 22 Jul 2005
Posts: 525
Topics: 89
Location: Bangalore India

PostPosted: Mon Aug 10, 2015 2:49 am    Post subject: Unable to display DB2 sub system name dynamically SSID Reply with quote

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
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12358
Topics: 75
Location: San Jose

PostPosted: Mon Aug 10, 2015 10:21 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
shekar123
Advanced


Joined: 22 Jul 2005
Posts: 525
Topics: 89
Location: Bangalore India

PostPosted: Mon Aug 10, 2015 12:30 pm    Post subject: Reply with quote

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
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12358
Topics: 75
Location: San Jose

PostPosted: Mon Aug 10, 2015 1:05 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
shekar123
Advanced


Joined: 22 Jul 2005
Posts: 525
Topics: 89
Location: Bangalore India

PostPosted: Mon Aug 10, 2015 1:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12358
Topics: 75
Location: San Jose

PostPosted: Mon Aug 10, 2015 2:22 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
shekar123
Advanced


Joined: 22 Jul 2005
Posts: 525
Topics: 89
Location: Bangalore India

PostPosted: Tue Aug 11, 2015 6:29 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group