名前
rdbexdsi -- DSIをSQL処理の対象から除外または除外を解除
形式
rdbexdsi -m { on | off } [ -u ユーザID ] { -i データベース名.DSI名 | -f ファイル名 }
形式 (情報を表示する場合1)
rdbexdsi -mp [ -u ユーザID ]
形式 (情報を表示する場合2)
rdbexdsi -mc [ -u ユーザID ]
形式 (切離し完了を待ち合わせる場合)
rdbexdsi -mw [ -u ユーザID ] [ -s 時間間隔 ]
機能説明
SQLが処理対象とするDSIを動的に除外したり、除外したDSIを動的に解除します。
DSIの除外または除外の解除は、アプリケーションのトランザクションの切れ目に有効となります。
オプション
DSI名で指定するDSIを、アプリケーションの処理対象外とします。
DSI名で指定するDSIを、アプリケーションの処理対象とします。
-monオプションでアプリケーションの処理対象外としたDSIの情報を出力します。
-monオプションでアプリケーションの処理対象外としたDSIが、すべてのトランザクションで処理対象外になったかどうかを確認するための情報を出力します。
-monオプションでアプリケーションの処理対象外としたDSIが、すべてのトランザクションで処理対象外になったかどうかを一定時間ごとに調べ、すべてのトランザクションで処理対象外になった場合は処理を終了します。
Symfoware/RDBにコネクションを接続しているユーザのユーザIDを指定します。
このユーザIDでコネクションを接続しているアプリケーションに対して、本コマンドの処理が有効となります。
本オプションを省略した場合は、すべてのユーザを対象とします。
SQL処理の対象から除外または除外を解除するDSI名を指定します。
DSI名で指定するDSIは、表のDSIでなければなりません。
インデックスのDSIを指定した場合には、エラーメッセージが表示されます。
-monオプションですでに除外となっているDSI名を指定した場合には、エラーメッセージが表示されます。
-moffオプションで指定するDSIは、-monオプションによりアプリケーションの処理対象外となっていなければなりません。
-mwオプションにより切離し完了を確認する場合に、-monオプションでSQL処理の対象から除外したDSIが、すべてのアプリケーションで処理対象外になったかどうかをチェックする時間間隔を秒単位で指定します。
本コマンド投入時のチェックですべてのアプリケーションで処理対象外になっていなければ、指定した時間が経過した時点で再度チェックを行います。
その後、すべてのアプリケーションで処理対象外になるまで、指定した時間間隔ごとにチェックを行います。
すべてのトランザクションで処理対象外になっていれば本コマンドは終了します。
本オプションが省略された場合は5が指定されたものとみなします。
指定できる値は1から99までの整数です。
複数のDSI名を記述したファイル名を絶対パス名で指定します。
ファイル名に指定できる長さは、OSで定義される最大バイト数までです。
以下に、SQL処理の対象から除外または除外を解除するDSIを定義するファイル内の形式を説明します。
# コメント
データベース名.DSI名
先頭に“#”がある行は、コメント行として読みとばされます。
このとき“#”は必ず行の先頭に記述する必要があります。
ファイル内には空行を含むことができます。
各行の処理中に、指定形式の誤りなど、継続可能なエラーが検出された場合は、メッセージが表示され、次の行から処理が継続されます。
領域不足など、継続不可能なエラーが検出された場合には、その時点で処理が中止されます。
この場合、エラー検出までに行われた処理は有効となります。
SQL処理の対象から除外または除外を解除するDSI名を指定します。
DSI名で指定するDSIは、表のDSIでなければなりません。
インデックスのDSIを指定した場合には、エラーメッセージが表示されます。
-monオプションですでに除外となっているDSI名を指定した場合には、エラーメッセージが表示されます。
-moffオプションで指定するDSIは、-monオプションによりアプリケーションの処理対象外となっていなければなりません。
使用例
在庫表DSIを、SQL処理の対象から除外します。
rdbexdsi -mon -u i4874 -i 在庫管理DB.在庫表DSI
在庫表DSIを、すべてのユーザのSQL処理の対象から除外します。
rdbexdsi -mon -i 在庫管理DB.在庫表DSI
終了ステータス
以下の終了ステータスが返されます。
0 : 正常終了
0以外 : 異常終了
注意
本コマンドの情報は、Symfoware/RDBの停止後には引き継がれません。
rdbexdsiコマンドのユーザID指定、および、ユーザID省略を併用する場合、以下の注意事項があります。
-uオプションを省略かつ-mon オプションを指定してDSIを除外した状態(全ユーザに対して除外状態)では、-uオプションを指定して同一のDSIに対して以下の操作はできません。
-mon オプションを指定してDSIを除外
rdbexdsi -mon -i 在庫管理DB.在庫表DSI rdbexdsi -mon -u user1 -i 在庫管理DB.在庫表DSI
-moffオプションを指定してDSIの除外を解除
rdbexdsi -mon -i 在庫管理DB.在庫表DSI rdbexdsi -moff -u user1 -i 在庫管理DB.在庫表DSI
-uオプションを指定かつ-mon オプションを指定してDSIを除外した状態(特定のユーザに対して除外状態)では、-uオプションを省略して同一のDSIに対して以下の操作はできません。
-mon オプションを指定してDSIを除外
rdbexdsi -mon -u user1 -i 在庫管理DB.在庫表DSI rdbexdsi -mon -i 在庫管理DB.在庫表DSI
-moffオプションを指定してDSIの除外を解除
rdbexdsi -mon -u user1 -i 在庫管理DB.在庫表DSI rdbexdsi -moff -i 在庫管理DB.在庫表DSI
表示項目の見出しと意味
-monオプションによりアプリケーションの処理対象外としたDSI名(データベース名.DSI名)
モジュール名
RDB構成パラメタファイルのRDBCLIENTINFにADDRESSを指定した場合、または省略した場合
システム内通信のアプリケーション :アプリケーションロードモジュール名/コネクション名
トランザクションモニタ配下のアプリケーション :データベース名/コネクション名
RDB2_TCP接続のアプリケーション :接続端末のIPアドレス/コネクション名
RDA-SV接続のアプリケーション :接続端末のIPアドレス/コネクション名
RDB構成パラメタファイルのRDBCLIENTINFにNAMEを指定した場合
システム内通信のアプリケーション :アプリケーションロードモジュール名/コネクション名
トランザクションモニタ配下のアプリケーション :データベース名/コネクション名
RDB2_TCP接続のアプリケーション :接続端末のホスト名/コネクション名
RDA-SV接続のアプリケーション :接続端末のホスト名/コネクション名
プロセスID
切離し状態
Accept : 切離しは有効
Non-Accept : 切離しは有効ではない
ユーザID
すべてのユーザを対象にDSIが除外された場合は、“[ALL USER]”が表示されます。
(-mpオプションを指定した場合のみ表示)