iSeriesおよびAS/400へのJavaエージェントのインストール

一部のデータベースは、iSeriesおよびAS400のマシンにインストールされています。Oracle Data Integratorの実行エージェントをこれらのマシンにインストールし、次のことを実行できます。

AS/400マシンにOracle Data Integratorの実行エージェントを実装するためのインストール手順は、次のとおりです。

システムの準備

技術上の前提条件

コンポーネント

使用するJavaおよびJDBCコンポーネントは、次のとおりです。

ドライバに関する注意: AS/400からDB2/400に接続する場合、AS/400用のドライバ・ラッパーの使用を検討する必要があります。詳細は、「DB2/400データ・サーバーの作成」を参照してください。

実行エージェントのインストール

ファイルのインストール

  1. AS/400にOracle Data Integratorファイルを格納するためのディレクトリ・ツリーを作成します。

MKDIR DIR('/odi')

MKDIR DIR('/odi/bin')

MKDIR DIR('/odi/lib')

MKDIR DIR('/odi/lib/scripting')

MKDIR DIR('/odi/drivers')

  1. Oracle Data IntegratorのCDの/oraclediディレクトリから、手順1で作成したAS/400のディレクトリに(FTPなどを使用して)ファイルを転送します。
    コピーするファイルの場所は、次のとおりです。

/oracledi/bin/

/oracledi/lib/

/oracledi/lib/scripting(Oracle Data Integratorのスクリプト機能を使用する場合)

/oracledi/drivers(使用するドライバのみコピーが必要)

Javaプログラムの作成

AS/400でのパフォーマンス上の理由から、Javaパッケージ(.class、.jarまたは.zipファイル)はJavaプログラムに変換する必要があります。

.class、.jarまたは.zipファイルからJavaプログラムを作成する手順:
  1. 次のようにCLコマンドを実行します。

CRTJVAPGM CLSF('<.class, .zip or .jar file location>')OPTIMIZE(40)

たとえば、odi.zipファイル(Javaエージェント)からJavaプログラムを作成するには、次のコマンドを実行します。

CRTJVAPGM CLSF('/odi/lib/odi.zip') OPTIMIZE(40)

注意: Javaプログラムの作成は、Javaパッケージの内容によっては長い時間がかかります。実際に使用するクラスのプログラムのみを作成することをお薦めします。

実行エージェントの起動

実行エージェントは、次の2つの方法で起動できます。

