
こんにちは、サポート部の Yama-chan です。
前回のブログでは PowerServer プロジェクトの「セキュリティ」ページの設定について、解説しました。今回のブログでは「データベース」ページの設定内容について、解説していきたいと思います。
PowerServer プロジェクトの設定において、データベースへの接続設定は重要なステップになります。また、使用するプロバイダー (接続するデータベース) により、設定項目が異なりますので、注意が必要です。今回は SQL Anywhere を利用する場合の「データベース」ページの設定項目について、解説していきます。
このページでは、アプリケーションがデータベースに接続するために必要な詳細情報 (ホスト名、ユーザー ID、パスワードなど) を設定します。

PowerServer は、SQL Server、Oracle、MySQL、PostgreSQL など様々なデータベースをサポートしています。
プロバイダーを選択すると、データベースの種類に応じた設定項目が表示されます。
PowerServer における「キャッシュ」とは、アプリケーションがデータベースと通信するために必要な情報をまとめて保存・管理する接続情報のコンテナです。PowerServer は、従来のクライアント / サーバー型アプリのようにクライアント PC から直接データベースに接続するのではなく、サーバー (PowerServer) からデータベースへ接続します。そのため、このキャッシュ機能がデータアクセスの要となります。
キャッシュには接続を確立するための様々な詳細設定が保持され、主に以下の情報が含まれています。
| 基本情報 | データベースのホスト名 (IP アドレス)、ポート番号、データベース名 (またはサービス名、データソース名)、プロバイダー (データベースの種類)。 |
| 認証情報 | ログイン用のユーザー ID とパスワード。パスワードは暗号化して保存することも可能です。 |
| プール・タイムアウト設定 | パフォーマンスを最適化するための「接続プーリング」の有効化、最大 / 最小プールサイズ、接続タイムアウト、SQL の実行制限時間を決めるコマンドタイムアウトなどの設定。 |
| セキュリティ設定 | セキュリティ設定: SSL / TLS 接続の要件や、証明書のパスなど、通信の暗号化に関する情報。 |
データベースの接続に必要なアカウント ID となります。
データベースの接続に必要なアカウント パスワードとなります。
通常、PowerServer では「データベース接続キャッシュ」に保存された固定のユーザー名とパスワードを使用して、データベースサーバーに接続します。このオプションを有効にすると、キャッシュされた固定情報の代わりに、アプリケーション実行時にユーザーが提供した動的な資格情報を利用してデータベースにログインできるようになります。
主に、アプリケーションのユーザーごとにデータベースへのアクセス権限を変えたい場合に使用します。 ユーザーがアプリにログインする際に入力した個別の ID とパスワードをデータベース接続の認証にそのまま引き継ぐことができるため、データベース側で細かな権限制御を行っているシステムにおいて非常に有用です。
PowerServer は .NET Core データプロバイダーを使用してデータベースに接続します。「ライセンス条項を表示」をクリックして内容を確認し、「上記のドライバーのライセンス条項を読み、同意します」にチェックを入れます。これで必要に応じて、対応するドライバーパッケージが NuGet サイトから開発用 PC および PowerServer に自動的にダウンロードされ、インストールされます。
「詳細」ボタンをクリックすると、DelimitIdentifier や TrimSpaces など、データベースドライバーの追加の重要な設定を行うことができます。
各種情報を入力した後、[テスト接続] ボタンをクリックして、データベースに正常に接続できるかを必ず確認しましょう。
「詳細」タブでは、アプリケーションが実行される環境に合わせてデータベース接続を柔軟に管理・運用するための設定を行います 。ここでは、主に「DB 接続プロファイル」「キャッシュ構成」「トランザクションからキャッシュへのマッピング」の 3 つを管理します。

DB 接続プロファイルを作成すると、「開発用 (Applications.json) 」「テスト用 (Applications.Test.json) 」「本番用 (Applications.Production.json) 」といったように、環境ごとの設定ファイルが自動で生成され、分離されます。これにより、開発中に誤って本番データベースに接続してしまうような事故を防ぐことができます。プロファイルを切り替える (「現行に設定」ボタンを押す) だけで、プログラム (ソースコード) を一切書き換えることなく、アプリケーションの接続先データベースを安全かつ瞬時に変更できます。
作成した複数の DB 接続プロファイルの中から、現在アプリケーションで使用する (アクティブにする) プロファイルを決定するためのボタンです。これにより、アプリケーションの実行時 (サーバー起動時) に接続するデータベース環境が決定されます。
「新規」ボタンから新しいデータベース接続キャッシュを作成したり、「編集」ボタンから既存のキャッシュの設定を変更したりすることができます。アプリケーションで複数のデータベース (メイン DB とサブ DB など) に接続する必要がある場合は、この画面で複数のキャッシュを作成して管理します。
PowerBuilder アプリケーション内で使用されている各トランザクションオブジェクト (標準の SQLCA など) が、どのデータベース接続キャッシュを使用するかをマッピング (紐付け) するための設定です。アプリケーション内に存在するトランザクションオブジェクト名を入力し、作成済みのデータベースキャッシュから対応するものを選択してマップします。このマッピング設定は PowerServer にデプロイされ、アプリケーションの実行時に適切なデータベース接続を確立するために使用されます。
デフォルトでは、標準の SQLCA トランザクションオブジェクトは作成された最初のキャッシュに自動的にマッピングされます。そのため、単一のデータベースのみを使用するアプリケーションであれば、ここで手動による追加設定は必要ありません。複数のデータベース (メイン DB とサブ DB など) を使用する場合に、追加のトランザクションオブジェクト (sqlca2 など) を手動でマップする必要があります。
ここで行う設定は「静的マッピング」と呼ばれます。もし、アプリケーションのスクリプト内で DBParm の CacheName プロパティを使用して動的にキャッシュを割り当てている場合 (動的マッピング) 、そちらの設定が優先して適用されます。
PowerServer の「データベース」ページでは、単にデータベースへの接続情報を入力するだけでなく、デプロイ時のモデル変換や実行時のセキュアな通信、さらには複数環境 (開発・テスト・本番) のシームレスな切り替えを支える重要な設定を行います。これらの設定を正しく理解し構成することで、安定したデータアクセスを備えた、セキュアでインストール可能なクラウドアプリを構築することができます。ぜひ、ご自身のプロジェクト環境に合わせて最適な設定を行ってみてください! 次回のブログでは、「ビルド」ページの設定について、解説します。
以上、Yama-chan でした。
PowerServer プロジェクト設定を徹底解説 シリーズ