6 Replies Latest reply: Sep 14, 2013 3:52 PM by EdSpn RSS

    Collection Result Maximum Flood Control Level Exceeded?

    EdSpn
      Hi all,

      When running a metric on an agent, I get the following message:
      The following exception has occurred:
           RTMCollection: exception occurred: java.lang.UnsupportedOperationException: Collection Result Maximum Flood Control Level Exceeded
      Does anyone have any information on this?
      This metric could return a few thousand lines in the result, so I added the "LIMIT_TO" in the default collections file:
          <MetricColl NAME="......."> <LimitRows LIMIT_TO="1750"/>  </MetricColl>
      However the error still occurs...

      1. Does anyone have feedback on the flood control message?
      2. At what nr of rows should I introduce LIMIT_TO?

      Any feedback much appreciated!

      Thanks,
      Ed
        • 1. Re: Collection Result Maximum Flood Control Level Exceeded?
          EdSpn
          Does anyone have further input on this please?

          I tested with the LimitRows element in the definition of this performance metric in the default_collection file, but that didn't do anything; the error still occurs.
                         <MetricColl NAME="xxMetricNamexx">
          <LimitRows LIMIT_TO="100" />
          Of course the simple thing to do is to take this metric out of the plugin ("a metric that returns e.g. 20k rows is not helpful anyway"), but that's not really helping to understand the issue.

          Many thanks,
          Ed

          Edited by: 977814 on Jun 5, 2013 2:13 PM
          • 2. Re: Collection Result Maximum Flood Control Level Exceeded?
            sxkumar
            The symptom here indicate that there is unusually high collection volume for the metric. 12c agent has a flood collection mechanism to prtect against that and that is what seems to be kicking in here. In order to resolve this, we need to understand why we are getting this unusually high collection volume situation. What is the name of the metric?

            You may also want to file a SR for this since such isses are usually a bit difficult to diagnose otherwise.
            • 3. Re: Collection Result Maximum Flood Control Level Exceeded?
              EdSpn
              Hi, thank you for your reply. The metric is a new metric and it turns out that it does indeed try to return over 20k rows.

              First of all, this is not really effective for a monitoring purpose, I agree. I am currently discussing internally what we want to do with this metric.
              On the other hand, if we have a situation where we do want to allow a large number of rows, is there a way to:
              - allow the metric to return that many rows? E.g. we allow this particular metric to return any number of rows it wants.
              OR
              - allow the metric to return a large, but limited, number of rows? E.g. we allow this particular metric to return anything up to a maximum of 15k rows.

              I tried the LIMIT_TO clause but it didn't do anything it seemed?!

              Regards,
              Ed
              • 4. Re: Collection Result Maximum Flood Control Level Exceeded?
                EdSpn

                Hi,

                 

                I am currently looking into the flood control level parameter again. (see my post here https://forums.oracle.com/thread/2578416).

                There is a min level and max level setting for the flood control.

                I have also understood there is a global agent parameter that controls this.

                How can i read the current setting for them and is it possible to change the level settings?

                 

                I haven't reached the max flood control level error yet in our dev/test env (only the min level warnings) but a customer ran straight into the max level error and I need to know how I can manage these level settings. Once I know, I can discuss with the customer what the pros and cons are of configuring these controls.

                 

                Many thanks,

                Ed

                • 5. Re: Collection Result Maximum Flood Control Level Exceeded?
                  Jonathan Klein

                  The flood control parametes are different than the Limit_to concept - the limit concept affects the output of the metric. the flood control parameters protect the agent from a metric producing too many rows that could in theory lead to the agent failing.

                   

                  So first off, I would seriously review the metric as metrics reporting more than 10,000 rows are likely poorly designed metrics.

                   

                  In order to control the flood control parameters, they can be adjusted if needed for testing purposes, but I would again seriously question any metric design requiring such significant volume. The parameters are:

                   

                    /**
                     * the flood control parameters control how many rows a collection result can
                     * hold. starting at the min, we will log but silently reject new rows coming
                     * into the result set. If we hit the maximum, then the assumption is that the
                     * 'fetchlet' is out of control (loop?) and we will signal a runtime
                     * assertion.
                     *
                     * @name CollectionResults.MaximumRowsFloodControlMin
                     * @type Integer
                     * @unit rows
                     * @default 5000
                     */
                    private static final ConfigProperty<Integer> MAXIMUM_ROWS_FLOOD_CONTROL_MIN =
                                                                                                    Config.newIntProperty(
                                                                                                        "CollectionResults.MaximumRowsFloodControlMin",
                            5000);

                    /**
                     * the flood control parameters control how many rows a collection result can
                     * hold. starting at the min, we will log but silently reject new rows coming
                     * into the result set. If we hit the maximum, then the assumption is that the
                     * 'fetchlet' is out of control (loop?) and we will signal a runtime
                     * assertion.
                     *
                     * @name CollectionResults.MaximumRowsFloodControlMax
                     * @type Integer
                     * @unit rows
                     * @default 10000
                     */
                    private static final ConfigProperty<Integer> MAXIMUM_ROWS_FLOOD_CONTROL_MAX =
                                                                                                    Config.newIntProperty(
                                                                                                        "CollectionResults.MaximumRowsFloodControlMax",
                                                                                                        10000);

                   

                  and can be controlled via:

                   

                  emctl setproperty agent -allow_new -name ... -value ...

                   

                  or by setting them in emd.properties and performing an emctl reload.

                  • 6. Re: Collection Result Maximum Flood Control Level Exceeded?
                    EdSpn

                    Hi Jonathan,

                    That is great feedback. I must review how we are going to deal with these large installations that try to return so many values for a metric. I agree of course that that does not seem useful :-) On the other hand, it is good to know that there are controls that can influence this.

                    Tx,

                    Ed