2016-08-26 9 views
2

Я вижу исключение в начале приложения weblogic 10.3.x. Log4j2 версия: 2.6.1log4j2 exception: ERROR Не удалось отменить регистрацию MBeans для org.apache.logging.log4j2: type = AsyncContext @ 694ae32f, component = AsyncLoggerRingBuffer

Ниже упомянутая конфигурация log4j xml, которую я использую, и stacktrace.

Log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="INFO" > 
     <Properties> 
     <Property name="theHostName">${hostName}</Property> 
     </Properties> 
     <Appenders> 
      <RollingFile name="FILE" filename="${sys:weblogic.Name}.log" filepattern="${sys:weblogic.Name}.log.%i" append="true" > 
       <PatternLayout pattern="[%-5p][%d{yyyy-MM-dd HH:mm:ss,SSS}][${sys:weblogic.Name}:${hostName}][%t][%X{MessageInfo}][%c{1}:%M:%L][%msg]%n" /> 
       <Policies> 
        <SizeBasedTriggeringPolicy size="50 MB" /> 
       </Policies> 
       <DefaultRolloverStrategy max="100" fileIndex="min"/> 
      </RollingFile> 
     </Appenders> 
     <Loggers> 
      <AsyncLogger level="INFO" name="com.company" includeLocation="true" additivity="false"> 
       <AppenderRef ref="FILE"/> 
      </AsyncLogger> 
      <Root level="INFO" includeLocation="true"> 
       <AppenderRef ref="FILE"/> 
      </Root> 
      <!-- Package specific log level defines --> 
      <Logger level="WARN" name="org.springframework" /> 
      <Logger level="WARN" name="org.jboss" /> 
      <Logger level="OFF" name="org.hibernate" /> 
      <Logger level="WARN" name="com.company.project.eligibility" /> 
     </Loggers> 
</Configuration> 

Исключение встречающаяся в начале запуска сервера:

2016-08-26 02:19:15,172 [ACTIVE] ExecuteThread: '13' for queue: 
'weblogic.kernel.Default (self-tuning)' ERROR Could not 
unregister MBeans for org.apache.logging.log4j2:[email protected], 
component=AsyncLoggerRingBuffer javax.management.InstanceNotFoundException: 
org.apache.logging.log4j2:[email protected], 
component=AsyncLoggerRingBuffer 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:427) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:415) 
     at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:546) 
     at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:335) 
     at org.apache.logging.log4j.core.jmx.Server.unregisterAsyncLoggerRingBufferAdmins(Server.java:316) 
     at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:258) 
     at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:162) 
     at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:138) 
     at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:502) 
     at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:561) 
     at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:577) 
     at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:212) 
     at org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:75) 
     at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152) 
     at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) 
     at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) 
     at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:551) 
     at com.company.tns.netmessage.bean.NetMessageListener.<clinit>(NetMessageListener.java:55) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at java.lang.Class.newInstance(Class.java:383) 
     at com.oracle.pitchfork.spi.bean.internal.GeneralBeanManager.getBean(GeneralBeanManager.java:22) 
     at com.oracle.pitchfork.spi.EjbComponentCreatorBrokerImpl.getBean(EjbComponentCreatorBrokerImpl.java:82) 
     at weblogic.ejb.container.injection.EjbComponentCreatorImpl.getBean(EjbComponentCreatorImpl.java:57) 
     at weblogic.ejb.container.manager.BaseEJBManager.createNewBeanInstance(BaseEJBManager.java:220) 
     at weblogic.ejb.container.manager.BaseEJBManager.allocateBean(BaseEJBManager.java:235) 
     at weblogic.ejb.container.manager.MessageDrivenManager.createBean(MessageDrivenManager.java:301) 
     at weblogic.ejb.container.pool.MessageDrivenPool.createBean(MessageDrivenPool.java:174) 
     at weblogic.ejb.container.pool.Pool.createInitialBeans(Pool.java:299) 
     at weblogic.ejb.container.manager.MessageDrivenManager.start(MessageDrivenManager.java:655) 
     at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl$DestinationResovler.activateNoneDDMDManager(MessageDrivenBeanInfoImpl.java:2356) 
     at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl$QueueConnectionHandler.handleNoneDD(MessageDrivenBeanInfoImpl.java:2798) 
     at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl$DestinationResovler.resolveDestnationWorkMode(MessageDrivenBeanInfoImpl.java:2289) 
     at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl$DestinationEventHandler.onDestinationsAvailable(MessageDrivenBeanInfoImpl.java:2112) 
     at weblogic.jms.extensions.JMSDestinationAvailabilityHelper$DestinationAvailabilityListenerWrapper$2.run(JMSDestinationAvailabilityHelper.java:386) 
     at weblogic.jms.extensions.JMSDestinationAvailabilityHelper$DestinationAvailabilityListenerWrapper.callOutListener(JMSDestinationAvailabilityHelper.java:402) 
     at weblogic.jms.extensions.JMSDestinationAvailabilityHelper$DestinationAvailabilityListenerWrapper.onDDMembershipChange(JMSDestinationAvailabilityHelper.java:383) 
     at weblogic.jms.common.CDS$DD2Listener.run(CDS.java:1264) 
     at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) 

Что это значит Cryptic ошибка и как это исправить?

ответ

0

Эта ошибка означает, что loglog попытался отменить регистрацию JMX MBean, которая не была зарегистрирована.

Log4j ловит эту ошибку и регистрирует ее на уровне ERROR, включая трассировку стека. Затем приложение продолжает выполнять свою работу. Таким образом, нет реальной проблемы, и это больше похоже на шумное предупреждение.

Вы можете попытаться уменьшить шум, сообщив log4j об отключении JMX, установив системное свойство log4j2.disable.jmx=true.

Кроме того, вы можете утверждать, что log4j должен изменить обработку ошибок, чтобы отобразить менее страшно выглядящее сообщение. Вы можете запросить это изменение в трекер log4j2 Jira.


Update:

Я поднял https://issues.apache.org/jira/browse/LOG4J2-1581 этой проблемы. Теперь это исправлено в главном и будет включено в следующую версию Log4j 2.7.

 Смежные вопросы

  • Нет связанных вопросов^_^