Autor |
Beitrag |
hamburg
Hält's aus hier
Beiträge: 2
|
Verfasst: Mo 07.11.05 21:25
Hallo zusammen,
einen normalen WebService zu programmieren habe ich bereits geschafft Smile Jetzt soll jedoch eine Datenbankanbindung (per FireBird) stattfinden.
Kann mir jmd ein Beispiel geben? Mir fehlt leider jede Idee, bei Anfragen auf die IBSQL-Komponenten zuzugreifen - und bei jeder Anfrage eine neue Verbindung zur Datenbank aufzubauen kann's ja auch nicht sein.
Danke,
Malte
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Di 08.11.05 14:34
Hi,
auf welcher Basis hast Du den Webservice programmiert? .Net, Intraweb, cgi,.....????
Bei .Net nimmst Du am besten den Firebird .NET Databaseprovider, gibts bei Firebird zum Download. Bei den anderen hast Du insofern das Problem, dass Du für jede Verbindung eine eigene Transaktionssteuerung brauchst, d.h. Du musst dir vermutlich "von Hand" nen Transaktionspool schaffen und dir von dort die benötigten Transaktionen holen.
Grüße
|
|
Robert.Wachtel
      
Beiträge: 895
Erhaltene Danke: 7
Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
|
Verfasst: Di 08.11.05 15:42
Lemmy hat folgendes geschrieben: | [...] Intraweb [...] |
Das geht?
Zitat: | Bei .Net nimmst Du am besten den Firebird .NET Databaseprovider, [...] |
Kann man dann davon ausgehen, dass die Verbindungen im Pool gecached werden und praktisch erst im Pool nachgeschaut wird, ob da noch 'ne ungenutzte Verbindung rumliegt, bevor eine neue Verbindung erstellt wird?
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Di 08.11.05 16:20
Robert.Wachtel hat folgendes geschrieben: | Lemmy hat folgendes geschrieben: | [...] Intraweb [...] |
Das geht? |
Ich dachte das ist die Daseinsberechtigung von intraweb....???
Robert.Wachtel hat folgendes geschrieben: |
Zitat: | Bei .Net nimmst Du am besten den Firebird .NET Databaseprovider, [...] |
Kann man dann davon ausgehen, dass die Verbindungen im Pool gecached werden und praktisch erst im Pool nachgeschaut wird, ob da noch 'ne ungenutzte Verbindung rumliegt, bevor eine neue Verbindung erstellt wird? |
Das kann ich nicht sagen, weil ich micht damit nicht eingehend beschäftigt habe. Ich gehe aber davon aus, da das meines Wissens doch eine "Grundfunktion" der .Net Data Provider darstellt....
Grüße
Lemmy
|
|
Robert.Wachtel
      
Beiträge: 895
Erhaltene Danke: 7
Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
|
Verfasst: Di 08.11.05 16:30
Lemmy hat folgendes geschrieben: | Ich dachte das ist die Daseinsberechtigung von intraweb....??? |
Nö, eigentlich ist es eher eine ASP-Alternative - also auch mit GUI für Benutzereingaben. Dass man damit auch WebServices entwickeln könnte, wäre mir zumindest neu (ich möchte es aber nicht ausschliessen).
Zitat: | [...] Verbindungspooling von .NET DataProvidern [...]
Das kann ich nicht sagen, weil ich micht damit nicht eingehend beschäftigt habe. Ich gehe aber davon aus, da das meines Wissens doch eine "Grundfunktion" der .Net Data Provider darstellt.... |
Ich gehe auch davon aus, hatte aber ehrlicherweise gehofft, in Dir jemanden zu finden, der diese meine Hoffnung in sicheres Wissen wandeln kann... 
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Di 08.11.05 18:04
Sorry, dass ich Dir da nicht weiterhelfen kann!
Aber vielleicht kannst Du mich aufklären was der Unterschied zwischen einem Webservice mit wegen mir .Net und einer "Webapplikation" mit ASP, cgi, Intraweb.
Grüße
Lemmy
|
|
Robert.Wachtel
      
Beiträge: 895
Erhaltene Danke: 7
Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
|
Verfasst: Di 08.11.05 18:20
Hier hilft Wikipedia ganz gut weiter:
Webservice
ASP.Net
|
|
hamburg 
Hält's aus hier
Beiträge: 2
|
Verfasst: Di 08.11.05 20:53
Hi,
danke für Eure Antworten ...
Der WebService basiert auf V7 Enterprise (CGI Standalone WebService) und wird unter Apache2 im Virtual Host betrieben.
Gibt's denn nirgendwo ein Beispiel o.ä.? Ich kann doch nicht der erste sein, der an dieser Frage "scheitert" ...
Gruß,
Malte
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Mi 09.11.05 08:56
Robert.Wachtel hat folgendes geschrieben: | Hier hilft Wikipedia ganz gut weiter:
|
Danke! Da ist Intraweb dann vermutlich nicht wirklich geeignet  )
@Hamburg: Ich habe so was noch nie gemacht. Ich denke aber einen Transacion-Pool anzulegen sollte nicht so schwer sein:
Als erstes brauchen wir 2 TObjectList-Objekte:
Delphi-Quelltext 1:
| var olTransactionPool, olTransactionActive:TObjectList |
beim Start des Webservice kannst Du dann gleich mal ne Handvoll Transaktionen erzeugen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| for i:=0 to 9 do begin Transaction:=TIBTransaction.Create; Transaction.Database:=IBDatabase; olTransactionPool.Add(Transaction); end; |
Bei der Anforderung einer Transaction schaust Du nach ob im Pool noch eine vorhanden ist:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| if olTransaction.count>0 then begin MeineTranaktion:=olTransaction.items[olTransaction.Count-1]; olTransaction.Delete[olTransaction.Count-1]; end else MeineTransaktion:=TIBTransaction.Create; .... begin olTransactionActive.Add(MeineTransaktion); |
und wenn nicht, dann erzeugst Du dir eine. Zum Schluss weißt Du die den aktiven Transaktionen. Wenn dann eine Verbindung und damit Transaktion abgeschlossen ist, kannst Du die einfach wieder in den pool verschieben.
Hinweis: Ich habe so was noch nie gemacht. Die Codeschnipsel sind hier auf die schnelle niedergeschrieben, ohne Test,..... die sollen also nur einen Hinweis darstellen!
Grüße
Lemmy
|
|