Jetty の接続プールから Linear のデータ に接続
CData JDBC Driver for Linear は、Java Web アプリケーションへの統合が簡単です。この記事では、接続プールを設定することで Jetty から Linear のデータ に効率的に接続する方法を説明します。Jetty で Linear 用の JNDI リソースを設定していきましょう。
Linear 用の JDBC Driver を JNDI データソースとして設定
以下のステップで Jetty から Linear に接続します。
Jetty ベースで JNDI モジュールを有効にします。次のコマンドは、コマンドラインから JNDI を有効にします。
java -jar ../start.jar --add-to-startd=jndi- インストールディレクトリの lib サブフォルダにある CData およびライセンスファイルを、コンテキストパスの lib サブフォルダに追加します。
-
リソースとそのスコープを宣言します。リソース宣言に必要な接続プロパティを入力します。次の例では、WEB-INF\jetty-env.xml に Web アプリレベルで Linear データソースを宣言しています。
<Configure id='lineardemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="lineardemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="lineardemo"/></Arg> <Arg>jdbc/lineardb</Arg> <Arg> <New class="cdata.jdbc.linear.LinearDriver"> <Set name="url">jdbc:linear:</Set> <Set name="AuthScheme">APIKey</Set> <Set name="APIKey">myAPIKey</Set> </New> </Arg> </New> </Configure>Linear への認証には、個人用 API キーまたは OAuth 2.0 を使用できます。ご自身の Linear アカウントで接続する場合は、API キーを使うのが最も手軽です。
API キーによる認証
以下の接続プロパティを設定します。
- AuthScheme:APIKey に設定します。
- APIKey:Linear の個人用 API キー。
個人用 API キーを作成するには、Linear にログインして Settings > Security & access > Personal API keys を開き、New API key を選択して作成します。キーは一度しか表示されないため、すぐにコピーしておきましょう。
OAuth による認証
OAuth を使用するには、Linear にカスタム OAuth アプリケーションを登録する必要があります(Settings > API > OAuth applications)。登録すると OAuthClientId と OAuthClientSecret が発行されます。対応しているフローは以下の 2 つです。
- Authorization code:AuthScheme を OAuth、InitiateOAuth を GETANDREFRESH に設定し、OAuthClientId、OAuthClientSecret、およびアプリケーションで定義した CallbackURL(例:http://localhost:33333)を指定します。ドライバーがブラウザで Linear を開くので、アクセスを許可してください。
- Client credentials:AuthScheme を OAuthClient に設定し、OAuthClientId と OAuthClientSecret を指定します。アプリケーション自体を認証するためブラウザ操作は不要で、マシン間(M2M)連携に適しています。
デフォルトでは、ドライバーは read,write スコープをリクエストします。アクセストークンは有効期限が切れると自動で更新されます。
-
Web.xml でリソースを設定します。
jdbc/lineardb javax.sql.DataSource Container -
これで、java:comp/env/jdbc/lineardb をルックアップして Linear にアクセスできます。
InitialContext ctx = new InitialContext(); DataSource mylinear = (DataSource)ctx.lookup("java:comp/env/jdbc/lineardb");
Jetty 統合の詳細
上記のステップでは、シンプルな接続プールのシナリオでドライバーを設定する方法を説明しました。その他のユースケースや詳細については、Jetty ドキュメントのWorking with Jetty JNDI の章を参照してください。