タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】SQLRPGLE-リモートAS400へのアクセス

AS400複数台存在する場合に、リモートのRDBSへアクセスすることが可能です。
簡単ですが、その方法をまとめます。

準備作業

(1) ローカル:遠隔RDBの登録

  • WRKRDBDIREコマンドでリモートAS400RDBを登録します。
                     リレーショナル・データベース・ディレクトリー 項目の処理
                       
 位置指定 . . . . . . . . 
                               
 オプションを入力して,実行キーを押してください。
   1= 追加   2= 変更   4= 除去   5= 明細の表示   6= 明細の印刷 
                             
                          リモート・     
 OPT   項目               ロケーション                     テキスト 
                                               
      MAIN               *LOCAL 
      BRANCH             172.17.0.2 <===(追加)
                                    
                                    
                                    
                                   
                                       
                                        
                                          
                                          
                                           
                                                                        終わり
 F3= 終了   F5= 最新表示   F6= リストの印刷   F12= 取り消し  
 F22= 全フィールドの表示                   
 (C) COPYRIGHT IBM CORP. 1980, 2009.     

(2) リモート:ライブラリー作成

  • ローカル側で実行するSQLRPGオブジェクトが保存されているライブラリーをリモート側にも作成しました(理由が、いまいちわからず・・・)。
  • 私の実施した環境では、SQLRPG初回実行時に、リモート側でSQLパッケージ(*SQLPKG)が作成されていました。
CRTLIB LIB(TIGEROBJ) TEXT(*BLANK)   

SQLRPG-接続・切断

     D W@RDBN          S             10A   INZ('BRANCH    ')
     D W@USER          S             10A   INZ('USERID    ')
     D W@PASS          S             10A   INZ('PASSWORD  ')
         
                                                                  
       //** 接続処理 **      
        EXEC SQL                                          
            SET CONNECT TO :W@RDBN USER:W@USER USING:W@PASS;       

       //** 切断処理 **    
        EXEC SQL                              
            DISCONNECT :W@RDBN;               

※なお、CRTSQLRPGIコマンド時に、RDB、USER、PASSWORDを指定することもできます。とはいえ、*DTAARAやテーブルにてリモート接続情報を保存して、ソース内部から接続処理を行わせたほうが、運用上楽でしょう。

                    SQL ILE RPG オブジェクト の作成  (CRTSQLRPGI) 
                                                
  選択項目を入力して,実行キーを押してください。  
                                                          
  オブジェクト  . . . . . . . . . OBJ          > SAMPLE_RM  
    ライブラリー  . . . . . . . .              >   TIGEROBJ  
  ソース・ファイル  . . . . . . . SRCFILE      > RPGLESRC  
    ライブラリー  . . . . . . . .              >   TIGER   
  ソース・メンバー  . . . . . . . SRCMBR       > SAMPLE_RM   
  ソース・ストリーム・ファイル    SRCSTMF                 
                                                          
  コミットメント制御  . . . . . . COMMIT         *CHG        
  リレーショナル・データベース    RDB          > BRANCH     <<<<<<<<<<<<<
  コンパイル・タイプ  . . . . . . OBJTYPE      > *PGM    
  出力リスト  . . . . . . . . . . OUTPUT         *NONE    
  テキスト ' 記述 ' . . . . . . . TEXT           *SRCMBRTXT 
                                                               
 RDB ユーザー   . . . . . . . . . USER           USERID     <<<<<<<<<<<<<    
 RDB ユーザー・パスワード   . . . PASSWORD       PASSWORD   <<<<<<<<<<<<<
                                                                         
                                                                       続く ...
 F3= 終了    F4=プロンプト   F5= 最新表示    F12= 取り消し
 F13= この画面の使用法                    F24= キーの続き