Re: Remoting , Wann werden Objekte bei einem Singleton auf dem Host zerstört
- From: "Klaus Leuthold" <Klaus.Leuthold@xxxxxxxxxxxxxx>
- Date: Thu, 20 Oct 2005 14:56:50 +0200
Hallo Peter,
erstmal Danke das Du dich meines Problems angenommen hast
> die Darstellung ist etwas unklar. Wie erzeugst du auf dem Server das
> "Remotable Objekt"? Wie arbeitet das Objekt mit der Datenbank?
Die Datenzugriffsklasse auf dem Server muss folgende Schnittstelle
implementieren
Public Interface DBQuery
Sub DBAnmeldung(ByVal DBServer$, ByVal DBName$, ByVal DBUser$, ByVal
DBPass$)
Function DBAbfrage(ByVal Abfr As String) As DataSet
Function FehlerAusgabe() As String
End Interface
Der Host selbst wird über eine Configurationsdatei an die
Datenzugriffsklasse gebunden. Die Datei sieht so aus
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown
type="RemoteDBService.DBService,RemoteDBService"
objectUri="DBService"
mode="Singleton"
/>
</service>
<channels>
<channel ref="tcp" port="8000">
<serverProviders>
<formatter ref="binary"/>
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>
</configuration>
>
> Wie liefert der Server das DataSet zurück? Als Return-Objekt der
> aufgerufenen Methode des remote instanzierten Objektes?
>
Ja über die Methode "DBAbfrage"
>
> Wie gibst du denn die Objekte frei?
>
Und hier liegt wahrscheinlich der Hund begraben. Ich weiss einfach nicht
wie ich das Objekt wieder freigeben kann. In der Datenzugriffsklasse wird
die Connection geschlossen, das instanzierte Objekt ist doch aber die
Datenzugriffsklasse und wie kann ich so eine Klasse zerstören. Muss ich das
vom Client aus in einer Art Empfangsbestätigung initiierrn indem ich die
Schnittstelle um eine Methode "DBObjDestroy" erweitere ?
>
> Da müsste man die Aufruftechnologie kennen.
>
Der Ablauf ist folgender
Die Hostanwendung läuft auf dem Server permanent
Der Client implementiert beim Start die Schnittstelle
RemotingConfiguration.Configure("Client.exe.config")
obj = Activator.GetObject(GetType(DBQuery),
System.Configuration.ConfigurationSettings.AppSettings("RemoteObjUrl"))
mit
Dim RemObj As DBQuery
RemObj = CType(obj, DBQuery)
wird eine Instanz erzeugt.
Der Client setzt die Anmeldeinformationen an den Host über die Methode
DBAnmeldung ab
Dann setzt der Client den Select uber die Methode DBAbfrage ab und erhält im
Ergebnis ein Dataset.
Vielleicht kannst Du mir da weiterhelfen
Danke
Klaus
.
- References:
- Remoting , Wann werden Objekte bei einem Singleton auf dem Host zerstört
- From: Klaus Leuthold
- Re: Remoting , Wann werden Objekte bei einem Singleton auf dem Host zerstört
- From: Peter Fleischer
- Remoting , Wann werden Objekte bei einem Singleton auf dem Host zerstört
- Prev by Date: Window Message erstellen
- Next by Date: Re: Window Message erstellen
- Previous by thread: Re: Remoting , Wann werden Objekte bei einem Singleton auf dem Host zerstört
- Next by thread: Variabeln an Kommandozeile senden
- Index(es):
Relevant Pages
|