This tutorial takes you through each step in the process of migrating a mainframe-based DB2 table on the mainframe to a local
                  SQL Server using Mainframe Batch Database Tools (MBDT). This process can be done for all the tables in your DB2 database.
                  
                  	  
               
            
 
            	 
            Note: This is a technology preview feature only. It is being made available to allow you to test and provide feedback on this new
               capability; however, this feature is not intended for production use and it is not supported as such. 
               		   
               		
            
 
            	 
            
               Requirements
 
               		 
               		
               You must have the 
                  		  Micro Focus Rumba product installed and have it configured to connect to your mainframe. 
                  		
               
 
               		
               Before attempting this tutorial, you must first complete the following tutorials to ensure you have an established SQL Server
                  database named HCO_Test and a connection to that database: 
                  		
                  
 
                     		  
                     - Tutorial: Create a SQL Server Database 
                        		  
                     
- Tutorial: Create a SQL Server Database Connection 
                        		  
                     
  
            	 
            
               Phase 1: Create a SQL Server schema
 
               		 
               		
               You need to create a schema in SQL Server where you can place your migrated DB2 tables. 
                  		
               
 
               		
                
                  		  
                  - Using SQL Server Management Studio, create a SQL Server schema named 
                     			 DSN8910. 
                     		  
                  
  
            	 
            
               Phase 2: Create unloaded data and the LOAD control statement on the mainframe with DB2
 
               		 
               		
               Here, you UNLOAD the sample table, DSN8910.EMP, using 
                  		  Micro Focus 
                  		  Rumba to create and submit the appropriate JCL. 
                  		
               
 
               		
                
                  		  
                  - Start 
                     			 Rumba from your desktop by navigating to and selecting 
                     			 Micro Focus Rumba Desktop from the 
                     			 Start menu or by selecting the 
                     			 Micro Focus Rumba Desktop tile from the 
                     			 Start page, depending on your Windows version. 
                     		  
                  
- In the 
                     			 Create New Session group, click 
                     			 Mainframe Display. 
                     		  
                  
- Click 
                     			 Connection > Connect to start a mainframe session. 
                     		  
                  
- In the 
                     			 Application field, type 
                     			 TSO; then press 
                     			 Return. 
                     		  
                  
- Type your mainframe user ID; then press 
                     			 Return. 
                     		  
                  
- In the 
                     			 Password field, type your mainframe password; then press 
                     			 Return. 
                     		  
                  
- In the 
                     			 Option field, type 
                     			 2; then press 
                     			 Return. 
                     		  
                  
- In the 
                     			 Member field of the Edit Entry Panel, type 
                     			 EMPDEMO to create the JCL; then press 
                     			 Return. 
                     		  
                  
- Code the JCL required to unload the data from the DSN8910.EMP table using DSNUTILB, and to download the LOAD control statement.
                     For example, here you use the following z/OS mainframe job where the mainframe user is MFIXCH: 
                     			 //MFIXCH02 JOB (DB2JOB),'DB2 JOB',REGION=4M,    
