C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: サービスについて


(過去ログ 20 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■8190 / inTopicNo.1)  サービスについて
  
□投稿者/ ビタミンB2 (1回)-(2007/09/25(Tue) 23:18:06)

分類:[VB.NET/VB2005] 

はじめまして。

VB.NETでサーバーのプログラムを開発しています。
OS:Windows Server 2003

常駐プロセス(バッチ)を作ろうとしているのですが、
@サービスを使用する。
ASLEEP処理を入れ、終了時刻までLOOPするようなEXEにする。(画面なし)

一般的にはどちらがよろしいのでしょうか。
@だと思うのですが、サービスって終了する際の処理ってできますか。
例えば、終了する際に今までの処理件数をDBにログ出力する等。。。

よろしくお願いします。
引用返信 編集キー/
■8194 / inTopicNo.2)  Re[1]: サービスについて
□投稿者/ よもやま (1回)-(2007/09/26(Wed) 01:54:39)
よもやま さんの Web サイト
No8190 (ビタミンB2 さん) に返信
> はじめまして。
>
> VB.NETでサーバーのプログラムを開発しています。
> OS:Windows Server 2003
>
> 常駐プロセス(バッチ)を作ろうとしているのですが、
> @サービスを使用する。
> ASLEEP処理を入れ、終了時刻までLOOPするようなEXEにする。(画面なし)
>
> 一般的にはどちらがよろしいのでしょうか。
> @だと思うのですが、サービスって終了する際の処理ってできますか。
> 例えば、終了する際に今までの処理件数をDBにログ出力する等。。。
>
> よろしくお願いします。
作ろうとする処理はわかりますが、
「例えば、終了する際に今までの処理件数をDBにログ出力する等」もう少し具体的に説明いただけないでしょうか。

例)
日単位でDB内にある勘定科目等の収集計算処理をし、その処理件数をログ出力するといったようなことがしたい。
答え例)
タスクスケジューラ(NT4.0や NT3.51だとATコマンド等)を使うことは検討してみましたでしょうか。
タスクスケジューラで開始時刻や間隔を設定でき、週一回、月一回等の処理スケジュールも登録できます。
タスクスケジューラを使う場合には、ほかスケジュール登録された処理と重なってもよいか等計画しておいてください。

> @だと思うのですが、サービスって終了する際の処理ってできますか。
何をもって終了とするのでしょうか?
サービスの停止を指しているのでしょうか?
それとも業務サービスを指しているのでしょうか?
Windowsサービスプログラムを作成する場合には、メンテナンス以外停止させてよいか等検討する必要があります。



引用返信 編集キー/
■8196 / inTopicNo.3)  Re[1]: サービスについて
□投稿者/ ひろ (46回)-(2007/09/26(Wed) 08:28:29)
No8190 (ビタミンB2 さん) に返信

> 常駐プロセス(バッチ)を作ろうとしているのですが、
                ^^^^^^
  ん〜、この時点で「サービス」とか関係ないし。
  一般的なら「タスクにスケジュール登録」でいいのでは?

  しかし、よもやまさんも指摘しているように、どういった動作を望むのかによって選択枝が
  変わるので、これだけでは何とも。(まあ、何をどれで作成するもスレ主の気分でしょうが…)

引用返信 編集キー/
■8200 / inTopicNo.4)  Re[2]: サービスについて
□投稿者/ ビタミンB2 (2回)-(2007/09/26(Wed) 10:42:02)
No8194 (よもやま さん) に返信
> 作ろうとする処理はわかりますが、
> 「例えば、終了する際に今までの処理件数をDBにログ出力する等」もう少し具体的に説明いただけないでしょうか。
>
> 例)
> 日単位でDB内にある勘定科目等の収集計算処理をし、その処理件数をログ出力するといったようなことがしたい。
> 答え例)
> タスクスケジューラ(NT4.0や NT3.51だとATコマンド等)を使うことは検討してみましたでしょうか。
> タスクスケジューラで開始時刻や間隔を設定でき、週一回、月一回等の処理スケジュールも登録できます。
> タスクスケジューラを使う場合には、ほかスケジュール登録された処理と重なってもよいか等計画しておいてください。
>

説明不足でした。すみません。
タスクスケジューラも考えたのですが、処理は2分に一度は起動してほしいのです。
処理内容はDB to DBのになり、その総件数(一日に処理した件数)をログ出力したいです。


