Symfoware/RDBの起動・停止時に発生したトラブルの事例、およびその対処方法について説明します。
Symfoware/RDBを何回か停止および起動したら、共用バッファプールが見れなくなった
共用バッファプールの開設は、Symfoware/RDBを起動するごとに必要になります。ユーザが開設、登録した共用バッファプールは、以下のタイミングで閉鎖されます。
利用者がrdbstopコマンド発行、またはサービスを停止して、Symfoware/RDBを停止したとき
サーバマシンの電源断が発生したとき
Symfoware/RDBがダウンしたとき
Symfoware/RDBを起動しようとしたらエラーが発生した(Windowsの場合)
プロシージャエントリーポイントNTapi_getrdblangがダイナミックリンクライブラリf3cwuapi.dllから見つかりません
再配布モジュール(DLLファイル)のレベルが合っていません。以下の原因が考えられます。
インストール、バージョンアップまたは応急修正の適用作業中に、何らかのトラブルが発生して、適用が正常に行われていない。
環境変数PATHに指定しているフォルダに、古いレベルの再配布モジュール(DLLファイル)が残っている。
以下の作業を実施後にSymfoware/RDBを起動してください。
原因1の場合
再度、インストール、バージョンアップまたは応急修正を適用してください。
原因2の場合
以下の手順で、古いレベルの再配布モジュール(DLLファイル)を削除してください。
ファイル名に“f3cwuapi.dll”を指定して、古いレベルの再配布モジュール(DLLファイル)を検索します。
検索された古いレベルの再配布モジュール(DLLファイル)を削除します。
システムのプロパティで、環境変数PATHに指定しているフォルダの中から、2.で検索された古いレベルの再配布モジュール(DLLファイル)が存在したフォルダを削除します。
Windows(R)を再起動します。
Symfoware/RDBを起動しようとしたら、メッセージqdg12230uが出力された
Symfoware/RDBの起動に失敗した場合、メッセージログファイルまたはイベントログに以下のメッセージが出力されることがあります。
qdg12230u: サービスファイルにポート番号が指定されていません
以下のサービスファイルにSymfoware Serverのサービスを登録していないことが原因だと考えられます。
Solaris/Linuxの場合
/etc/services
Windows(R) 2000の場合
\WINNT\system32\drivers\etc\services
Windows Server(R) 2003、Windows Server(R) 2008またはWindows Server(R) 2008 R2の場合
\WINDOWS\system32\drivers\etc\services
アプリケーションからSymfoware Serverに接続する方法として、システム内通信によるRDA-SV連携と、Symfoware Serverの独自プロトコルであるRDB2_TCP連携の2種類があります。RDB2_TCP連携を利用する場合には、システム用の動作環境ファイルにMAX_CONNECT_TCPパラメタを設定する必要がありますが、このパラメタを指定するとサービス起動時に対応するポート番号をチェックします。サービスファイルにSymfoware Serverのサービスを登録していないと、本エラーが発生します。
RDB2_TCP連携を利用する場合は以下の設定が必要です。
システム用の動作環境ファイルに以下の値を設定
MAX_CONNECT_TCP=(接続数)
サービスファイルに以下の値を設定
サービス名 ポート番号
例
RDBII 26551/tcp
クライアント用の動作環境ファイルに以下の値を設定(クライアント-サーバの形態の場合)
SERVER_SPEC=(通信方法,SQLサーバ名,データ資源名,ホスト名,ポート番号)
通信方法:RDB2_TCPを指定
SQLサーバ名:CONNECT文で指定したSQLサーバ名を指定
データ資源名:アクセスするデータベース名を指定
ホスト名:アクセスするホスト名を指定
ポート番号:サービスファイルに設定したポート番号を指定
注意
ODOSドライバを利用する場合、RDB2_TCPの設定は必要ですが、クライアント用の動作環境ファイルの設定は不要です。
参照
詳細は、“セットアップガイド”の“ポート番号の定義”、“システム用の動作環境ファイルによる定義”、および“アプリケーション開発ガイド(共通編)”の“クライアント用の動作環境ファイル”を参照してください。
Symfoware/RDBを停止しようとしたら、メッセージqdg60003uが出力された(Windowsの場合)
Symfoware/RDBの停止に失敗した場合、イベントログに以下のメッセージが出力されることがあります。
qdg60003u: RDBIIの停止に失敗しました 詳細はイベントログを参照してください
エラーメッセージが指している「イベントログ」とは、Windows(R)のイベントビューアで参照できる「アプリケーションのイベントログ」を指しています。
「アプリケーションのイベントログ」の最後のエラーより出現順序が1つ手前の原因で停止できないと考えられます。
おもな原因としては、「アプリケーションが動作中となっていて、セションが開始中のものがあるために停止できない」という状況が考えられます。
この場合、rdbpsコマンドを実行することにより、現在動作中のセションが存在するかを確認できます。
また、強制的に終了させたい場合は、rdbstopコマンドにeオプションを付加して実行することにより、Symfoware/RDBを停止できます。その時点で動作中だったトランザクションは、すべてキャンセル(ロールバック)されます。
rdbstop -e