前へ | 次へ | 目次 | 索引 |
このリリース・ノートは本リリースに適用されます。
2.1.1 キーの属性の変更時にキー変更が通知されない
REG$_NOTIFYFILTERアイテム・コードに対してREG$M_CHANGEATTRIBUTESという値を指定した場合,その OpenVMS Registry キーが変更されると,変更が通知されなければなりません。しかし,OpenVMS Registry キーの属性を変更した場合,通知を要求したプロセスに変更が通知されません。
この問題に対処するには,REG$_NOTIFYFILTERアイテム・コードに対して別の値を指定します。REG$M_CHANGENAMEまたはREG$M_CHANGELASTSETを使用してください。2.1.2 データベース検索の制限
REG$CPサーバ管理ユーティリティのSEARCHコマンドや,REG$FC_SEARCH_TREE_DATA,
REG$FC_SEARCH_TREE_KEY,REG$FC_SEARCH_TREE_VALUE機能コードを使用する
$REGISTRY システム・サービスの呼び出しでは,クライアント・ノードの通信バッファが取り扱うことができる量より多くのデータがクライアントに返されることがあります。これらの機能は 16 レベル未満のパスに制限されており,4 KB 未満のデータを返します。
この問題を回避するには,正確なパスを指定することで検索の深さを制限します。つまり,データベースが大きいときに,データベース全体を検索しないようにします。
この制限は将来のリリースで修正される予定です。
2.1.3 キー・アクセス・ポリシー
ユーザが OpenVMS Registry のキーまたは値へのアクセスを要求した場合,OpenVMS Registry はキー・パスの最初のキーと最後のキーを確認することで,指定されたキー・パスが有効かどうか調べます。
2.1.4 OpenVMS Registry の最大データ・サイズの制限
OpenVMS Registry データベースに格納するために,OpenVMS Registry サーバに送信できるデータの 1 ブロックの最大サイズは 7880 バイト以下に制限されています。この制限を超えると,次のエラーが表示されます。
REG-F_NORESPONSE, registry server failed to respond within allotted time period |
この制限は,OpenVMS Registry サーバと OpenVMS Registry クライアントの間の通信プロトコルで,転送サイズが 8 K バイトに制限されているために発生します。
この制限は将来のリリースで修正される予定です。
2.1.5 REG$_EXQUOTA エラー
OpenVMS Registry の File Qouta を OpenVMS Registry データベースの現在のサイズより小さい値に設定すると,すべての OpenVMS Registry 操作で次のエラーが表示されます。
REG-E-EXQUOTA, registry file quota or page file quota exceeded |
1 回の削除操作で,OpenVMS Registry データベース・ファイルのサイズがクォータ・リミット以内になる場合は,このエラー・メッセージは表示されません。 |
このエラーを回避するには,File Qouta の値を OpenVMS Registry データベース・ファイルの現在のサイズ以上の値に一時的に変更し,その後で OpenVMS Registry データベース・ファイルのサイズが適切な File Qouta の制限の範囲内になるように削除操作を実行します (クォータの変更の方法については,第 7.6.3 項 を参照してください)。
2 つの OpenVMS Registry ファイル・クォータに対して適用されるおよそのバイト数を判断するには,SYS$REGISTRY:REGISTRY$LOCAL_MACHINE.REGファイルとSYS$REGISTRY:REGISTRY$USERS.REGファイルのサイズに 512 を乗算します。この計算の結果は,各ファイルのクォータに適用されるおよそのバイト数になります。OpenVMS Registry のファイル・クォータの設定方法については,第 2.1.6 項 を参照してください。
この制限は将来のリリースで修正される予定です。
2.1.6 OpenVMS Registry の最大データベース・サイズの制限
OpenVMS Registry データベースに格納できるデータの最大サイズは,約 1.7 MB に制限されています。この制限を超えると,次のエラーが表示されます。
REG-F-DBACCESS, cannot access registry database object |
これは致命的なエラーであり,OpenVMS Registry データベースにこれ以降アクセスできなくなります。
REG-F-DBACCESSエラーが発生しないようにするには,OpenVMS Registry が 1.7 MB 以上になることがないように,クォータを設定してデータベースのサイズを制限します。
クォータを設定するには,次のいずれかの操作を行います。
$ mcr reg$cp modify value/name="Default File Quota"/type=dword - _$ /data=%D1700000 "hkey_local_machine\system\registry\File Quotas" |
File Quota の値をすでに設定している場合は,次の例で CREATE コマンドの代わりに MODIFY コマンドを使用します。 |
$ mcr reg$cp create value/name=REGISTRY$LOCAL_MACHINE/type=dword - _$ /data=%D1700000 "hkey_local_machine\system\registry\File Quotas" $ mcr reg$cp create value/name=REGISTRY$USERS/type=dword - _$ /data=%D1700000 "hkey_local_machine\system\registry\File Quotas" |
/DATA 修飾子の値として,32,000〜2,000,000 (16 進数の 0x7D00〜0x1E8480) の値を指定しなければなりません。
32,000 未満の値を指定すると,その値は無視され,Default File Quota の値として 10,000,000 が使用されます。この File Quota のデフォルト値は大きすぎます。
2,000,000 より大きい値を指定すると,OpenVMS Registry データベース・サイズがその値を超えたときに,REG-F-DBACCESSエラーが発生します。
この制限は将来のリリースで修正される予定です。
COM (Component Object Model: コンポーネント・オブジェクト・モデル) は,Microsoft が開発したテクノロジであり,開発者は COM を使用することで分散ネットワーク・オブジェクトを作成できます。COM は Microsoft が Windows 3.x 製品で最初に導入したものであり,その当時は OLE (Object Linking and Embedding: オブジェクトのリンクと埋め込み) という名前でした。COM は,新しいスタイルのマルチベンダ分散コンピューティングを採用し適合させるための,強力で広く利用できるメカニズムを提供し,その一方でソフトウェアへの新規投資を最低限に抑えることができます。
Digital Equipment Corporation (現在は Compaq Computer Corporation) と Microsoft は COM 仕様を共同開発しました。COM 仕様は,最初のリリースでは NetOLE (Network OLE) という名前であり,その後,DCOM (Distributed COM) という名前に変更され,現在はネットワーク機能を含んでいます。つまり,COM は分散ネットワーク・オブジェクトをサポートします。
COM はオブジェクト・ベースのプログラミング・モデルであり,ソフトウェアの相互運用性を促進するように設計されています。COM を使用すると,2 つ以上のアプリケーション (またはコンポーネント) を簡単に協調動作させることができます。オブジェクトが異なるベンダによって異なるプログラミング言語で個別に作成された場合でも,異なるオペレーティング・システムを稼動する異なるマシンで動作する場合でも,協調動作が可能です。協調動作機能をサポートするために,COM では,アプリケーションが相互にソフトウェア・オブジェクトとして接続できるようにするためのメカニズムを定義し,実装しています。
COM の実装は Windows NT ,Windows 95tm,Windows 98,OpenVMS,Compaq Tru64tm UNIX® で提供されており,他の UNIX プラットフォームでも提供されています。
3.1.1 参考文献
COM および関連トピックの詳細については,次の参考文献を参照してください。
www.microsoft.com/com |
COM for OpenVMS は,Microsoft の Windows NT 4.0 Service Pack 3 (SP3) Component Object Model (COM) ソフトウェアを Compaq が OpenVMS Alpha オペレーティング・システム上で実装したものです。
COM for OpenVMS のサポートで,Compaq はレジストリ,イベント・ロガー,NTLM セキュリティ,Win32 API も含めて,Windows NT のインフラストラクチャを OpenVMS に移植しました。COM for OpenVMS は The Open Group の DCE (Distributed Computing Environment) RPC のレイヤードです。COM for OpenVMS では,ローカル・エリア・ネットワーク (LAN),ワイド・エリア・ネットワーク (WAN),インターネット上のさまざまなコンピュータのオブジェクト間での通信をサポートします。COM for OpenVMS は Windows NT と接続するための重要な機能を提供するので,Affinity for OpenVMS プログラムにとって重要です。
図 3-1 は OpenVMS のインフラストラクチャを示しています。
図 3-1 OpenVMS のインフラストラクチャと COM for OpenVMS
図 3-1 で,OpenVMS インフラストラクチャの重要な要素は次のとおりです。
Windows NT システム
図 3-1 の左側の小さいボックスは,Windows NT システムを表しています。
OpenVMS Cluster/OpenVMS アイデンティティ
図 3-1 の右側の大きいボックスは,OpenVMS システムを表しています。このボックスの内部および周囲には,番号の付いたいくつかのボックスがあります。ここではこれらの番号の付いたアイテムについて説明します。
これは,すべての OpenVMS システムで提供される標準の OpenVMS セキュリティ (ログイン,認証,ACL など) です。
Advanced Server for OpenVMS は OpenVMS に対して Windows NT ユーザの認証機能を提供し,Windows NT ユーザに対して OpenVMS Registry とイベント・ビューアへの接続機能を提供します。
OpenVMS セキュリティ,MSV1_0 ACME エージェント,Advanced Server for OpenVMS ,OpenVMS Registry ,イベント・ロガー,Win32 API (COM API) はすべて,OpenVMS システム内で Windows NT アイデンティティを作成することに貢献します。
OpenVMS Registry は Windows NT システムのレジストリに類似しており,システム,ソフトウェア,ハードウェアの構成情報を OpenVMS に格納するための機能です。COM for OpenVMS では,OpenVMS Registry を使用して COM アプリケーションに関する情報を格納します。OpenVMS Registry の詳細については,本書の 第 2 部 を参照してください。
OpenVMS のイベント・ロガーは Windows NT システムのイベント・ロガーに類似しており,COM イベントに関する情報メッセージ,警告メッセージ,エラー・メッセージを記録します。OpenVMS Events の詳細については,第 11 章 を参照してください。
Windows NT システムでは,COM 要求と応答は,COM,RPC,SSPI (セキュリティ),ドメイン・レイヤを介してやり取りされます。
OpenVMS システムでは,Windows NT の COM スタックをそのまま使用しますが,いくつかの機能が追加されています。OpenVMS システムでは,COM 要求と応答は,COM,RPC,SSPI (セキュリティ),MSV1_0 ACME エージェント,Advanced Server for OpenVMS レイヤを介してやり取りされます。MSV1_0 ACME エージェント ( 図 3-1 では ACME) は ACM (Authentication and Credential and Management) オーソリティに対する拡張機能です。認証の詳細については,第 12 章 を参照してください。
Windows NT システムと OpenVMS の間の COM 接続は,常に RPC レイヤを介して行われます。
開発者用に提供される COM for OpenVMS Developer's Kit には,アプリケーション開発用に MIDL (Microsoft Interface Definition Language) コンパイラと C スタイルのヘッダ・ファイルが含まれています。OpenVMS MIDL コンパイラの詳細については,第 3.4 節 を参照してください。
OpenVMS では,Windows NT 資格情報を取得するための機能が提供されるようになりました。NTA$LOGON を介して Windows NT 資格情報を取得する方法については,第 4.8 節 と 第 12 章 を参照してください。
COM for OpenVMS では,COM for OpenVMS クライアント/サーバ・アプリケーションの導入のために,OpenVMS Alpha で無料の実行時環境が提供されるようになりました。
プロトコルの仕様とプログラミングのドキュメントを含めて,Microsoft の COM の詳細については,Microsoft COM の Web サイトを参照してください。アドレスは次のとおりです。
www.microsoft.com/com |
COM for OpenVMS の実装は,完全な Microsoft COM 実装のサブセットです。COM for OpenVMS API,サポートされるインタフェース,実装の相違点の一覧については,付録 E を参照してください。
COM に対する関心はますます高くなっていますが,それでも COM は依然として高度な技術です。経験の浅いユーザを対象としたものではなく,独立系ソフトウェア・ベンダ (ISV) や大規模な MIS (管理情報システム) ショップなど,高度な技能を持ったプログラマを対象にしています。
3.2.1 COM for OpenVMS での OpenVMS Registry の使用
COM for OpenVMS では,OpenVMS Registry が必要です。Windows NT システムのレジストリ・データベースと同様に,OpenVMS Registry には COM アプリケーションに関する情報,特に OpenVMS 上で実行されている COM アプリケーションに関する情報が格納されます。これらの COM for OpenVMS アプリケーションでは,OpenVMS Registry を使用して CLSID (クラス ID),スタートアップ情報,セキュリティ設定などを OpenVMS Registry データベースに格納します。COM for OpenVMS では,OpenVMS で実装されている Win32 API を使用して,OpenVMS Registry からの読み込みと書き込みを行います。
COM for OpenVMS では,OpenVMS Registry データベースへのアクセスが必要です。COM for OpenVMS が OpenVMS Registry にアクセスできない場合は,COM for OpenVMS は起動しません。OpenVMS Registry の詳細については,第 7 章 を参照してください。
3.3 COM for OpenVMS の使用
COM for OpenVMS を使用すると,次のことが可能です。
ここでは,新規アプリケーションの開発とカプセル化について詳しく説明します。
3.3.1 新規アプリケーションの開発
次の場合には,COM for OpenVMS を使用して新規アプリケーションを開発できます。
COM for OpenVMS には,次の利点があります。
COM for OpenVMS アプリケーションの開発の例については,第 6 章 と 付録 C を参照してください。
前へ | 次へ | 目次 | 索引 |