ねら~ITエンジニア雑記

やきうのお兄ちゃんが綴るOracle Databaseメインのブログ

WLS(WebLogic)からAutonomous Database(ATP/ADW)に接続するデータソース(コネクションプール)を作成してみる。

※(2019/7/4追記) 本記事は単体のWLS(WebLogic)からAutonomous Databaseに接続するデータソースを作成する記事として修正しました。

WLS(WebLogic)からAutonomous Databaseに接続するデータソース(コネクションプール)を作成してみるやで彡(゚)(゚)

ポイントは幾つかあって

  • (推奨)最新バージョンの JDBC Driver(Full版)をWLSのOS上に格納(※上書きはしない)して、各種jarのCLASSPATHを通す。
  • (必須)Autonomous Database のウォレットをWLSのOS上に格納する。
  • (必須)ウォレットの格納場所を何かしらの手段で指定する。 ※今回はTNS_ADMINをJDBC URLに指定

と云ったところです。

1. JDBC Driver 19.3 Full版のダウンロード

2019年6月15日現在、Oracle Database JDBC Driver の最新バージョンは 19c(19.3)ですが、
随時更新されるので必ず最新バージョン有無を確認した上で使用して下さい。

Oracle Database 19c (19.3) JDBC Driver & UCP Downloads
https://www.oracle.com/technetwork/database/application-development/jdbc/downloads/jdbc-ucp-19c-5460552.html

幾つか種類が有りますが、WLS12.2.1.3のJDK8に対応した「ojdbc8-full.tar.gz」をダウンロードします。

2. JDBC Driver 19.3 Full版をWLSのOSに格納&展開

ダウンロードした ojdbc8-full.tar.gz を WLS(WebLogic) の OS に格納して展開します。
WLS(WebLogic)の起動ユーザーからアクセス可能なディレクトリ/owner/group/permissionとします。

今回はディレクトリ/u01/app/oracle/tools/home/oracle/work に JDBC Driver を展開します。

su - oracle
/u01/app/oracle/tools/home/oracle
mkdir work
cd work
cp -p 
cp -p /tmp/ojdbc8-full.tar.gz ./
tar xvzf ./ojdbc8-full.tar.gz

/u01/app/oracle/tools/home/oracle/work/ojdbc8-full配下に各種jarファイルが展開されます。

$ pwd
/u01/app/oracle/tools/home/oracle/work/ojdbc8-full
$ ls -la
total 8644
drwxr-x---. 2 oracle oracle    4096 Apr 29 22:16 .
drwxr-x---. 3 oracle oracle    4096 Jun 15 02:39 ..
-r--r-----. 1 oracle oracle 4210517 Apr 24 21:07 ojdbc8.jar
-r-xr-x---. 1 oracle oracle   11596 Apr 24 21:07 ojdbc.policy
-r--r-----. 1 oracle oracle  144681 Apr 24 21:07 ons.jar
-r--r-----. 1 oracle oracle  306004 Apr 24 21:07 oraclepki.jar
-r--r-----. 1 oracle oracle 1661488 Apr 24 21:07 orai18n.jar
-r--r-----. 1 oracle oracle  205154 Apr 24 21:07 osdt_cert.jar
-r--r-----. 1 oracle oracle  306854 Apr 24 21:07 osdt_core.jar
-rw-r-----. 1 oracle oracle    2592 Apr 29 22:16 README.txt
-r-xr-x---. 1 oracle oracle   29205 Apr 24 21:07 simplefan.jar
-r--r-----. 1 oracle oracle 1680074 Apr 24 21:07 ucp.jar
-r--r-----. 1 oracle oracle  262664 Apr 24 21:07 xdb.jar

3. Autonomous DatabaseのWalletファイルをダウンロードして展開

Autonomous DatabaseのWalletファイルについては下記らへんをご参照彡(゚)(゚)

クライアント資格証明(ウォレット)のダウンロード
https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/atpug/connect-download-wallet.html#GUID-B06202D2-0597-41AA-9481-3B174F75D4B1

