Tips

4D Server v11 SQLとファイアウォール

日付2008/07/29
ID08-016
バージョン11
プラットフォームWin / Mac

ファイアウォールを利用しているマシン上で4D Server v11 SQLを使う場合には、次の3つのポート番号について考慮しなければなりません。

  1. コマンド通信用ポート(デフォルト:19813)
  2. データ通信用ポート(コマンド通信用+1)
  3. SQL通信用ポート(デフォルト:19812)

もしファイアウォールの設定が正しく行われていないと、クライアント側の4Dでエラーになってしまいます。例えば、次のようなエラーが発生するのは、データ通信ポートがファイアウォールによって遮断されているのが原因です。

-10509	データベース "データベース公開名" を開くことができません。
-1024	データベース {BaseName} を開けません
-1211	接続を作成できません

コマンド通信用ポートとデータ通信用ポート

コマンド通信用ポートとデータ通信用ポートは、常に一対になって公開され待ち受けしているポートです。4D 2004以前の4D Serverでは1つの通信ポート(デフォルト:19813)でコマンドとデータを送受信していました。4D v11からは、目的別に2つのポートに分けられています。データ通信用は常にコマンド通信用ポート番号に1を加えたポートを使います。コマンド通信用ポートがデフォルトが19813ですので、データ通信用ポートのデフォルトは19814ということになります。

SQL通信用ポート

SQL通信用ポートはSQLサーバの起動に関係なく常に使われています。勘違いしやすいのは、SQLサーバ機能は4Dのクライアント機能以外でSQLを利用できるかをコントロールするもので、4Dのクライアントは設定に関係なくSQL通信用ポートを使ってSQLを実行することができます。

もしファイアウォール等でSQL通信用ポートが塞がれているときには、クライアント側4DでSQL文を実行した際に次のようなエラーが立て続けに発生することになります。

1006	Failed to connect to the remote server.
1009	Remote SQL Server is not available.

上記のエラーが発生した時には、4D Server v11 SQLのSQLサーバのポートとファイアウォールの設定を調査して的確な設定を行ってください。