<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/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>Enterprise Services / COM+</title><link>https://www.dotnetzone.gr:443/cs/forums/26/ShowForum.aspx</link><description>Χρήση του Enterprise Services και του COM+ για να κάνετε host τα components σας</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ:COM+ Singleton ή Application-wide in-memory store</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3808.aspx</link><pubDate>Mon, 25 Jul 2005 22:55:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3808</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3808.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=26&amp;PostID=3808</wfw:commentRss><description>&lt;P&gt;Πρόσεχε γιατί το SPM επηρεάζεται από το activation των components που το καλούνε και τα transactions, ενώ ένα pooled component είναι πολύ πιο απλό. Φτάνει βέβαια το component μην έχει και βαρύ initialization και βαρειές μεθόδους (αλλά αυτό θα σήμαινε ότι κάτι περίεργο συμβαίνει με τη σχεδίαση). Θα πρέπει να σκεφτείς επίσης ΠΟΙΟΣ θα κάνει initialize τα properties?&lt;/P&gt;</description></item><item><title>Απ:COM+ Singleton ή Application-wide in-memory store</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3798.aspx</link><pubDate>Mon, 25 Jul 2005 22:27:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3798</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3798.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=26&amp;PostID=3798</wfw:commentRss><description>Σε ευχαριστώ Πάνο. &lt;br&gt;
&lt;br&gt;
Το pooled με 1 instance με φοβίζει λίγο είναι η αλήθεια. Ίσως "&lt;i&gt;μπουκώσει&lt;/i&gt;" κάποια στιγμή (&lt;i&gt;φοβάμαι&lt;/i&gt;), αλλά δεν το έχω δοκιμάσει κιόλας για να ξέρω ακριβώς τα όριά του ... &lt;br&gt;
&lt;br&gt;
Απ'την άλλη, το shared memory μου έκανε σαν καλή λύση, κυρίως γιατί η
shared πληροφορία δεν αλλάζει ποτέ, είναι read-only. ( Οπότε ίσως την "&lt;i&gt;παλέψω&lt;/i&gt;" χωρίς το άγχος του locking και sync-ing ... )&lt;br&gt;
&lt;br&gt;
Φαντάζομαι τελικά θα δοκιμάσω και τα δύο με κάποιο stress-test
προγραμματάκι που θα γράψω όπου και θα τα κοπανάω ανελέητα και θα κάνω
τις συγκρίσεις μου ;)&lt;br&gt;
&lt;br&gt;</description></item><item><title>Απ:COM+ Singleton ή Application-wide in-memory store</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3797.aspx</link><pubDate>Mon, 25 Jul 2005 22:02:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3797</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3797.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=26&amp;PostID=3797</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;Μπορείς να ορίσεις το αντικείμενο pooled με 1 instance. Αυτό θα δημιουργείται όταν ξεκινάει το COM+ application και θα παραμένει στη μνήμη μέχρι να το κλείσεις. Αυτή είναι ίσως και η πιο απλή λύση. Άλλες λύσεις όπου θα αποθηκεύεις τις πληροφορίες στη μνήμη δεν είναι και τόσο scaleable γιατί θα πρέπει να ελέγχεις την ταυτόχρονη πρόσβαση στη μνήμη από πολλά αντικείμενα. Υπάρχει το "Shared Property Manager" γι αυτή τη δουλειά αλλά δεν θεωρείται και πολύ scalable. Θα βρεις τις κατάλληλες κλάσεις στο System.EnterpriseServices.SharedProperty***&lt;/P&gt;</description></item><item><title>COM+ Singleton ή Application-wide in-memory store</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3791.aspx</link><pubDate>Mon, 25 Jul 2005 21:34:01 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3791</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3791.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=26&amp;PostID=3791</wfw:commentRss><description>Καλησπέρα παιδιά. &lt;br&gt;
&lt;br&gt;
Έχω την εξής απορία. Έχω ένα component το οποίο χρησιμοποιούμε πάρα
πολύ για development. Αυτό λοιπόν το component είναι Singleton. Επίσης,
κάνει initialize τον εαυτό του απο 1 xml file, το οποίο υπάρχει
περίπτωση να είναι αρκετά μεγάλο ( &lt;i&gt;αρκετά μεγάλο ώστε να αναγκαστεί
κανείς να το κάνει deserialize σε objects στη μνήμη για να τρώει
λιγότερο χώρο και processing time ...&lt;/i&gt; )&lt;br&gt;
&lt;br&gt;
Θα ήθελα να γράψω ένα wrapper γύρω απ'το component, ο οποίος θα τρέχει κάτω απο COM+. Αλλα ... &lt;br&gt;
&lt;br&gt;
1. Με τίποτα δε θα ήθελα να γίνεται instantiate κάθε φορά ένα νέο
instance το οποίο θα πρέπει να κάνει initialize απ'την προαναφερθείσα
xml ... θα ήταν major performance killer κάτι τέτοιο. Άρα, κάτι σαν
COM+ Singleton θα ήταν θεμιτό. &lt;br&gt;
&lt;br&gt;
2. Θα προτιμούσα το component αν και όχι Singleton, να διαβάζει όλη
αυτή την deserialized πληροφορία απ'τη μνήμη, όπου είναι αποθηκευμένη
σε κάτι ανάλογο του Application State π.χ. όπως σε ένα Web Project ( &lt;i&gt;Προσοχή, &lt;b&gt;ανάλογο&lt;/b&gt;, όχι &lt;b&gt;ΣΤΟ &lt;/b&gt;Application State, γιατί σε αυτή την περίπτωση θα έπρεπε αναγκαστικά να παίζω μόνο σε Web Apps .. a definite no-no&lt;/i&gt; ... :) )&lt;br&gt;
&lt;br&gt;
Όντας .. νιούπης στο COM+, πραγματικά δεν ξέρω ποιά απο τις 2 λύσεις
είναι πιο εφαρμόσιμη ( π.χ. αν θέσω στο component μου pool size 1, ίσως
ρίξω το performance σημαντικά σε peak load καταστάσεις χωρίς κανένα
λόγο ... ) και θα εκτιμήσω όλες τις γνώμες / υποδείξεις.&lt;br&gt;
&lt;br&gt;
Ευχαριστώ, και καλή μας εβδομάδα&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description></item></channel></rss>