<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.aspnetzone.de/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Datenzugriffe (Datenbanken, XML, AD etc.)</title><link>http://www.aspnetzone.de/forums/31/ShowForum.aspx</link><description>Fragen zu Datenquellen aller Art (DBMS, XML, AD, ...). Inkl. den entsprechenden Controls wie GridView, DataGrid, DataAdapter, DataReader, usw.</description><dc:language /><generator>CommunityServer 2.1 SP2 (Build: 61120.2)</generator><item><title>AW: DB Verbindung schliessen</title><link>http://www.aspnetzone.de/forums/thread/224204.aspx</link><pubDate>Thu, 19 Apr 2012 12:58:41 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:224204</guid><dc:creator>kaktusgruen</dc:creator><slash:comments>0</slash:comments><comments>http://www.aspnetzone.de/forums/thread/224204.aspx</comments><wfw:commentRss>http://www.aspnetzone.de/forums/commentrss.aspx?SectionID=31&amp;PostID=224204</wfw:commentRss><description>&lt;P&gt;Vielen Dank für deine Hilfe.&lt;img src="http://www.aspnetzone.de/emoticons/emotion-21.gif" alt="Yes" /&gt;&lt;BR&gt;&lt;BR&gt;Werde mir die ganze Sache später anschauen müssen, da ich momentan keine Zeit habe.&lt;/P&gt;
&lt;P&gt;Gruss, kaktus&lt;/P&gt;</description></item><item><title>AW: DB Verbindung schliessen</title><link>http://www.aspnetzone.de/forums/thread/224203.aspx</link><pubDate>Thu, 19 Apr 2012 12:34:23 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:224203</guid><dc:creator>TiSch</dc:creator><slash:comments>0</slash:comments><comments>http://www.aspnetzone.de/forums/thread/224203.aspx</comments><wfw:commentRss>http://www.aspnetzone.de/forums/commentrss.aspx?SectionID=31&amp;PostID=224203</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.aspnetzone.de/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;kaktusgruen:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;das Problem ist, dass ich die Verbindung nicht einfach schliessen kann. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;Doch! &lt;br&gt;&lt;br&gt;Wie ich bereits schrieb, &lt;i&gt;Connection.Close()&lt;/i&gt; oder &lt;i&gt;Conncetion.Dispose()&lt;/i&gt; (welches implizit &lt;i&gt;Close &lt;/i&gt;aufruft) schließen nicht die physikalische Verbindung. Sie sind nur ein &lt;b&gt;Hinweis &lt;/b&gt;für den Connection-Pool dass diese Verbindung(mit diesem ConnectionString) genutzt werden kann. Sollte ein Benutzer Hans Wilhelm nun die Seite aufrufen könnte er diese physikalische Verbindung nutzen. Da Du sie aber nicht geschlossen hast, geht der Conncection-Pool davon aus dass sie nicht genutzt werden kann. Also wird eine neue physikalische Verbindung zur Datenbank hergestellt für Hans Wilhelm(einfach mal &lt;a href="http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx"&gt;hier den ersten Abschnitt&lt;/a&gt; lesen warum das zeitaufwendig ist).&lt;br&gt;&lt;br&gt;Ich &lt;a href="http://stackoverflow.com/questions/9705637/executereader-requires-an-open-and-available-connection-the-connections-curren/9707060#9707060"&gt;hab hier mal was&lt;/a&gt; zu dem Thema geschrieben. Deine Methode wird ganz sicher zu Perfomanceproblemen führen und mit ziemlicher Sicherheit früher oder später die unterschiedlichsten, nicht reproduzierbaren Fehler hervorrufen ;-)&lt;br&gt;&lt;br&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.aspnetzone.de/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;kaktusgruen:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;... da manchmal in einer einzigen Methode mehrere 
Statements an die DB abgesetzt werden. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;Natürlich brauchst Du in einer Methode nicht für jedes statement (SqlCommand etc.) eine eigene Connection erzeugen, aber spätestens am Ende der Methode sollte sie wieder disposed werden (&lt;a href="http://msdn.microsoft.com/en-us/library/yh598w02%28v=vs.80%29.aspx"&gt;using-statement &lt;/a&gt;nutzen!).&lt;br&gt;&lt;br&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.aspnetzone.de/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;kaktusgruen:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Vielleicht sollte ich noch 
erwähnen, dass die Session Variable global im ganzen Projekt verfügbar 
ist. So habe ich nur eine einzige Verbindung zur DB pro User für die 
gesamte Dauer seiner Session.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;Der nächste Trugschluss. Im Hintergrund kann der Connection-Pool schon lange dazu gezwungen worden sein 100 physikalische Verbidnungen zu öffnen, spätestens wenn die 100. Session existiert. Und kein UserB könnte die verbindung von UserA benutzen selbst wenn dieser gar nicht mehr mit der Applikation arbeitet. Würde man sie immer sofort "schliessen", könnte eventuell sogar eine physikalische Verbindung für 100 Benutzer reichen da der Pool sie automatisch zuweist.&lt;br&gt;</description></item><item><title>AW: DB Verbindung schliessen</title><link>http://www.aspnetzone.de/forums/thread/224202.aspx</link><pubDate>Thu, 19 Apr 2012 12:02:30 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:224202</guid><dc:creator>kaktusgruen</dc:creator><slash:comments>0</slash:comments><comments>http://www.aspnetzone.de/forums/thread/224202.aspx</comments><wfw:commentRss>http://www.aspnetzone.de/forums/commentrss.aspx?SectionID=31&amp;PostID=224202</wfw:commentRss><description>&lt;P&gt;Hi TiSch,&lt;/P&gt;
&lt;P&gt;das Problem ist, dass ich die Verbindung nicht einfach schliessen kann. Mit der Applikation wird eine Datenbank bearbeitet.&lt;BR&gt;Die Verbindung muss also für die gesamte Dauer der Session vorhanden sein. Ich will ja nicht ständig eine Verbindung &lt;BR&gt;aufmachen und diese dann gleich wieder schliessen. &lt;STRONG&gt;Das&lt;/STRONG&gt; wäre ein Performanceverlust, da mancham in einer einzigen&lt;BR&gt;Methode mehrere Statements an die DB abgesetzt werden. Vielleicht sollte ich noch erwähnen, dass die Session Variable&lt;BR&gt;global im ganzen Projekt verfügbar ist. So habe ich nur eine einzige Verbindung zur DB pro User für die gesamte Dauer&lt;BR&gt;seiner Session.&lt;/P&gt;
&lt;P&gt;Nun muss ich also&amp;nbsp;dafür sorgen, dass die Verbindung erst geschlossen wird, wenn der Browser geschlossen wird.&lt;BR&gt;Mit einem Schliessen-Button ist dies natürlich einfach zu realisieren. Was aber, wenn der User einfach den Browser&lt;BR&gt;schliesst?&lt;BR&gt;Was passiert dann genau? Das verstehe ich nicht.&lt;/P&gt;
&lt;P&gt;Wie ich dem Link entnommen habe, wird die Verbindung aber wohl nach einem Time Out automatisch wieder geschlossen.&lt;BR&gt;&lt;EM&gt;The connection pooler removes a connection from the pool after it has been idle for an extended period of time...&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Gibt es keine möglichkeit, diese Verbindung beim schliessen des Browsers sauber zu schliessen?&lt;/P&gt;
&lt;P&gt;Gruss, kaktus&lt;/P&gt;</description></item><item><title>AW: DB Verbindung schliessen</title><link>http://www.aspnetzone.de/forums/thread/224199.aspx</link><pubDate>Thu, 19 Apr 2012 10:20:33 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:224199</guid><dc:creator>TiSch</dc:creator><slash:comments>0</slash:comments><comments>http://www.aspnetzone.de/forums/thread/224199.aspx</comments><wfw:commentRss>http://www.aspnetzone.de/forums/commentrss.aspx?SectionID=31&amp;PostID=224199</wfw:commentRss><description>Connections zu Datenbanken &lt;b&gt;immer &lt;/b&gt;sofort schließen nachdem sie benutzt wurde, am besten mittels using-statement.&lt;br&gt;Der ODBC-Connection-Pool sorgt schon automatisch dafür dass Verbindungen wiederverwertet werden. Es wird nicht die physikalische Verbindung geschlossen oder disposed. Anstattdessen wird mit Close() dem Pool mitgeteilt dass diese Verbindung anderweitig genutzt werden darf.&lt;br&gt;&lt;br&gt;Du erreichst also das genaue Gegenteil von dem was Du vermutlich vor hattest: &lt;br&gt;&lt;ul&gt;&lt;li&gt;Performanceverlust, da immer wieder neue physikalische Verbindungen hergestellt werden müssen&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Fehler (früher oder später, z.B. da die maximale Anzahl an gleichzeitgen Verbindungen überschritten wurde)&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms254502.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms254502.aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;Das Speichern in der Session sollte also absolut überflüssig sein.&lt;br&gt;</description></item><item><title>DB Verbindung schliessen</title><link>http://www.aspnetzone.de/forums/thread/224198.aspx</link><pubDate>Thu, 19 Apr 2012 10:06:09 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:224198</guid><dc:creator>kaktusgruen</dc:creator><slash:comments>0</slash:comments><comments>http://www.aspnetzone.de/forums/thread/224198.aspx</comments><wfw:commentRss>http://www.aspnetzone.de/forums/commentrss.aspx?SectionID=31&amp;PostID=224198</wfw:commentRss><description>&lt;P&gt;Hallo zusammen,&lt;/P&gt;
&lt;P&gt;ich greife von einer ASP Seite via ODBC aus auf eine Oracle DB zu.&lt;/P&gt;
&lt;P&gt;Beim Aufruf der Seite wird die Verbindung initialisiert. Das Objekt zum herstellen der Verbindung wird in einer Session Variable gespeichert.&lt;/P&gt;
&lt;P&gt;Nun meine Frage:&lt;/P&gt;
&lt;P&gt;Wenn der User den Browser schliesst und somit die Session Variable gelöscht wird, wird dann auch automatisch die Verbindung zur DB geschlossen?&lt;/P&gt;
&lt;P&gt;Oder bleibt sie "irgendwie" offen und könnte evt. Probleme machen?&lt;/P&gt;
&lt;P&gt;Gibt es eine Möglichkeit beim schliessen des Browsers auch die Verbindung korrekt zu schliessen?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;mdf kaktus&lt;/P&gt;</description></item></channel></rss>