> 何をもって終了とするのでしょうか?
> サービスの停止を指しているのでしょうか?
> それとも業務サービスを指しているのでしょうか?
> Windowsサービスプログラムを作成する場合には、メンテナンス以外停止させてよいか等検討する必要があります。
>

業務的にサービスを停止したい時があるのですが、Windowsサービスだと「コントロールパネル→管理ツール」からの停止しかできないのでしょうか。

よろしくお願いします。
引用返信 編集キー/
■8227 / inTopicNo.5)  Re[3]: サービスについて
□投稿者/ GOD (1回)-(2007/09/26(Wed) 15:13:30)
>>何をもって終了とするのでしょうか?
>>サービスの停止を指しているのでしょうか?
>>それとも業務サービスを指しているのでしょうか?
>>Windowsサービスプログラムを作成する場合には、メンテナンス以外停止させてよいか等検討する必要があります。
>>
>
> 業務的にサービスを停止したい時があるのですが、Windowsサービスだと「コントロールパネル→管理ツール」からの停止しかできないのでしょうか。
>
net コマンドを使用しても停止しますよ。(net stop サービス名)
「ファイルを指定して実行」、「コマンドプロンプト」等。
引用返信 編集キー/
■8257 / inTopicNo.6)  Re[3]: サービスについて
□投稿者/ よもやま (2回)-(2007/09/26(Wed) 22:09:52)
よもやま さんの Web サイト
No8200 (ビタミンB2 さん) に返信
>
> 説明不足でした。すみません。
> タスクスケジューラも考えたのですが、処理は2分に一度は起動してほしいのです。
> 処理内容はDB to DBのになり、その総件数(一日に処理した件数)をログ出力したいです。
>
>
>
> 業務的にサービスを停止したい時があるのですが、Windowsサービスだと「コントロールパネル→管理ツール」からの停止しかできないのでしょうか。
>
> よろしくお願いします。
うーん。
サービスプログラムを手動で止めたりする事を日課にされるのでしたらGODさんの回答にあったような方法で可能です。
私ならば、
>処理は2分に一度は起動
>処理内容はDB to DBのになり、その総件数(一日に処理した件数)をログ出力
の目的をもっとシンプルに考え、
(処理条件)常時稼働PC(サーバー等)で実施
(アプリの挙動)
1.起動から2分間隔のタイマーイベント等を用いて処理を実施
2.TCPサーバーソケットの受け口を作成しておき、所定コマンドによって、タイマーの停止・稼働を制御
とするか
タスクスケジューラーを日々設定し、処理を稼働させたい時間設定をする。
月曜日のタイムスケジュールは、9:00から開始し20:00で終わるよう設定
火曜日のタイムスケジュールは、10:00から開始し14:00で終わるよう設定
水曜日、木曜日、金曜日、土曜日、日曜日とそれぞれ設定
業務サービススケジュールにあわせタイムスケジュラーを修正
とか。
サービスで動作させるとするならば
結局日々の業務サービススケジュール情報は必要なわけですよね?
だとするなら
処理自体を行うスケジュールをDB登録して勝手にやらせておくとか。
Windowsサービスにこだわる必要もないんじゃないでしょうか。



引用返信 編集キー/
■8276 / inTopicNo.7)  Re[3]: サービスについて
□投稿者/ ひろ (50回)-(2007/09/27(Thu) 10:10:46)
No8200 (ビタミンB2 さん) に返信

条件としては

・2分ごとに、とある処理(DBでの処理件数ログを出力する)を実行したい。
・任意のタイミングで処理を止めたい。

ですので、普通の Windows アプリでも可能ですよね。(コンソールでも出来るかな?)
アプリが起動したらすぐにタイマー監視(2分)するようにして、インターバル経過したら処理を実行する。
アプリ自体のショートカットをサーバーのスタートアップに設定すれば、サーバー立ち上げと同時に実行できるし。
これなら任意のタイミングで止められますよね。

また、このプログラムを常駐タイプにしても問題ないですね。

もちろんサービスでも、出来ると思います。
ですが、ビタミンB2さんが「やりたいこと」に対しての苦労や操作、後のメンテナンス等を考えると…どうでしょうか?
サービスにこだわっているのが、私には理解出来ないところです。
但し、ビタミンB2さんが、今回の事例を元に「サービスプログラムをやってみたい」というのであれば別ですが。


