重要: Enterprise Developer 2.2 Update 1 以降の各リリースでは、既存のすべての SQL Server データベースに対して DSN バインド ユーティリティを実行します。これにより、データベースに格納されているすべてのメインフレーム成果物が各ソフトウェア リリースで適切に更新されます。
DSN バインド ユーティリティを使用して、SQL Server アプリケーションにデータベースをバインドする処理をコマンド ラインから実行するか、ビルド後のイベントとして実行できます。
DSN バインド ユーティリティでは、SQL Server データベースへの接続がアクティブであること、および実行する DSN コマンドを含んだバインド スクリプト ファイル (
.hcodsn ファイル) が提供されることが必要になります。バインド スクリプト ファイルは、Manage Packages and Plans ツールを使用して作成するか、テキスト エディターを使用して手動で作成できます。
注: FHCOSS バインド スクリプト ファイルで有効なコマンドの一覧については、「バインド スクリプトのコマンド」トピックを参照してください。
ビルド後のイベントは、IDE でアプリケーションをビルドした直後に自動で実行されるプロセスです。
DSN バインド ユーティリティは、毎回 2 つの連続した段階 (スキーマ更新の実行およびそれに続くバインド スクリプトの実行) で実行します。
スキーマ更新実行
この実行段階では、DSN は接続先の SQL Server データベースを検証し、必要となるテーブルおよびストアド プロシージャがデータベースに存在しており、テーブルおよび関数の定義が HCOSS の使用バージョンと一致することを確認します。検証が成功すると、DSN
はバインド スクリプト実行段階に移行します。検証が失敗すると、DSN は次へ進む前にスキーマ更新を実行します。
DSN データベースの検証に失敗すると、次のいずれかに該当する場合に限り、スキーマ更新が起動します。
- 新しい SQL Server データベースに対して DSN を実行した場合
- HCOSS アップグレードのインストール後に初めて DSN を実行した場合
- 必要なテーブルまたはストアド プロシージャ (あるいはその両方) がデータベースにないと DSN が判断した場合
スキーマ更新を実行するために、DSN は次の SQL スクリプトを SQL Server データベースに対して実行します。
- InstallSYSIBM.sql - バインドされる DBRM を管理するために DSN が使用するメタデータ テーブルを作成します。
- InstallBindProcs.sql - これらのテーブルを管理するために DSN が使用するストアド プロシージャを作成します。
- InstallDigitsFunction.sql - SQL Server にはない DB2 関数をエミュレートするための次の関数を作成します。
- DATEINTERVAL
- DIGITS
- JULIANDAY
- LASTDAY
- LPAD
- MIDNIGHT_SECONDS
- NEXTDAY
- RPAD
- STRIP
- TIMEINTERVAL
- TRANSLATE
- TRUNCATE
これらの SQL スクリプトは、%ALLUSERSPROFILE%\Micro Focus\Enterprise Developer\hcoss ディレクトリにあります。
スキーマ更新プロセスを正常に完了するために、以下の権限を含むログイン資格情報を使用して SQL Server データベースに接続します。
- CREATE SCHEMA
- CREATE TABLE
- DROP TABLE
- CREATE INDEX
- DROP INDEX
- SYSIBM スキーマの CREATE PROCEDURE
- dbo スキーマの DROP および CREATE FUNCTION
重要: この一連の必要な権限により、DSN が定期的に検証およびバインドを実行する際に必要な SQL Server データベースへのアクセスよりも広範なアクセスが可能になります。つまり、データベース検証時には、スキーマ更新プロセスは起動しません。DSN
をコマンド ラインから実行するか、ビルド後のイベントとして実行することでアプリケーションを定期的にバインドし、さらに権限を日常的な使用で制限する場合は、新しい SQL Server データベースを作成した直後および毎回の HCOSS アップグレード後に手動でこのプロセスを完了することにより、潜在的なエラーを回避し、DSN
がスキーマの自動更新を起動しないようにできます。手動でスキーマ更新を実行するには、必要な権限を付与するログイン資格情報を使用して SQL Server データベースに接続してから、手動で SQL スクリプトを実行します。
データベース検証の実行に必要な権限は、バインド スクリプト実行に必要な権限と同じです。
バインド スクリプト実行
バインド スクリプト実行段階では、DSN は次を行います。
- パッケージとプランをバインドするストアド プロシージャを生成し、それらを次の SQL Server データベース テーブルでメタデータとして管理します。
SYSIBM.SYSDBRM
SYSIBM.SYSPACKAGE
SYSIBM.SYSPACKLIST
SYSIBM.SYSPLAN
重要: SYSIBM のストアド プロシージャは、これらのテーブルを更新できる十分な権限で実行する必要があります。
- BIND PACKAGE コマンドで指定する DBRM パッケージについては、静的 SQL 文ごとに個別のストアド プロシージャを生成し、次の命名規則に従ってそれらを SQL Server データベースに保存します。
PKG:collectionName.memberName consistencyToken$statementNumber
ここで、consistencyToken は DSN により生成された文字列でストアド プロシージャの固有の名前です。statementNumber は DSN により生成された数値でゼロから始まります。次に例を示します。
PKG:COLLECTION1.MEMBERAEEEcKIKy$0
- BIND PLAN コマンドで指定するプランについては、指定されたパッケージまたはメンバーのストアド プロシージャを生成し、類似の命名規則に従ってそれらを SQL Server データベースに保存します。
PLN:planNameconsistencyToken$statementNumber
次に例を示します。
PLN:MYPLAN1.MEMBERAFFFdLJLz$0
バインド スクリプト実行段階を正常に完了するために、以下の権限を含むログイン資格情報を使用して SQL Server データベースに接続します。
- CREATE SCHEMA
- CREATE PROCEDURE
- SYSIBM スキーマの EXECUTE PROCEDURE