نمایش نتایج 1 تا 17 از 17

نام تاپیک: قطع کردن ارتباط و آزاد کردن پورت

  1. #1
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    قطع کردن ارتباط و آزاد کردن پورت

    سلام
    شاید سوالم کمی گنگ باشه ولی نمی دونم چطور بپرسم که واضح باشه!
    ولی چون گذاشتن کد اینجا سخته توضیح میدم
    من تعداد زیادی اطلاعات دارم که باید در دیتابیس ذخیره بشه و این دیتا هر لحظه اضافه میشه و تمومی نداره

    یه روتین برای چک کردن وجود دیتای جدید دارم که اگه تشخیص بده دیتای جدید آمادست رو تین ذخیره سازی رو اجرا میکنه.
    در روتین ذخیره سازی یه ADOQuery ایجاد میشه
    و در داخل یه حلقه for اطلاعات با دستور Insert ذخیره میشه میشه
    بعد از پایان حلقه ADOQuery رو free می کنم.
    و دوباره میرم به روتین چک کردن

    و حالا مشکل :
    مشکل اینجاست که هربار که query اجرا میشه یه پورت بهش اختصاص داده میشه و متاصفانه این پورت بسته نمیشه و آزاد نمیشه اینقدر این پورت ها اضافه میشه تا جایی که سیستم پورتی نداره که به برنامه تخصیص بده و برنامه از کار میوفته
    وقتی که برنامه رو میبندم بعد از مدتی پورت ها آزاد میشن ، حالا می خواستم بدونم موقع اجرا چطور می تونم پورت ها رو آزاد کنم در ضمن freeandnil هم کمکی نکرد.

  2. #2

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    بعد از پایان حلقه ADOQuery رو free می کنم.
    چه لزومی داره که این کار رو بکنید؟!

  3. #3
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    خب خودم Create کردمش و اگه آزادش نکنم مطمعن دچار کمبود حافظه میشم

    مثلا در عرض یک دقیقه حدود 2000 رکورد به دیتا بیس اضافه میشه و من خودم حداکثر تعداد کانکشن های پورت رو به صورت دستی به 65534 تغیر دادم و این کار فقط کمک می کنه مدت زمان بیشتری برنامه کار کنه

  4. #4

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    حداکثر تعداد کانکشن های پورت رو به صورت دستی به 65534 تغیر دادم
    کدوم پورت ؟!
    با توجه به توضیحاتی که دادی ADOQuery داده ای داخل خودش نداره که بخواد حافظه رو grow کنه ، شما فقط داری یکسری عملیات Insert رو به وسیله اون انجام میدی ، بنابراین میتونی آخر کار برنامه آزادش کنی ؛ البته من نمیدونم برنامه شما چی هست و قراره چی کار کنه و چه طور تحلیل و پیاده سازیش کردین ولی با همین توضیحاتی که دادی میگم بدون شک تحلیل برنامت مشکل داره و اون روش برنامه نوشتن 100% غیر فنی هست ...

  5. #5
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    ممنون از توضیحت ولی من اصلا اینجوری فکر نمی کنم.

  6. #6

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    ممنون از توضیحت ولی من اصلا اینجوری فکر نمی کنم.
    مشکل اینجاست که هربار که query اجرا میشه یه پورت بهش اختصاص داده میشه و متاصفانه این پورت بسته نمیشه و آزاد نمیشه اینقدر این پورت ها اضافه میشه تا جایی که سیستم پورتی نداره که به برنامه تخصیص بده و برنامه از کار میوفته
    ولی من فکر نمیکنم تخصیص دادن تمام پورت های موجود روی سیستم به یک برنامه کار فنی باشه !

  7. #7

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    من هر چی پستتون رو خوندم نفهمیدم چرا از پورت استفاده شده.؟


  8. #8
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    هربار که یه کوری رو Excute می کنین خودش یه پورت روی کامپیوتر مبدا باز میکنه و بوسیله اون به پورت sqlserver وصل میشه
    و این کار اتوماتیک صورت میگیره

  9. #9
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    خب چندتا عکس هم بزارم
    این عکس پورت های قبل از اجرای برنامه
    port1.JPG

    بعد از اینکه روتین درج 73 بار اجرا شد تعداد 15375 بار درج انجام داد وضعیت پورت ها به این صورت هستش

    port2.JPG

    بعد از اینکه روتین درج 123 بار اجرا شد تعداد حدود0 2200 بار درج انجام داد وضعیت پورت ها به این صورت هستش
    port3.JPG

    تعداد پورتها زیاد میشه تا در نهایت همه پورت ها استفاده میشه
    وقتی که برنامه بسته میشه از وضعیت established به حالت close_wait میره و هر پورت بعد گذشت 4 دقیقه آزاد میشه که بعد از بستن برنامه عکسش رو می گیرم و همین پست رو آپدیت می کنم

    در ضمن از adoconnection هم استفاده نکردم و مقدار conectionstring مربوط به query رو پر کردم
    آخرین ویرایش به وسیله gbg : شنبه 28 آبان 1390 در 13:04 عصر

  10. #10
    کاربر دائمی آواتار firststep
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران-خواستم از جنبه تفاهم باهم بگم
    پست
    502

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    سلام دوست عزیز من با شناختی که از شما دارم مطمئنم که همیشه گزینه های خوبی رو انتخاب می کنین ولی شاید از مثلاً از روش ها و تکنولوژی های همچون com+ استفاده مس کردین بهتر نیود؟
    و البته شاید یک روش ابتکاری این باشه که توسط زیر برنامه هایی پورتها رو اشغال کنین و سپس زیر برنامه رو ازاد کنین البته شاید فنی نباشه

  11. #11
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    آره الان یه برنامه دارم که این برنامه رو اجرا میکنه و بعد از اینکه برنامه اطلاعاتی برای درج نداشت بسته میشه و برنامه ای دیگه بعد از 5 دقیقه برنامه رو دوباره اجرا می کنه و منتظر می مونه تا برنامه خاتمه پیدا کنه ، اینجوری صورت مسئله رو پاک کردم ولی همچنان دنبال راه حل هستم چون روش کارم مسخره شده و اصطلاحا کلنگی هستش
    من تست کردم وقتی با Indy به آی پی و پورتی وصل میشم و اطلاعات میگیرم و پورت رو می بندم ، پورت به وضعیت close_wait میره و بسته میشه ولی در مورد کامپوننت های ado این اتفاق نمی یوفته و هر بار که ExecSQL انجام میدم یه پورت باز میشه و دیگه بسته نمیشه تا زمانی که برنامه رو ببندم.
    با com+ هم نی دونم چطور میشه به sqlserver متصل شد ولی خود کامپوننت ado از این روش استفاده می کنه

  12. #12
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    این هم بعد از بستن برنامه
    port4.jpg
    این هم بعد گذشت چند دقیقه از بستن برنامه
    port5.JPG

  13. #13
    کاربر دائمی آواتار firststep
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران-خواستم از جنبه تفاهم باهم بگم
    پست
    502

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    با com+ شما می تونین یک مونش درست کنین و بعد بوسیله حالا درست کردن یک صف اینهارو یک یه یک بفرستین فر5ق انچنانی نمکنه چون اونجوری هم یک به یک فرستاده میشه

    اما در باره ado عجیبه درمورده ado commend هم همینطوره؟

  14. #14
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    adocommend رو تست نکردم
    اون تست می کنم

  15. #15

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    سلام دوست من:
    1 - برنامه را با چه زبانی نوشته اید؟
    2 - آیا میتوانید قسمت کوچکی از برنامه را در اینجا قرار دهید؟

  16. #16
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    از دلفی استفاده کردم و قسمتی کوچیک کد چه کمکی می خواد بکنه؟

  17. #17
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: قطع کردن ارتباط و آزاد کردن پورت

    برنامه رو تغییر دادم و از adocommend استفاده کردم
    فکر می کنم خیلی بهتر شده و شاید بشه گفت حل شدش
    حالا فردا وقت میکنم تست اساسی کنم میگم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •