初めまして。
Oracle11g環境で1クライアントから複数サーバ(100〜200台)への問い合わせを定期的に(15sec毎20時間程)行い、負荷状態レスポンスタイムを調査したいと考えています。
そこで、VBのTimerを使用しbatファイルを定期的に起動することでSQLスクリプトの実行ができればと思うのですが、デスクトップ上等にあるファイルを起動させることは可能でしょうか?
また、可能な場合どのような処理を行えばよろしいでしょうか?
ご教授よろしくお願い致します。
また、上記のような処理をC++で行えると嬉しいのですが、ご存じの方がいらっしゃいましたら併せてお教え頂きたいと思います。
Timerのような処理がC++で分からなかったのでVBでの処理を考えました。
バッチ処理で実行する意味があるのですか?
200台だと、一台0.75秒でコマンドプロンプト起動して
接続して終了させないといけないと思うのですが
そもそも一台ごとなので負荷になりません。
C++でという意味が分かりませんが
MFCだったら
SetTimerで15sec毎にイベントを発生させてマルチスレッドで
CDatabase m_db;
SetTimer(0,15000,0);
void CxxDlg::OnTimer(UINT nIDEvent)
{
for(int i=0;i<200;i++) {
AfxBeginThread(ConnectThread); // 引数覚えてません
}
CDialog::OnTimer(nIDEvent);
}
static UINT ConnectThread(UINT nIDEvent)
{
CDatabse l_db;
l_db.Open("DSN=XXX");
l_db.Close();
}
てなかんじで、ODBC接続で(マルチスレッド対応の奴ね)
いけるんではないでしょうか。
処理待ちとかその辺は考えてません。
どちらかというと、クライアントの耐久試験ですね。
#適当に書いたので引数とかは調べてみてください
>そもそも一台ごとなので負荷になりません
ごめんなさい。これは勘違い。
15秒の内にコマンドプロンプト200個は現実的ではないと
お考えください。
さらにごめんなさい。
全然関係ない事話してますね。
質問をよく見てませんでした
申し訳ない。
スルーしてください。