4 Replies Latest reply: May 9, 2013 10:41 PM by Vijaya Moderator -Oracle RSS

    'Inverted Threshold' error on 'Activate Changes' after queue creation

    User535558-OC
      Hi,

      In Weblogic Server Administration Console I am trying to create a new Queue by first clicking 'Lock & Edit' and thereafter creating the Queue. When I do this I get an expected: 'The JMS Queue was created successfully' message but, when I then try to click 'Activate Changes', I get an: 'Inverted threshold' error message.

      Log file shows: <Failure occurred in the execution of deployment request with ID '1368101884686' for task 'weblogic.deploy.configChangeTask.2'. Error is: 'java.lang.IllegalArgumentException: Inverted threshold' java.lang.IllegalArgumentException: Inverted threshold

      Any ideas what this error actually means?

      Thanks in advance.
        • 1. Re: 'Inverted Threshold' error on 'Activate Changes' after queue creation
          Vijaya Moderator -Oracle
          The below error occurs when the values of maximum and minimum threshold values for either JMS Server, JMS Queues, or JMS Topics have been set incorrectly.

          'java.lang.IllegalArgumentException: Inverted threshold'

          These values are stored in the JMS server to manage the flow control, since excessive values can cause memory saturation which may lead the server hanging or to slow processing of messages. Similarly for JMS topics and queues, threshold values are defined to trigger the events for logging and initiate the message flow control for the destinations.

          To resolve this issue please ensure and configure the value of "Messages Threshold High" and "MessagesThresholdLow" as below:

          JMS Servers
          Messages Threshold High >= MessagesThresholdLow

          JMS Queues
          Messages Threshold High > MessagesThresholdLow

          JMS Topics
          Messages Threshold High > MessagesThresholdLow

          Please refer to the below document for more details.
          http://docs.oracle.com/cd/E24329_01/web.1211/e24390/jmstuning.htm#PERFM315


          Thanks,
          Vijaya
          • 2. Re: 'Inverted Threshold' error on 'Activate Changes' after queue creation
            User535558-OC
            Hi Vijaya,

            Thanks for the response but I don't think this error has anything to do with a queue's Message Threshold values. The weblogic server has a number of JMS modules and on one JMS module, Queues can be created and activated successfully but not on the other JMS module. I am not too familiar with Weblogic AS so I am not sure how to track down the source of the error. The best error info I get from the logs is the following:

            *<May 9, 2013 4:39:40 PM BST> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating redeploy task for application 'CommerceJmsModule'.>*
            *<May 9, 2013 4:39:40 PM BST> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004*
            java.lang.IllegalArgumentException: Inverted threshold
            at weblogic.messaging.kernel.internal.StatisticsImpl.addThreshold(StatisticsImpl.java:190)
            at weblogic.messaging.kernel.internal.StatisticsImpl.addByteThreshold(StatisticsImpl.java:179)
            at weblogic.messaging.common.ThresholdHandler.replaceBytesThreshold(ThresholdHandler.java:115)
            at weblogic.jms.backend.BEThresholdHandler.setTarget(BEThresholdHandler.java:59)
            at weblogic.jms.backend.BEDestinationImpl.open(BEDestinationImpl.java:267)
            Truncated. see log file for complete stacktrace
            java.lang.IllegalArgumentException: Inverted threshold
            at weblogic.messaging.kernel.internal.StatisticsImpl.addThreshold(StatisticsImpl.java:190)
            at weblogic.messaging.kernel.internal.StatisticsImpl.addByteThreshold(StatisticsImpl.java:179)
            at weblogic.messaging.common.ThresholdHandler.replaceBytesThreshold(ThresholdHandler.java:115)
            at weblogic.jms.backend.BEThresholdHandler.setTarget(BEThresholdHandler.java:59)
            at weblogic.jms.backend.BEDestinationImpl.open(BEDestinationImpl.java:267)
            Truncated. see log file for complete stacktrace
            *>*
            *<May 9, 2013 4:39:40 PM BST> <Error> <Console> <BEA-240003> <Console encountered the following error weblogic.application.WrappedDeploymentException: Inverted threshold*
            at weblogic.messaging.kernel.internal.StatisticsImpl.addThreshold(StatisticsImpl.java:190)
            at weblogic.messaging.kernel.internal.StatisticsImpl.addByteThreshold(StatisticsImpl.java:179)
            at weblogic.messaging.common.ThresholdHandler.replaceBytesThreshold(ThresholdHandler.java:115)
            at weblogic.jms.backend.BEThresholdHandler.setTarget(BEThresholdHandler.java:59)
            at weblogic.jms.backend.BEDestinationImpl.open(BEDestinationImpl.java:267)
            at weblogic.jms.backend.BEQueueImpl.open(BEQueueImpl.java:99)
            at weblogic.jms.backend.BEDestinationRuntimeDelegate.initialize(BEDestinationRuntimeDelegate.java:163)
            at weblogic.jms.backend.BEQueueRuntimeDelegate.initialize(BEQueueRuntimeDelegate.java:59)
            at weblogic.jms.backend.BEDestinationRuntimeDelegate.prepare(BEDestinationRuntimeDelegate.java:187)
            at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1704)
            at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1667)
            at weblogic.jms.module.JMSModule$EntityState.access$100(JMSModule.java:1608)
            at weblogic.jms.module.JMSModule.prepare(JMSModule.java:277)
            at weblogic.jms.module.ModuleCoordinator.prepare(ModuleCoordinator.java:185)
            at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
            at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
            at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
            at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
            at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
            at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
            at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:16)
            at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
            at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
            at weblogic.deploy.internal.targetserver.operations.RedeployOperation.createAndPrepareContainer(RedeployOperation.java:98)
            at weblogic.deploy.internal.targetserver.operations.RedeployOperation.doPrepare(RedeployOperation.java:122)
            at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
            at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
            at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
            at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
            at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
            at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.
            java:157)
            at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12
            *)*
            at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
            at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
            *>*

            Any other thoughts would be much appreciated!
            • 3. Re: 'Inverted Threshold' error on 'Activate Changes' after queue creation
              User535558-OC
              Hello again Vijaya,

              Please ignore my last reply. You were indeed right about the message thresholds values. In the troubled JMS module, there was a Queue Quota and Queue template with conflicting threshold values. Once those threshold values were corrected to meet the criteria as suggested in your post, I was then able to create new queues again without any problems.

              Thanks again for your help!
              • 4. Re: 'Inverted Threshold' error on 'Activate Changes' after queue creation
                Vijaya Moderator -Oracle
                "Thank you for your participation in the Oracle Forums!

                To help other members, could you please identify any helpful/correct information in the posting to help identify the question as ‘Answered’. Doing so will not only help other members easily identify 'Answered'
                posts.


                Thanks,
                Vijaya