RT limit error

Hello
I am currently on the developers option and on it’s preview the RT limit for that plan is 100.

But the problem is I have not gotten to 20 let alone get to the limit, and at a certain point of my app running it crashes. Debugging the error nd I find.

RT subscription limit reached {limit 10}.

Can someone please explain what’s happening to me plz

Hello @Yomade_Stephens

Looks like you mixed two limits, on your billing plan you’ve got:

  • connections limit = 100 - This is the number of concurrent real-time connections with the backend all instances of your app can have.
  • subscriptions limit = 10 - This is the number of real-time listeners (for create/update/delete events in RT database or channel listeners in RT messaging) a single client app instance can create.

So, make sure you don’t have more than 10 listeners simultaneously.

Regard, Vlad

Am guessing this problem is not associated with backendless pro.

Yes, if you have BackendlessPro you can control all the limits, although in PRO there is no billing limits there is a default subscriptions limit = 30, and you can change it by the following url http://localhost:8500/ui/#/dc1/kv/config/rt-server/defaultSubscriptionsLimit/edit

Aiit Tanx @vladimir-upirov

Can anyone please give me a full documentation of how to migrate to backendless pro

Everything I need to know please. Everything

There is no docs for it, but there is nothing specific that you need to do. Here is general workflow:

  1. Make archieve of you files (in Files section) and unzip it in your Pro version app.
  2. Export data and schema from cloud app and import it into pro version app.
  3. Deploy your business logic into pro version app.

If you’ll have any questions regarding those three steps, please ask me.

Regards,
Stanislaw

sorry, our team don’t use BackendlessPro,and how to solve this

Hello @user1,

what issue do you have?

notice ERROR from rt sever: [Connection Limit is reached!] in android studio, i have no idea to solve it

Can you please provide us with your App ID?

70AC760F-55C2-9C7E-FF8E-78BAFFE1F300,it’s our APPID

Hello @user1

How many listeners do you have in your client app (in android studio)?

For your plan Listeners per real-time connection max is 30

Listeners per real-time connection:
This is the number of real-time listeners (for create/update/delete events in RT database or channel listeners in RT messaging) a single client app instance can create.

Backendless Cloud Pricing

i use listeners per real-time connection total 11,but it’s println “ERROR from rt sever: [Connection Limit is reached!]”

Hello @user1

I ran the following code in my application and it worked well:

  private void test()
  {
    final EventHandler usersTableRealTime = Backendless.Data.of( "Users" ).rt();

    for( int i = 0; i < 30 ; i++ )
    {
      addListener( usersTableRealTime, i );
    }
  }

  private void addListener( EventHandler usersTableRealTime, int i )
  {
    usersTableRealTime.addUpdateListener( "name = 'Bob" + i + "'", new AsyncCallback<Map>()
    {
      @Override
      public void handleResponse( @NonNull Map updatedUser )
      {
        System.out.println( "UpdatedUser is: " + updatedUser );
      }

      @Override
      public void handleFault( BackendlessFault backendlessFault )
      {
        System.out.println( "An error has occurred - " + backendlessFault.getMessage() );
      }
    } );
  }

But if I change to for( int i = 0; i < 31 ; i++ ), I got exception:

An error has occurred - {code=0, details={limit=30}, message=Reached Limit: you can not have more then 30 subscriptions per one connection}

I also checked this code on your app - the result is the same.

Please provide a minimal code example to reproduce your problem.

Backendless.initApp(mContext, AppConstant.BACKENDLESS_APP_ID, AppConstant.BACKENDLESS_APP_KEY);

i use it to init Backendless

public  static void downloadGoodsDetail(String clauseString){
        EventHandler<Map> detailStore = Backendless.Data.of("item").rt();
        detailStore.addCreateListener(clauseString,new AsyncCallback<Map>() {
            @Override
            public void handleResponse(Map response) {
                GoodsDetailTable goodsDetail = (GoodsDetailTable) GsonUtils.stringToObject(
                        GsonUtils.mapToJson(response),GoodsDetailTable.class);
                Log.e("tag","商品id==="+goodsDetail.id);
            }

            @Override
            public void handleFault(BackendlessFault fault) {

            }
        });

        detailStore.addUpdateListener(new AsyncCallback<Map>() {
            @Override
            public void handleResponse(Map response) {
                GoodsDetailTable goodsDetail = (GoodsDetailTable) GsonUtils.stringToObject(
                        GsonUtils.mapToJson(response),GoodsDetailTable.class);
                Log.e("tag","商品id==="+goodsDetail.id);
             
            }

            @Override
            public void handleFault(BackendlessFault fault) {

            }
        });
        detailStore.addDeleteListener(new AsyncCallback<Map>() {
            @Override
            public void handleResponse(Map response) {
                Log.e("tag", response.toString());

                GoodsDetailTable goodsDetail = (GoodsDetailTable) GsonUtils.stringToObject(
                        GsonUtils.mapToJson(response),GoodsDetailTable.class);
                Log.e("tag","商品id==="+goodsDetail.id);
            }

            @Override
            public void handleFault(BackendlessFault fault) {

            }
        });
    }

then,i use this function to add listener, after run app,will println error:

E/cketIOConnectionManager: ERROR from rt sever: [Connection Limit is reached!]

and this project have 8 tables like ‘item’

Hello @user1

I was able to reproduce the problem. I opened a ticket (BKNDLSS-26546).
We have now fixed the problem.
Please check if it works for you and let us know about the result.

Regards,
Vladimir

very thanks,it’s worked

hello, i want use more than 30 listeners for real-time connection, i should choose which function package?

Hello @user1

There is no additional function pack for extending the limit.
However, I can propose you a couple of options:

  1. switch your app to Cloud99 plan, there are allowed up to 50 rt-listeners

  2. migrate to Pro or Manage Installations - there is no such limit

Regards, Vlad