How to install and configure IDMS Server on the mainframe and ODBC JDBC
search cancel

How to install and configure IDMS Server on the mainframe and ODBC JDBC

book

Article ID: 257423

calendar_today

Updated On:

Products

IDMS IDMS - Database

Issue/Introduction

What are the instructions/documentation on installing, configuring and using IDMS Server on the mainframe and ODBC and JDBC access. 

 

Environment

Release : 19.0

Resolution

IDMS Server allows access to an IDMS databases using SQL so you need to have the IDMS SQL option installed as well. 
Access can be from Windows or Unix systems using ODBC or JDBC protocols. 
For information on using IDMS Server see documentation section IDMS Server

Mainframe Configuration

For Mainframe configuration information see documentation section Configure IDMS Server on the Mainframe 

SYSGEN

The default port for the IDMS Server listener is 3709. In the example in the documentation it uses port 3781.
You can use the TSO command NETSTAT to see if any of these ports are in use in your system.

//TSOBATCH     EXEC PGM=IKJEFT01
//SYSTSOUT  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSTSIN   DD *
   NETSTAT CONN (PORT 3709
   NETSTAT CONN (PORT 3781
/*

You can also run the SYSGEN in batch to add the TCP/IP entity, TCP/IP line and terminals, see JCL below.
Refer to documentation section TCP/IP Support for details of the TCP/IP entity.
Change the system number to the one you use:

//SYSGEN   EXEC PGM=RHDCSGEN,REGION=4M                    
//STEPLIB  DD DISP=SHR,DSN=IDMS.R19.DBA.LOADLIB                  
//         DD DISP=SHR,DSN=IDMS.R19.CUSTOM.LOADLIB               
//         DD DISP=SHR,DSN=IDMS.R19.CAGJLOAD                     
//SYSCTL   DD DISP=SHR,DSN=IDMS.R19.SYSCTL                                
//SYSLST   DD SYSOUT=*                                                          
//SYSPCH   DD SYSOUT=*                                                          
//SYSUDUMP DD DUMMY                                                             
//SYSIDMS  DD *                                                                 
DMCL=GLBLDMCL                                                                
/*                                                                              
//SYSIPT   DD *                                                                 
       SIGNON DICTIONARY SYSTEM.                                                 
       SET OPT FOR SESSION DEF ON NO LIST INP 1 THRU 72.                        
       MODIFY SYSTEM xx.                                                       
ADD TCP/IP                                      
       DEFAULT STATUS IS ON  
         DEFAULT TCP_NODELAY OPTION IS OFF            
         DEFAULT STACK IS DEFAULT                     
         MAXIMUM NUMBER OF SOCKETS IS DEFAULT         
         MAXIMUM NUMBER OF SOCKETS PER TASK IS DEFAULT
         PLUGIN MODULE IS RHDCD1IP                    
         SERVICES FILE IS OFF.
ADD LINE TCPIP
        TYPE IS SOCKET
        MODULE RHDCD1IP.
  ADD PTERM TCPJSRV
        TYPE IS LISTENER
        PORT IS 3781
        TASK IS RHDCNP3J
        MODE IS SYSTEM
        PARM IS 'TASK=IDMSJSRV'.
  ADD LTERM TCLJSRV
        PTERM IS TCPJSRV.
  ADD  PTERM TCP0001
        TYPE IS BULK
        REPEAT COUNT IS 99.
  ADD LTERM TCL0001
        PTERM IS TCP0001.
 GENERATE.                                                                      
/*                                                                              
//    

RHDCNP3J security

To turn off security for task RHDCNP3J add the following lines to the RHDCSRTT module then assemble and link it.
The module source is in the CUSTOM.SRCLIB.

#SECRTT TYPE=OCCURRENCE,                                               X
               RESNAME='RHDCNP3J',                                     X
               RESTYPE=TASK,                                           X
               SECBY=OFF

The JCL to assemble and link RHDCSRTT is in CAGJSAMP member RHDCSRTT, or see below:

//RHDCSRTT  EXEC HLASMCL                                            
//C.SYSLIB  DD DISP=SHR,DSN=<SYSTEM.MACLIB>                         
//          DD DISP=SHR,DSN=<SYSTEM.MODGEN>                         
//          DD DISP=SHR,DSN=<CAIDMS.CAGJMAC>                        
//          DD DISP=SHR,DSN=<CA.COMMON.SERVICE.MACLIB>              
//C.SYSIN   DD *                                                    
* YOUR RHDCSRTT SOURCE CODE GOES HERE                               
/*                                                                  
//*                                                                 
//L.SYSLMOD DD DISP=SHR,DSN=<YOUR.CUSTOM.LOADLIB>                   
//L.SYSIN   DD *                                                    
 SETOPT PARM(REUS(REFR))                                            
 ORDER   RHDCSRTT                                                   
 ENTRY   SRTTEP1                                                    
 NAME    RHDCSRTT(R)                                                
/*                                                                  
// 

The sample JCL is also in documentation section z/OS - JCL              

STARTUP JCL

The IDMS CV startup JCL also needs to have a SYSTCPD dataset defined:

//SYSTCPD  DD DISP=SHR,DSN=VTAM.TCPIP.TCPIP.DATA

See documentation section Configure Your IDMS System to Use TCP/IP.

 

Verifying Mainframe Configuration

Once the CV is cycled with the correct definitions you can verify the SRTT with:
DCMT D SRTT

At startup, you should see the following:

DC390015 V19 OPENING LINE TCPIP

DC088071 V19 T0 Initialization TCP/IP environment started.      
DC088024 V19 T0 Starting checking status of TCP/IP stack TCPxxxx
DC088025 V19 T0 Status of TCP/IP stack TCPxxxx is active

DC088072 V19 T0 Initialization TCP/IP environment completed. TCP/IP is active.

DC013004 V19 T0 ATTACHING DRIVER FOR LINE TCPIP                       
                     
DC088001 V19 T25 Line TCPIP Pterm TCPJSRV listener initiated on port 03716    
   

DCMT D TCPIP  should show it as active

DCMT D LINE TCPIP should show the line as INSRV 

TCPJSRV  should match the port you defined on the line with the startup message shown above.

TCPJSRV  TCPJSRV  LIST   InSrv  03716   

 

Download Latest version of the ODBC and JDBC drivers

The latest published PTF for IDMS Server contains the latest version of the ODBC and JDBC drivers.
Currently as of September 2023 it is PTF LU10148.

 

Testing with IDMSJCF tool

Once the above is verified you are ready to test with the IDMSJCF tool, which comes with IDMS Server on Windows.  
It comes as a jar file which you can run directly from the shortcut in the IDMS Server menu.

In windows:

  • click on the Start button
  • expand CA IDMS Server 17.1 (64-Bit)
  • click on JCF Demo App
  • in the app click on Connect
  • by default it uses a data source called JdbcTest. You should define this in the odbc administrator. Under Database: you see jdbc:idms:JdbcTest
  • you can instead code the data source in the Database, an example JAVA URL connection for our test system:
    jdbc:idms://MVS31:3716/sysdict     

    Port can be gotten from the line, DCMT D LINE TCPIP (in this example it is 3716)

    Hostname can be gotten from the SYSTCPD dataset in the startup jcl which in this example is MVS31.  Followed by the default dictionary (in this example it is sysdict). 

You must include the appropriate SQL definitions in the default dictionary associated with the URL. The SQL definitions reside in the catalog area of the dictionary.

Once it's connected, verify you can access IDMS SQL tables from the IDMS mainframe databases. In the JCF Demo App panel, enter the command:

SELECT * FROM SYSTEM.TABLE

Press the Execute button to run the command and receive the output.

 

ODBC Configuration

For ODBC configuration information see documentation section Configure IDMS Server on Windows

JDBC

To use JDBC on windows or Unix there is nothing to configure on the client side.

The JDBC driver supports Type 4 connections which communicate directly to IDMS using TCP/IP.
See the explanation in section Components. You would need to code a program that uses JDBC to access the IDMS database. The program logic would be in the JDBC program. See the documentation section JDBC Programmer Reference. We also supply some sample programs, see documentation section Sample Programs