Python (cx_Oracle) から2つ目のAutonomous Database (ADWやATP)に接続してみる
https://qiita.com/mikika/items/5d157c2fcdd80d560bd4

TableauをOracle Autonomous に繋げてみた
https://qiita.com/daisuke_high_185/items/fca12ae6fbc4c526f821

ダウンロードした Walletを を WLS の OS に格納して展開します。
やはりWLSの起動ユーザーからアクセス可能なディレクトリ/各種権限とします。

今回は /u01/app/oracle/tools/home/oracle/work/wallet に展開します。

su - oracle
cd /u01/app/oracle/tools/home/oracle/work
mkdir wallet
cd wallet
cp -p /tmp/Wallet_DB201906031608.zip ./
unzip Wallet_DB201906031608.zip

/u01/app/oracle/tools/home/oracle/work/wallet配下に各種ファイルが展開されます。

$ pwd
/u01/app/oracle/tools/home/oracle/work/wallet
$ ls -la
total 68
drwxr-x---. 2 oracle oracle  4096 Jun 15 02:54 .
drwxr-x---. 4 oracle oracle  4096 Jun 15 02:53 ..
-rw-r-----. 1 oracle oracle  6661 Jun 15 02:53 cwallet.sso
-rw-r-----. 1 oracle oracle  6616 Jun 15 02:53 ewallet.p12
-rw-r-----. 1 oracle oracle  3242 Jun 15 02:53 keystore.jks
-rw-r-----. 1 oracle oracle    87 Jun 15 02:53 ojdbc.properties
-rw-r-----. 1 oracle oracle   114 Jun 15 02:53 sqlnet.ora
-rw-r-----. 1 oracle oracle  5638 Jun 15 02:53 tnsnames.ora
-rw-r-----. 1 oracle oracle  3336 Jun 15 02:53 truststore.jks
-rw-rw-r--. 1 oracle oracle 19912 Jun 15 02:53 Wallet_DB201906031608.zip
$

4. WLS(WebLogic)起動シェルの編集(CLASSPATHの指定)

WLS(WebLogic)の起動シェルを編集して、JDBC Driverの各種jarをCLASSPATHに通します。
/<任意のディレクトリ>/domains/<ドメイン名>/bin配下のsetDomainEnv.shを編集します。

setDomainEnv.shの下記部分に……彡(゚)(゚)

:
# ADD EXTENSIONS TO CLASSPATHS

if [ "${EXT_PRE_CLASSPATH}" != "" ] ; then
        if [ "${PRE_CLASSPATH}" != "" ] ; then
                PRE_CLASSPATH="${EXT_PRE_CLASSPATH}${CLASSPATHSEP}${PRE_CLASSPATH}"
                export PRE_CLASSPATH
        else
:

下記(EXT_PRE_CLASSPATH)を追記して JDBC Driver の 各種jar を指定します。

:
# ADD EXTENSIONS TO CLASSPATHS

EXT_PRE_CLASSPATH="/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/ojdbc8.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/ucp.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/oraclepki.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/osdt_core.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/osdt_cert.jar:";
export EXT_PRE_CLASSPATH

if [ "${EXT_PRE_CLASSPATH}" != "" ] ; then
        if [ "${PRE_CLASSPATH}" != "" ] ; then
                PRE_CLASSPATH="${EXT_PRE_CLASSPATH}${CLASSPATHSEP}${PRE_CLASSPATH}"
                export PRE_CLASSPATH
        else
:

WLSを停止/起動してjavaプロセスのCLASSPATHをjinfoコマンドで確認。上手く行ってますやね彡(^)(^)

