- PR -

VB2005でWindowsサービス

1
投稿者投稿内容
ASU
会議室デビュー日: 2008/06/18
投稿数: 4
投稿日時: 2008-06-18 06:43
初めまして。
まだVB2005を触り始めて5日の初心者で
御知恵を借りたく投稿いたしました。

VB2005でWindowsサービスプログラムを作成しています。
内容としては、
まずWindowsサービス起動時にデータベースに接続(Connect)します。
そのWindowsサービスに外部プログラム(ASP等)からDLLを呼ぶようにし
データベース接続を使い回してデータベースの操作をするという処理です。

サービス起動時にデータベースに接続されているのは確認しましたが、
外部プログラムから呼び出すとデータベースに接続されておらず、
接続オブジェクトがまだ宣言しただけの状態になっています。

推論ですが外部プログラムから呼び出した時にスレッドではなく
新しいプロセスとして動作しているので
接続オブジェクトが参照できていないのではないかと思うのですが・・・

どのようにすれば接続オブジェクトが参照できるのか
何をどうすれば良いのかわからずはまってます。
御知恵をお借りできれば幸いです。

よろしくお願いします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2008-06-18 10:45
引用:

ASUさんの書き込み (2008-06-18 06:43) より:
まずWindowsサービス起動時にデータベースに接続(Connect)します。
そのWindowsサービスに外部プログラム(ASP等)からDLLを呼ぶようにし
データベース接続を使い回してデータベースの操作をするという処理です。


おっしゃっていることが、意味不明です。

データベースの接続をプロセスをまたがって共有することはできないと思いますが、どんなシステム構成で何をやろうとしているのですか?
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2008-06-18 10:56
Windowsサービスと外部プログラムのインターフェースはなんですか?
もしかしてWindowsサービスを構成するDLLを外部プログラムと共有してるってことでしょうか?
ASU
会議室デビュー日: 2008/06/18
投稿数: 4
投稿日時: 2008-06-18 14:07
甕星さん、burton999さん、
申し訳ありません。
どう説明すればよいのか単語が思い浮かびません。

Windowsサービス内のメソッドを外部プログラム(ASP)から呼んでいます。
<ASPでの呼び出し例>
Set objHoge = Server.CreateObject( Service.Class)
Result = objHoge.Method( arg1,arg2,arg3,arg4 )

この処理を行う時に
Windowsサービス起動時に接続したコネクションを使い回しで使用したいのです。
コネクションを使用しないただの計算処理等をさせると正常に返ってきますが、
オブジェクトを共有して使用した場合には値が入っておらずエラーになります。

VB.NETでは無理なのでしょうか?
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2008-06-18 15:27
全然別プロセスなので無理です。
そもそもWindowsサービスに何をさせたいのかが分かりませが
それが分かれば、別の解決策があるかもしれません。
ASU
会議室デビュー日: 2008/06/18
投稿数: 4
投稿日時: 2008-06-18 16:27
burton999さん、

Windowsサービスには3つの機能を実装しようとしています。
@毎回Connect⇒Openをしない為のデータベース接続の永続化
A@を使用したデータベース操作処理の実装
(@ができていないので実装できてません)
Bデータベース操作処理の排他制御
(Mutexを使用することにより実装できました。)

元々VC++の物をVB.NETにマイグレーションしているのでできると思ったのですが・・・
ASU
会議室デビュー日: 2008/06/18
投稿数: 4
投稿日時: 2008-06-20 14:49
burton999さん、甕星さん、
返答ありがとうございました。

色々別の方法を試してみます。
1

スキルアップ/キャリアアップ(JOB@IT)