JVMバージョンに関する注意: 複数のJavaマシンがAS/400にインストールされている場合、状況によってはJavaコマンドで使用されるJavaのバージョンを強制的に指定する必要があります。
- QSHの場合: バージョンを強制するには、Javaコマンドのフラグ-Djava.version=<java version>-Djava.version=1.3.1など)を使用します。
- OS/400コマンドの場合: JAVAコマンド・パラメータとして-PROP((<property> <value>) (<property> <value>))のようにプロパティを渡します。たとえば、-PROP((java.version 1.3.1)のように指定します。

エージェントの名前付けに関する注意: 通常、AS/400では、エージェントをリスナーとして実行する際にそのエージェントの名前を明示的に指定します。そのため、エージェントの実行時には、エージェントのフラグ-name=<agent name>を使用する必要があります。

エージェントの実行

             PGM        PARM(&NAME &PORT &VERB)

/* Command AGENT */

/* Parameters: */

/*   &NAME: physical name of the agent */

/*   &PORT: port number */

/*   &VERB: verbose mode -V=[1..5] */

/* Example of call: */

/*   CALL PGM(<myLib/myPGM>) PARM('-NAME=myAgt' '-PORT=20910' '-V=5') */

             DCL        VAR(&NAME) TYPE(*CHAR) LEN(128)

             DCL        VAR(&PORT) TYPE(*CHAR) LEN(30)

             DCL        VAR(&VERB) TYPE(*CHAR) LEN(30)

/* All classes below should be compiled */

/* with the CRTJVAPGM command */

/* with optimize 40. */

             DCL        VAR(&PROJ) TYPE(*CHAR) LEN(512) +

                          VALUE('/odi/lib/odi.zip:+

                          /odi/lib/sunjce_provider.jar:+

                          /odi/lib/commons-net.jar:+

                          /odi/lib/local_policy.jar:+

                          /odi/lib/jakarta-ant-optional.jar:+

                          /odi/lib/US_export_policy.jar:+

                          /odi/lib/jce1_2_2.jar')

/* Replace the drivers below with your own drivers. */

             DCL        VAR(&JDBC) TYPE(*CHAR) LEN(512) +

                          VALUE('/odi/drivers/jt400Native.jar:+

                          /odi/drivers/snpsdb2.jar:+

                          /odi/drivers/ojdbc14.jar')

/* Build the Java CLASSPATH */

             DCL        VAR(&PATH) TYPE(*CHAR) LEN(1024)

             CHGVAR     &PATH (&PROJ *tcat ':' *tcat &JDBC)

/* Start the Agent */

             SBMJOB     CMD(JAVA CLASS(oracle.odi.Agent) CLASSPATH(&PATH) +

                  PARM('&NAME &PORT &VERB') +

                          OPTIMIZE(40) +

                          OUTPUT(*PRINT))

             ENDPGM                                    

シナリオの実行

             PGM        PARM(&SCEN &VERS &CTX &VERB)

/* Command STARTSCEN */

/* Parameters: */

/*   &SCEN: scenario name */

/*   &VERS: scenario version */

/*   &CTX: context */

/*   &VERB: verbose mode -V=[1..5] */

/* Example of call: */

/*   CALL PGM(<myLib/myPGM>) PARM('myScen' 'myVers' 'GLOBAL' '-V=5') */

             DCL        VAR(&SCEN) TYPE(*CHAR) LEN(30)

             DCL        VAR(&VERS) TYPE(*CHAR) LEN(30)

             DCL        VAR(&CTX) TYPE(*CHAR) LEN(30)

             DCL        VAR(&VERB) TYPE(*CHAR) LEN(30)

/* All classes below should be compiled */

/* with the CRTJVAPGM command */

/* with optimize 40. */

             DCL        VAR(&PROJ) TYPE(*CHAR) LEN(512) +

                          VALUE('/odi/lib/odi.zip:+

                          /odi/lib/sunjce_provider.jar:+

                          /odi/lib/commons-net.jar:+

                          /odi/lib/local_policy.jar:+

                          /odi/lib/jakarta-ant-optional.jar:+

                          /odi/lib/US_export_policy.jar:+

                          /odi/lib/jce1_2_2.jar')

/* Replace the drivers below with your own drivers. */

             DCL        VAR(&JDBC) TYPE(*CHAR) LEN(512) +

                          VALUE('/odi/drivers/jt400Native.jar:+

                          /odi/drivers/snpsdb2.jar:+

                          /odi/drivers/ojdbc14.jar')

/* Adapt all parameters below to your environment before use. */

             DCL        VAR(&DRV) TYPE(*CHAR) LEN(128) +

                          VALUE('-SECU_DRIVER=com.ibm.as400.access.AS400JDBCDriver')

             DCL        VAR(&URL) TYPE(*CHAR) LEN(128) +

                          VALUE('-SECU_URL=jdbc:as400://195.10.10.13;libraries=ODI')

             DCL        VAR(&USER) TYPE(*CHAR) LEN(30) +

                          VALUE('-SECU_USER=QSECOFR')

             DCL        VAR(&PASS) TYPE(*CHAR) LEN(128) +

                          VALUE('-SECU_PASS=XYZ')

             DCL        VAR(&WREP) TYPE(*CHAR) LEN(30) +

                          VALUE('-WORK_REPOSITORY=WORKREP1')

             DCL        VAR(&SUSER) TYPE(*CHAR) LEN(30) +

                          VALUE('-ODI_USER=SUPERVISOR')

             DCL        VAR(&SPASS) TYPE(*CHAR) LEN(128) +

                          VALUE('-ODI_PASS=XYZ')

             DCL        VAR(&PATH) TYPE(*CHAR) LEN(1024)

/* Build the Java CLASSPATH */

             DCL        VAR(&PATH) TYPE(*CHAR) LEN(1024)

             CHGVAR     &PATH (&PROJ *tcat ':' *tcat &JDBC)

/* Execute the Scenario */

             SBMJOB     CMD(JAVA CLASS(oracle.odi.Agent) CLASSPATH(&PATH) +  

                          PARM(&DRV &URL &USER &PASS &WREP &SUSER &SPASS +

                          SCEN &SCEN &VERS &CTX &VERB))

             ENDPGM

注意: 指定するパスワードは、コマンドagent ENCODE <password>を使用して暗号化する必要があります。