引用返信 編集キー/
■8280 / inTopicNo.8)  Re[4]: サービスについて
□投稿者/ 渋木宏明(ひどり) (387回)-(2007/09/27(Thu) 10:43:41)
渋木宏明(ひどり) さんの Web サイト
> アプリ自体のショートカットをサーバーのスタートアップに設定すれば、サーバー立ち上げと同時に実行できるし。

> また、このプログラムを常駐タイプにしても問題ないですね。

どちらのパターンも、コンソールへのログオンが必要になりますね。
それでいいなら問題ないですけど。

2分間隔くらいなら、タスクスケジューラに登録するんでいいんじゃないかな?

引用返信 編集キー/
■8284 / inTopicNo.9)  Re[5]: サービスについて
□投稿者/ ひろ (53回)-(2007/09/27(Thu) 10:57:01)
No8280 (渋木宏明(ひどり) さん) に返信

> どちらのパターンも、コンソールへのログオンが必要になりますね。
> それでいいなら問題ないですけど。

はっ、そうだ…
失念していました。

> 2分間隔くらいなら、タスクスケジューラに登録するんでいいんじゃないかな?

そう思って、回答(#8196)したのですが…
スレ主さんはどうも「タスクスケジューラ登録」はお嫌なようでして。


引用返信 編集キー/
■8285 / inTopicNo.10)  Re[4]: サービスについて
□投稿者/ 渋木宏明(ひどり) (389回)-(2007/09/27(Thu) 11:29:50)
渋木宏明(ひどり) さんの Web サイト
> Windowsサービスにこだわる必要もないんじゃないでしょうか。

ものすごくキメ細かく制御したい、とかなら別ですけどね。
そうでもなさそうだし。

ひょっとして、スケジューラだと

・「2分間隔で実行」の設定
・(ある程度)任意のタイミングで登録JOBを停止・無効化する

ことが出来ないと思ってるのかな?

どっちもんできるんだけどなぁ。


引用返信 編集キー/
■8297 / inTopicNo.11)  Re[5]: サービスについて
□投稿者/ ビタミンB2 (3回)-(2007/09/27(Thu) 13:50:10)
皆さん、いろいろなご回答ありがとうございます。

2分間隔で起動という話でしたが、他担当者のプログラムで2秒毎に起動というものがありまして。。。

いろいろご回答いただいた結果、
@起動はタスクスケジューラを使用。
Aモジュールはコンソールアプリにする。
B2分間隔の処理はタイマー機能、またはSLEEPをする。
C終了の際は、コンソールアプリ内になんらかの終了処理を用意する。

これでやってみようと思うのですが、問題ないですかね。
よろしくお願いします。

引用返信 編集キー/
■8300 / inTopicNo.12)  Re[6]: サービスについて
□投稿者/ 渋木宏明(ひどり) (392回)-(2007/09/27(Thu) 14:25:34)
渋木宏明(ひどり) さんの Web サイト
> これでやってみようと思うのですが、問題ないですかね。

実装をする上で大きな問題点は無いと思います。
前提となる要件を詳細に知らないので、要件とぴったりかみ合うかどうかまでは分かりませんが。

引用返信 編集キー/
■8303 / inTopicNo.13)  Re[7]: サービスについて
□投稿者/ ビタミンB2 (5回)-(2007/09/27(Thu) 16:09:54)
No8300 (渋木宏明(ひどり) さん) に返信
>>これでやってみようと思うのですが、問題ないですかね。
>
> 実装をする上で大きな問題点は無いと思います。
> 前提となる要件を詳細に知らないので、要件とぴったりかみ合うかどうかまでは分かりませんが。
>

とりあえず、がんばってみます。
いろいろなご回答いただきありがとうございました。
引用返信 編集キー/
■8304 / inTopicNo.14)  Re[8]: サービスについて
□投稿者/ ビタミンB2 (6回)-(2007/09/27(Thu) 16:10:30)
No8303 (ビタミンB2 さん) に返信
> ■No8300 (渋木宏明(ひどり) さん) に返信
> >>これでやってみようと思うのですが、問題ないですかね。
>>
>>実装をする上で大きな問題点は無いと思います。
>>前提となる要件を詳細に知らないので、要件とぴったりかみ合うかどうかまでは分かりませんが。
>>
>
> とりあえず、がんばってみます。
> いろいろなご回答いただきありがとうございました。

解決済みチェック忘れました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -