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

نام تاپیک: mongoDB در MOrphia

  1. #1

    Unhappy mongoDB در MOrphia

    سلام من از مونگو از طریق مورفیا در جاوا استفاده میکنم
    مشکلم اینه که کانکشن های مونگو هی زیاد و زیاد تر میشه تا اینکه سرورش دیگه جواب نمیده
    من هر جا کانکت کردم پس از اتمام عملیات کانکتشن رو بستم اما نمی دونم مشکل کجاست که بازم بعضی و قتا باز می مونه

  2. #2
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: mongoDB در MOrphia

    شما دو جنبه رو باید بررسی کنی:
    یکی اینکه گاهی مدل و معماری کانکشن زدن شما ایراد داره و داری بیخودی و زیاد کانکشن درست میکنی در حالیکه می تونستی کانکشن هات رو reuse بکنی.
    دو اینکه جایی که نمیشه خیلی reuse کرد باید از Connection Pooling استفاده کنید تا تعداد کانکشن ها محدود بمونه.

    Morphia از Connection Pooling پشتیبانی نمیکنه. اما کلاینت های دیگه هم هستن
    و این رو هم بخون شاید از کانکشن هات درست استفاده نمیکنی.

  3. #3

    نقل قول: mongoDB در MOrphia

    من مودل استفادم فرق میکنه از مورفیا استفاده کردم

    package framework;


    import com.google.code.morphia.Datastore;
    import com.google.code.morphia.Morphia;
    import com.mongodb.Mongo;
    import java.net.UnknownHostException;


    public class MongoConnectionManager {


    private static final MongoConnectionManager INSTANCE = new MongoConnectionManager();


    private final Datastore ds;
    private final Mongo mongo;
    private final Morphia morphia = new Morphia();
    public static final String DB_NAME = "Ordering";


    public MongoConnectionManager() {
    try {
    mongo = new Mongo("localhost", 27017);
    // mongo = new Mongo("localhost", 59482);
    morphia.mapPackage("model");
    ds = morphia.createDatastore(mongo, DB_NAME);
    //t3
    ds.ensureIndexes();
    //test2
    ds.ensureCaps();
    } catch (UnknownHostException e) {
    throw new RuntimeException("Error initializing mongo db", e);
    }
    }
    public void close() {

    mongo.close();
    }



    مثلا استفاده
     MongoConnectionManager conMongo = new MongoConnectionManager();
    try {
    OrderDao ordersDao = new OrderDaoImpl(Orders.class, conMongo.getDs());
    DashboardManagment dashboard = (DashboardManagment) FacesContext.getCurrentInstance().getExternalConte xt().getSessionMap().get("dashboard");
    ProvidersManagment ProviderM = (ProvidersManagment) FacesContext.getCurrentInstance().getExternalConte xt().getSessionMap().get("providerManager");


    if (dashboard.getCurrentCustomer().getCustomerID() != null) {
    this.addressList = ordersDao.getAddressOrders(dashboard.getCurrentCus tomer());


    conMongo.close(); }
    }

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

    آخرین ویرایش به وسیله مبین رنجبر : دوشنبه 16 تیر 1393 در 12:28 عصر

  4. #4

    نقل قول: mongoDB در MOrphia

    نقل قول نوشته شده توسط hassanmosavi مشاهده تاپیک
    من مودل استفادم فرق میکنه از مورفیا استفاده کردم

    package framework;


    import com.google.code.morphia.Datastore;
    import com.google.code.morphia.Morphia;
    import com.mongodb.Mongo;
    import java.net.UnknownHostException;


    public class MongoConnectionManager {


    private static final MongoConnectionManager INSTANCE = new MongoConnectionManager();


    private final Datastore ds;
    private final Mongo mongo;
    private final Morphia morphia = new Morphia();
    public static final String DB_NAME = "Ordering";


    public MongoConnectionManager() {
    try {
    mongo = new Mongo("localhost", 27017);
    // mongo = new Mongo("localhost", 59482);
    morphia.mapPackage("model");
    ds = morphia.createDatastore(mongo, DB_NAME);
    //t3
    ds.ensureIndexes();
    //test2
    ds.ensureCaps();
    } catch (UnknownHostException e) {
    throw new RuntimeException("Error initializing mongo db", e);
    }
    }
    public void close() {

    mongo.close();
    }



    مثلا استفاده
     MongoConnectionManager conMongo = new MongoConnectionManager();
    try {
    OrderDao ordersDao = new OrderDaoImpl(Orders.class, conMongo.getDs());
    DashboardManagment dashboard = (DashboardManagment) FacesContext.getCurrentInstance().getExternalConte xt().getSessionMap().get("dashboard");
    ProvidersManagment ProviderM = (ProvidersManagment) FacesContext.getCurrentInstance().getExternalConte xt().getSessionMap().get("providerManager");


    if (dashboard.getCurrentCustomer().getCustomerID() != null) {
    this.addressList = ordersDao.getAddressOrders(dashboard.getCurrentCus tomer());


    conMongo.close(); }
    }
    کلا هر جا کانکشن باز کردم بستم اما بازم وقتی برنامه اجرا میشه می بینی کانکشن باز مونده
    حالا اگه بشه کلا کانکشن هارو بست یا یه کاری کرد خودشون خود بخود بسته بشن
    خیلی خوب میشه



    من به درایور Morphia آشنا نیستم ولی تحقیق کردم در هیچ مثال و توضیحی صحبتی از بستن کانکشن به میان نیامده است.حتی در مستندات اصلی مانگو دی بی برای Morphia هم مطرح شده که "آیا نیاز است که ارتباط بسته شود؟" که پاسخ داده شده که نیاز نیست.خود درایور همانطور که بهراد عزیز گفت Connection Pool برای هر نمونه یا Instance مانگو ساخته می شود.برای آزاد کردن منابع هم کافیه که از نمونه مانگو استفاده نشود و یا به احتمال زیاد نمونه یا Instance آزاد شود.منبع :
    https://github.com/mongodb/morphia/w...AskedQuestions
    Mobin Ranjbar

    Software Engineer, Big Data Evangelist and Startup Guy

    www.linkedin.com/in/mobinranjbar

    www.MobinRanjbar.com
    www.Hadoop.ir
    www.BigDataWatcher.com

    < به سوالات و درخواست هایی مبنی بر ارسال سورس کد ، نوشتن برنامه و ... از طریق پیام خصوصی پاسخ داده نمی شود >

  5. #5

    نقل قول: mongoDB در MOrphia

    با تشکر
    مشکل من رفع شد علت ان بود که در بعضی مواقع کانکشن ها بسته نمی شد و با توجه به مراجعه زیاد به بانک تعداد کانکشن های باز بالا میرفت تا 2000 بعد منگو احتمالا بخاطر کم بود فضای رم دیگه کانکشن نمیداد. که خدا رو شکر بر طرف شد
    ..............
    اما کانکشن هارو خودش نمی بست چرا که بر نامه همچنان اجرا بود و کانکشن ها هم باز می ماند
    حالا شما می گین نیاز به بستن کانکشن نیست اون روش رو من بلد نیستم

  6. #6
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: mongoDB در MOrphia

    همیشه باید مستندات کلاینت مورد نظرتون رو بخونید و سعی کنید همونطور که اون توصیه کرده از کانکشن ها استفاده کنید تا اینجور موارد پیش نیاد....

  7. #7

    نقل قول: mongoDB در MOrphia

    حتما
    ممنون از راهنمای

تاپیک های مشابه

  1. گفتگو: بحث و گفتگو در مورد بانک اطلاعاتی به نام Mongodb
    نوشته شده توسط mhdsbt در بخش سایر پایگاه‌های داده
    پاسخ: 5
    آخرین پست: سه شنبه 20 تیر 1396, 07:30 صبح
  2. مبتدی: python و mongodb
    نوشته شده توسط AhmadTux در بخش دیگر زبان های اسکریپتی
    پاسخ: 0
    آخرین پست: دوشنبه 25 دی 1391, 08:57 صبح

برچسب های این تاپیک

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

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