Powered by SmartDoc

FastConnectorメモ

2000年6月3日
at
http://www.asahi-net.or.jp/~pq6a-tsmt/poco/fcs/fcs
このメモは、FastConnector試用版に関するメモです。ベンチマークとかの情報はありません。OO4Oとのベンチを体感されたい方は、FastConnectorにあるベンチマークを使用すると、FastConnectorに設置されているテストサーバに接続し、ベンチが行えます。下記に書いてあることはもちろん無保証です。このメモはfreely linkableです。追記(2004/04/14):このメモは2.0でのメモです。最新版は3.0ですのでまったく違う部分があるかと思います。

目次

FastConnectorとは

オラクルとの接続を最適化するミドルウェアです。

インストール

プログラムのダウンロード

FastConnectorのページにアクセスして試用プログラムをダウンロードする。

サーバプログラムとして、Windows-NT/Linuxを使用することができる。今回はサーバはLinux版を使用。

www.FastConnector.comへ接続
C:\>start http://www.fastconnector.com

サーバへのインストール

FastConnectorサーバをインストール。添付のドキュメントを読んでインストールを行う。インストールディレクトリを変更しないのであれば、下記の用になる。

FastConnector For Linuxのインストール
[fcs@fastconnector]$ su -
Password:
[root@fastconnector /root]# cd /tmp/
[root@fastconnector /tmp]# tar zxvf fcs21_linux.tgz
fcsinstall
fcsvo21
install.doc
license.txt
[root@fastconnector /tmp]# ./fcsinstall
FastConnectorServer Installer

FastConnectorServer Home Directory  /usr/fcs :[y/n]
y
[root@fastconnector /tmp]#

サーバへのセットアップ

マシン起動時に起動したい場合はインストールマニュアルを参照。NLS_LANGはクライアント側のNLS_LANG設定を行う。FastConnectorクライアントはWindows版しか現状ないので、ORACLE_HOME以外がほとんどそのままでOK。

起動ファイルfcsstart
#!/bin/sh


                FCS_HOME=/usr/fcs/
                export FCS_HOME
                FCS_DATE_FORMAT=YYYY/MM/DD
                export FCS_DATE_FORMAT
                ORACLE_HOME=/oraora/oracle/product/8.0.5
                export ORACLE_HOME
                ORACLE_SID=ORCL
                export ORACLE_SID
                NLS_LANG=japanese_japan.JA16SJIS
                export NLS_LANG
                LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
                export LD_LIBRARY_PATH
                PATH=$PATH:/bin
                export PATH

case $1 in
start_msg)
        echo "Start FastConnectorServer for Oracle8.0.5 daemon"
        exit 0
        ;;

stop_msg)
        echo "Stopping FastConnectorServer for Oracle8.0.5 daemon"
        exit 0
        ;;
start)
                $FCS_HOME/fcsvo21 -startup
        exit 0
        ;;

stop)
                $FCS_HOME/fcsvo21 -shutdown
        exit 0
        ;;
*)
        echo "USAGE: $0 {start_msg | stop_msg | start | stop}" >&2
        exit 1
        ;;
esac

サーバの起動

マシン起動時に起動したい場合はインストールマニュアルを参照。コンソールで起動すると、現状はShift_JISのメッセージがでるが気にしない。

FastConnectorコマンドラインでの起動
[root@fastconnector fcs]# /usr/fcs/fcsstart start
FastConnectorServer 2.1 for Oracle8の起動に成功しました。

サーバの停止

コンソールで停止すると、現状はShift_JISのメッセージがでるが気にしない。

FastConnectorコマンドラインでの停止
[root@fastconnector fcs]# /usr/fcs/fcsstart stop
FastConnectorServer 2.1 for Oracle8の停止に成功しました。

クライアントのセットアップ

クライアントのセットアップを行う。ダウンロードしたファイルを解凍して、setup.exeを起動して指示に従う。下記ディレクトリが作成されます。dll_backupには、置き換えたDLLを格納しています。

クライアントインストールディレクトリ

クライアントから接続の確認

クライアントからFastConnectorサーバへの接続を確認する。VCのサンプルプログラムVC Connectで接続を確認してみる。

接続・切断サンプル

接続がうまくいった場合、

接続に成功しました

接続が失敗した場合、

接続に失敗しました

接続に失敗した場合は、

FastConnectorプログラムの確認

現段階(Fri Nov 17 00:51:48 JST 2000)で確認しているサンプルは以下のDelphi/VB/VC共に、11種類です。何れも実行形式とソースが付属しています。実行形式は実行すると文字化けとかあったりしますが、ソースからコンパイルしなおせば大丈夫のようです。これは、ランタイムによるみたいです。

アプリケーション名 アプリケーションファイル名 アプリケーション説明
connect \Digital Design\FCOwin\sample\prj\Vb\connect FastConnectorを使用しての接続と切断

VisualBasicのサンプル

データベースオブジェクトを二箇所で宣言しているサンプルがありますので、bascom.basの方を正としておいた方がよいです。

bascom.bas
Attribute VB_Name = "basCom"
Public gDB As FCO    'データベースオブジェクト

サンプルは、リファレンスの補助の形でみるとよいでしょう。

FastConnectorのメソッド

FastConnectorのメソッド、特にハンドル操作について操作を押さえる必要がある。

