Best choice of technology

  • Thread starter Thread starter JohnFol
  • Start date Start date
J

JohnFol

I have a requirement to run some code on a server. The purpose of the code
is purely to process data between an MS SQL box and a remote Oracle box. It
has no UI, and needs no user intervention to run.

The 2nd part of the requirement is to have a UI that will allow an operator
to view the progress / current status of the processing. Even if the UI is
not loaded, the processing must continue.

I have a few ideas on how to tackle this, but would welcome opinions.

Any ideas most welcome.
 
You could of course run your program as a service for one thing. You may
also want to include messageQueues for instance, so that one of the servers
can be totally down and it won't have an affect on the other machine. It's
a bit vague of a description so i"m hesitant to recommend much more, but if
you let me know i'll be glad to see if I can help.

--

W.G. Ryan, eMVP

Have an opinion on the effectiveness of Microsoft Embedded newsgroups?
Let Microsoft know!
https://www.windowsembeddedeval.com/community/newsgroups
 
Hi, and thanks for the prompt reply.

My first thought was Windows Service, but I could not find a method of
raising events from it that the form (if open) could respond to.

For example, if within myService I had

Public Event MyHandler(ByVal strSomeData As String)


And then in the form I try and connect to it .. .

Public WithEvents MyServiceEvent As New
ServiceProcess.ServiceController("MyServiceName")

I can't get the 2 to synch up.


Again, any thoughts welcome.
 
For pure processing of data, I would consider creating a DTS task in SQL
Server. You can partially monitor it, so it may not be choice #1. In SQL
Server 2005, you have more monitoring options.

You can export DTS code to VB and set up a process to figure out where you
are.

With .NET you can make a service that runs these DTS processes. It will have
to use COM interop.

You can also roll your own DTS with a .NET service. The service option is
nice, as you can set up hooks to more easily monitor. The executable hooks
into the service and checks status, et al.

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

************************************************
Think Outside the Box!
************************************************
 
Hi Gregory, and thanks for the suggestions. I think it will be SQL2000, so
it sounds like my monitoring will have to be external to SQL.

A common theme to your reply and Williams' is the concept of interacting
with a service. I've tried the CustomerCommand, but it's a call into the
service and does not return values. Nor can I raise an event from the
service. This would give my UI something to hook into. Looks like I am
missing some key feature of services.

FYI
I aim to create Perfmon entries / counters, but the UI (if running) needs to
list something like the following:

"12 Jan 2004 10:00:03 Processing Order XYZ"
"12 Jan 2004 10:00:04 Order XYZ sucessfully processed"

.. . . you get the gist.

Thanks again for the ideas.
 
John,
I too would recommend a Windows Service.

To enable the service to communicate with the Form, you can use .NET
Remoting, a database Table, a file, or Performance Counters. Depending on
how dynamic/static you want the Form to be.

I find Performance Counters or a database table to be easier, however the
Form then needs to poll for updated data... I would use a Forms.Timer to
pool for the updated progress...

Hope this helps
Jay
 
The service can expose certain interfaces that your tool can query, or
continue to query. You can even make the service continually raise events
and subscribe. There are a variety of ways to architect.

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

************************************************
Think Outside the Box!
************************************************
 
Hi,

windows service which exposes some methods via remoting. Your monitoring
app will connect to the service, and it can subscribe to events raised
in the service as well.

Sunny
 
Back
Top