jinfo 5748 | grep -i java.class.path
java.class.path = /u01/app/oracle/tools/home/oracle/work/ojdbc8-full/ojdbc8.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/ucp.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/oraclepki.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/osdt_core.jar:/u01/app/oracle/tools/home/oracle/work/ojdbc8-full/osdt_cert.jar:/u01/app/oracle/middleware/oracle_common/modules/features/com.oracle.db.jdbc7-dms.jar:/u01/jdk/lib/tools.jar:/u01/app/oracle/middleware/wlserver/server/lib/weblogic.jar:/u01/app/oracle/middleware/wlserver/../oracle_common/modules/thirdparty/ant-contrib-1.0b3.jar:/u01/app/oracle/middleware/wlserver/modules/features/oracle.wls.common.nodemanager.jar:/u01/app/oracle/middleware/oracle_common/modules/oracle.jps/jps-manifest.jar:/u01/app/oracle/middleware/oracle_common/modules/internal/features/jrf_wlsFmw_oracle.jrf.wls.classpath.jar:/u01/app/oracle/middleware/wlserver/common/derby/lib/derbyclient.jar:/u01/app/oracle/middleware/wlserver/common/derby/lib/derby.jar:/u01/jdk/lib/tools.jar:/u01/app/oracle/middleware/oracle_common/modules/oracle.jps/jps-manifest.jar

5. WLS(WebLogic)の管理コンソールからデータソースを作成

WebLogic管理コンソールにログインします。 JCS001.jpg

左上の「ロックして編集」をクリックして…… JCS002.jpg

「GridLink for RACデータソースの構成」のリンクをクリック JCS003.jpg

「新規」⇒「GridLinkデータ・ソース」 JCS004.jpg

「名前」⇒任意の文字列、「スコープ」⇒グローバル、「JNDI名」⇒任意の文字列、「データベース・ドライバ」⇒Oracles Driver(thin) for GridLink Connections; JCS005.jpg

「1フェーズ・コミット」以外のチェックは全て無し JCS006.jpg

「完全なJDBC URLの入力」をチェック JCS007.jpg

「完全なJDBC URL」はjdbc:oracle:thin:@<tnsnames.oraの接続文字列>?TNS_ADMIN=<Autonomous DatabaseのWalletを配置したディレクトリ>を指定します。今回はATPのTPサービスに接続します。

jdbc:oracle:thin:@db201906031608_tp?TNS_ADMIN=/u01/app/oracle/tools/home/oracle/work/wallet

「データベース・ユーザー名」はAutonomous Databaseのユーザー名、「パスワード」はAutonomous Databaseユーザーのパスワード、「プロトコル」はTCPoracle.jdbc.DRCPConnectionClassは無し JCS008.jpg

次画面で「すべてのリスナーのテスト」を実行すると、接続テストが成功。やったぜ。彡(^)(^) JCS011.jpg

今回はFAN/ONS関連の設定は無し。 JCS012.jpg

データソースをデプロイするWLSクラスタを選択して、終了 JCS014.jpg

「変更のアクティブ化」を押して完了です。 JCS015.jpg

6. まとめ

基本は以前の記事と同様や!彡(゚)(゚)

Autonomous DB(ADW/ATP) に JavaJDBC Thin Driver で接続してみる。(OCI, Oracle Cloud Infrastructure) https://qiita.com/ora_gonsuke777/items/91ec0e15848a78ede385

WLS(WebLogic)やAutonomous Databaseをどんどん活用してやで彡(^)(^)

7. 参考ドキュメント(※2019/06/17追記)

JDBC ThinドライバでのJDBC URL接続文字列の使用
https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/atpug/connect-jdbc-thin-wallet.html#GUID-F1D7452F-5E67-4418-B16B-B6A7B92F26A4
  
JDBC 18.3を使用したOracle Autonomous DatabaseとJavaの接続性(Oracle ATPまたはOracle ADW)
https://www.oracle.com/technetwork/jp/database/application-development/jdbc/documentation/atp-5073445-ja.html
  
WebLogic Server 10.3.6-12c に同梱された UCP と JDBC ドライバをアップグレードする方法 (ドキュメントID 2005250.1) ※要ログイン
https://support.oracle.com/epmos/faces/DocumentDisplay?id=2005250.1
  
Starting With Oracle JDBC Drivers - Installation, Certification, and More! (Document ID 401934.1) ※要ログイン
https://support.oracle.com/epmos/faces/DocumentDisplay?id=401934.1