4D Server v11 SQLとファイアウォール
日付 | 2008/07/29 |
---|---|
ID | 08-016 |
バージョン | 11 |
プラットフォーム | Win / Mac |
ファイアウォールを利用しているマシン上で4D Server v11 SQLを使う場合には、次の3つのポート番号について考慮しなければなりません。
- コマンド通信用ポート(デフォルト:19813)
- データ通信用ポート(コマンド通信用+1)
- 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サーバのポートとファイアウォールの設定を調査して的確な設定を行ってください。