Java SEアプリケーション、Java Webアプリケーション(サーブレット)、Java EEコンテナからOracle Database Cloud Serviceにアクセスするには、Oracle JDBCおよびUniversal Connection Pool(UCP)を使用します。以下の手順に従うことで、正常に接続できます。
1. Oracle Cloudでデータベース・インスタンスを作成する
-
データベース・インスタンスを作成済みの場合は、このステップをスキップできます。それ以外の場合は、次の手順に従って新しいデータベース・インスタンスを作成します。
-
Oracle Cloudにサインアップした後、アカウントにログインします(http://cloud.oracle.com)。 ダッシュボードに、「インスタンスの作成」ボタンがあります。そのボタンをクリックし、手順に従ってデータベース・インスタンスを作成します。
-
インスタンスを作成する別の方法として、ダッシュボードで「データベース」を選択し、すべてのデータベース・サービスを一覧表示する「サービス・コンソールを開く」を選択します。 「サービスの作成」ボタンをクリックして、新しいインスタンスを作成します。 「図1: Oracle Databaseサービス・コンソール」を参照してください。
-
データベース・インスタンスが作成されたら、作成された新しいインスタンスをクリックしてデータベースの詳細を確認できます。 たとえば、「図1: Oracle Databaseサービス・コンソール」に示すように「dev」をクリックします。
-
HOSTやIPアドレスは、データベース・インスタンスの詳細情報を表示して取得できます。
-
SERVICE_NAMEも詳細情報セクションに表示されます。データベース・サービス名の形式はpdb.identity-domain.oraclecloud.internalです。
2. ポート1521のブロックを解除する
- Oracle Database Cloud Serviceは、標準のOracle Net Listenerポート(1521)でのOracle Databaseへのアクセスをサポートしています。 データベース・インスタンスが最初に作成されると、ネットワーク・セキュリティを確保するためにOracle Net Listenerポート(1521)がブロックされます。 「図1: Oracle Databaseサービス・コンソール」に示すように「アクセス・ルール」を選択し、SQL*Netで使用されるポート1521を有効化して、このポートのブロックを解除します。

図1: Oracle Databaseサービス・コンソール
3. シンプルなJavaアプリケーションをコンパイルして実行する
- 12.2.0.1 JDBC Thinドライバ(ojdbc8.jar)および12.2.0.1 UCP(ucp.jar)または12.1.0.2 JDBC Thinドライバ(ojdbc7.jar)および12.1.0.2 UCP(ucp.jar)を任意の場所にダウンロードし、その場所をクラスパスに追加します。
-
以下に示すように、ご使用の環境に合わせて接続文字列を設定します。たとえば、デフォルトで使用可能なHRスキーマを使用できます。
例:
DB_USER = "hr"または<作成した任意のユーザー>
DB_PASSWORD = "hr"または<ユーザー作成時に選択したパスワード>
DB_URL = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(HOST=<パブリックIPアドレス>)(PORT=1521)(PROTOCOL=tcp))(CONNECT_DATA=(SERVICE_NAME=PDB1.<アイデンティティ・ドメイン>.oraclecloud.internal)))";
- Javaアプリケーションをコンパイルして実行します。
- [Windows]
java -cp .\lib\ojdbc7.jar;.\lib\ucp.jar UCPSample
-
トラブルシューティングのヒント: データベース・インスタンスが初めて作成された時点では、セキュリティ上の理由によりHRユーザーはロックされています。 アカウントがロックされているというエラーが表示されます。 そのため、HRユーザーをデータベースへの接続に使用する前に、次の手順でHRユーザーのロックを解除してください。
- データベースのコンピュート・ノードにSSH接続します。
- コンピュート・ノードに「oracle」としてログインします。
- SYSTEMユーザーとしてデータベースに接続します:
sqlplus sys as sysdba 。インスタンスの作成時に選択したパスワードを入力します。
- PDBを使用するようにセッションを変更します:
alter session set container=pdb1;
- ユーザー「hr」のロックを解除します:
alter user hr identified by hr account unlock;
4. SSHトンネルを使用してコンピュート・ノードに接続する
SSHトンネルを介して、データベース・インスタンスが実行されているコンピュート・ノードに接続できます。「コンピュート・ノードのポートへのSSHトンネルの作成」の章に記載されている手順に従います。接続後、データベースにアクセスして、新規ユーザーの作成やデータベース・ユーザーのパスワード変更などを行えます。
Database Cloud Serviceのリソース
ヘルプ・センター | ユーザー・ガイド | 新機能 | トラブルシューティングのヒント - マニュアル
その他の開発者向けリソース
JDBCおよびUCPランディング・ページ - ホワイトペーパー、Javadoc、フォーラムなど