FCSメソッド分類 FCSメソッド機能 FCSメソッド名 FCSメソッドサンプル名 FCSハンドル確保 FCSハンドル開放 FCSハンドル特記事項
データベースへの接続/切断 データベースをオープンする Connect Connect none none none
データベースへの接続/切断 データベースをクローズする Disconnect Disconnect none none none
選   択(参照系) データを1件選択する SelectFirst SelectFirst 実行前必ず必要 Get系メソッド実行後必ず必要 none
選   択(参照系) 次のデータを1件選択する SelectNext SelectNext 実行前必ず必要 Get系メソッド実行後必ず必要 none
選   択(参照系) SQL文を直接実行してデータを1件選択する SelectFirstDirect SelectFirstDirect 実行前必ず必要 Get系メソッド実行後必ず必要 OO4O移行時に使用する
選   択(参照系) データをN件選択する SelectFix SelectFix 実行前必ず必要 Get系メソッド実行後必ず必要 none
選   択(参照系) 指定行以降のデータをN件選択する SelectFixRandom SelectFixRandom 実行前必ず必要 Get系メソッド実行後必ず必要 none
選   択(参照系) SQL文を直接実行してデータをN件選択する SelectFixDirect SelectFixDirect 実行前必ず必要 Get系メソッド実行後必ず必要 OO4Oの移行時に使用する
選   択(参照系) データを全件選択する SelectAll SelectAll 実行前必ず必要 Get系メソッド実行後必ず必要 none
選   択(参照系) SQL文を直接実行してデータを全件選択する SelectAllDirect SelectAllDirect 実行前必ず必要 Get系メソッド実行後必ず必要 none
選   択(参照系) ユーザーが利用可能なテーブルを選択する SelectTables SelectTables 実行前必ず必要 GetTableName実行後必ず必要 none
取   得(取得系) 行とカラムを指定してバッファからデータを取得する GetRowCol SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) バッファからカラムの名称を取得する GetColName SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) バッファからカラムのサイズを取得する GetColSize SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) バッファからカラムのタイプを取得する GetColType SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) カラムNull許可属性の取得 GetColNullOK SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) カラム精度の取得 GetColPrecision SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) カラムスケールの取得 GetColScale SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) バッファからカラム数の取得する Cols SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) バッファからデータ件数の取得する Rows SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) バッファからユーザが利用可能なテーブル名称を取得する GetTableName SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) 与えられた条件の対象データ件数を取得する RecCnt SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 select系で確保したハンドルを指定する
取   得(取得系) SQL文の取得 GetSQL SelectAll none none 指定されたハンドルステートで最後に実行されたSQL文を取得、ハンドルが開放されていてもOK
取   得(取得系) 行列を指定してデータがNullかチェックする GetRowColIsNull SelectAll select系メソッドの前に必要 Get系を後で実行しなければ必ず開放 VARCHAR2の場合、空とNULLの区別なし
トランザクション処理 トランザクション処理の開始を宣言する BeginTran none none none データベース単位で処理を行う
トランザクション処理 トランザクション処理を確定する Commit none none none データベース単位で処理を行う
トランザクション処理 トランザクション処理を取り消す RollBack none none none データベース単位で処理を行う
更   新(更新系) データを更新する Update update select系と同じハンドルは操作できません。必ず更新系でハンドルを取得。 none none
更   新(更新系) データを挿入する Insert update select系と同じハンドルは操作できません。必ず更新系でハンドルを取得。 none none
更   新(更新系) データを削除する Delete update select系と同じハンドルは操作できません。必ず更新系でハンドルを取得。 none none
更   新(更新系) SQL文を直接実行する Execute update select系と同じハンドルは操作できません。必ず更新系でハンドルを取得。 none バインドバッファ使用時は、ハンドルの開放が行われない。
更   新(更新系) バインドバッファの生成 BindArray update none更新系、select系実行後、明示的に行う必要がある。 none
更   新(更新系) 行列を指定してデータ文字列をセットする SetRowCol update none 更新系、select系実行後、明示的に行う必要がある。 BindArray実行後
更   新(更新系) 行列を指定してNULLをセットする SetRowColNull update none 更新系、select系実行後、明示的に行う必要がある。 BindArray実行後
ハンドルステートメント 空いているハンドルステートメントを取得する GetHstmt update none none none
ハンドルステートメント ハンドルステートメントの解放する EndHstmt update none none none
製品情報の取得 製品情報を取得する GetProductInfo update none none none
エラーメッセージを取得 エラーメッセージを取得する GetErrorMsg update none none メソッドは全て戻り値があるので必ずチェックする。

OO4Oからの移行、OO4Oとの違い

OO4O to FC

対応表を作成する予定です。

簡単に移行が可能そうなもの。

移行が面倒そうなもの。

移行の際に注意しないと行けないのは、ハンドル操作です。OO4Oではこの辺が隠れていたのですが、FCSでは、うまい具合に使用しないといけません。よくあるパターンとしては、選択系と更新系と別に分けてハンドルを意識して操作する必要があります。

FastConnectorへ移行は?

OO4OとFCSで比較用にちょっと作成したプログラム

索引

fcsinstall
FastConnector 2-2 2-3 2-7 3 3-2
NLS_LANG 2-3 2-3
ベンチマーク 5 5
ORACLE_HOME 2-3

参考文献

  1. DIGITAL DESIGN. FastConnectorServer管理者ガイド. DIGITAL DESIGN, 2000
  2. DIGITAL DESIGN. FastConnectorユーザーズガイド(Client). DIGITAL DESIGN, 2000
  3. DIGITAL DESIGN. FastConnector Familyリファレンス. DIGITAL DESIGN, 2000