クライアント用のネットワーク通信の設定
Zen アプリケーションが実行されているコンピューターからネットワーク ファイルにアクセスするためには、そのコンピューターで適切なクライアント リクエスターを使用する必要があります。アプリケーションで行う Zen 呼び出しはクライアント リクエスター経由でサーバーに送られた後、その結果がアプリケーションに返されます。
通常、Zen サーバーとクライアントは、デフォルトのプロパティ設定により、互いに通信したり正常に動作したりすることができます。通常はプロパティを変更する必要はありませんが、デフォルト以外の設定が必要な場合は、以下のセクションを参照してください。
クライアント ネットワーク通信設定
このトピックでは、Zen クライアントによって使用されるネットワーク通信用の設定について説明します。これらの設定の変更は、コマンド ライン ユーティリティまたは ZenCC 内のエンジン プロパティを使用して行うことができます。
各設定の詳細については、『Advanced Operations Guide』で説明しています。以下のネットワーク通信用の設定については、『Advanced Operations Guide』を参照してください。
Zen リクエスターでサポートするネットワーク パスの形式
リクエスターを使用しているときは、Zen データベース エンジンに接続してデータ ファイルにアクセスします。このトピックでは、Btrieve または DTI アプリケーションを使用してネットワーク上のファイルにアクセスするための、さまざまなネットワーク ファイルの構文を紹介します。
Zen では、多くの操作環境で、UNC(Universal Naming Convention)およびドライブ パス形式(明確かつ最新)が使用できます。
パス形式についての詳細は、以下の項目を参照してください。
お客様がアプリケーション開発者である場合は、URI 接続文字列をサポートする Btrieve API などの特定のアクセス方法についても留意してください。URI 文字列の詳細については、『
Zen Programmer's Guide』の
データベース URI を参照してください。『
Btrieve API Guide』の
Create(14)、
Open(0) および
Login/Logout(78) を参照してください。
UNC(Universal Naming Convention)パス形式
以下の UNC パス形式は、すべてのクライアントからすべてのサーバーへのパス表記に対応しています。
\\ServerName または<IP アドレス>\share\path\file
\\ServerName または<IP アドレス>\share:[\]path\file
UNC 構文は、ターゲット サーバーで実行しているネットワーク オペレーティング システム(NOS)の実際の種類に関係なく、正しく解決されます。IP アドレスを使用する場合は、ドット付き表記の IPv4 アドレス、または IPv6 用にサポートされる 2 つの形式のうちのいずれか 1 つを使用してください。
IPv6 アドレスを参照してください。
メモ: 上記のすべてのインスタンスで、円記号(\)はスラッシュ(/)に置き換えることができます。ただし、2 重の円記号(\\)は除きます。構文中の[\]は、その円記号が省略可能であることを意味します。
ドライブ ベースの形式
以下のドライブ表記は、すべてのクライアントからすべてのサーバーへのドライブ表記に対応しています。
drive:file
drive:[\]path\file
file
[\]path\file
..\file
Linux および Raspbian パス形式
Samba を使用する Linux または Raspbian サーバーが受け取るパスは、相対的な優先順序で次のように処理されます。
共有名
\\server\sharename\path
smb.conf ファイルでは、共有名を受け付けるよう設定する必要があり、そうしない場合は次のセクションで説明する絶対パスがデフォルトで設定されます。
絶対パス
\\server\absolute_path
smb.conf ファイルが適切に設定されていない、またはターゲット サーバー上で見つからない場合は、絶対パスを使用します。
Zen の Linux 版および Raspbian 版の詳細については、
Linux および Raspbian での Zen の使用を参照してください。
IPv6
Zen がサポートするアクセス方法を使用した Zen Client は、IPv4 の場合と同様に IPv6 を使用して Zen データベース エンジンを実行している IPv6 ホストへ接続します。つまり、Zen Client はサポートされるアクセス方法の 1 つを介してサーバーを指定し接続します。サーバーの指定は、Zen Enterprise Server、Cloud Server、または Workgroup が実行されているマシンのマシン名または IP アドレスのどちらを用いても可能です。
Zen ではすべてのアクセス方法で IPv6 接続をサポートします。いくつかのアクセス方法は Windows のみのものですが、Windows と Linux または Raspbian の組み合わせによるクライアント/サーバーで使用することができます。
このトピックでは IPv6 の以下の点について説明します。
IPv6 アドレス
未加工の IPv6 アドレスは、コロンで区切られた 8 個のセグメントで構成されます。各セグメントは 4 桁の 16 進数値として記述できます。たとえば、「1234:5678:90ab:cdef:1234:5678:90ab:cdef」と表記されます。このフレームワーク内では、IPv6 名のいくつかの形式が利用可能です。
数値による IPv6 アドレスに対する推奨事項
一般に、数値の IPv6 アドレスは IPv4 アドレスよりも複雑で扱いが困難です。数値によるリンク ローカル アドレスには問題があり、特にゾーン ID に関しては顕著です。
そのような理由から、特に実稼働環境では、アドレス解決に DNS サーバー、LLMNR、ホスト ファイル、または他の手段でホスト名を使用することをお勧めします。Zen による数値の IPv6 アドレスのサポートは、主に開発環境での使用を目的としています。IPv6 数値アドレスは状況によって角カッコ([ ])が必要となることが多いので、数値のアドレスが必要な場合、かっこが不要と確信できないかぎりは追加するようにしてください。
ユニキャスト アドレス
Zen がサポートするのはユニキャスト アドレスのみです。Zen で使用できる IPv6 ユニキャスト アドレス形式は以下のとおりです。
IPv6 アドレスの修飾子
IPv6 にはアドレス修飾子が含まれています。この修飾子はショートカットとして機能したり、また詳細な宛先の指定に用いたりすることができます。Zen は IPv6 に以下の修飾子をサポートします。
アドレスの表記
Zen は IPv6-literal.net 名(Windows の場合)、および角かっこ([])で囲まれた IPv6 アドレス(Windows、Linux および Raspbian の場合)をサポートします。
IPv6-literal.net 名
ipv6-literal.net 名は以下に示す 3 つの変更を施した未加工の IPv6 アドレスです。
• ":" は "-" に置き換えられます。
• "%" は "s" に置き換えられます。
• アドレスの末尾に ".ipv6-literal.net" が追加されます。
例
メモ: Linux および Raspbian ディストリビューションは IPv6-literal.net 名をサポートしていません。
かっこ付き IPv6 アドレス
かっこ付き IPv6 アドレスとは角かっこで囲まれた未加工の IPv6 アドレスです。この形式は UNC(Uniform Naming Convention)で正しく動作するアドレスとしても参照されます。
例
メモ: Linux および Raspbian ディストリビューションは、UNC パスや UNC で正しく動作するアドレスをネイティブにはサポートしません。ただし、ファイル パス、数値アドレス、またはその両方を入力として受け付ける Zen インターフェイスは、Linux および Raspbian 上で UNC パスおよび UNC で正しく動作するアドレスをサポートするので、Windows との互換性を保つことができます。
IPv6 と MicroKernel エンジン
MicroKernel エンジン で IPv6 を使用する際の制限事項を次の表に示します。
IPv6 と リレーショナル エンジン
IP アドレスにポート番号を含める必要があるのは、デフォルトのポートを上書きする場合のみです。一般に、ポート番号はコロン(:ポート番号)またはドット(.ポート番号)を用いて IP アドレスに追加されます。
UNC で正しく動作する名前(
アドレスの表記を参照)には、ポート番号を追加できます。
Linux および Raspbian での IPv6
これまでに述べた IPv6 に関する内容は、すべて Linux および Raspbian ディストリビューションにも適用されます。以下のセクションでは、IPv6 を Linux および Raspbian で使用した場合に限り適用される情報について説明します。
推奨されるディストリビューション
オペレーティング システムにおける IPv6 の完全サポートは比較的最近の機能です。このような理由から、最新の Linux または Raspbian ディストリビューションを使用することをお勧めします。
弊社の Web サイトで、Linux および Raspbian ディストリビューションの一覧を参照の上、最新バージョンのディストリビューションを使用してください。
制限と条件
IPv6 を Linux または Raspbian で使用する場合は、以下の制限事項や条件に留意してください。
• ping コマンドには IPv4 用(ping)と IPv6 用(ping6)があります。リンク ローカル アドレスで ping6 を使用する場合、ゾーン ID はアドレスの一部ではなく独立した引数です。たとえば、ping6 コマンド「ping6 -I eth0 fe80::1574:833f:b328:30ab」のゾーン ID は "eth0" です。
• 既に説明したように、Unix 自身はサポートしていなくても、Unix ベースのシステム上で実行する Zen インターフェイスは UNC パスや UNC で正しく動作するアドレスをサポートします。オペレーティング システム レベルで操作を行う場合、これは混乱の原因となります。たとえば、次のような butil のコマンドを実行したときに、ネットワーク エラーを受け取ったとします。
butil -stat //[fe80::1574:833f:b328:30ab%eth0]/DemodataShare/billing.mkd
その場合、次のようなコマンドでエラーの診断を試すことができます。
ping [fe80::1574:833f:b328:30ab%eth0]
ping6 [fe80::1574:833f:b328:30ab%eth0]
ping6 fe80::1574:833f:b328:30ab%eth0
しかし、これらのコマンドはすべて、アドレスに角かっこが付けられていたり、ゾーン ID が追加されていたりすることが原因でエラーとなり、"Unknown Host"(不明なホスト)や "Invalid Argument"(無効な引数)が返されます。ネットワーク接続が実際に存在する場合は、次のコマンドを使用して特定する必要があります。
ping6 -I eth0 fe80::1574:833f:b328:30ab
• マウント コマンドは IPv6 数値アドレスでのゾーン ID を受け付けません。リンク ローカル アドレスはマウントで使用することはできません。IPv6 アドレスに解決するホスト名を使用することができます。
最良実施例
IPv6 を Linux または Raspbian で使用する場合は、次のような方法をお勧めします。
Zen Client が存在するクライアントがサーバー上のデータベース エンジンへ接続するときに、pvnetpass を使用して、その Zen Client プラットフォームからサーバーに対して必要な資格情報を確実に提供するようにしてください。同じサーバーであっても、異なるサーバー アドレスでそのサーバーへ接続する場合はその接続ごとに pvnetpass が必要です。たとえば、ホスト名と IPv6 数値アドレスで同じサーバーを参照するとします。この場合、それぞれの接続ごとに pvnetpass を使用する必要があります。『
Zen User's Guide』の
pvnetpass を参照してください。
IPv6 についてよく寄せられる質問
次の表では、IPv6 のサポートと Zen についてよく寄せられる質問の回答を記載しています。
TCP/IP を使用した Windows サーバーへの接続
このセクションは、Windows サーバー プラットフォーム上で実行している Zen サーバーへの接続に TCP/IP を使用する場合について説明します。
サーバーの IP アドレスをクライアントに設定
TCP/IP ネットワークで Zen を操作する場合、クライアントは、Windows サーバーに割り当てられた名前からそのサーバーの IP アドレスを取得できなければなりません。IP アドレスから名前への変換を可能にする 2 つの方法があります。
• DNS(Domain Naming Service)
• hosts ファイルの編集
以下に、上記のそれぞれの方法を使った IP アドレスのセットアップ方法の概要を示します。ネットワーク構成および設定のセットアップの詳しい説明については、オペレーティング システムのドキュメントを参照してください。
DNS を使ったサーバーの IP アドレスの設定
DNS を使用する場合は、お使いのコンピューターがサーバーのデータベース内でサーバーのアドレスを検索できるよう設定します。DNS の設定に必要な情報はネットワーク管理者に確認してください。
DNS を使ってサーバーの IP アドレスを解決するよう Windows クライアントを設定するには
1. オペレーティング システムから、ネットワーク情報にアクセスします。
2. [ローカル エリア接続]のプロパティを開きます。
3. 使用されている TCP/IP 接続(IPv4 または IPv6 など)のプロパティを開きます。
4. DNS を使用可能にし、適切なサーバー情報を入力します。
hosts ファイルを使ったサーバーの IP アドレスの設定
hosts ファイルではサーバー名と IP アドレスとの関係を手動で入力します。DNS が使用できない状況の場合は、この方法を使用します。
Windows クライアントの hosts ファイルを編集するには
1. Windows マシンで hosts ファイルを探します。
たとえば、ある特定の Windows プラットフォームでは次の場所に存在します。
%WINDIR%\SYSTEM32\DRIVERS\ETC\HOSTS
2. メモ帳などのテキスト エディターで hosts ファイルを編集します。
3. hosts ファイル内で、次の例のようにサーバーの IP アドレスと名前を新しい行として入力します。サーバーの IP アドレスはネットワーク管理者に確認してください。
# IPv4 アドレス用の hosts ファイル エントリの例
146.23.45.2 acctserver
Zen アプリケーションを TCP/IP で使用中に、Windows の[ダイヤルアップ ネットワーク]ダイアログ ボックスが表示されないように設定
ブラウザーの設定に応じて、TCP/IP リクエストが送られる際、[Windows ダイヤルアップ ネットワーク]ダイアログ ボックスが表示される場合があります。通常、このダイアログ ボックスはインターネット接続を行うためのものですが、Zen アプリケーションおよび TCP/IP の使用中は、この機能が邪魔になることがあります。
[ダイヤルアップ ネットワーク]ダイアログ ボックスが自動的に表示されないようにするには
1. コントロール パネルで[インターネット オプション]をダブルクリックします。
2. [接続]タブをクリックします。
3. [ネットワーク接続が存在しないときには、ダイヤルする]というオプションの設定を無効にします([ダイヤルしない]などの別のオプションを選択)。
デフォルトの通信ポートの変更
Zen では、サーバー データベース エンジンへのリモート アクセスに、3 つの通信ポートを使用します。
• 3351:MicroKernel エンジン用
• 1583:リレーショナル エンジン用
• 139:名前付きパイプ用
リレーショナル エンジン の場合、ポートの割り当て 1583 は、Zen の各種ユーティリティを通じてサーバー用に設定することができます。このポートはクライアント用に手動で設定できます。『
Advanced Operations Guide』の
TCP/IP ポート を参照してください。
URI 経由で MicroKernel エンジンにアクセスするアプリケーションでは、btrv://servername:port/database 要素を含む URI を使用してポート 3351 を上書きすることができます。このポートを上書きすることは、予期せぬ結果を招く可能性がありますので、事前にテクニカル サポートにご相談されることをお勧めします。
ポートの設定はサーバーとすべてのクライアントの両者で必ず一致するようにしてください。
サーバーの受信ポートの変更後は、そのポートの割り当て変更を有効にするためにデータベース エンジンを終了して再起動する必要があります。『
Zen User's Guide』の
Zen の使用 を参照してください。
services ファイル
services ファイルは、ネットワーク通信に使用されるテキスト ファイルです。このファイルで、Zen サーバーとそのクライアントで使用されるポートを手動で割り当てることができます。services ファイルで記載される適用ポートと、Zen のユーティリティおよび関連する Windows ファイアウォール規則で設定されるポートは必ず一致している必要があるので注意してください。
services ファイルでポートの割り当てを変更したら、その変更を有効にするために Zen データベース エンジンを停止して再起動する必要があります。『
Zen User's Guide』の
データベース エンジンの起動と停止を参照してください。
Windows ファイアウォール
Zen のインストールでは特定の動作が実行されます。[セキュリティが強化された Windows Defender ファイアウォール]では、ファイアウォールを有効にするファイアウォール プロファイルをデフォルトで提供します。次の表では、これらのプロファイルに関する Zen のインストール動作についてまとめています。
上の表でわかるように、パブリック プロファイルが
その他の 1 つ以上のアクティブ プロファイルと共にアクティブな場合、Zen 規則はパブリック プロファイル用に追加されますが
無効になっています。Zen 製品のインストールが対話式またはサイレントであってもこの動作を変更することはできません。パブリック プロファイルの規則を有効にしたい場合は、手動で行う必要があります。
Zen 規則をパブリック プロファイルに対して有効にするにはを参照してください。
Zen 規則をパブリック プロファイルに対して有効にするには
1. [セキュリティが強化された Windows ファイアウォール]のコンソールを開きます。
2. 左ペインで[受信の規則]をクリックします。
3. 中央ペインで作業対象の Zen 規則を探します。
同じ規則が 2 つあるので注意してください。有効になっている規則(緑色の円にチェックマークが付いている)はパブリック以外のプロファイルに適用されています。無効になっている規則はパブリック プロファイルに適用されます。
4. 無効になっている作業対象の規則を右クリックして[プロパティ]をクリックします。
5. [詳細設定]タブをクリックします。"パブリック" プロファイルが選択されていることを確認してください。選択されていない場合は選択してください。
6. [全般]タブをクリックし、[有効]オプションをクリックします。
7. [OK]をクリックします。
8. [セキュリティが強化された Windows ファイアウォール]のコンソールを終了します。
インストール後のプロファイル変更
インストールした後にネットワーク プロファイルを変更すると、Zen が通信を受け付けることができなくなるかもしれません。たとえば、インストール時はプライベート ネットワーク プロファイルのみがアクティブだったとします。インストール後のある時点で、アクティブ プロファイルがドメイン(この設定はプライベート プロファイルの設定とはかなり異なることが前提)に変更された場合、データベース エンジンはネットワーク経由で通信ができなくなります。
Zen の通信を妨げるようなプロファイルまたはファイアウォール規則を変更する場合は、
Zen 規則をパブリック プロファイルに対して有効にするにはの手順を参照してください。この手順は、アクティブ プロファイルに対して Zen 規則を有効にする方法の一般的なガイドランとして使用できます。この手順を使用すればデータベース エンジンはネットワーク経由で再び通信できるようになります。
ポリシーに関する注記
コーポレート ポリシーによっては、ローカル管理者が特定のマシンに対するファイアウォール プロファイルを変更できないこともあります。そのような場合、このようにブロックされたプロファイルによって監視されるネットワーク接続経由でデータベース エンジンが通信するために必要なファイアウォール規則を、Zen のインストールによって追加したり有効にしたりすることはできません。そのような状況の場合は、権限を持つシステム管理者へファイアウォール ポリシーの変更を要請してください。この変更で Zen でインストールされるすべてのサービスと通信する全ポートに対し受信 TCP および UDP トラフィックを許可します。
また、ターゲット システムがドメインに参加している場合は、グループ ポリシーにより制御されているファイアウォール プロファイル上の規則の追加および有効化を PSQL のインストールから妨げるものは、グループ ポリシーのみであることに注意してください。Zen をインストールしているユーザーが、ドメイン ユーザーとしてではなくローカル ユーザーとしてターゲット システムにログインしていた場合、そのインストールによってファイアウォール プロファイルに対する規則の追加および有効化が行われます。ただし、ターゲット システムが後でグループ ポリシーを制御するドメインへ参加する場合はその規則が無効になります。
Windows クライアントから Linux または Raspbian サーバーへの TCP/IP を使用した接続
Windows ベースのクライアントを使用するネットワーク(ドライブの割り当てを使用)の場合は Linux または Raspbian サーバーで Samba が適切に設定されている必要があります。
サーバーの IP アドレスをクライアントに設定
TCP/IP ネットワークで Zen を操作する場合、クライアントは、Linux または Raspbian サーバーに割り当てられた名前からそのサーバーの IP アドレスを取得できなければなりません。IP アドレスから名前への変換を可能にする 2 つの方法があります。
• DNS(Domain Naming Service)
• hosts ファイルの編集
以下に、上記のそれぞれの方法を使った IP アドレスのセットアップ方法の概要を示します。ネットワーク構成および設定のセットアップの詳しい説明については、オペレーティング システムのドキュメントを参照してください。
DNS を使ったサーバーの IP アドレスの設定
DNS を使用する場合は、お使いのコンピューターがサーバーのデータベース内でサーバーのアドレスを検索できるよう設定します。DNS の設定に必要な情報はネットワーク管理者に確認してください。
DNS を使ってサーバーの IP アドレスを解決するようクライアントを設定するには
Windows プラットフォームのクライアントの場合:
1. オペレーティング システムから、ネットワーク情報にアクセスします。
2. [ローカル エリア接続]のプロパティを開きます。
3. 使用されている TCP/IP 接続(IPv4 または IPv6 など)のプロパティを開きます。
4. DNS を使用可能にし、ネットワーク管理者から得た適切なサーバー情報を入力します。
hosts ファイルを使ったサーバーの IP アドレスの設定
hosts ファイルではサーバー名と IP アドレスとの関係を手動で入力します。DNS が使用できない状況の場合は、この方法を使用します。
Windows クライアントの hosts ファイルを編集するには
1. Windows システムで hosts ファイルを探します。
たとえば、ある特定の Windows プラットフォームでは次の場所に存在します。
%WINDIR%\SYSTEM32\DRIVERS\ETC\HOSTS
2. メモ帳などのテキスト エディターで hosts ファイルを編集します。
3. hosts ファイル内で、次の例のようにサーバーの IP アドレスと名前を新しい行として入力します。サーバーの IP アドレスはネットワーク管理者に確認してください。
# IPv4 アドレス用の hosts ファイル エントリの例
146.23.45.2 acctserver
Windows の[ダイヤルアップ ネットワーク]ダイアログ ボックスが自動表示されないようにする
TCP/IP リクエストが Windows に送られる際、[Windows ダイヤルアップ ネットワーク]ダイアログ ボックスが表示される場合があります。通常、このダイアログ ボックスはインターネット接続を行うためのものですが、Zen アプリケーションおよび TCP/IP の使用中は、この機能が邪魔になることがあります。
[ダイヤルアップ ネットワーク]ダイアログ ボックスが自動的に表示されないようにするには
1. コントロール パネルで[インターネット オプション]をダブルクリックします。
2. [接続]タブをクリックします。
3. [ネットワーク接続が存在しないときには、ダイヤルする]というオプションの設定を無効にします([ダイヤルしない]などの別のオプションを選択)。
データのエンコード
エンコード方法は上級ユーザー向けです。一般的には、デフォルトのエンコード設定で十分であり変更の必要はありません。『
Advanced Operations Guide』の
データベース コード ページとクライアント エンコード を参照してください。
DOS リクエスターの使用
Zen は DOS リクエスターで DOS Btrieve アプリケーションをサポートします。DOS リクエスターでサポートするのは Btrieve アプリケーションのみで、ODBC アプリケーションはサポートされません。このトピックでは、Windows で DOS リクエスターを使用して Zen ベースの DOS アプリケーションを実行する方法について説明します。
DOS ボックスのサポートにより、Windows プラットフォーム上の DOS ボックスで DOS アプリケーションを実行することができます。これにより、データベース エンジンではなく、Windows 32 ビット ワークステーションのコンポーネントと直接通信することが可能になります。この設定は、ローカルの Zen Workgroup エンジン、あるいはリモート エンジンの両方で使用することができます。クライアント/サーバー アクセスに TCP/IP プロトコルを使用するかは、Windows 32 ビット コンポーネントの設定によって決まります。
サポートされる設定
DOS リクエスターは、Zen の Workgroup および Client からリモートの Zen サーバーの設定をどちらもサポートします。
Windows 上での DOS ボックスのサポート
Windows 用のリクエスターは BTRBOX です。このリクエスターは DOS アプリケーションに使用することができます。
Windows 32 ビット プラットフォーム上での DOS アプリケーションの実行
BTRBOX を使用して DOS アプリケーションを実行するために必要なコンポーネントはすべてクライアントでインストールされています。Windows クライアント コンポーネントをインストールすると、DOS または Windows 32 ビット アプリケーションを実行するために必要な要素がすべて揃います。インストールされる DOS アプリケーションのデフォルトのサポートは、Win32 DOS ボックス設定です。
DOS アプリケーションは 64 ビット Windows プラットフォームではサポートされません。このため、BTRBOX は 64 ビット Windows プラットフォームではサポートされません。
DOS ボックス サポートの使用
Windows プラットフォームでは、DOS ボックスのインストールはドライバーが完全に透過になるよう設定します。このため、すぐにコマンド プロンプトを開き、DOS Btrieve アプリケーションを実行することができます。%WINDIR%\SYSTEM32 ディレクトリにある CONFIG.NT ファイルには DOS アプリケーションのサポートを有効にするコマンドが含まれています。このファイルは DOS の CONFIG.SYS によく似ています。Windows オペレーティング システムでは DOS セッションが開くたびにドライバーを読み込みます。この設定ファイル内で、インストールを次のパスに置いて DOS ボックス ドライバーを読み込みます。
DEVICE = C:\WINDOWS\SYSTEM32\BTRDRVR.SYS