Toon posts:

[XML] Webservice en ASP

Pagina: 1
Acties:

Verwijderd

Topicstarter
In een vorig topic heb ik het al gehad over een koppeling naar een AS/400 Systeem met DB2 tabellen. Dit is nu gelukt via de ODBC Driver van Client Acces.
Nu komt een tweede stap voor mij, de gegevens uit de betreffende database moeten verschijnen op een PDA met Windows Mobile 2003.

Ik dacht dat zoiets heel makkelijk ging via ODBC of iets dergelijks dat bleek tegen te vallen zonder programma's van derden.
Het volgende had ik toen bedacht, een PDA kan wel via XML --> Webservice communiceren.
Ben dus vandaag bezig geweest met het maken van een Webservice in C# .Net. Deze webservice moest dan via ODBC de gegevens ophalen en beschikbaar stellen voor de PDA.
Dit is na veel pijn en moeite gelukt :D.. Maaaaaar het is wel verschrikkelijk traag soms. Zelfs als ik maar 1 record ophaal.
Omdat deze situatie niet werkbaar is ging ik wat proberen met ASP en een ADOConnection. Ik kwam na wat zoeken een voorbeeld tegen om in .asp bestand een DB2 tabel uit te lezen. Dit bleek na enkele testen fantastisch te werken!! Supersnel en simpel.

Om nu toch gegevens op mijn PDA te krijgen, de gegevens op de PDA moeten in een C# prog te zien zijn, heb ik met een "WebRequest" en een "WebRespond" in mijn progje de .asp pagina aangeroepen en ervoor gezorgd dat de .asp pagina alleen maar gegevens uit de database toont en verder geen html. Door middel van de "Webrespond" kan ik met een Stream de output doorlopen en tonen.

Dit werkt op zich allemaal wel aardig goed, maar al met al vind ik dit geen beste oplossing. Naar mijn idee moet dit veel simpeler kunnen.

Ik heb dan ook de volgende vragen.

- Hoe kan het dat een webservice die via een ODBC koppeling verbinding maakt
DB2 tabellen zo verschrikkelijk traag is.

- Vervolgvraag, hoe kan het dat als ik alle records uit de DB2 tabel in .asp pagina
met een ADOConnection toon dit wel loeisnel is???

- En heeft iemand suggesties welke richting ik het moet zoeken om wel een nette
oplossing te krijgen, en is een WebService te combineren met een
ADOConnection.

Henro

Verwijderd

Misschien dat je hier iets aan hebt, is een XML wrapper wat zeer snel werkt via ASP.
www.viaxml.com

Verwijderd

Topicstarter
Ik zoek eigenlijk meer een zelfgemaakte oplossing.
Alleen ik weet niet precies in welke richting ik maoet zoeken. :(

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 01-05 13:23
Verwijderd schreef op 21 oktober 2004 @ 21:45:
- Hoe kan het dat een webservice die via een ODBC koppeling verbinding maakt
DB2 tabellen zo verschrikkelijk traag is.
Dit ligt aan ODBC. Waarom weet ik niet, maar ik meen dat ODBC zeer vertragend werkt en dus echt seconden doet om een verbinding op te bouwen. ODBC is dus ook zeker geen oplossing.

Dat het in ASP wel snel is komt omdat IIS zelf meteen de verbinding maakt en deze wel goed werkt (of zoiets, het werkt dus het is goed :z)

Maar wat is nu je probleem? Het werkt toch goed? Of zie ik dat verkeerd. Door de hele lap tekst zag ik wel een probleem maar dat heb je zelf opgelost. Rest niks in mijn ogen...

Verwijderd

Topicstarter
Klopt, het werkt nu wel.
Maar de manier waarop is in mijn ogen zo omslachtig, ik had het gevoel dat het op een overzichtelijkere manier kan.

Een webservice met daarin een ADOConnection ofzo iets.

[ Voor 5% gewijzigd door Verwijderd op 22-10-2004 08:43 ]


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Verwijderd schreef op 21 oktober 2004 @ 21:45:
- Hoe kan het dat een webservice die via een ODBC koppeling verbinding maakt
DB2 tabellen zo verschrikkelijk traag is.
Weet niet of dat ook toepasbaar is hier, maar doorgaans is het opzetten van een ODBC connectie een trage actie. En voor een webserver maak je typisch voor elke request een nieuwe connectie. Om dat op te losesn kan je connection pooling gebruiken c.q. implementeren. Dan sluit je geen connecties af, maar hergebruik je een vorige connectie.
- Vervolgvraag, hoe kan het dat als ik alle records uit de DB2 tabel in .asp pagina
met een ADOConnection toon dit wel loeisnel is???
Misschien dat hier automatisch aan connection pooling word tgedaan?
- En heeft iemand suggesties welke richting ik het moet zoeken om wel een nette
oplossing te krijgen, en is een WebService te combineren met een
ADOConnection.
Je moet niet de webrequest/response aanpassen. Dat is veel te omslachtig. Maar gewoon een echte webservice aan. In de webservice class kan je dan een aantal webmethods maken. Als je daarin een functie zet die een array van resultaten (bijv. een class Persoon met attributen name en birthdate) oplevert, dan kan je hierbij komen d.m.v. een normale functieaanroep op je client. Even webreference invullen, instantie maken van de webservice class en je kan de methode die een array oplevert gewoon aanroepen).

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Topicstarter
Mijn vorige webservice had ik in C# .Net gemaakt. Daarin kon ik geen ADOConnection vinden. Kan dat kloppen?

In wat voor variant moet ik wel een webservice maken om ADOConnection's te kunnen maken... Visual Basic, ASP .Net.. Of zeg ik nu iets heel doms :).

Ik zal ook zsm ook eens kijken naar Connection Pooling. Heb ik nog niet eerder van gehoord 8)7 .

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Verwijderd schreef op 22 oktober 2004 @ 09:37:
Mijn vorige webservice had ik in C# .Net gemaakt. Daarin kon ik geen ADOConnection vinden. Kan dat kloppen?
Dat je het niet kunt vinden zou kunnen kloppen, maar daarom is het er wel degelijk. >:)
Je kunt via ADO.NET gewoon een ADOConnection openen.

voorbeeldje

ff google levert heel wat op

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


Verwijderd

Topicstarter
Had nog weinig tijd gehad om er verder mee door te gaan, maar ben er achter dat System.Data.ADO niet meer bestaat, die namespace was er béta 1 wel maar is in béta 2 verandert naar System.Data.OleDB ook ADOConnection bestaat niet meer, is ook OleDbConnection geworden.

Verwijderd

Topicstarter
Ik gebruik nu onderstaande code voor de connectie naar de AS/400. Dit werkt vanuit een C# .Net WindowsApplicatie werkt dit goed.

OleDbConnection con = new OleDbConnection("Provider=IBMDA400;Data source=AS720;User ID=User;Password=Wacht");

Maar als ik dit gebruik in een C# .Net WebService werkt het niet.
Kan het zijn dat vanuit een WebService de Data source niet aan te roepen is?
Pagina: 1