Jetty の接続プールから JD Edwards のデータ に接続
CData JDBC Driver for JD Edwards は、Java Web アプリケーションへの統合が簡単です。この記事では、接続プールを設定することで Jetty から JD Edwards のデータ に効率的に接続する方法を説明します。Jetty で JD Edwards 用の JNDI リソースを設定していきましょう。
JD Edwards 用の JDBC Driver を JNDI データソースとして設定
以下のステップで Jetty から JD Edwards に接続します。
Jetty ベースで JNDI モジュールを有効にします。次のコマンドは、コマンドラインから JNDI を有効にします。
java -jar ../start.jar --add-to-startd=jndi- インストールディレクトリの lib サブフォルダにある CData およびライセンスファイルを、コンテキストパスの lib サブフォルダに追加します。
-
リソースとそのスコープを宣言します。リソース宣言に必要な接続プロパティを入力します。次の例では、WEB-INF\jetty-env.xml に Web アプリレベルで JD Edwards データソースを宣言しています。
<Configure id='jdedwardsdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="jdedwardsdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="jdedwardsdemo"/></Arg> <Arg>jdbc/jdedwardsdb</Arg> <Arg> <New class="cdata.jdbc.jdedwards.JDEdwardsDriver"> <Set name="url">jdbc:jdedwards:</Set> <Set name="URL">https://your-jde-environment-app.example.com</Set> <Set name="User">admin</Set> <Set name="Password">myPassword</Set> </New> </Arg> </New> </Configure>ドライバーは Application Interface Services(AIS)Server を経由して JD Edwards に接続します。以下の接続プロパティを設定します。
- URL:AIS Server のベース HTTPS URL(例:https://jde-ais.example.com:8300)。
- User:JD Edwards のユーザー名。
- Password:JD Edwards のパスワード。
- Environment(オプション):使用する JD Edwards の環境(例:本番環境なら PD920、開発環境なら DV920)。指定しない場合は、AIS Server のデフォルト環境が使用されます。
- Role(オプション):セッションで使用する JD Edwards のロール。指定しない場合は、AIS Server のデフォルトロールが使用されます。
- DeviceName(オプション):接続元のデバイスまたはアプリケーションの識別子。AIS Server での監査やログ記録に使用されます。
- Jasserver(オプション):リクエストのルーティング先となる Java Application Server(JAS)インスタンス。クラスタ環境で便利です。
公開するデータの選択
JD Edwards ではテーブルとビジネスビューが System Code ごとに整理されており、ドライバーは各 System Code をそれぞれ個別のスキーマとして公開します。利用できるスキーマは、以下のプロパティで制御できます。
- DataModel:System Code をスキーマとして公開する ERP モジュール(カンマ区切りで複数指定可)。接続先インスタンスのすべての System Code を公開する場合は All を指定します。デフォルトは FinancialManagement です。
- SystemCodes:DataModel の System Code に加えて公開したい System Code のカンマ区切りリスト(例:42,43)。
接続時、ドライバーは認証情報を AIS Server に送信してセッショントークンを取得し、キャッシュします。セッションの有効期限が切れる前に、新しいトークンが自動でリクエストされます。
-
Web.xml でリソースを設定します。
jdbc/jdedwardsdb javax.sql.DataSource Container -
これで、java:comp/env/jdbc/jdedwardsdb をルックアップして JD Edwards にアクセスできます。
InitialContext ctx = new InitialContext(); DataSource myjdedwards = (DataSource)ctx.lookup("java:comp/env/jdbc/jdedwardsdb");
Jetty 統合の詳細
上記のステップでは、シンプルな接続プールのシナリオでドライバーを設定する方法を説明しました。その他のユースケースや詳細については、Jetty ドキュメントのWorking with Jetty JNDI の章を参照してください。