//     CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1) 
//UNLOAD1  EXEC PGM=DSNUTILB,REGION=0M,PARM='DB9R,MFIXCH' 
//STEPLIB  DD DSN=DSN910.SDSNLOAD,DISP=SHR
//SYSREC   DD DSN=MFIXCH.UTILBTS.SYSREC1,                           
//       DISP=(MOD,CATLG),                            
//       UNIT=SYSDA,SPACE=(CYL,(1,1))     
//SYSPUNCH DD DSN=MFIXCH.UTILBTS.PUNCH1,    
//       UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(MOD,CATLG) 
//SYSPRINT DD SYSOUT=* 
//UTPRINT  DD  DUMMY 
//SORTOUT  DD  UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 
//SYSDISC  DD  DUMMY
//SYSERR   DD  UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)                  
//SYSMAP   DD  UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)                  
//SYSUT1   DD  UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)                  
//SYSIN    DD *                                                         
UNLOAD DATA FROM TABLE DSN8910.EMP                                      
/*                                                                      
// 
- To save and submit your JCL, enter 
                     			 SAVE into the 
                     			 Command field, and then enter 
                     			 SUB into the 
                     			 Command field. 
                     		  
                  
  
            	 
            
               Phase 3: Create and configure an enterprise server instance
 
               		 
               		
               Now you want to use 
                  		  Enterprise Server to create an 
                  		  enterprise server instance with Mainframe Subsystem (MSS). MSS enterprise servers support JCL applications in 
                  		  Enterprise Developer. 
                  		
               
 
               		
                
                  		   
                  			 
                  - Create an MSS enterprise server instance 
                     			 
                  
-  
                     				
                      
                     			 
                  
- Set up XA resources 
                     			 
                  
- Now that the enterprise server is created and started, you need to set up the XA resources. 
                     				
                      
                        				  
                        - Ensure that you have returned to the 
                           					 Enterprise Server Administration 
                           					 Home page. 
                           				  
                        
- Click the 
                           					 Details button that corresponds to the started DSNUTILS enterprise server. 
                           				  
                        
- Click 
                           					 Server > Properties > XA Resources; then click 
                           					 Add. 
                           				  
                        
- Populate the fields on the XA Resources tab as follows: 
                           					 
                           
                               
                                 						  
                                  
                                    							 
                                     
                                       								
                                       | ID | HCOD |   
                                       								
                                       | Name | HCODEMO |   
                                       								
                                       | Module | esodbcxa.dll |   
                                       								
                                       | Open string | DSN=HCODEMO |  
 
 
- Click 
                           					 Add to complete the XA resources setup. 
                           				  
                        
 
- Create aliases for MBDT 
                     			 
                  
-  
                     				
                      
                        				  
                        - Click 
                           					 Server > Control; then click 
                           					 ES Monitor and Control. 
                           				  
                        
- From the 
                           					 Resources menu in the left pane, click 
                           					 JES; then click 
                           					 Alias. 
                           				  
                        
- Create the following aliases: 
                           					 
                           
                              
                                  
                                    							 
                                     
                                       								
                                       | Program | Alias |   
                                       								
                                       | HCOTEP2 | SQLTP2 |   
                                       								
                                       | HCOUTILB | SQLUTB |  
 
 
- Click 
                           					 Update to save the aliases. 
                           				  
                        
 
  
            	 
            
               Phase 4: Copy the LOAD control statement 
 
               		 
               		
               In this phase, you copy the LOAD control statement from the mainframe to your Windows machine using 
                  		  Micro Focus 
                  		  Mainframe Access 
                  		  Drag and Drop. 
                  		
               
 
               		
                
                  		  
                  - Start Windows Explorer, and browse to the 
                     			 %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\bin directory. 
                     		  
                  
- Double-click 
                     			 mfdasmx.exe to launch 
                     			 Micro Focus 
                     			 Mainframe Access 
                     			 Drag and Drop. 
                     		  
                  
- In the 
                     			 User Identification field, type your mainframe user ID. 
                     		  
                  
- In the 
                     			 Current field, type your mainframe password. 
                     		  
                  
- In the 
                     			 Catalog search criteria field, enter the PDS prefix for the PDS that contains your LOAD control statement; then click 
                     			 OK. 
                     		  
                  
- Click 
                     			 Configure > Options. 
                     		  
                  
- In the 
                     			 EBCDIC/ASCII translation group, check 
                     			 Sequential; then click 
                     			 OK. 
                     		  
                  
- Drag and drop the 
                     			 mainframeID.UTILBTS.PUNCH1 file from the right pane to a destination folder in the left pane. 
                     		  
                  
- Click 
                     			 OK on each popup notice. 
                     		  
                  
- Close 
                     			 Mainframe Access 
                     			 Drag and Drop. 
                     		  
                  
  
            	 
            
               Phase 5: Copy and catalog the unloaded DB2 data 
 
               		 
               		
               Using 
                  		  Micro Focus 
                  		  Mainframe Access command-line tools, you copy the unloaded DB2 data to your Windows machine, and catalog the data there. 
                  		
               
 
               		
                
                  		  
                  - Start an 
                     			 Enterprise Developer command prompt as an administrator. If you need instructions, see 
                     			 To start an 
                        				Enterprise Developer command prompt as an administrator.
                     		  
                  
- At the command prompt, enter the following to copy the unloaded data in 
                     			 mainframeID.UTILBTS.SYSREC1 to a data file, 
                     			 DSN8910_EMP.DAT, and catalog 
                     			 mainframeID.UTILBTS.SYSREC1 in your DSNUTILS 
                     			 enterprise server instance: 
                     			 MFDAS IMPORT datFilePath\DSN8910_EMP.DAT FROM AUTO 
mainframeID.UTILBTS.SYSREC1 /CATLOC=ESWorkArea\DSNUTILS\catalog.dat Where: 
                        			 
                         
                            
                              				  
                               
                                 					 
                                  
                                    						
                                    | mainframeID | The dataset qualifier |   
                                    						
                                    | datFilePath | The local path to the directory where you want to store the extracted data file |   
                                    						
                                    | DSN8910_EMP.DAT | The name of the data file containing extracted data |   
                                    						
                                    | ESWorkArea | Your Enterprise Server WORKAREA folder, which by default is 
                                       						  %USERPROFILE%\Documents\Micro Focus User\Enterprise Developer\WORKAREA |   
                                    						
                                    | DSNUTILS | The name of your enterprise server instance |   
                                    						
                                    | catalog.dat | The name of the enterprise server catalog data file |  
 
  After the command has completed, the 
                        			  mainframeID.UTILBTS.SYSREC1 data set has been copied to the 
                        			  DSN8910_EMP.DAT file and cataloged as 
                        			  mainframeID.UTILBTS.SYSREC1 in your enterprise server. 
                        			 
                      
  
            	 
            
                Phase 6: Load the SQL Server database 
 
               		 
               		
               To enhance the performance of LOAD DATA into SQL Server databases, you divide the creation of schema objects into two steps.
                  In the first DSNTEP2 step, before you load the actual data, you create tables and primary keys only, because when creating
                  primary keys, SQL Server automatically creates a clustered index for each primary key. A clustered index helps the performance
                  of LOAD DATA and minimizes the use of disk space. In another step you create constraints and indexes. After you load the data,
                  you execute another DSNTEP2 step where you create constraints and indexes. 
                  		
               
 
               		
                
                  		   
                  			 
                  - Create 
                     				a Visual Studio project 
                     			 
                  
-  
                     				
                      
                        				  
                        - Start 
                           					 Enterprise Developer. 
                           				  
                        
- Click 
                           					 File > New > 
                              					  
                           					 Project. 
                           				  
                        
- Expand 
                           					 COBOL > Native > Mainframe Subsystem Application. 
                           				  
                        
- In the 
                           					 Name field, type 
                           					 JCL1; then click 
                           					 OK to create a new JCL application project. 
                           				  
                        
- From the Solution Explorer, right-click the 
                           					 JCL1 project; then select Add > New Folder. 
                           				  
                        
- Name the new folder 
                           					 JCL. 
                           				  
                        
 
- Associate the DSNUTILS enterprise server with the JCL1 project 
                     			 
                  
-  
                     				
                      
                        				   
                        				  
                        - From Server Explorer, expand 
                           					 Localhost 
                           					 under 
                           						Micro Focus Servers to see a list of available enterprise servers. 
                           				  
                        
- Right-click the 
                           					 DSNUTILS enterprise server; then click 
                           					 Associate with project > JCL1. 
                           				  
                        
- If not already started, right-click the 
                           					 DSNUTILS enterprise server; then select 
                           					 Start. If this is the first time you start the server you see a sign-on dialog box. Select 
                           						  Store Credentials to skip this step in the future, and click 
                           						  OK to continue. 
                           						 
                           				  
                        
 
- Run the MBDT Configuration Utility 
                     			 
                  
-  
                     				
                      
                        				  
                        - From 
                           					 Enterprise Developer, click 
                           					 View > Micro Focus SQL Tools > MBDT Configuration Utility. 
                           				  
                        
- In the 
                           					 Database Selection group, select 
                           					 HCOSS 
                           				  
                        
- Click 
                           					 Save to exit the MBDT Configuration Utility. 
                           				  
                        
 
- Create DB2 tables in the SQL Server database using SQLTP2 
                     			 
                  
- The SQLTP2 utility creates the appropriate DB2 tables in your new SQL Server database. You execute the SQLTP2 alias in JCL
                     using the HCOTEP2 program name. In this phase, you create the JCL in your 
                     				JCL1 project, and execute it from your 
                     				JCL1 project. 
                     				
                      
                        				  
                        - From the 
                           					 Solution Explorer, right-click the 
                           					 new 
                           						JCL folder, and select 
                           					 Add > New Item. 
                           				  
                        
- Expand COBOL > Native, and select 
                           					 JCL File Template. 
                           				  
                        
- In the 
                           					 Name field, type 
                           					 JCLTEP2.jcl; then click 
                           					 Add. 
                           				  
                        
- Open the 
                           					 JCLTEP2.jcl file, and replace its contents with the JCLTEP2 job shown below. This assumes you have setup the XA resource HCOD and created
                           alias SQLTP2 for program HCOTEP2, all of which is required for successful execution later: 
                           					 //JCLTEP2  JOB 
//RESETDB  EXEC PGM=IKJEFT01
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSPUNCH DD  SYSOUT=*                                
//SYSREC00 DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//SYSTSIN  DD  *
 DSN SYSTEM(HCOD)
 RUN  PROGRAM(HCOTEP2)
 END
/*
//SYSIN DD *
CREATE TABLE DSN8910.EMP (
    EMPNO       CHAR(6) NOT NULL,
    FIRSTNME    VARCHAR(12) NOT NULL,
    MIDINIT     CHAR(1) NOT NULL,
    LASTNAME    VARCHAR(15) NOT NULL,
    WORKDEPT    CHAR(3),
    PHONENO     CHAR(4),
    HIREDATE    DATE,
    JOB         CHAR(8),
    EDLEVEL     SMALLINT,
    SEX         CHAR(1),
    BIRTHDATE   DATE,
    SALARY      DECIMAL(9,2),
    BONUS       DECIMAL(9,2),
    COMM        DECIMAL(9,2),
    PRIMARY KEY (EMPNO)
)
IN DATABASE DBNATS;
/*
//  
- Save and close the JCL file. 
                           				  
                        
- In the 
                           					 Solution Explorer, right-click 
                           					 JCLTEP2.jcl; then select 
                           					 Submit JCL from the context menu. 
                           				  
                        
- When the job has completed, open SQL Server Management Studio and verify that the DSN8910.EMP table and clustered index definitions
                           are correct. 
                           				  
                        
 
- Load DB2 Data into SQL Server 
                     			 
                  
- Now you load the DB2 data into the new SQL Server database using SQLUTB with the LOAD card generated on the mainframe. 
                     				
                      
                        				  
                        - From the 
                           					 Solution Explorer, right-click the 
                           					 new 
                           						JCL folder, and select 
                           					 Add > New Item. 
                           				  
                        
- Expand COBOL > Native, and select 
                           					 JCL File Template. 
                           				  
                        
- In the 
                           					 Name field, type 
                           					 JCLUTILB.jcl; then click 
                           					 Add. 
                           				  
                        
-  Open the 
                           					 JCLUTILB.jcl file, and replace its contents with the JCLUTILB job shown below, replacing MFIXCH with your 
                           					 mainframeID. This assumes you have setup the XA resource HCOD and created alias SQLUTB for program HCOUTILB, all of which is required
                           for successful execution later: 
                           					 //JCLUTILB JOB 
//DSNUPROC EXEC PGM=HCOUTILB,PARM='HCOD,SH      '
//*
//SYSPRINT DD   SYSOUT=*
//UTPRINT  DD   SYSOUT=*
//SYSUDUMP DD   SYSOUT=*
//STPRIN01 DD   SYSOUT=*
//IDIOFF   DD   DUMMY
//*
//SYSUT1   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSUT1
//SORTOUT  DD   DISP=MOD,DSN=SH.DSNUTILB.SYSOUT
//SYSMAP   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSMAP
//SYSERR   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSERR
//SYSREC   DD   DISP=SHR,DSN=MFIXCH.UTILBTS.SYSREC1
//SYSIN    DD   *
LOAD DATA INDDN SYSREC LOG NO RESUME NO REPLACE 
EBCDIC  CCSID(00037,00000,00000)
 INTO TABLE
 "DSN8910".
 "EMP"
 WHEN(00001:00002) = X'0012'
 NUMRECS                   42
 ( "EMPNO"
  POSITION(  00003:00008) CHAR(00006)
 , "FIRSTNME"
  POSITION(  00009:00022) VARCHAR
 , "MIDINIT"
  POSITION(  00023:00023) CHAR(00001)
 , "LASTNAME"
  POSITION(  00024:00040) VARCHAR
 , "WORKDEPT"
  POSITION(  00042:00044) CHAR(00003)
                          NULLIF(00041)=X'FF'
 , "PHONENO"
  POSITION(  00046:00049) CHAR(00004)
                          NULLIF(00045)=X'FF'
 , "HIREDATE"
  POSITION(  00051:00060) DATE EXTERNAL
                          NULLIF(00050)=X'FF'
 , "JOB"
  POSITION(  00062:00069) CHAR(00008)
                          NULLIF(00061)=X'FF'
 , "EDLEVEL"
  POSITION(  00071:00072) SMALLINT
                          NULLIF(00070)=X'FF'
 , "SEX"
  POSITION(  00074:00074) CHAR(00001)
                          NULLIF(00073)=X'FF'
 , "BIRTHDATE"
  POSITION(  00076:00085) DATE EXTERNAL
                          NULLIF(00075)=X'FF'
 , "SALARY"
  POSITION(  00087:00091) DECIMAL
                          NULLIF(00086)=X'FF'
 , "BONUS"
  POSITION(  00093:00097) DECIMAL
                          NULLIF(00092)=X'FF'
 , "COMM"
  POSITION(  00099:00103) DECIMAL
                          NULLIF(00098)=X'FF'
 )
 
/*
//
- Save and close the JCL file. 
                           				  
                        
- In the 
                           					 Solution Explorer, right-click 
                           					 JCLUTILB.jcl; then select 
                           					 Submit JCL from the context menu. 
                           				  
                        
- When the job has completed, open SQL Server Management Studio and verify that the data in 
                           					 mainframeID.UTILBTS.SYSREC1 has been successfully loaded into the DSN8910.EMP table. 
                           				  
                        
 
- Execute DDL to create DB2 constraints and indexes 
                     			 
                  
- You execute SQLTP2 again to create the DB2 constraints and indexes in the SQL Server database. 
                     				
                      
                        				  
                        - From the 
                           					 Solution Explorer, right-click the 
                           					 new 
                           						JCL folder, and select 
                           					 Add > New Item. 
                           				  
                        
- Expand COBOL > Native, and select 
                           					 JCL File Template. 
                           				  
                        
- In the 
                           					 Name field, type 
                           					 JCLINDX.jcl; then click 
                           					 Add. 
                           				  
                        
-  
                           					 
                            Open the 
                              						JCLINDX.jcl file, and replace its contents with the JCLINDX job shown below: 
                              					 
                            //JCLINDX JOB 
//RESETDB  EXEC PGM=IKJEFT01
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSPUNCH DD  SYSOUT=*                                
//SYSREC00 DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//SYSTSIN  DD  *
 DSN SYSTEM(HCOD)
 RUN  PROGRAM(HCOTEP2)
 END
/*
//SYSIN DD *
ALTER TABLE DSN8910.EMP
   ADD CONSTRAINT MIN_SALARY CHECK (SALARY > 15000.00);  
CREATE INDEX DSN8910.XEMP2 ON DSN8910.EMP(WORKDEPT);
/*
//  
- Save and close the JCL file. 
                           				  
                        
- In the 
                           					 Solution Explorer, right-click 
                           					 JCLINDX.jcl; then select 
                           					 Submit JCL from the context menu. 
                           				  
                        
- When the job has completed, open SQL Server Management Studio and verify the constraints and indexes under the DSN8910.EMP.
                           In particular, see that the DSN8910 qualifier in the XEMP2 index has been removed in SQL Server.